(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-09-25
(45)【発行日】2024-10-03
(54)【発明の名称】モデル学習方法、モデル学習システム、及びコンピュータプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20240926BHJP
G06N 3/10 20060101ALI20240926BHJP
G06N 3/098 20230101ALI20240926BHJP
【FI】
G06N20/00
G06N3/10
G06N3/098
(21)【出願番号】P 2020186618
(22)【出願日】2020-11-09
【審査請求日】2023-05-29
(73)【特許権者】
【識別番号】507228172
【氏名又は名称】株式会社JSOL
(74)【代理人】
【識別番号】100114557
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】松崎 健一
(72)【発明者】
【氏名】石川 淳也
(72)【発明者】
【氏名】鈴木 悠哉
【審査官】福西 章人
(56)【参考文献】
【文献】特表2019-526851(JP,A)
【文献】特開2020-166681(JP,A)
【文献】特開2017-058848(JP,A)
【文献】JADHAV, Ashwin R et al.,Federated-Learning-PyTorch / src / federated_main.py,GitHub [online],2020年07月25日,[検索日 2024.05.16]、インターネット:<URL:https://github.com/AshwinRJ/Federated-Learning-PyTorch/blob/master/src/federated_main.py>
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/00-99/00
G06F 18/00-18/40
(57)【特許請求の範囲】
【請求項1】
サーバに記憶するグローバルモデルのデータを複数のノードに対して配布し、
前記複数のノードで処理するローカルデータによって前記グローバルモデルを基に学習したローカルモデルのデータを取得し、
前記複数のノード夫々から取得した学習後のローカルモデルのデータに基づいて
前記グローバルモデルのデータを更新し、
更新後のグローバルモデルのデータを更新回数に対応する更新情報と対応付けて記憶し、
前記グローバルモデルの性能評価値を算出し、
前記グローバルモデルのデータの配布、ローカルモデルのデータの取得、及びグローバルモデルのデータの更新を複数ラウンド繰り返し、
前記グローバルモデルのデータの更新の都度、前記グローバルモデルのデータ及び性能評価値を更新情報と対応付けて記憶し、
前記グローバルモデルの更新情報の指定と共に前記グローバルモデルの参照リクエストを受け付け、
前記参照リクエストに対し、算出された前記性能評価値に基づく前記グローバルモデルの性能の更新毎の推移を示す画面を表示するための画面データを作成し、
前記画面を前記参照リクエストのリクエスト元に出力させる
処理を含むモデル学習方法。
【請求項2】
前記サーバは、
前記グローバルモデルの性能の推移を示す画面上で、前記グローバルモデルのデータの更新回数の指定、前記グローバルモデルのデータの更新停止の指示を受け付ける
請求項
1に記載のモデル学習方法。
【請求項3】
前記サーバは、
前記複数のノード夫々に、ローカルデータに基づいて算出させた前記グローバルモデルの精度の評価値を取得し、
前記評価値に基づいて前記グローバルモデルの
総合の性能評価値を算出
し、
前記グローバルモデルの前記更新情報と対応付けて前記複数のノード夫々で算出された評価値と、前記総合の評価値とを示す性能画面を、前記参照リクエストのリクエスト元に出力させる
請求項
1に記載のモデル学習方法。
【請求項4】
前記性能画面は、前記複数のノード夫々で算出された評価値を、前記グローバルモデルに対応するグラフィックに、エッジを介して接続する前記複数のノード夫々に対応するグラフィックを接続させて視覚化した画面を含む
請求項3に記載のモデル学習方法。
【請求項5】
前記サーバは、前記グローバルモデルの更新のために使用するローカルモデルの選択を受け付ける編集画面をノードに出力させる
請求項3に記載のモデル学習方法。
【請求項6】
前記サーバは、
前記グローバルモデルの更新のために使用する複数のローカルモデルそれぞれに対する重みの設定を受け付ける編集画面をノードに出力させ、
設定された重みづけを用いて、前記複数のローカルモデルのデータで前記グローバルモデルのデータを更新する
請求項3に記載のモデル学習方法。
【請求項7】
前記サーバは、
再分配するグローバルモデルの選択を
前記画面上で受け付け、
学習の進行に関わらず、選択されたグローバルモデルのデータを前記複数のノードへ再分配する
請求項1から請求項
6のいずれか1項に記載のモデル学習方法。
【請求項8】
前記サーバは、
前記複数のノードに、更新の都度、ローカルモデルの評価値を算出させ、
前記複数のノードに、前記ローカルモデルの学習に用いたローカルデータのデータ量、又は前記ローカルデータの特性を、
前記ローカルモデルのデータと共に前記ローカルモデルの更新情報と対応付けて記憶させ、
前記複数のノードから、ローカルモデルのデータと対応付けてデータ量又はデータの特性を取得
し、
前記ローカルモデルの更新情報と対応付けられた評価値を、ノードに出力させる
請求項
1から請求項6のいずれか1項に記載のモデル学習方法。
【請求項9】
ローカルデータを各々処理する複数のノードと、該複数のノードから通信接続されるサーバとを含み、
前記サーバは、前記複数のノードへグローバルモデルのデータを配布し、
前記複数のノードは夫々、処理対象のローカルデータによって前記グローバルモデルからローカルモデルの学習を各々進め、
前記サーバが備える処理部は、
学習後の前記ローカルモデルのデータを前記複数のノードから取得し、
前記複数のノード夫々から取得した学習後のローカルモデルのデータに基づいてグローバルモデルのデータを更新し、
更新後のグローバルモデルのデータを更新回数に対応する更新情報と対応付けて記憶し、
前記グローバルモデルの性能評価値を算出し、
前記グローバルモデルのデータの配布、ローカルモデルのデータの取得、及びグローバルモデルのデータの更新を複数ラウンド繰り返し、
前記グローバルモデルのデータの更新の都度、前記グローバルモデルのデータ及び性能評価値を更新情報と対応付けて記憶し、
前記グローバルモデルの参照リクエストを
ノードから受け付け、
前記参照リクエストに対し、算出された前記性能評価値に基づく前記グローバルモデルの性能の更新毎の推移を示す画面を表示するための画面データを作成し、
前記画面を前記参照リクエストのリクエスト元から出力させる
モデル学習システム。
【請求項10】
複数のノードに通信接続が可能なコンピュータに、
記憶するグローバルモデルのデータを前記複数のノードに対して配布し、
前記複数のノード夫々で学習されたローカルモデルのデータを取得し、
前記複数のノード夫々から取得した学習後のローカルモデルのデータに基づいてグローバルモデルのデータを更新し、
更新後のグローバルモデルのデータを更新回数に対応する更新情報と対応付けて記憶し、
前記グローバルモデルの性能評価値を算出し、
前記グローバルモデルのデータの配布、ローカルモデルのデータの取得、及びグローバルモデルのデータの更新を複数ラウンド繰り返し、
前記グローバルモデルのデータの更新の都度、前記グローバルモデルのデータ及び性能評価値を更新情報と対応付けて記憶し、
前記グローバルモデルの参照リクエストを受け付け、
前記参照リクエストに対し、算出された前記性能評価値に基づく前記グローバルモデルの性能の更新毎の推移を示す画面を表示するための画面データを作成し、
前記画面を前記参照リクエストのリクエスト元から出力させる
処理を実行させるコンピュータプログラム。
【請求項11】
サーバと通信接続されるコンピュータに、
前記サーバから配布されるグローバルモデルを基にして処理対象のローカルデータを用いたローカルモデルを学習し、
学習後のローカルモデルのデータを前記サーバへ送信し、
異なる更新情報が対応付けられた更新後のグローバルモデルの一覧を含む画面データを前記サーバから受信し、
受信した画面データに基づいて前記コンピュータに備えられる表示部に、前記一覧を表示し、
前記一覧の内のいずれかの更新情報の指定を受け付け、
指定された更新情報に対応するグローバルモデルの性能評価値
に基づく前記グローバルモデルの性能の更新毎の推移を示す画面の画面データを前記サーバから取得し
、
取得した画面データに基づき、前記画面を表示する
処理を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分散学習の実用化のためのモデル学習方法、モデル学習システム、及びコンピュータプログラムに関する。
【背景技術】
【0002】
深層学習に基づく学習モデルを用いた判定、認識等が実用化されている。学習モデルは多様な技術分野で活用できることが確認されている。学習モデルの精度を各種分野で実用化できる程度に向上するために膨大なトレーニングデータを用いたとしてもパラメータの収束に長時間を要し、精度が良くなるとも限らない。
【0003】
特許文献1には、学習対象の学習モデルのレプリカを複数用意し、それらの複数のモデルレプリカが、非同期で独自に学習する方法が開示されている。特許文献1では、パラメータサーバが複数に断片化されており、学習モデルの複数のレプリカが夫々、非同期で、断片化されたパラメータサーバからパラメータを取得して学習し、パラメータを各パラメータサーバへ返すことを繰り返す。このような分散処理により、学習モデルのパラメータが早期に収束するとされている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に開示されているような分散処理による深層学習の方法であっても、トレーニングデータは集約している。しかしながら、医療、金融、認証といった分野のデータは個人データであって機密性が高い。モデルの精度を高めるためにトレーニングデータとしてデータを集約するためには、データの提供に各個人の同意が必要である上、同意が得られたとしてもデータ管理の安全性に対するリスクが常につきまとう。
【0006】
本発明は、斯かる事情に鑑みてなされたものであり、分散学習に基づく学習モデルの実用化を促進するモデル学習方法、モデル学習システム、及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本開示の一実施形態のモデル学習方法は、サーバに記憶するグローバルモデルのデータを複数のノードに対して配布し、前記複数のノードで処理するローカルデータによって前記グローバルモデルを基に学習したローカルモデルのデータを取得し、前記複数のノード夫々から取得した学習後のローカルモデルのデータに基づいてグローバルモデルのデータを更新し、更新後のグローバルモデルのデータを更新回数に対応する更新情報と対応付けて記憶し、前記グローバルモデルの性能評価値を算出し、算出された性能評価値を、前記グローバルモデルの更新情報と対応付けて記憶し、前記グローバルモデルの更新情報の指定と共に前記グローバルモデルの参照リクエストを受け付け、指定された更新情報が対応付けられている前記グローバルモデルのデータ及び性能評価値を出力する処理を含む。
【0008】
本開示の一実施形態のモデル学習システムは、ローカルデータを各々処理する複数のノードと、該複数のノードから通信接続されるサーバとを含み、前記サーバは、前記複数のノードへグローバルモデルのデータを配布し、前記複数のノードは夫々、処理対象のローカルデータによって前記グローバルモデルからローカルモデルの学習を各々進め、前記サーバが備える処理部は、学習後の前記ローカルモデルのデータを前記複数のノードから取得し、前記複数のノード夫々から取得した学習後のローカルモデルのデータに基づいてグローバルモデルのデータを更新し、更新後のグローバルモデルのデータを更新回数に対応する更新情報と対応付けて記憶し、前記グローバルモデルの性能評価値を算出し、算出された性能評価値を、前記グローバルモデルの更新情報と対応付けて記憶し、前記グローバルモデルの更新情報の指定と共に前記グローバルモデルの参照リクエストを受け付け、指定された更新情報が対応付けられている前記グローバルモデルのデータ及び性能評価値を出力する。
【0009】
本開示の一実施形態のコンピュータプログラムは、複数のノードに通信接続が可能なコンピュータに、記憶するグローバルモデルのデータを前記複数のノードに対して配布し、前記複数のノード夫々で学習されたローカルモデルのデータを取得し、前記複数のノード夫々から取得した学習後のローカルモデルのデータに基づいてグローバルモデルのデータを更新し、更新後のグローバルモデルのデータを更新回数に対応する更新情報と対応付けて記憶し、前記グローバルモデルの性能評価値を算出し、算出された性能評価値を、前記グローバルモデルの更新情報と対応付けて記憶し、前記グローバルモデルの更新情報の指定と共に前記グローバルモデルの参照リクエストを受け付け、指定された更新情報が対応付けられている前記グローバルモデルのデータ及び性能評価値を出力する処理を実行させる。
【0010】
本開示の一実施形態のコンピュータプログラムは、サーバと通信接続されるコンピュータに、前記サーバから配布されるグローバルモデルを基にして処理対象のローカルデータを用いたローカルモデルを学習し、学習後のローカルモデルのデータを前記サーバへ送信し、異なる更新情報が対応付けられた更新後のグローバルモデルの一覧を含む画面データを前記サーバから受信し、受信した画面データに基づいて前記コンピュータに備えられる表示部に、前記一覧を表示し、前記一覧の内のいずれかの更新情報の指定を受け付け、指定された更新情報に対応するグローバルモデルの性能評価値を前記サーバから取得して表示する処理を実行させる。
【0011】
本開示のモデル学習方法、モデル学習システム、及びコンピュータプログラムでは、グローバルモデルが更新されると、更新回数に対応する更新情報と対応付けてモデルのデータと、各段階における性能評価値が履歴として記憶される。グローバルモデルのデータが性能評価値と共に、ノード又は他の情報処理装置から取得され、一覧の表示が可能となる。
【0012】
本開示の一実施形態のモデル学習方法は、前記サーバは、グローバルモデルのデータの配布、ローカルモデルのデータの取得、及びグローバルモデルのデータの更新を複数ラウンド繰り返し、前記グローバルモデルのデータの更新の都度、前記グローバルモデルのデータ及び性能評価値を更新情報と対応付けて記憶する。
【0013】
グローバルモデルのデータの配布、グローバルモデルのデータの配布、ローカルモデルのデータの取得、及びグローバルモデルのデータの更新を複数ラウンド繰り返す更新の途上で、異なる更新情報を対応付けてグローバルモデルのデータ及び性能評価値が記憶される。したがって、更新履歴における過去のモデルに遡り、過去のモデルとの性能の比較を視覚化することが可能になる。
【0014】
本開示の一実施形態のモデル学習方法は、前記サーバは、前記参照リクエストに対し、前記性能評価値に基づく前記グローバルモデルの性能を示す画面データを作成し、出力する。
【0015】
グローバルモデルの性能評価が画面データとして視覚化される。オペレータが、更新の過程を確認できるので、モデルの選択、更新方法の変更、更新停止等を決定することが可能である。
【0016】
本開示の一実施形態のモデル学習方法は、前記サーバは、前記グローバルモデルのデータの更新回数の指定、前記グローバルモデルのデータの更新停止の指示を受け付ける。
【0017】
更新中のモデルの性能評価値が出力可能であり、各段階のグローバルモデルのデータが記憶され、ノード又は他の情報処理装置から取得可能である。性能評価値を参照した上での更新回数の指定や、更新の停止の指示が受け付けられる。性能評価値の変化に応じて、適切に分散学習を進めることができる。
【0018】
本開示の一実施形態のモデル学習方法は、前記サーバは、前記複数のノード夫々に、ローカルデータに基づいて算出させた前記グローバルモデルの精度の評価値を取得し、前記評価値に基づいて前記グローバルモデルの性能評価値を算出する。
【0019】
性能評価値は、各ノードでのローカルデータを用いた精度に基づいて算出されてよい。グローバルモデルの性能評価値は、各ノードで算出され精度の平均でもよいし、ローカルデータのデータ量に基づく加重平均であってもよい。各ノードでの精度が実用に耐えうる程度となるまで、グローバルモデルのデータの配布、ローカルモデルの学習、学習されたローカルモデルに基づくグローバルモデルのデータの更新が繰り返されてもよい。
【0020】
本開示の一実施形態のモデル学習方法は、再分配するグローバルモデルの選択を受け付け、学習の進行に関わらず、選択されたグローバルモデルのデータを前記複数のノードへ再分配する。
【0021】
更新履歴のモデルの中から、いずれか選択が可能である。オペレータによって、性能評価値を比較した上で、再分配、即ち、学習を進めるモデルを選択することが可能になる。
【0022】
本開示の一実施形態のモデル学習方法は、前記複数のノードは、前記ローカルモデルのデータを更新情報と対応付けて記憶し、前記ローカルモデルの評価値を算出し、算出された評価値を、前記ローカルモデルの更新情報と対応付けて記憶する。
【0023】
各ノードで学習したローカルモデル自体の性能履歴についても、サーバで集約しておく。サーバにて各ノードから集約したローカルモデルの性能及びその履歴を閲覧可能とすることにより、オペレータにて、分散学習に参加させるノードの選択が可能になる。
【0024】
本開示の一実施形態のモデル学習方法は、前記複数のノードに、前記ローカルモデルの学習に用いたローカルデータのデータ量、又は前記ローカルデータの特性を、前記ローカルモデルの更新情報と対応付けて記憶させ、前記サーバは、前記複数のノードから、ローカルモデルのデータと対応付けてデータ量又はデータの特性を取得する。
【0025】
グローバルモデルの更新に利用されるローカルモデルのデータ量、学習量又は学習に用いられるデータの特性が、サーバに集約される。グローバルモデルのデータの更新に、いずれのローカルモデルを使用するかの選択が、ローカルモデルの特徴に応じて可能になる。
【発明の効果】
【0026】
本開示のモデル学習方法、モデル学習システム、及びコンピュータプログラムによれば、モデルの性能評価値が可視化され、オペレータによって確認可能になる。更新途上のモデルと性能を比較し、より性能が高まると推測できるモデルを選択して学習を進めることもできる。
【図面の簡単な説明】
【0027】
【
図1】第1の実施形態のモデル学習システムの概要図である。
【
図5】モデル学習システムにおける学習処理手順の一例を示すフローチャートである。
【
図6】配布されたグローバルモデルに基づくローカルモデルの学習処理手順の一例を示すフローチャートである。
【
図7】サーバにおけるグローバルモデルの更新処理の一例を示すフローチャートである。
【
図8】学習過程の参照処理手順の一例を示すフローチャートである。
【
図9】グローバルモデルの更新履歴画面の一例を示す。
【
図10】グローバルモデルの個別性能を視覚化した個別性能画面の一例を示す。
【
図11】第2の実施形態のモデル学習システムにおける学習処理手順の一例を示すフローチャートである。
【
図12】第2の実施形態のモデル学習システムにおける学習処理手順の一例を示すフローチャートである。
【
図13】グローバルモデルの個別性能を視覚化した個別性能画面の他の一例を示す。
【
図16】第2の実施形態のモデル学習の概要図である。
【
図17】第3の実施形態におけるノードのローカルモデルの学習処理手順の一例を示すフローチャートである。
【
図18】第3の実施形態におけるグローバルモデルの更新処理の一例を示すフローチャートである。
【
図20】第4の実施形態のローカルモデルの学習処理手順の一例を示すフローチャートである。
【
図21】第4の実施形態のグローバルモデルの更新処理の一例を示すフローチャートである。
【
図23】第4の実施形態におけるグローバルモデルの個別性能を視覚化した個別性能画面の一例を示す。
【
図24】第5の実施形態のモデル学習システムの概要図である。
【
図25】第5の実施形態のモデル学習システムにおける学習処理手順の一例を示すフローチャートである。
【
図26】第5の実施形態におけるローカルモデルの学習処理手順の一例を示すフローチャートである。
【
図27】第5の実施形態のグローバルモデルの更新処理の一例を示すフローチャートである。
【
図28】第5の実施形態における重みの編集画面を示す。
【発明を実施するための形態】
【0028】
本開示をその実施の形態を示す図面を参照して具体的に説明する。
【0029】
(第1の実施形態)
図1は、第1の実施形態のモデル学習システム100の概要図である。モデル学習システム100は、データを記憶する記憶装置2に対して1又は複数設けられたノード1と、サーバ3と、ノード1及びサーバ3間を通信接続する通信網Nとを含む。
【0030】
記憶装置2は、物理量を測定するセンサ、画像を撮影するカメラ等、学習対象のデータを入出力する機器との間でデータの入出力が可能であり、それらのデータを蓄積する。記憶装置2は、操作によって入力されるデータに応じて出力する特定用途の計算機に接続されてもよい。記憶装置2は、ユーザが用いる情報端末の記憶装置であってもよい。記憶装置2は、クライアント装置からデータを収集するサーバ装置に使用される記憶装置であってもよい。
【0031】
ノード1は、記憶装置2が記憶しているデータと同種のデータが入力された場合に、データに基づいて認識結果、判定結果、又は新たなデータを出力するように、モデルの深層学習を実行する。サーバ3は、ノード1に対してモデルを提供するコンピュータであると共に、ノード1と協働してモデルを学習するモデル学習システム100を実現する。記憶装置2が記憶しているデータ(以下、ローカルデータという)をトレーニングデータとしてモデルの学習を実行するには、これらにアクセスできる必要がある。本実施の形態のモデル学習システム100は、サーバ3からのローカルデータへのアクセスを不可とした状態で、学習を進行させることができる。
【0032】
サーバ3は、初期的に、第0次グローバルモデル51を得る。サーバ3は、第0次グローバルモデル51を、通信網Nを介してノード1へ配布する。サーバ3からノード1へ配布されるグローバルモデルモデル51の実体(データ)は、学習済みのパラメータのみ、又は、学習済みのパラメータとプログラムとの両方である。グローバルモデル51は、モデルの構成を定義する定義データ(ネットワーク定義、損失や予め設定されるハイパーパラメータを含む)と、学習対象の重み係数等のパラメータとであってもよい。
【0033】
学習対象のモデルは、深層学習と呼ばれる学習の対象であればアーキテクチャは問わない。深層学習のモデルの種類は、入力データ及び出力データの内容に応じて適切に選択されるべきである。以下説明する学習対象のモデルは、畳み込み層を含むCNN(Convolutional Neural Network)を用いた分類系、検出系、又は生成系等のいずれでもよいし、時系列要素を加味して学習するRNN(Recurrent Neural Network)であってもよい。
【0034】
通信網Nは、所謂インターネットである公衆通信網、キャリアネットワークを含む。通信網Nは、モデル学習システム100用の専用回線であってもよい。
【0035】
ノード1は、記憶装置2との間のローカルネットワークLNに基づいて、記憶装置2に蓄積されたローカルデータにアクセス可能である。ノード1は、アクセス可能なローカルデータを用いて深層学習を実行する。ローカルデータに対しては既に、ノード1が設置されている場所のオペレータによってアノテーションが実施済であるとよい。ノード1は、サーバ3から配布される第0次グローバルモデル51を取得する。ノード1は、第0次グローバルモデル51を基に、ローカルデータをトレーニングデータとして学習を進行し、第1次ローカルモデル52を得る。
【0036】
ノード1は、第1次ローカルモデル52を、サーバ3へ送信する。ローカルデータはサーバ3へ送信されないから、ローカルデータの抽象化、匿名化等の処理は不要である。
【0037】
サーバ3は、複数のノード1夫々から第1次ローカルモデル52を複数受信し、受信した複数の第1次ローカルモデル52に対して統計処理を実行して第1次グローバルモデル51を作成する。サーバ3は、第1次グローバルモデル51を、複数のノード1へ再配布する。再配布されるグローバルモデル51は、重み係数のみであってもよい。再配布される重み係数は学習対象であってもよいし、全体であってもよい。再配布されるグローバルモデル51は、前回の更新からの差分に対応するものであってもよい。
【0038】
モデル学習システム100は、サーバ3からノード1への第n次グローバルモデル51の配布、第n次グローバルモデル51のノード1におけるローカルデータを用いた学習、学習によって得られる第(n+1)次ローカルモデル52のサーバ3への送信、サーバ3での第(n+1)次ローカルモデル52の収集及び第(n+1)次グローバルモデル51の作成(更新)を繰り返す。
【0039】
これにより、サーバ3からローカルデータへのアクセスを許可することなく、分散学習が可能になる。モデル学習システム100では、グローバルモデル51の配布と、ローカルモデル52の学習とを繰り返していく学習過程を、モニタ4から確認できるようにする。モニタ4のみならず、ノード1のオペレータからも確認できるとよい。モデル学習システム100では、モニタ4から、学習の中断や、適切なグローバルモデル51の選択をオペレータができるようにする。
【0040】
サーバ3は、モニタ4に対し、同一のローカルなネットワーク内からのみ通信接続を受け付けてもよいし(オンプレミス型)、
図1で示したように、公衆通信網である通信網N経由でモニタ4からの通信接続を受け付けてもよい(クラウド型)。
【0041】
分散学習によってノード1以外の装置へも配布可能な精度までに学習されたグローバルモデル51は、各ノード1に加え、ローカルモデル52の作成に参加しないシステム外の情報処理装置6へも配布され、使用される。
【0042】
このような学習方法を実現するモデル学習システム100の構成について詳細に説明する。
【0043】
図2は、ノード1の構成を示すブロック図である。ノード1は、パーソナルコンピュータ又はサーバコンピュータである。ノード1は、処理部10、記憶部11、通信部12、表示部13及び操作部14を備える。
【0044】
処理部10は、CPU(Central Processing Unit )及び/又はGPU(Graphics Processing Unit)を用いたプロセッサである。処理部10は、記憶部11に記憶されているノードプログラム1Pに基づき、記憶装置2からのデータの読み出し、サーバ3との間でのモデルの送受信、及びモデル学習を含む処理を実行する。
【0045】
記憶部11は、例えばハードディスク、フラッシュメモリ、SSD(Solid State Drive)等の不揮発性メモリを用いる。記憶部11は、処理部10が参照するデータを記憶する。記憶部11は、ノードプログラム1Pを記憶する。記憶部11は、深層学習用のライブラリ1Lを記憶する。ノードプログラム1P及び/又は深層学習用のライブラリ1Lは、記録媒体8に記憶してあるノードプログラム8P及び/又は深層学習用のライブラリ8Lを処理部10が読み出して記憶部11に複製したものであってもよい。記憶部11は、サーバ3から取得するグローバルモデル51、及び、ローカルデータによって学習されるローカルモデル52夫々を記憶する。
【0046】
通信部12は、通信網Nを介したデータ通信、及び、ローカルネットワークLNを介した記憶装置2との通信を各々実現する。通信部12は具体的には、例えばネットワークカードである。処理部10は、通信部12によって記憶装置2からデータを読み出し、サーバ3との間でデータを送受信する。
【0047】
表示部13は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等のディスプレイである。表示部13は、記憶部11に記憶されているデータに基づく情報、又はサーバ3から提供されるデータを含む画面を表示する。表示部13は、タッチパネル内蔵型ディスプレイであってもよい。
【0048】
操作部14は、処理部10との間で入出力が可能なキーボード及びポインティングデバイス等のユーザインタフェースである。操作部14は、音声入力部であってもよい。操作部14は、表示部13のタッチパネルであってもよい。操作部14は、物理ボタンであってもよい。操作部14は、ノード1のオペレータによる操作データを処理部10へ通知する。
【0049】
図3は、サーバ3の構成を示すブロック図である。サーバ3は、サーバコンピュータである。サーバ3は、処理部30、記憶部31及び通信部32を備える。サーバ3は、以下の説明においては1台のサーバコンピュータによって構成されるものとして説明するが、複数台のサーバコンピュータをネットワークで通信接続して分散処理させる態様であってもよい。サーバ3は、通信網Nを介して各ノード1から通信接続が可能なクラウド型であってもよいし、仮想的なプライベートネットワークを介して各ノード1と通信接続するオンプレミス型であってもよい。
【0050】
処理部30は、CPU及び/又はGPUを用いたプロセッサである。処理部30は、記憶部31に記憶されているサーバプログラム3Pに基づき、グローバルモデル51の学習処理を実行する。
【0051】
記憶部31は、例えばハードディスク、SSD等の不揮発性メモリを用いる。記憶部31は、処理部30が参照するデータを記憶する。記憶部31は、サーバプログラム3Pを記憶する。サーバプログラム3Pは、Webサーバプログラムを含む。記憶部31は、グローバルモデル51、複数のノード1から送信されるローカルモデル52を記憶する。サーバプログラム3Pは、記録媒体9に記憶してあるサーバプログラム9Pを処理部30が読み出して記憶部31に複製したものであってもよい。
【0052】
通信部32は、通信網Nを介したデータ通信を実現する。通信部32は具体的には、例えばネットワークカードである。処理部30は、通信部32によって複数のノード1との間でデータを送受信する。
【0053】
図4は、モニタ4の構成を示すブロック図である。モニタ4は、パーソナルコンピュータである。モニタ4は、タブレット端末又はスマートフォンであってもよい。モニタ4は、処理部40、記憶部41、通信部42、表示部43及び操作部44を備える。
【0054】
処理部40は、CPU及び/又はGPUを用いたプロセッサである。処理部40は、記憶部41に記憶されているWebブラウザプログラムに基づき、サーバ3から提供される情報を表示部43で表示する処理を実行する。
【0055】
記憶部41は、例えばハードディスク、フラッシュメモリ、SSD(Solid State Drive)等の不揮発性メモリを用いる。記憶部41は、処理部40が参照するデータを記憶する。記憶部41は、Webブラウザプログラムを含む各種プログラムを記憶する。
【0056】
通信部42は、通信網Nを介した通信を実現する。通信部42は具体的には、例えばネットワークカードである。処理部40は、通信部42によってし、サーバ3との間でデータを送受信する。
【0057】
表示部43は、液晶ディスプレイ、有機ELディスプレイ等のディスプレイである。表示部43は、サーバ3から提供されるデータを含む画面を表示する。表示部43は、タッチパネル内蔵型ディスプレイであってもよい。
【0058】
操作部44は、処理部40との間で入出力が可能なキーボード及びポインティングデバイス等のユーザインタフェースである。操作部44は、音声入力部であってもよい。操作部44は、表示部43のタッチパネルであってもよい。操作部44は、物理ボタンであってもよい。操作部44は、ノード1のオペレータによる操作データを処理部40へ通知する。
【0059】
このように構成されるモデル学習システム100における学習処理手順について説明する。
図5は、モデル学習システム100における学習処理手順の一例を示すフローチャートである。
【0060】
サーバ3は、予め用意された初期的な(第0次)グローバルモデル51を取得する(ステップS1)。初期的なグローバルモデル51は、特定のノード1で第0次モデルとして作成されたモデルであってもよいし、ノード1ではなく特定の場所で学習されたモデルであってもよく、予め記憶部31に記憶してあるとよい。ステップS1の取得は、予め記憶部31に記憶されているグローバルモデル51の読み出しを含む。
【0061】
サーバ3は、取得した第0次グローバルモデル51をノード1へ配布する(ステップS2)。
【0062】
サーバ3は、ノード1へ配布したグローバルモデル51を基に、ノード1で学習されるローカルモデル52を取得する(ステップS3)。
【0063】
サーバ3は、取得したローカルモデル52に対して統計処理を実行し、次世代のグローバルモデル51に更新する(ステップS4)。ステップS4においてサーバ3は、更新(ラウンド)回数を、加算して記憶してもよい。
【0064】
サーバ3は、更新したグローバルモデル51に対する性能評価値を算出する(ステップS5)。サーバ3はステップS5において、特定のノード1又は情報処理装置6に対し、入力データを更新後のグローバルモデル51に入力した場合に、対応する出力データを出力する精度を評価値として算出してもよい。性能評価値は、後述するように各ノード1からの評価値を用いて算出してもよい。
【0065】
サーバ3は、算出した性能評価値を、更新(ラウンド)回数に対応するラウンド情報と対応付けて、記憶部31に記憶する(ステップS6)。ラウンド情報は、更新回数のみならず、日時等であってもよい。サーバ3は、第0次から最初の数ラウンドにおいては、ステップS5,6の処理を省略してもよい。
【0066】
サーバ3は、更新したグローバルモデル51が学習完了条件を満たすか否か判断する(ステップS7)。
【0067】
ステップS7についてサーバ3は例えば、更新回数が所定回数に到達したか否かで判断する。サーバ3は、ステップS5で算出した性能評価値が、予め記憶してある基準値を満たした場合に、学習完了条件を満たすと判断してもよい。サーバ3はステップS7において、更新前と比較して性能評価値が向上していないと判断される場合に学習完了条件を満たすと判断してもよい。
【0068】
学習完了条件を満たさないと判断された場合(S7:NO)、サーバ3は、更新後のグローバルモデル51を複数のノード1へ再分配し(ステップS8)、処理をステップS3へ戻す。
【0069】
ステップS8においてサーバ3は、グローバルモデル51をそのまま再配布するのではなく、重み係数等のパラメータのみを再配布してもよい。
【0070】
ステップS8においてサーバ3は、何回目の更新後のグローバルモデル51であるのか、即ち第n次グローバルモデル51の「n」を示すデータを共に送信するとよい。ステップS8においてサーバ3は、ステップS6で記憶したラウンド情報を、グローバルモデル51に対応付けて送信するとよい。ラウンド情報は、上述したように、ステップS7で学習完了条件を満たすと判断されるまでに、ノード1への分配及び統計処理を実行した回数を示す情報である。サーバ3は、グローバルモデル51の種類、例えばどのようなアーキテクチャの深層学習がされたのか、を示すデータを共に送信してもよい。
【0071】
学習完了条件を満たすと判断された場合(S7:YES)、サーバ3は、更新後のグローバルモデル51を、ノード1以外の装置へも配布可能なグローバルモデル51としてバージョン情報と対応付けて記憶する(ステップS9)。バージョン情報は、ステップS7にて学習完了条件を満たすと判断されるまでローカルモデル52の学習及びグローバルモデル51の更新を実行した回数に対応する。バージョン情報は、ラウンド情報をマイナーな情報として含んでもよい。
【0072】
サーバ3は、記憶したグローバルモデル51を複数のノード1又は他の情報処理装置6へ送信し(ステップS10)、処理を終了する。他の情報処理装置6とは、ノード1同様に、学習対象と同種のデータを用いるが、ローカルデータをトレーニング用に提供しない装置である(
図1参照)。
【0073】
サーバ3は、
図5のフローチャートに示した処理手順を、複数、例えば月に一度といった周期で実行する。その都度、グローバルモデルのバージョンが上昇し、より実用的なモデルとなる。
【0074】
図6は、配布されたグローバルモデル51に基づくローカルモデル52の学習処理手順の一例を示すフローチャートである。
図6のフローチャートに示す処理は、サーバ3がステップS2又はステップS8でグローバルモデル51を配布した場合に、複数のノード1夫々で実行する処理である。
【0075】
ノード1の処理部10は、配布されたグローバルモデル51を受信し、記憶部11に記憶する(ステップS301)。
【0076】
ノード1の処理部10は、記憶したグローバルモデル51をインスタンスとしてロードする(ステップS302)。処理部10は、記憶装置2に記憶してあるローカルデータをトレーニングデータとして取得し(ステップS303)、これをグローバルモデル51に与えて学習を実行する(ステップS304)。
【0077】
ステップS304において処理部10は、ロードしたグローバルモデル51に対してローカルデータの入力データを入力する。処理部10は、出力されたデータと、ローカルデータに含まれる前記入力データに対応する結果データとに対する損失を算出する。処理部10は、算出した損失に基づいて配布されたグローバルモデル51における重み係数を含むパラメータを学習する。
【0078】
ノード1の処理部10は、学習完了条件を満たすか否かを判断する(ステップS305)。ステップS305において処理部10は、学習(更新)回数が所定回数(1回以上)を満たすことを学習完了条件とする。処理部10は、学習後のグローバルモデル51の出力精度が記憶してある所定値以上である場合に、学習完了条件を満たすと判断してもよい。処理部10は、出力精度の変化が所定範囲内に収まり、収束していると判断できる場合に学習完了条件を満たすと判断してもよい。
【0079】
学習完了条件を満たさないと判断された場合(S305:NO)、処理部10は処理をステップS304へ戻す。これにより、学習が続行される。
【0080】
学習完了条件を満たすと判断された場合(S305:YES)、処理部10は学習を終了し、パラメータが更新されたグローバルモデル51を、ローカルモデル52として記憶する(ステップS306)。
【0081】
ノード1の処理部10は、記憶したローカルモデル52を、サーバ3へ送信し(ステップS307)、処理を終了する。これにより、サーバ3は、複数のノード1夫々から、ローカルデータで学習されたローカルモデル52を取得することができる。
【0082】
ステップS307において処理部10は、第n次のローカルモデル52なのか、又は元となるグローバルモデル51が第n次なのかの「n」を示すデータを共に送信するとよい。ステップS307においてノード1は、後述するように1回の学習完了までの更新回数に対応するラウンド情報を得られる場合にはそのラウンド情報を、ローカルモデル52に対応付けて送信してもよい。
【0083】
図6のフローチャートに示した処理によってノード1からは、ローカルデータがサーバ3へ送信されることがない点が、着目されるべきである。ローカルデータの匿名化も実行されない。ノード1から送信されるデータは、モデルそのものである。ローカルデータの特性は反映されているが、データの送信はされない。
【0084】
図7は、サーバ3におけるグローバルモデル51の更新処理の一例を示すフローチャートである。
図7のフローチャートに示す処理手順は、
図5のフローチャートに示す処理手順の内のステップS4の詳細に対応する。
【0085】
サーバ3の処理部30は、ノード1から送信されるローカルモデル52を取得し(ステップS401)、ノード1の識別データと対応付けてローカルモデル52を記憶する(ステップS402)。ステップS401においてサーバ3の処理部30は、非同期に各ノード1から送信されるローカルモデル52を取得する。
【0086】
処理部30は、取得したローカルモデル52でグローバルモデル51を更新すべきか否かを判断する(ステップS403)。ステップS403において処理部30は、グローバルモデル51を配布した配布先のノード1全てからローカルモデル52を取得できた場合に更新すべきであると判断してもよい。ステップS403において処理部30は、予め決定しておいた代表的の複数のノード1からローカルモデル52を取得できた場合に更新すべきであると判断してもよい。
【0087】
更新すべきでないと判断された場合(S403:NO)、サーバ3の処理部30は処理をステップS401へ戻す。更新すべきであると判断されるまで、各ノード1から送信されるローカルモデル52を取得し、集約する。
【0088】
更新すべきであると判断された場合(S403:YES)、サーバ3の処理部30は、複数のノード1からのローカルモデル52の平均を求める(ステップS404)。処理部30は、平均を新たなグローバルモデル51として更新する(ステップS405)。
【0089】
処理部30は、更新後のグローバルモデル51を、ラウンド情報、例えば更新回数(第n次)を示すデータ「n」と対応付けて記憶し(ステップS406)、グローバルモデル51の更新処理を終了する。これにより、第n-1次グローバルモデル51は、第n次グローバルモデル51に更新される。
【0090】
上述したように第1の実施形態のモデル学習システム100では、ローカルデータはサーバ3へ送信されることなしに、各所に記憶されているローカルデータを用いた学習結果に基づいてグローバルモデル51が実用化される。各所のローカルデータのみでは、データ量が不足するような場合であっても、1箇所に集約させた大量のデータによる学習よりも精度よく、且つ早期に実用可能なモデルを提供することが可能になる。
【0091】
第1の実施形態では、サーバ3がグローバルモデル51の学習(更新)及び改訂(バージョンアップ)の過程でラウンド情報、及びバージョン情報と対応付けて、グローバルモデル51を記憶している。したがって、サーバ3にて、更新の過程に関する情報を、バージョン別、ラウンド毎に、モニタ4又はノード1に向けて提供することが可能である。
【0092】
図8は、学習過程の参照処理手順の一例を示すフローチャートである。サーバ3は、サーバプログラム3Pに含まれるWebサーバプログラムに基づいて、以下に示す処理手順により、モニタ4又はノード1からの参照リクエストに応じて学習過程に関する情報を提供する。
【0093】
モニタ4又はノード1のオペレータは、記憶してあるWebブラウザプログラムに基づいて、サーバ3から提供されるWebページへのアクセスを試みる。
【0094】
サーバ3の処理部30は、Webサーバとしての機能により、接続リクエストを受信し(ステップS601)、リクエストに含まれるアカウント情報に応じて、メイン(ポータル)となるWebページを記憶部31から読み出してリクエスト元へ送信する(ステップS602)。
【0095】
モニタ4の管理者及びノード1の管理者毎に、サーバ3へのアクセス用のアカウントが発行されている。アカウントは、アカウントID、認証情報、権限のデータを含む。サーバ3は、記憶部31にアカウントデータを記憶している。モニタ4の管理者向けのアカウントには、学習回数の指定、学習の中断などが可能な権限が対応付けられている。ノード1の管理者向けのアカウントには、学習過程での性能評価値の閲覧等、グローバルモデル51の内容に影響しない程度の権限が対応付けられている。
【0096】
処理部30は、モニタ4又はノード1から送信されるグローバルモデル51の指定を受信し(ステップS603)、指定されたグローバルモデル51の更新履歴の一覧を含むWebページを送信する(ステップS604)。
図5のフローチャートに示したように、グローバルモデル51が更新される都度に、グローバルモデル51及び性能評価値が、ラウンド情報及びバージョン情報と対応付けて記憶されている。したがって、処理部30は記憶されているデータに基づいて更新履歴の一覧を作成できる。
【0097】
処理部30は、更新履歴の一覧に含まれるバージョン情報の指定を含む性能参照リクエストを受信すると(ステップS605)、指定されたバージョン情報に対応付けられて記憶してあった更新過程におけるグローバルモデル51の性能を示すイメージを含むWebページを作成する(ステップS606)。性能を示すイメージは、例えば性能の推移を示すグラフ、学習に使用したデータ件数等が含まれてよい。
【0098】
処理部30は、作成した画面データをリクエスト元のモニタ4又はノード1へ向けて出力し(ステップS607)、処理を終了する。
【0099】
図9及び
図10は、モニタ4又はノード1で表示される画面例を示す。
図9は、グローバルモデル51の更新履歴画面430の一例を示す。
図9の更新履歴画面430は、モニタ4の表示部43に表示される。更新履歴画面430は、グローバルモデル51のバージョン情報に対応するバージョン名に対応付けて、性能評価値、更新日時を表形式で示す一覧432を含む。一覧432にてバージョン名を示すテキストは、個別ページへのリンクを含んで選択可能にしてある。バージョン名を示すテキストが選択されると、ノード1の処理部10によって、バージョン情報の指定が受け付けられる。最新バージョンのグローバルモデル51が更新(ラウンド)中である場合、その更新中であることを示すアイコンが、バージョン名の横に表示されている。
【0100】
図10は、グローバルモデル51の個別性能を視覚化した個別性能画面431の一例を示す。
図10の個別性能画面431は、グローバルモデル51の更新履歴画面430の一覧432からいずれかのバージョン名のテキストが選択された場合に表示される。
図10は、
図9で「ver4.0」のバージョンを選択した場合の個別性能画面431の例を示す。個別性能画面431は、指定されたバージョン情報のグローバルモデル51の、更新ラウンド毎に算出された性能評価値の推移を示すグラフ434が含まれる。個別性能画面431は、選択されたバージョンのグローバルモデル51の学習に使用されたローカルモデル52、即ち学習に参加したノード1の数等の情報を示す詳細画面435を含む。モニタ4のオペレータは、詳細画面435の内容、性能の推移が視覚化されたイメージ434によってグローバルモデル51の学習(更新)過程を確認することができる。
【0101】
モニタ4の管理者で、学習の中断、終了の権限が与えられたアカウントからの参照リクエストに対しては、
図10に示すように、個別性能画面431に、更新を中断することを指示するためのインタフェース433が表示される。インタフェース433が選択された場合、
図5のフローチャートに示した処理手順のうち、学習完了条件を満たすまでのラウンドが中断される。更新中断のログが記録されるとよい。これにより、モニタ4の管理者は、各ラウンドの精度の状況を確認し、これ以上、更新を継続してもモデルの性能向上が見込めない場合に、学習を中断することができる。
【0102】
モニタ4の管理者で、グローバルモデルの選択の権限が与えられたアカウントからの参照リクエスト対しては、個別性能画面431に、再分配するグローバルモデルの選択を受け付けるインタフェースが表示されてもよい。このインタフェースが選択された場合、処理部30は、
図5のフローチャートに示した処理手順を中断し、選択されたグローバルモデル51を、ステップS8で再分配し、処理をステップS2へ戻し、更新の処理を継続する。
【0103】
このように第1の実施形態では、ローカルデータに基づいてローカルモデル52の学習をし、且つ、
図9-
図10に示したように、オペレータがモニタ4又はノード1から、グローバルモデル51の学習過程を視覚的に確認できる。
図9及び
図10に示したように、モニタ4の管理者の権限を有している場合、学習、すなわちグローバルモデルの更新を、管理者によって停止させることも可能である。
【0104】
(第2の実施形態)
第2の実施形態におけるモデル学習システム100は、学習完了条件を満たすための判断処理が、第1の実施形態と異なる。第2の実施形態におけるモデル学習システム100の構成は、上述の判断処理の詳細を除いて第1の実施形態のモデル学習システム100と同様の構成であるから、共通する構成については同一の符号を付して詳細な説明を省略する。
【0105】
図11及び
図12は、第2の実施形態のモデル学習システム100における学習処理手順の一例を示すフローチャートである。
図11及び
図12のフローチャートに示す処理手順の内、
図5のフローチャートに示した処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
【0106】
ステップS4でグローバルモデル51を更新すると(S4)、サーバ3の処理部30は、更新後のグローバルモデル51を、複数のノード1へ送信する(ステップS501)。
【0107】
更新後のグローバルモデル51を受信した複数のノード1は夫々、送信されたグローバルモデル51を用いて、記憶装置2からローカルデータを読み出し、入力データに対する精度評価を実行する。ノード1の処理部10は、ローカルデータの入力データを入力した場合の精度を算出し、サーバ3へ送信する。処理部10は、精度として、ローカルデータにおける入力データに対応する出力データとの合致率を算出してもよいし、ノード1のオペレータから表示部13及び操作部14を介して精度評価を受け付けてもよい。
【0108】
サーバ3の処理部30は、各ノード1から送信される評価値を取得し(ステップS502)、複数のノード1から取得した評価値から総評価値を算出する(ステップS503)。ステップS503において処理部30は、精度の平均値を算出してもよいし、合致率の平均でもよいし、オペレータから受けた評価の平均を求めてもよい。
【0109】
処理部30は、更新したグローバルモデル51に対してステップS502で各ノードから得た評価値、及びステップS503で算出した総評価値を、グローバルモデル51のラウンド情報と対応付けて記憶する(ステップS504)。
【0110】
処理部30は、ラウンド情報毎に記憶されたこれまでのグローバルモデル51に対する評価値、総評価値を含む更新履歴を含むWebページをモニタ4へ送信し、出力させる(ステップS505)。
【0111】
処理部30は、更新履歴に基づいて再分配するグローバルモデル51の選択を受け付け(ステップS506)、学習停止の選択を受け付けたか否かを判断する(ステップS507)。
【0112】
ステップS507において処理部30は、ステップS505に送信したWebページに、学習を終了させるインタフェースを含ませておき、学習を終了させるインタフェースで終了が選択された場合に、学習停止の選択を受け付けたと判断する。処理部30は、同Webページに、学習続行のインタフェースを含ませておき、学習続行が選択された場合に、学習続行を受け付けたと判断してもよい。
【0113】
ステップS507で学習停止の選択を受け付けないと判断された場合(S507:NO)、学習条件の変更があるか否かを判断する(ステップS508)。
【0114】
ステップS508において処理部30は、ステップS505に送信したWebページに、学習条件の変更を受け付けるインタフェースを含ませておき、学習条件の変更のインタフェースが選択された場合、学習条件の変更があると判断する。
【0115】
学習条件の変更があると判断された場合(S508:YES)、処理部30は、条件の変更を受け付ける(ステップS509)。ステップS509において処理部30は、後述するWebページにて、ローカルモデル52の学習に参加するノードの変更を受け付けてもよいし、ローカルモデル52の更新回数の変更を受け付けてもよい。他の条件の変更を受け付けてもよい。ステップS509及びS508の処理手順の順序は前後してもよいし、処理部30は、変更を受け付けた場合に学習条件の変更があると判断してもよい。
【0116】
処理部30は、受け付けた変更後の学習条件に基づいて、複数のノード1へ、ステップS506で選択されたラウンド情報に対応するグローバルモデル51を再分配し(ステップS510)、処理をステップS3へ戻す。
【0117】
ステップS508で学習条件の変更がないと判断された場合(S508:NO)、処理部30は、ステップS506で選択されたラウンド情報に対応するグローバルモデル51を、これまでに送信対象としてきたノード1へ再分配し(S510)、処理をステップS3へ戻す。
【0118】
ステップS507で学習停止の選択を受け付けたと判断された場合(S507:YES)、処理部30は、ステップS506で選択されたグローバルモデル51を、他の装置へも配布可能なグローバルモデル51として、バージョン情報と対応付けて記憶する(ステップS511)。
【0119】
処理部30は、記憶したグローバルモデル51を複数のノード又は他の情報処理装置6へ送信し(S10)、処理を終了する。
【0120】
図13から
図15は、モニタ4の表示部43に表示される画面例を示す図である。
図13は、グローバルモデル51の個別性能を視覚化した個別性能画面431の他の一例を示す。
図13の個別性能画面431は、
図9に示した更新履歴画面430から、更新中のグローバルモデル51のバージョン情報のテキストが選択された場合に表示される。
【0121】
図13に示すように、第2の実施形態における個別性能画面431は、性能評価値の推移を示すグラフ上に、第1の実施形態で示した
図10同様に、指定されたバージョン情報のグローバルモデル51の、更新ラウンド毎に算出された総評価値の推移を示すグラフ434が含まれる。
【0122】
グラフ434は、ラウンド数を選択するためのマーク436を含む。個別性能画面431の詳細画面435は、マーク436が付されているラウンド数のグローバルモデル51の評価等を示す。
【0123】
個別性能画面431は、以後に学習を続行するためのインタフェース437を含む。インタフェース437は、
図13に示すように例えばボタンのアイコンである。モニタ4のオペレータは、個別性能画面431に対し、マーク436で選択中のラウンドグローバルモデル51に対し、学習続行のインタフェース437を選択する。サーバ3の処理部30はこの操作を受けて、学習条件の変更がないとして(S508:NO)、選択されたグローバルモデル51をノードへ配布し(S510)、処理を続行する。
【0124】
個別性能画面431は、マーク436ではなく、詳細画面435中でラウンド数を選択してもよい。
【0125】
個別性能画面431は、更新を停止し、学習を終了させるためのインタフェース438を含む。インタフェース438は、
図13に示すように、例えばボタンのアイコンである。インタフェース438は、リンクが張られたテキストであってもよい。モニタ4のオペレータは、個別性能画面431に対し、総評価値を基に、マーク436で選択中のグローバルモデル51で、学習を終了させるインタフェース438を選択する。サーバ3の処理部30はこの操作を受けて、選択されたグローバルモデル51を配布可能なグローバルモデル51として記憶する(S511)。
【0126】
個別性能画面431は、選択中のバージョン情報の各ラウンドの評価値の詳細を表示するためのインタフェース439を含む。モニタ4のオペレータがインタフェース439を選択すると、総評価値及び各ノード1からの評価値の具体的数値が出力される。
図14は、評価値の詳細画面440の一例を示す。
図14の詳細画面440には、更新(ラウンド)の都度に算出される総評価値及び各ノードからの評価値(S504)を、各ラウンドのラウンド情報と対応付けて表す一覧441を含む。一覧441には、更新日時が対応付けられていてもよい。
【0127】
図13の個別性能画面431に戻って説明を続ける。個別性能画面431は、学習を中断するためのインタフェース442を含む。インタフェース442は、
図13に示すように、ボタンのアイコンである。モニタ4のオペレータは、個別性能画面431に対し、これ以上学習を進めても、精度に対応する総評価値が配布可能な条件を満たさない様子であることを確認すると、学習を中断するためのインタフェース442を選択する。サーバ3の処理部30はこの操作を受けて、
図11及び
図12のフローチャートに示した処理手順を中断する。
【0128】
第2の実施形態の個別性能画面431は、そのバージョンのグローバルモデル51に対する各ノードにおける評価値を、視覚化したノード画面443を含む。ノード画面443には、グローバルモデル51に対応し、マーク436で選択されているラウンド情報を示すテキストを含んだ角丸矩形のグラフィックが含まれている。グローバルモデル51に対応するグラフィックには、そのラウンド数における総評価値を示すテキストが添えられるようにして表示されている。ノード画面443は、グローバルモデル51に対応するグラフィックにエッジを介して接続するように、各ノード1を識別するテキスト(A,B,C,…)を含む角丸矩形のグラフィックを含む。各ノード1に対応するグラフィックには、各ノード1におけるそのラウンド数のグローバルモデル51に対する評価値を示すテキストが添えられるようにして表示されている。各ノード1に対応するグラフィックには、各ノード1におけるローカルモデル52の性能履歴に対するリンクが対応付けられている。
【0129】
このように、各ノード1の評価値が視覚化され、オペレータはモデル学習システム100における全体の学習状況を把握することができる。
【0130】
図15は、学習条件の編集画面の例を示す。
図15は、
図14の個別性能画面431のノード画面443上でいずれかのノード1が選択された場合に表示される編集画面444の例を示す。編集画面444は、学習条件の変更を受け付けるインタフェースに対応する。
図15において編集画面444は、ノード1を選択した場合に、メニュー画面のように表示され、選択中のノード1を、グローバルモデル51の更新のために使用するローカルモデル52を学習するノード1から除外するか否かが選択できる。編集画面444は、
図15の例ではメニュー画面の態様で表示されているが、これに限られない。
【0131】
モニタ4のオペレータは、ノード画面443に対する操作で表示される編集画面444で、学習条件を変更し、変更後の学習条件、例えば「ノードD」のノード1によるローカルモデル52を、除外するという条件で、個別性能画面431のインタフェース437にて学習を続行することができる。
【0132】
学習条件の編集画面444は、
図15に示すように、ローカルモデル52を学習していく上での学習回数等の学習を終了する条件の設定を受け付けるメニューを含んでもよい。
【0133】
図16は、第2の実施形態のモデル学習の概要図である。
図16の概要図では、更新後の第n+1次グローバルモデル51の更新時に、各回の更新(ラウンド)後の第n次グローバルモデル51が、モニタ4を介してオペレータによって選択された場合の更新の履歴を示している。
図1のモデル学習システムの概要図と比較して、グローバルモデル51は常に、更新されるものが連綿と採用されるのではないことが示されている。これにより、精度が良くなるように分散学習を進めることが可能になる。
【0134】
(第3の実施形態)
第3の実施形態では、ノード1においてローカルモデル52の学習中に性能評価を算出してサーバ3へ送信し、サーバ3を介してモニタ4から各ノード1におけるローカルモデル52の精度を閲覧できるようにする。
【0135】
第3の実施形態におけるモデル学習システム100の構成は、第1及び第2の実施形態における構成と同様であるから、第1及び第2の実施形態におけるモデル学習システム100と共通する構成については同一の符号を付して詳細な説明を省略する。
【0136】
第3の実施形態では、ノード1はそれぞれ、学習過程及びローカルモデル52の履歴を記憶する。
図17は、第3の実施形態におけるノードのローカルモデル52の学習処理手順の一例を示すフローチャートである。
図17のフローチャートに示す処理手順の内、第1の実施形態の
図6のフローチャートに示した処理手順と共通する手順については、同一のステップ番号を付して詳細な説明を省略する。
【0137】
ノード1の処理部10は、配布されたグローバルモデル51に基づく学習を実行し(S301-S304)、S305でYESと判断されるまで、あるいはステップS301-S304の繰り返し回数が所定回数となる都度に、学習の結果得られる性能評価を、ローカルモデル52の学習の進行具合を示すデータと対応付けて記憶する(ステップS311)。ステップS311で処理部10は、ローカルデータを入力した場合の出力データがトレーニングデータと合致する精度を、性能評価として算出してよい。ステップS311において処理部10は、配布されたグローバルモデル51のラウンド情報に対するステップS301-S304の繰り返し回数、又は精度を学習の進行具合を示すデータ(マイナーアップデート)として記憶してもよい。
【0138】
処理部10は、ステップS305で学習完了条件を満たすと判断された場合(S305:YES)、学習後のローカルモデル52を、配布されたグローバルモデル51のラウンド情報と対応付けて記憶する(ステップS312)。
【0139】
処理部10は、記憶したローカルモデル52及びステップS311で記憶した性能評価を、ラウンド情報と対応付けてサーバ3へ送信し(ステップS313)、処理を終了する。これにより、サーバ3は、複数のノード1夫々から、ローカルデータで学習された各ラウンドにおけるローカルモデル52、及びその個々の性能評価を取得することができる。
【0140】
ステップS311の性能評価の算出及び記憶は、ステップS304の学習の都度ではなく、学習が学習完了条件を満たすと判断されて終了した後に(S305:YES)、実行されてもよい。
【0141】
サーバ3では、ノード1からローカルモデル52と共に送信されるラウンド情報及び性能評価等の情報を記憶する。
図18は、第3の実施形態におけるグローバルモデル51の更新処理の一例を示すフローチャートである。第3の実施形態のサーバ3は、第2の実施形態同様に、
図11及び
図12のフローチャートに示した処理手順を実行する。この中で、第3の実施形態におけるサーバは、ステップS4で以下に示す処理手順を実行する。
図18のフローチャートに示す処理手順のうち、第1の実施形態の
図7のフローチャートに示した処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
【0142】
サーバ3の処理部30は、ノード1から送信されるローカルモデル52、及び性能評価をラウンド情報と対応付けて取得する(ステップS411)。処理部30は、取得したローカルモデル52及び性能評価を、ラウンド情報と対応付けて記憶する(ステップS412)。処理部30は、ローカルモデル52及びノード1の識別データと共に対応付けて記憶してもよい。処理部30は、ステップS403の処理を実行する。
【0143】
このようにサーバ3の処理部30は、ローカルモデル52をノード1から取得する際に、性能評価を取得し、バージョン別、ラウンド毎に記憶することができる。
【0144】
これらのノード1から集約したローカルモデル52における学習の精度の推移を含むデータは、サーバ3は、
図11及び
図12のフローチャートにおけるステップ505の処理にてモニタ4へ出力する、更新したグローバルモデル51の更新履歴の中で出力される。
【0145】
図19は、ローカルモデル52の性能履歴画面445を示す。
図19は、
図13に示したグローバルモデル51の個別性能画面431において、ノード画面443に含まれる複数のノード1のグラフィックのいずれかが選択された場合に表示される。
図19は、「ノードA」のノード1に対応するグラフィックが選択された場合に表示される例を示す。
【0146】
ローカルモデル52の性能履歴画面445は、異なるバージョンのグローバルモデル51に対して算出された性能評価の値の一覧を含む。性能履歴画面445は、選択されたノード1における各バージョンのローカルモデル52に対する精度(性能)の推移を示すグラフを出力する。性能履歴画面445は、更新中のグローバルモデル51に対応するローカルモデル52については、最新のラウンドに対する評価値が出力されている。
図19の例では、「ノードA」のノード1では、ローカルモデル52の評価値が、バージョン1.0からバージョン4.0へ進むにつれ、「0.29」から順次「0.80」へ順調に増加していることが示されている。性能履歴画面445は、
図14に示したような表形式で、バージョン別に、各ノード1におけるローカルモデル52に対するラウンド毎の性能評価値を出力するようにしてもよい。
【0147】
これにより、オペレータが、各ノード1における評価値を参照し、より精度が良くなるように分散学習を進めることが可能になる。
【0148】
(第4の実施形態)
第4の実施形態では、各ノード1で学習されたローカルモデル52に基づくグローバルモデル51の更新方法が第1~第3の実施形態で説明した方法と異なる。第4の実施形態におけるモデル学習システム100の構成は、グローバルモデル51の更新処理の詳細を除いて第1の実施形態のモデル学習システム100と同様の構成であるから、共通する構成については同一の符号を付して詳細な説明を省略する。
【0149】
第4の実施形態のモデル学習システム100では、サーバ3は第1の実施形態の
図5のフローチャートに示した処理手順、第2の実施形態の
図11及び
図12のフローチャートに示した処理手順、の内のいずれかの学習処理手順を実行する。第4の実施形態では、それらの処理手順の内、ステップS4の更新処理が異なる。また、更新処理が異なることに対応して、ノード1から送信されるデータ内容も第1の実施形態での説明と異なる。
【0150】
図20は、第4の実施形態のローカルモデル52の学習処理手順の一例を示すフローチャートである。
図20のフローチャートに示す処理手順の内、第1の実施形態における
図6のフローチャートに示した処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
【0151】
ノード1の処理部10は、記憶装置2からその時点で記憶されているローカルデータを取得し(S303)、ローカルデータのデータ量(データ件数)を算出し(ステップS323)、処理をステップS304へ進める。
【0152】
ノード1の処理部10は、学習を実行する都度(S304)、学習量を算出し(ステップS324)、学習完了条件を満たすか否かを判断する(ステップS305)。ステップS324において処理部10は、学習の繰り返し回数を学習量として算出してもよいし、前回のバージョンにおけるローカルモデル52からの精度の向上度合いを学習量として算出してもよいし、ローカルモデル52の変化量を学習量として算出してもよい。
【0153】
ステップS305において処理部10は、学習の結果、ローカルデータに対するニューラルネットワークからの出力データの精度が所定の条件を満たす、例えば精度が所定値以上である場合に、学習完了条件を満たすと判断してもよい。処理部10は、学習量(学習回数)が所定量(所定回数)以上である場合に学習完了条件を満たすと判断してもよい。
【0154】
ノード1の処理部10は、学習後のローカルモデル52と共に、ステップS323で算出したデータ量、又は、カウントされている学習量をサーバ3へ送信し(ステップS327)、処理を終了する。これにより、サーバ3は、複数のノード1夫々から、ローカルデータで学習されたローカルモデル52と共に、元となるローカルデータのデータ量、又は、学習量を取得することができる。
【0155】
第4の実施形態においても、ノード1からは、ローカルデータのデータ量は送信されても、データ自体がサーバ3へ送信されることがない。
【0156】
第4の実施形態では、各ノード1におけるローカルモデル52の学習量、学習のために使用されたデータのデータ量等を加味した重み付けが、オペレータから可能である。
図21は、第4の実施形態のグローバルモデル51の更新処理の一例を示すフローチャートである。
図21のフローチャートに示す処理手順の内、第1の実施形態の
図7のフローチャートに示した処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
【0157】
サーバ3の処理部30は、各ノード1から送信されるローカルモデル52、及び、データ量又は学習量を取得し(ステップS421)、ノード1の識別データと対応付けてローカルモデル52、及び、データ量又は学習量を記憶する(ステップS422)。ステップS411においてサーバ3の処理部30は、非同期に、各ノード1から送信されるローカルモデル52を取得する。
【0158】
処理部30は、更新タイミングであると判断された場合(S403:YES)、サーバ3の処理部30は、複数のノード1からのローカルモデル52に対する、データ量又は学習量に基づく重みを初期的に算出する(ステップS423)。
【0159】
サーバ3の処理部30は、各ノード1におけるデータ量及び/又は学習量、並びに初期的に算出した重みを出力し(ステップS424)、重みの設定(編集)を受け付ける(ステップS425)。
【0160】
処理部30は、初期的に算出した重み、又はステップS425で受け付けた重みを用い、各ノード1で学習されたローカルモデル52の加重平均を求める(ステップS426)。処理部30は、ローカルモデル52の加重平均を、新たなグローバルモデル51として更新する(ステップS427)。
【0161】
処理部30は、更新後のグローバルモデル51を、バージョン情報を示すデータと対応付けて記憶し(S406)、グローバルモデル51の更新処理を終了する。
【0162】
サーバ3は、更新が所定回数に到達するまで、又は、更新後のグローバルモデル51の精度が所定の基準を満たすまで、
図21のフローチャートに示した更新処理を継続する。繰り返し更新処理を実行するに際し、ステップS425の受付処理は、1度実行された後はスキップされてもよい。
【0163】
図22は、各ノードの重みの編集画面446を示す。編集画面446は、
図21のフローチャートに示したグローバルモデル51の更新中に、サーバ3のステップS424の処理によってモニタ4の表示部43に表示される。重みの編集画面446は、各ノード1におけるローカルデータのデータ量(データ件数)を含む。重みの編集画面446は、ノード1毎に初期的に、データ量を基に算出された重みを、編集可能に含んでいる。
図22の例では、モニタ4を操作するオペレータは、各ノード1におけるローカルデータを参照しながら、加重平均を算出するための重みの調整が可能である。このとき、重みを0(ゼロ)に設定することで特定のノード1を除外して、サーバ3に加重平均を算出させることも可能である。
【0164】
第4の実施形態では、グローバルモデル51の更新(ラウンド)の都度、重み係数を出力し、変更を受け付け可能としたが、1つのバージョン中は1回だけ、編集画面446を表示させるようにしてもよい。同一のバージョンの中で、重み係数を変更しなくてもよい。
【0165】
第4の実施形態における更新方法によって、データ量が異なるローカルデータによって学習されたモデルを、データ量に応じて扱い、適切に評価することが可能になる。実施の形態4の更新方法は、第2又は第3の実施形態にも適用できる。
【0166】
第4の実施形態では、各ノード1からローカルモデル52の学習の都度に、サーバ3が、その時点でのローカルデータのデータ量、又は、学習量を取得することができるから、グローバルモデル51の性能を出力する際に、それらのデータを出力することが可能である。
図23は、第4の実施形態におけるグローバルモデル51の個別性能を視覚化した個別性能画面431の一例を示す。
図23に示す個別性能画面431では、
図13に示した画面と異なり、選択されたバージョンのグローバルモデル51の性能を示す詳細画面435に、学習に使用されたデータ件数の情報が含まれる。
【0167】
このように、サーバ3が各ノード1からデータ量等の情報をも取得することにより、データ量が少ない環境においても、オペレータの知見に基づき、ローカルモデル52の学習情報を用いてグローバルモデル51を最適化することが期待できる。
【0168】
(第5の実施形態)
モデル学習システム100は、ニューラルネットワークを始めとする深層学習のモデルに適用できる。例えば、入力データは画像データであり、出力データは画像データの画像に写っている被写体の検出結果、又は被写体に対する判定結果である。他の例では、入力データは、入出金データであり、出力データは評価等の判定結果、あるいは企業業況変化(成長または劣化)に関する予測値や経済予測に関する予測値である。他の例では、入力データは、工場、生産設備に設けられた各種センサからの測定データであり、出力データは異常/正常を含む生産管理に関するデータである。他の例では、入力データはテキストデータであり、出力データは判定結果、または予測データである。
【0169】
第5の実施形態では、モデル学習システム100を、医療施設にて患者に関して得られる医療データから、患者に特定の病気の症状が発生しているか否かの診断を支援するデータを出力するモデルの学習に適用させた例を挙げて説明する。以下の説明では、医療データは、例えば検査で撮影された眼底写真の画像データである。
【0170】
図24は、第5の実施形態のモデル学習システム100の概要図である。第5の実施形態におけるモデル学習システム100の構成は基本的に、第1の実施形態のモデル学習システム100と同様である。第5の実施形態のモデル学習システム100の内、第1の実施形態のモデル学習システム100と共通する構成については同一の符号を付して詳細な説明を省略する。
【0171】
第5の実施形態においてノード1及び情報処理装置は、医療施設に設けられている。ノード1及び情報処理装置は、患者の眼底写真を撮影する撮影装置7から得られる画像データを取得できる。ノード1が設けられている医療施設では、撮影装置7は記憶装置2に対して画像データを出力する。撮影装置は、異なる種類の装置を含む。
【0172】
第5の実施形態においてグローバルモデル51、ローカルモデル52及び配布可能として記憶されたモデルは、画像データが入力された場合に、緑内障の診断を支援するデータ及び精度を出力するように学習されるモデルである。トレーニングデータとして用いられるローカルデータは、入力データとして画像データと、出力データとして眼底写真におけるDisc部分とCup部分とをセグメンテーションした結果の画像データである。出力データはその他、症状がみられるか否かを医師又は技師が判定した判定結果を含むデータセットであってもよい。ローカルデータの入力データである画像データは、撮影装置の種類を示す装置データと対応付けられている。装置データは型番でもよいし、装置メーカを識別するデータであってもよい。
【0173】
第5の実施形態においてモデル学習システム100では、サーバ3が予め特定の医療施設で複数の異なるアーキテクチャで作成された初期的なグローバルモデル(第0次グローバルモデル)51を取得する。サーバ3は、異なるアーキテクチャの第0次グローバルモデル51を、トレーニングに協力する医療施設のノード1へ各配布する。
【0174】
各ノード1は、配布された複数の第0次グローバルモデル51を受信し、異なる第0次グローバルモデル51に基づいてそれぞれ、ローカルデータをトレーニングデータとして学習を進行し、複数の第1次ローカルモデル52を得る。ノード1は、異なるアーキテクチャで学習された第1次ローカルモデル52をサーバ3へ送信する。
【0175】
サーバ3は、各ノード1から取得したローカルモデル52を、異なるアーキテクチャ毎に、加重平均して第1次グローバルモデル51を作成する。作成された第1次グローバルモデル51を、サーバ3は、複数のノード1へ再配布する。
【0176】
サーバ3は、配布した第n次グローバルモデル51から作成される第(n+1)次ローカルモデル52の取得、第(n+1)次ローカルモデル52からの第(n+1)次グローバルモデル51の更新を、異なるアーキテクチャ毎に繰り返す。
【0177】
サーバ3は、異なるアーキテクチャ毎に繰り返して得られたグローバルモデル51を、相互に比較し、精度がより高いアーキテクチャのグローバルモデル51を選択し、配布可能なモデルとしてノード1及び情報処理装置へ提供する。
【0178】
これにより、個人情報そのものである検査結果の画像データが、サーバ3へ集約されることなく、且つ、異なる医療施設に亘って多くのデータを用いて学習することが可能になる。
【0179】
図25は、第5の実施形態のモデル学習システム100における学習処理手順の一例を示すフローチャートである。
【0180】
サーバ3は、特定の医療施設にて、異なるアーキテクチャで作成された初期的な(第0次)グローバルモデル51を取得する(ステップS201)。ステップS201の取得は、予め記憶部31に記憶されているグローバルモデル51の読み出しを含む。
【0181】
サーバ3は、取得した複数の第0次グローバルモデル51を各ノード1へ配布する(ステップS202)。
【0182】
サーバ3は、ノード1へ配布したグローバルモデル51を基に、異なるアーキテクチャ毎に、ノード1で学習されるローカルモデル52を取得する(ステップS203)。
【0183】
サーバ3は、取得したローカルモデル52に対し、異なるアーキテクチャ毎に、統計処理を実行し、次世代のグローバルモデル51に更新する(ステップS204)。ステップS204においてサーバ3は、更新の回数を加算するとよい。
【0184】
サーバ3は、更新したグローバルモデル51に対する性能評価値を、異なるアーキテクチャ毎に、算出する(ステップS205)。サーバ3は、ステップS205において、特定のノード1におけるローカルデータの入力データを異なるアーキテクチャのグローバルモデル51に入力した場合に、対応する出力データに対する精度を評価値として算出してもよい。ステップS205においてサーバ3は、第2の実施形態に示したように、各ノード1に更新後のグローバルモデル51を送信し、各ノード1から評価値を取得し、総評価値を算出してもよい。
【0185】
サーバ3は、算出した性能評価値を、更新回数に対応するラウンド情報、及びアーキテクチャを識別するデータと対応付けて記憶部31に記憶する(ステップS206)。バージョン情報は、更新回数のみならず、日時等であってもよい。サーバ3は、第0次から最初の数ラウンドにおいては、ステップS205、S206の処理を省略してもよい。
【0186】
サーバ3は、学習完了条件を満たすか否かを判断する(ステップS207)。
【0187】
ステップS207についてサーバ3は例えば、更新回数(ラウンド数)が所定回数に到達したか否かで判断する。サーバ3は、特定のノード1におけるローカルデータの入力データを異なるアーキテクチャのグローバルモデル51に入力した場合に、いずれか複数のグローバルモデル51において、対応する出力データを出力する精度が所定の条件を満たすか否かで判断してもよい。学習の終了条件は、第2の実施形態で示したように、各ノード1へ送信したグローバルモデル51に対する評価値から総評価値を算出し、総評価値が所定の基準を満たすことであってもよい。
【0188】
学習完了条件を満たさないと判断された場合(S207:NO)、サーバ3は、更新後の各アーキテクチャのグローバルモデル51を複数のノード1へ再分配し(ステップS208)、処理をステップS203へ戻す。
【0189】
学習完了条件を満たすと判断された場合(S207:YES)、サーバ3は、更新後の各アーキテクチャのグローバルモデル51から、1又は複数、配布可能なグローバルモデル51として選択する(ステップS209)。ステップS209においてサーバ3は、精度が比較的高い1又は複数のグローバルモデル51を選択する。
【0190】
サーバ3は、選択したグローバルモデル51を複数のノード1又は他の情報処理装置へ送信し(ステップS210)、処理を終了する。
【0191】
これにより、各医療施設の画像データに対しての精度が高く、実用性が高いアーキテクチャのモデルを、各医療施設で使用することができる。
【0192】
図26は、第5の実施形態におけるローカルモデル52の学習処理手順の一例を示すフローチャートである。
図26のフローチャートに示す処理は、サーバ3がステップS202又はステップS206でグローバルモデル51を配布した場合に、複数のノード1夫々で実行する処理である。
図26のフローチャートに示す処理手順の内、第1の実施形態の
図6のフローチャートに示した処理手順と共通する手順については同一の符号を付して詳細な説明を省略する。
【0193】
ノード1の処理部10は、配布されたグローバルモデル51を受信及び記憶すると(S301)、アーキテクチャ毎に、S302からS305の処理を実行する。処理部10は、学習後のグローバルモデル51を、ローカルモデル52として、アーキテクチャを識別するデータと対応付けて記憶する(ステップS336)。
【0194】
処理部10は、全てのアーキテクチャについて学習を完了したか否か判断する(ステップS337)。
【0195】
学習が完了していないと判断された場合(S337:NO)、処理部10は処理をステップS302へ戻し、次のアーキテクチャについてステップS302からS336の処理を実行する。
【0196】
全てのアーキテクチャについて学習が完了したと判断された場合(S337:YES)、ノード1の処理部10は、記憶したローカルモデル52を、ローカルデータの特性である装置データと対応付けてサーバ3へ送信する(ステップS338)。そして処理部10はノード1における第n次の学習処理を終了する。
【0197】
これにより、サーバ3は、複数のノード1夫々から、ローカルデータで学習されたローカルモデル52を取得することができる。ローカルデータそのものはサーバ3へ送信されないが、ローカルデータの品質が、サーバ3で区別できるようになる。
【0198】
図27は、第5の実施形態のグローバルモデル51の更新処理の一例を示すフローチャートである。
図27のフローチャートに示す処理手順は、
図25のフローチャートに示した処理手順の内のステップS204の詳細に対応する。
【0199】
サーバ3の処理部30は、ノード1から送信されるアーキテクチャ毎のローカルモデル52、及び装置データを取得する(ステップS431)。処理部30は、取得したアーキテクチャ毎のローカルモデル52及び装置データを対応付けて記憶する(ステップS432)。ステップS432において処理部30は、ノード1の識別コード別にローカルモデル52を記憶してもよい。
【0200】
処理部30は、更新すべきであるか否かを判断する(ステップS433)。ステップS433において処理部30は、グローバルモデル51を配布した配布先のノード1全てからローカルモデル52を取得できた場合に更新すべきであると判断してもよい。ステップS433において処理部30は、予め決定しておいた代表的の複数のノード1からローカルモデル52を取得できた場合に更新すべきであると判断してもよい。
【0201】
更新すべきであると判断された場合(S433:YES)、サーバ3の処理部30は、複数のノード1におけるデータの特性として、データ量及び装置データを出力し(ステップS434)、重みの設定(編集)を受け付ける(ステップS435)。
【0202】
処理部30は、ステップS425で受け付けた重みを用い、各ノード1で学習されたローカルモデル52の加重平均を、アーキテクチャ毎に求める(ステップS436)。処理部30は、ローカルモデル52の加重平均を、アーキテクチャ毎に、新たなグローバルモデル51として更新する(ステップS437)。
【0203】
処理部30は、更新後のグローバルモデル51を、アーキテクチャ毎に、ラウンド情報を示すデータと対応付けて記憶し(ステップS438)、グローバルモデル51の更新処理を終了する。
【0204】
図28は、第5の実施形態における重みの編集画面446を示す。編集画面446は、
図27のフローチャートで示したグローバルモデル51の更新中に、サーバ3のステップS434の処理によってモニタ4の表示部43に表示される。重みの編集画面446は、各ノード1におけるローカルデータのデータ量(データ件数)、及びローカルデータを出力する装置の型番の名前を含む。
図28の例では、モニタ4を操作するオペレータは、各ノード1におけるローカルデータのデータ量、学習に用いられたローカルデータを出力する撮影装置7の型番を参照しながら、加重平均を算出するための重みの調整が可能である。このとき、重みを0(ゼロ)に設定することで特定のノード1を除外して、サーバ3に加重平均を算出させることも可能である。
【0205】
第5の実施形態では、グローバルモデル51の更新(ラウンド)の都度、重み係数を出力し、変更を受け付け可能としたが、1つのバージョン中は1回だけ、編集画面446を表示させるようにしてもよい。同一のバージョンの中で、重み係数を変更しなくてもよい。
【0206】
第5の実施形態における更新方法によって、データの特性が異なるローカルデータによって学習されたモデルを、データの特性に応じて適切に評価することが可能になる。また、異なるデータ特性のローカルモデル52を単純平均するよりも、グローバルモデル51の性能の向上が期待できる。実施の形態5の更新方法は、第2~第4の実施形態と組み合わせることも可能である。
【0207】
データの特性はその他、ローカルデータに対するアノテーションの正確性についての評価を、各ノード1で記憶しておき、サーバ3は、その評価の高低に応じた重みによって加重平均を算出してもよい。アノテーションの正確性についての評価は、モニタ4の管理者によって実行されてもよい。
【0208】
第5の実施形態では、ローカルデータは医療データであるから、ステップS424の加重平均で用いられる重みは、医療データの属性に応じて付与されてもよい。例えば、患者の男女比、年齢分布、又は地域性等に応じた重みが付与されてもよい。これらの抽象化されたデータについてはローカルモデル52に反映されてもよい。
【0209】
また、第5の実施形態における更新方法によって、異なるアーキテクチャのCNNのいずれを用いたグローバルモデル51が最も適切であるかが評価されて実用可能となる。
【0210】
上述のように開示された実施の形態は全ての点で例示であって、制限的なものではない。本発明の範囲は、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれる。
【符号の説明】
【0211】
1 ノード
10 処理部
13 表示部
14 操作部
2 記憶装置
3 サーバ
30 処理部
31 記憶部
3P サーバプログラム
4 モニタ
40 処理部
43 表示部
44 操作部
51 グローバルモデル
52 ローカルモデル