(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022076274
(43)【公開日】2022-05-19
(54)【発明の名称】モデル学習方法、モデル学習システム、サーバ装置、及びコンピュータプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20220512BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2020186617
(22)【出願日】2020-11-09
(71)【出願人】
【識別番号】507228172
【氏名又は名称】株式会社JSOL
(71)【出願人】
【識別番号】518148973
【氏名又は名称】株式会社シンクアウト
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】松崎 健一
(72)【発明者】
【氏名】石川 淳也
(72)【発明者】
【氏名】鈴木 悠哉
(72)【発明者】
【氏名】田淵 仁志
(57)【要約】
【課題】分散学習に基づく学習モデルの実用化を促進するモデル学習方法、モデル学習システム、サーバ装置、及びコンピュータプログラムを提供する。
【解決手段】モデル学習方法は、サーバに記憶するグローバルモデルのデータを複数のノードに対して配布し、前記複数のノードで処理するローカルデータによって前記グローバルモデルを基に学習したローカルモデルのデータを取得し、前記複数のノード夫々から取得した複数のローカルモデルのデータに基づいて、グローバルモデルのデータを更新する処理を含む。
【選択図】
図1
【特許請求の範囲】
【請求項1】
サーバに記憶するグローバルモデルのデータを複数のノードに対して配布し、
前記複数のノードで処理するローカルデータによって前記グローバルモデルを基に学習したローカルモデルのデータを取得し、
前記複数のノード夫々から取得した複数のローカルモデルのデータに基づいて、グローバルモデルのデータを更新する
処理を含むモデル学習方法。
【請求項2】
更新後のグローバルモデルのデータを前記複数のノードへ再分配する
処理を含む請求項1に記載のモデル学習方法。
【請求項3】
前記サーバは、前記複数のノードから取得したローカルモデルのデータを統計処理して前記グローバルモデルのデータを更新する
請求項1又は2に記載のモデル学習方法。
【請求項4】
前記グローバルモデルのデータの更新の都度、前記複数のノード夫々のローカルデータで前記グローバルモデルの精度の評価値を各算出させ、
前記複数のノードで算出された異なる評価値に基づいて前記グローバルモデルの総評価値を算出し、
算出された総評価値と対応付けて前記グローバルモデルのデータを記憶する
処理を含む請求項1から請求項3のいずれか1項に記載のモデル学習方法。
【請求項5】
前記総評価値に基づいて学習が所定の基準を満たすまで前記グローバルモデルのデータの更新を継続し、
前記所定の基準を満たした学習結果に対応するグローバルモデルのデータの前記複数のノード及び他の装置への提供を許可する
処理を含む請求項4に記載のモデル学習方法。
【請求項6】
前記グローバルモデルのデータの更新の都度、
更新後のグローバルモデルに対して算出された総評価値を記憶し、
総評価に基づいて再分配するグローバルモデルを決定する
処理を含む請求項4又は5に記載のモデル学習方法。
【請求項7】
更新後のグローバルモデルに対して算出された総評価値と、前回の更新後のグローバルモデルに対する総評価値とを比較し、
比較の結果、評価がより高いグローバルモデルを、再分配するグローバルモデルとして決定する
処理を含む請求項6に記載のモデル学習方法。
【請求項8】
前記複数のノードは、ローカルモデルの学習に用いたローカルデータのデータ量、又はローカルモデルの学習量を逐次記憶し、
前記サーバは、前記複数のノードから集約したローカルモデルのデータ夫々に、前記データ量又は学習量に対応する重みを付与して前記グローバルモデルのデータの更新に使用する
処理を含む請求項1から請求項7のいずれか1項に記載のモデル学習方法。
【請求項9】
前記複数のノードは、ローカルデータの特性を記憶しており、
前記サーバは、前記複数のノードから集約したローカルモデルのデータ夫々に、各ノードのローカルデータの特性に対応する重みを付与して前記グローバルモデルのデータの更新に使用する
処理を含む請求項1から請求項7のいずれか1項に記載のモデル学習方法。
【請求項10】
前記ローカルデータの特性は、各ノードによるローカルデータの取得方法、前記ローカルデータを出力する機器の仕様、又は、前記ローカルデータの精度評価である
請求項9に記載のモデル学習方法。
【請求項11】
前記複数のノードに、前記サーバで更新された後のグローバルモデルに対して、ローカルデータに基づき評価値を算出させる都度に前記評価値及び前記グローバルモデルのデータを記憶し、
最も評価値が高い更新後のグローバルモデルを選択する
請求項4に記載のモデル学習方法。
【請求項12】
ローカルデータを各々処理する複数のノードと、該複数のノードから通信接続されるサーバとを含み、
前記サーバは、前記複数のノードへグローバルモデルのデータを配布し、
前記複数のノードは夫々、処理対象のローカルデータによって前記グローバルモデルからローカルモデルの学習を各々進め、
前記サーバは、
学習後のローカルモデルのデータを前記複数のノードから取得し、
取得した複数のローカルモデルのデータに基づいてグローバルモデルのデータを更新する
モデル学習システム。
【請求項13】
複数のノードと通信接続する通信部と、
記憶するグローバルモデルのデータに対する処理部と
を備え、
前記処理部により、
前記グローバルモデルのデータを複数のノードに対して配布し、
前記複数のノードで処理するローカルデータによって前記グローバルモデルのデータを基に学習したローカルモデルのデータを前記通信部から取得し、
前記複数のノード夫々から取得した複数のローカルモデルのデータに基づいて、グローバルモデルのデータを更新する
サーバ装置。
【請求項14】
複数のノードに通信接続が可能なコンピュータに、
記憶するグローバルモデルのデータを前記複数のノードに対して配布し、
前記複数のノードで処理するローカルデータによって前記グローバルモデルを基に学習したローカルモデルのデータを取得し、
前記複数のノード夫々から取得した複数のローカルモデルのデータに基づいて、グローバルモデルのデータを更新する
処理を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分散学習の実用化のためのモデル学習方法、モデル学習システム、サーバ装置、及びコンピュータプログラムに関する。
【背景技術】
【0002】
深層学習に基づく学習モデルを用いた判定、認識等が実用化されている。学習モデルは多様な技術分野で活用できることが確認されている。学習モデルの精度を各種分野で実用化できる程度に向上するために膨大なトレーニングデータを用いたとしてもパラメータの収束に長時間を要し、精度が良くなるとも限らない。
【0003】
特許文献1には、学習対象の学習モデルのレプリカを複数用意し、それらの複数のモデルレプリカが、非同期で独自に学習する方法が開示されている。特許文献1では、パラメータサーバが複数に断片化されており、学習モデルの複数のレプリカが夫々、非同期で、断片化されたパラメータサーバからパラメータを取得して学習し、パラメータを各パラメータサーバへ返すことを繰り返す。このような分散処理により、学習モデルのパラメータが早期に収束するとされている。
【先行技術文献】
【特許文献】
【0004】
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に開示されているような分散処理による深層学習の方法であっても、トレーニングデータは集約している。しかしながら、医療、金融、認証といった分野のデータは個人データであって機密性が高い。モデルの精度を高めるためにトレーニングデータとしてデータを集約するためには、データの提供に各個人の同意が必要である上、同意が得られたとしてもデータ管理の安全性に対するリスクが常につきまとう。
【0006】
本発明は、斯かる事情に鑑みてなされたものであり、分散学習に基づく学習モデルの実用化を促進するモデル学習方法、モデル学習システム、サーバ装置、及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本開示の一実施形態のモデル学習方法は、サーバに記憶するグローバルモデルのデータを複数のノードに対して配布し、前記複数のノードで処理するローカルデータによって前記グローバルモデルを基に学習したローカルモデルのデータを取得し、前記複数のノード夫々から取得した複数のローカルモデルのデータに基づいて、グローバルモデルのデータを更新する処理を含む。
【0008】
本開示の一実施形態のモデル学習システムは、ローカルデータを各々処理する複数のノードと、該複数のノードから通信接続されるサーバとを含み、前記サーバは、前記複数のノードへグローバルモデルのデータを配布し、前記複数のノードは夫々、処理対象のローカルデータによって前記グローバルモデルからローカルモデルの学習を各々進め、前記サーバは、学習後のローカルモデルのデータを前記複数のノードから取得し、取得した複数のローカルモデルのデータに基づいてグローバルモデルのデータを更新する。
【0009】
本開示の一実施形態のサーバ装置は、複数のノードと通信接続する通信部と、記憶するグローバルモデルのデータに対する処理部とを備え、前記処理部により、前記グローバルモデルのデータを複数のノードに対して配布し、前記複数のノードで処理するローカルデータによって前記グローバルモデルのデータを基に学習したローカルモデルのデータを前記通信部から取得し、前記複数のノード夫々から取得した複数のローカルモデルのデータに基づいて、グローバルモデルのデータを更新する。
【0010】
本開示の一実施形態のコンピュータプログラムは、複数のノードに通信接続が可能なコンピュータに、記憶するグローバルモデルのデータを前記複数のノードに対して配布し、前記複数のノードで処理するローカルデータによって前記グローバルモデルを基に学習したローカルモデルのデータを取得し、前記複数のノード夫々から取得した複数のローカルモデルのデータに基づいて、グローバルモデルのデータを更新する処理を実行させる。
【0011】
本開示のモデル学習方法、モデル学習システム、サーバ装置、及びコンピュータプログラムでは、配布されたグローバルモデルのデータに対し、複数のノードがアクセス可能なローカルデータで学習を実行し、ローカルモデルを作成し、そのデータをサーバへ送信する。サーバにローカルデータを集約せずとも、複数のノード夫々でアクセス可能なローカルデータを用いた学習が可能となる。
【0012】
本開示の一実施形態のモデル学習方法では、更新後のグローバルモデルのデータを前記複数のノードへ再分配してもよい。
【0013】
更新後のグローバルモデルを、ローカルデータで再学習し、更にこれを集約することでグローバルモデルの精度を向上させることが期待できる。
【0014】
本開示の一実施形態のモデル学習方法では、前記サーバは、前記複数のノードから取得したローカルモデルのデータを統計処理して前記グローバルモデルのデータを更新する。
【0015】
グローバルモデルは、ローカルモデルの平均、加重平均等の統計処理によって求めることができる。各ノードがアクセス可能なローカルデータはデータ量が少量であっても、複数のノードからのローカルモデルを統計処理することによって、各ローカルデータによる学習が反映されたグローバルモデルが作成される。
【0016】
本開示の一実施形態のモデル学習方法は、前記グローバルモデルのデータの更新の都度、前記複数のノード夫々のローカルデータで前記グローバルモデルの精度の評価値を各算出させ、前記複数のノードで算出された異なる評価値に基づいて前記グローバルモデルの総評価値を算出し、算出された総評価値と対応付けて前記グローバルモデルのデータを記憶する処理を含んでもよい。
【0017】
総評価値は、各ノードでのローカルデータを用いた精度に基づいて算出される。総評価値は、精度の平均でもよいし、ローカルデータのデータ量に基づく加重平均であってもよい。
【0018】
本開示の一実施形態のモデル学習方法は、前記総評価値に基づいて学習が所定の基準を満たすまで前記グローバルモデルのデータの更新を継続し、前記所定の基準を満たした学習結果に対応するグローバルモデルのデータの前記複数のノード及び他の装置への提供を許可する処理を含んでもよい。
【0019】
総評価値に基づいて学習が所定の基準を満たしてノード以外の他の装置への配布が可能と判断される程度まで学習が完了した段階で、学習に協力したノードのみならず他の装置への提供がされる。複数のノードのローカルデータに基づく集合知的な学習モデルを広く利用することが可能になる。所定の基準とは、総評価値に基づき学習の精度が向上しなくなること、総評価値が所定値以上となること等として設定されてよい。
【0020】
本開示の一実施形態のモデル学習方法は、前記グローバルモデルのデータの更新の都度、更新後のグローバルモデルに対して算出された総評価値を記憶し、総評価に基づいて再分配するグローバルモデルを決定する処理を含んでもよい。
【0021】
グローバルモデルのデータの配布、ローカルモデルの学習、学習されたローカルモデルのデータに基づくグローバルモデルのデータの更新の繰り返しの中では、1つ前の更新におけるグローバルモデルの方が、評価が高いことがあり得る。ローカルデータが逐次追記されていく環境では、繰り返しの中で時折、過去のグローバルモデルを基に再度学習を進めることで、精度を向上させることが期待できる。
【0022】
本開示の一実施形態のモデル学習方法は、更新後のグローバルモデルに対して算出された総評価値と、前回の更新後のグローバルモデルに対する総評価値とを比較し、比較の結果、評価がより高いグローバルモデルを、再分配するグローバルモデルとして決定する処理を含んでもよい。
【0023】
過去のグローバルモデルを選択する場合は、総評価値を基準として選択するとよい。
【0024】
本開示の一実施形態のモデル学習方法では、前記複数のノードは、ローカルモデルの学習に用いたローカルデータのデータ量、又はローカルモデルの学習量を逐次記憶し、前記サーバは、前記複数のノードから集約したローカルモデルのデータ夫々に、前記データ量又は学習量に対応する重みを付与して前記グローバルモデルのデータの更新に使用する処理を含んでもよい。
【0025】
本開示の一実施形態のモデル学習方法では、前記複数のノードは、ローカルデータの特性を記憶しており、前記サーバは、前記複数のノードから集約したローカルモデルのデータ夫々に、各ノードのローカルデータの特性に対応する重みを付与して前記グローバルモデルのデータの更新に使用する処理を含んでもよい。
【0026】
本開示の一実施形態のモデル学習方法では、前記ローカルデータの特性は、各ノードによるローカルデータの取得方法、前記ローカルデータを出力する機器の仕様、又は、前記ローカルデータの精度評価であってもよい。
【0027】
ローカルモデルに基づくグローバルモデルのデータは、各ローカルモデルの基になったデータ量、又は、ローカルモデルにおける学習量に応じて、加重平均で算出される。グローバルモデルは、ローカルデータの特性に応じて加重平均で算出されてもよい。ローカルデータの規模又は品質は、各所で多様であり、それらを均等に統計処理するよりも、精度の向上が期待できる。ローカルモデルは、ローカルデータを取得するための方法、ローカルデータを出力する機器の仕様、ローカルデータをトレーニングデータとして使用する場合のアノテーション精度等に影響される。これらの影響に対応する重みで加重平均することによって、グローバルモデルのデータの更新が適切に行なわれることが期待できる。
【0028】
本開示の一実施形態のモデル学習方法では、前記複数のノードに、前記サーバで更新された後のグローバルモデルに対して、ローカルデータに基づき評価値を算出させる都度に前記評価値及び前記グローバルモデルのデータを記憶し、最も評価値が高い更新後のグローバルモデルを選択してもよい。
【0029】
前回の更新のみならず、過去のグローバルモデルから最も評価値が高いグローバルモデルを選択してもよい。過去のグローバルモデルを基に再度学習を進めることで、精度を向上させることが期待できる。
【発明の効果】
【0030】
本開示のモデル学習方法によれば、学習用にデータを集約せずとも、その多数のデータに基づくモデル学習が可能になる。本開示のモデル学習方法は、データの機密性が高い場合でも、モデル学習を実用的にすることができる。
【図面の簡単な説明】
【0031】
【
図1】第1の実施形態のモデル学習システムの概要図である。
【
図4】モデル学習システムにおける学習処理手順の一例を示すフローチャートである。
【
図5】配布されたグローバルモデルに基づくローカルモデルの学習処理手順の一例を示すフローチャートである。
【
図6】サーバにおけるグローバルモデルの更新処理の一例を示すフローチャートである。
【
図8】第2の実施形態のモデル学習システムにおける学習処理手順の一例を示すフローチャートである。
【
図9】第3の実施形態のモデル学習システムにおける学習処理手順の一例を示すフローチャートである。
【
図10】第3の実施形態のモデル学習システムにおける学習処理手順の一例を示すフローチャートである。
【
図11】第3の実施形態におけるモデル学習の概要図である。
【
図12】第4の実施形態のノードにおけるローカルモデルの学習処理手順の一例を示すフローチャートである。
【
図13】第4の実施形態のサーバにおけるグローバルモデルの更新処理の一例を示すフローチャートである。
【
図14】第5の実施形態のモデル学習システムの概要図である。
【
図15】第5の実施形態のモデル学習システムにおける学習処理手順の一例を示すフローチャートである。
【
図16】第5の実施形態におけるローカルモデルの学習処理手順の一例を示すフローチャートである。
【
図17】第5の実施形態のサーバにおけるグローバルモデルの更新処理の一例を示すフローチャートである。
【発明を実施するための形態】
【0032】
本開示をその実施の形態を示す図面を参照して具体的に説明する。
【0033】
(第1の実施形態)
図1は、第1の実施形態のモデル学習システム100の概要図である。モデル学習システム100は、データを記憶する記憶装置2に対して1又は複数設けられたノード1と、サーバ3と、ノード1及びサーバ3間を通信接続する通信網Nとを含む。
【0034】
記憶装置2は、物理量を測定するセンサ、画像を撮影するカメラ等、学習対象のデータを入出力する機器との間でデータの入出力が可能であり、それらのデータを蓄積する。記憶装置2は、操作によって入力されるデータに応じて出力する特定用途の計算機に接続されてもよい。記憶装置2は、ユーザが用いる情報端末の記憶装置であってもよい。記憶装置2は、クライアント装置からデータを収集するサーバ装置に使用される記憶装置であってもよい。
【0035】
ノード1は、記憶装置2が記憶しているデータと同種のデータが入力された場合に、データに基づいて認識結果、判定結果、又は新たなデータを出力するように、モデルの深層学習を実行する。サーバ3は、ノード1に対してモデルを提供するコンピュータであると共に、ノード1と協働してモデルを学習するモデル学習システム100を実現する。記憶装置2が記憶しているデータ(以下、ローカルデータという)をトレーニングデータとしてモデルの学習を実行するには、これらにアクセスできる必要がある。本実施の形態のモデル学習システム100は、サーバ3からのローカルデータへのアクセスを不可とした状態で、学習を進行させることができる。
【0036】
サーバ3は、初期的に、第0次グローバルモデル51を得る。サーバ3は、第0次グローバルモデル51を、通信網Nを介してノード1へ配布する。サーバ3からノード1へ配布されるグローバルモデルモデル51の実体(データ)は、学習済みのパラメータのみ、又は、学習済みのパラメータとプログラムとの両方である。グローバルモデル51は、モデルの構成を定義する定義データ(ネットワーク定義、損失や予め設定されるハイパーパラメータを含む)と、学習対象の重み係数等のパラメータとであってもよい。
【0037】
学習対象のモデルは、深層学習と呼ばれる学習の対象であればアーキテクチャは問わない。深層学習のモデルの種類は、入力データ及び出力データの内容に応じて適切に選択されるべきである。以下説明する学習対象のモデルは、畳み込み層を含むCNN(Convolutional Neural Network)を用いた分類系、検出系、又は生成系等のいずれでもよいし、時系列要素を加味して学習するRNN(Recurrent Neural Network)であってもよい。
【0038】
通信網Nは、所謂インターネットである公衆通信網、キャリアネットワークを含む。通信網Nは、モデル学習システム100用の専用回線であってもよい。
【0039】
ノード1は、記憶装置2との間のローカルネットワークLNに基づいて、記憶装置2に蓄積されたローカルデータにアクセス可能である。ノード1は、アクセス可能なローカルデータを用いて深層学習を実行する。ローカルデータに対しては既に、ノード1が設置されている場所のオペレータによってアノテーションが実施済であるとよい。ノード1は、サーバ3から配布される第0次グローバルモデル51を取得する。ノード1は、第0次グローバルモデル51を基に、ローカルデータをトレーニングデータとして学習を進行し、第1次ローカルモデル52を得る。
【0040】
ノード1は、第1次ローカルモデル52を、サーバ3へ送信する。ローカルデータはサーバ3へ送信されないから、ローカルデータの抽象化、匿名化等の処理は不要である。
【0041】
サーバ3は、複数のノード1夫々から第1次ローカルモデル52を複数受信し、受信した複数の第1次ローカルモデル52に対して統計処理を実行して第1次グローバルモデル51を作成する。サーバ3は、第1次グローバルモデル51を、複数のノード1へ再配布する。再配布されるグローバルモデル51は、重み係数のみであってもよい。再配布される重み係数は学習対象であってもよいし、全体であってもよい。再配布するグローバルモデル51は、前回の更新からの差分に対応するものであってもよい。
【0042】
モデル学習システム100は、サーバ3からノード1への第n次グローバルモデル51の配布、第n次グローバルモデル51のノード1におけるローカルデータを用いた学習、学習によって得られる第(n+1)次ローカルモデル52のサーバ3への送信、サーバ3での第(n+1)次ローカルモデル52の収集及び第(n+1)次グローバルモデル51の作成(更新)を繰り返す。「n」は予め上限を設定してもよいし、更新の途上でサーバ3のオペレータによって更新を手動で停止させるようにしてもよい。オペレータからのサーバ3に対する操作指示は、サーバ3と同一のローカルなネットワーク内のみから可能であってもよいし(オンプレミス型)、通信網N経由で例えばノード1から可能であってもよい(クラウド型)。
【0043】
これにより、サーバ3からローカルデータへのアクセスを許可することなく、分散学習が可能になる。
【0044】
分散学習によってノード1以外へも配布可能な精度までに学習されたグローバルモデル51は、各ノード1に加え、ローカルモデル52の作成に参加しない情報処理装置4へも配布され、使用される。
【0045】
このような学習方法を実現するためのモデル学習システム100の構成について詳細に説明する。
【0046】
図2は、ノード1の構成を示すブロック図である。ノード1は、パーソナルコンピュータ又はサーバコンピュータである。ノード1は、処理部10、記憶部11、通信部12、表示部13及び操作部14を備える。
【0047】
処理部10は、CPU(Central Processing Unit )及び/又はGPU(Graphics Processing Unit)を用いたプロセッサである。処理部10は、記憶部11に記憶されているノードプログラム1Pに基づき、記憶装置2からのデータの読み出し、サーバ3との間でのモデルの送受信、及びモデル学習を含む処理を実行する。
【0048】
記憶部11は、例えばハードディスク、フラッシュメモリ、SSD(Solid State Drive)等の不揮発性メモリを用いる。記憶部11は、処理部10が参照するデータを記憶する。記憶部11は、ノードプログラム1Pを記憶する。記憶部11は、深層学習用のライブラリ1Lを記憶する。ノードプログラム1P及び/又は深層学習用のライブラリ1Lは、記録媒体8に記憶してあるノードプログラム8P及び/又は深層学習用のライブラリ8Lを処理部10が読み出して記憶部11に複製したものであってもよい。記憶部11は、サーバ3から取得するグローバルモデル51、及び、ローカルデータによって学習されるローカルモデル52夫々を記憶する。
【0049】
通信部12は、通信網Nを介したデータ通信、及び、ローカルネットワークLNを介した記憶装置2との通信を各々実現する。通信部12は具体的には、例えばネットワークカードである。処理部10は、通信部12によって記憶装置2からデータを読み出し、サーバ3との間でデータを送受信する。
【0050】
表示部13は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等のディスプレイである。表示部13は、記憶部11に記憶されているデータに基づく情報、又はサーバ3から提供されるデータを含む画面を表示する。表示部13は、タッチパネル内蔵型ディスプレイであってもよい。
【0051】
操作部14は、処理部10との間で入出力が可能なキーボード及びポインティングデバイス等のユーザインタフェースである。操作部14は、音声入力部であってもよい。操作部14は、表示部13のタッチパネルであってもよい。操作部14は、物理ボタンであってもよい。操作部14は、ノード1のオペレータによる操作データを処理部10へ通知する。
【0052】
図3は、サーバ3の構成を示すブロック図である。サーバ3は、サーバコンピュータである。サーバ3は、処理部30、記憶部31及び通信部32を備える。サーバ3は、以下の説明においては1台のサーバコンピュータによって構成されるものとして説明するが、複数台のサーバコンピュータをネットワークで通信接続して分散処理させる態様であってもよい。サーバ3は、通信網Nを介して各ノード1から通信接続が可能なクラウド型であってもよいし、仮想的なプライベートネットワークを介して各ノード1と通信接続するオンプレミス型であってもよい。
【0053】
処理部30は、CPU及び/又はGPUを用いたプロセッサである。処理部30は、記憶部31に記憶されているサーバ用プログラム3Pに基づき、グローバルモデル51の学習処理を実行する。
【0054】
記憶部31は、例えばハードディスク、SSD等の不揮発性メモリを用いる。記憶部31は、処理部30が参照するデータを記憶する。記憶部31は、サーバ用プログラム3Pを記憶する。記憶部31は、学習対象のグローバルモデル51、複数のノード1から送信されるローカルモデル52を記憶する。サーバ用プログラム3Pは、記録媒体9に記憶してあるサーバ用プログラム9Pを処理部30が読み出して記憶部31に複製したものであってもよい。
【0055】
通信部32は、通信網Nを介したデータ通信を実現する。通信部32は具体的には、例えばネットワークカードである。処理部30は、通信部32によって複数のノード1との間でデータを送受信する。
【0056】
このように構成されるモデル学習システム100における学習処理手順について説明する。
図4は、モデル学習システム100における学習処理手順の一例を示すフローチャートである。
【0057】
サーバ3は、予め用意された初期的な(第0次)グローバルモデル51を取得する(ステップS1)。初期的なグローバルモデル51は、特定のノード1で第0次モデルとして作成されたモデルであってもよいし、ノード1ではなく特定の場所で学習されたモデルであってもよく、予め記憶部31に記憶してあるとよい。ステップS1の取得は、予め記憶部31に記憶されているグローバルモデル51の読み出しを含む。
【0058】
サーバ3は、取得した第0次グローバルモデル51をノード1へ配布する(ステップS2)。
【0059】
サーバ3は、ノード1へ配布したグローバルモデル51を基に、ノード1で学習されるローカルモデル52を取得する(ステップS3)。
【0060】
サーバ3は、取得したローカルモデル52に対して統計処理を実行し、次世代のグローバルモデル51に更新する(ステップS4)。ステップS4においてサーバ3は、更新(ラウンド)の回数を加算するとよい。
【0061】
サーバ3は、更新したグローバルモデル51が学習完了条件を満たすか否か判断する(ステップS5)。
【0062】
ステップS5についてサーバ3は例えば、学習回数が所定回数に到達したか否かで判断する。サーバ3は、特定のノード1又は特定の場所におけるトレーニングデータの入力データをグローバルモデル51に入力した場合に、対応する出力データを出力する精度が所定の条件(所定値以上、向上が見られない等)を満たすか否かで判断してもよい。またサーバ3は、後述する方法によって学習完了条件を満たすか否かを判断してもよい。ステップS5においてサーバ3は、オペレータの操作によって学習回数が所定回数に到達していなくとも学習停止が指示されたか否かを判断し、指示された場合にはステップS5において条件を満たすと判断してもよい。
【0063】
学習完了条件を満たさないと判断された場合(S5:NO)、サーバ3は、更新後のグローバルモデル51を複数のノード1へ再分配し(ステップS6)、処理をステップS3へ戻す。
【0064】
ステップS6においてサーバ3は、グローバルモデル51をそのまま再配布するのではなく、重み係数等のパラメータのみを再配布してもよい。
【0065】
ステップS6においてサーバ3は、何回目の更新後のグローバルモデル51であるのか、即ち第n次グローバルモデル51の「n」を示すデータを共に送信するとよい。ステップS6においてサーバ3は、後述するように学習のラウンド情報を得られる場合にはそのラウンド情報を、グローバルモデル51に対応付けて送信するとよい。ラウンド情報は、学習完了条件を満たすと判断されるまでに、ノード1への分配及び統計処理の実行した回数を示す情報である。サーバ3は、グローバルモデル51の種類、例えばどのようなアーキテクチャの深層学習がされたのか、を示すデータを共にノード1へ送信してもよい。
【0066】
学習完了条件を満たすと判断された場合(S5:YES)、サーバ3は、更新後のグローバルモデル51を、ノード1以外の装置へも配布可能なグローバルモデル51として記憶する(ステップS7)。
【0067】
サーバ3は、記憶したグローバルモデル51を複数のノード1又は他の情報処理装置へ送信し(ステップS8)、処理を終了する。他の情報処理装置とは、ノード1同様に、学習対象と同種のデータを用いるが、ローカルデータをトレーニング用に提供しない装置である。
【0068】
サーバ3は、
図4のフローチャートに示した処理手順を、複数、例えば月に一度といった周期で実行してもよい。その都度、グローバルモデルのバージョンが上昇し、より実用的なモデルとなる。
【0069】
図5は、配布されたグローバルモデル51に基づくローカルモデル52の学習処理手順の一例を示すフローチャートである。
図5のフローチャートに示す処理は、サーバ3がステップS2又はステップS6でグローバルモデル51を配布した場合に、複数のノード1夫々で実行する処理である。
【0070】
ノード1の処理部10は、配布されたグローバルモデル51を受信し、記憶部11に記憶する(ステップS301)。
【0071】
ノード1の処理部10は、記憶したグローバルモデル51をインスタンスとしてロードする(ステップS302)。処理部10は、記憶装置2に記憶してあるローカルデータをトレーニングデータとして取得し(ステップS303)、これをグローバルモデル51に与えて学習を実行する(ステップS304)。
【0072】
ステップS304において処理部10は、ロードしたグローバルモデル51に対してローカルデータに含まれる入力データを入力する。処理部10は、出力されたデータと、ローカルデータに含まれる前記入力データに対応する結果データとに対する損失関数を算出する。処理部は、出力されたデータと、ローカルデータに含まれる前記入力データに対応する結果データとの合致率、合致しているか否かの正誤によって学習を進めてもよい。処理部10は、算出した損失関数に基づいて配布されたグローバルモデル51における重み係数を含むパラメータを学習する。
【0073】
ノード1の処理部10は、学習完了条件を満たすか否かを判断する(ステップS305)。ステップS305において処理部10は、学習回数が所定回数(1回以上)を満たすことを学習完了条件としてよい。処理部10は、学習後のグローバルモデル51の出力精度が記憶してある所定値以上である場合に、学習完了条件を満たすと判断してもよい。処理部10は、精度の変化が所定範囲内に収まり、収束していると判断できる場合に学習完了条件を満たすと判断してもよい。
【0074】
学習完了条件を満たさないと判断された場合(S305:NO)、処理部10は処理をステップS304へ戻す。これにより、学習が続行される。
【0075】
学習完了条件を満たすと判断された場合(S305:YES)、処理部10は学習を終了し、パラメータが更新されたグローバルモデル51を、ローカルモデル52として記憶する(ステップS306)。
【0076】
ノード1の処理部10は、記憶したローカルモデル52を、サーバ3へ送信し(ステップS307)、処理を終了する。これにより、サーバ3は、複数のノード1夫々から、ローカルデータで学習されたローカルモデル52を取得することができる。
【0077】
ステップS307において処理部10は、第n次のローカルモデル52なのか、又は元となるグローバルモデル51が第n次なのかの「n」を示すデータを共に送信するとよい。ステップS307においてノード1は、後述するように1回の学習完了までのラウンド情報を得られる場合にはそのラウンド情報を、ローカルモデル52に対応付けて送信してもよい。
【0078】
図5のフローチャートに示した処理によってノード1からは、ローカルデータがサーバ3へ送信されることがない点が、着目されるべきである。ローカルデータの匿名化も実行されない。ノード1から送信されるデータは、モデルそのものである。ローカルデータの特性は反映されているが、データの送信はされない。
【0079】
図6は、サーバ3におけるグローバルモデル51の更新処理の一例を示すフローチャートである。
図6のフローチャートに示す処理手順は、
図4のフローチャートに示す処理手順の内のステップS4の詳細に対応する。
【0080】
サーバ3の処理部30は、ノード1から送信されるローカルモデル52を取得し(ステップS401)、ノード1の識別データと対応付けてローカルモデル52を記憶する(ステップS402)。ステップS401においてサーバ3の処理部30は、非同期に各ノード1から送信されるローカルモデル52を取得する。
【0081】
処理部30は、取得したローカルモデル52でグローバルモデル51を更新すべきか否かを判断する(ステップS403)。ステップS403において処理部30は、グローバルモデル51を配布した配布先のノード1全てからローカルモデル52を取得できた場合に更新すべきであると判断してもよい。ステップS403において処理部30は、予め決定しておいた代表的の複数のノード1からローカルモデル52を取得できた場合に更新すべきであると判断してもよい。
【0082】
更新すべきでないと判断された場合(S403:NO)、サーバ3の処理部30は処理をステップS401へ戻す。更新すべきであると判断されるまで、各ノード1から送信されるローカルモデル52を取得し、集約する。
【0083】
更新すべきであると判断された場合(S403:YES)、サーバ3の処理部30は、複数のノード1からのローカルモデル52の平均を求める(ステップS404)。処理部30は、平均を新たなグローバルモデル51として更新する(ステップS405)。
【0084】
処理部30は、更新後のグローバルモデル51を、ラウンド数(第n次)を示すデータと対応付けて記憶し(ステップS406)、グローバルモデル51の更新処理を終了する。これにより、第n-1次グローバルモデル51は、第n次グローバルモデル51に更新される。
【0085】
更新が完了したグローバルモデル51は、各ノード1及び情報処理装置4から利用可能になる。
図7は、ノード1で表示される画面例を示す。
図7の更新結果画面431は、サーバ3から提供されるWebページに基づいてノード1の表示部13に表示される。更新結果画面431には、配布可能なモデルとして記憶されたグローバルモデル51の一覧が表示されている。更新結果画面431は、ノード1へサーバ3から自動的に配布された最新のグローバルモデル51のモデル名及び更新日時を示す。
【0086】
サーバ3で更新が完了したグローバルモデル51は、各ノード1及び情報処理装置4から、選択的に利用されてもよい。更新結果画面431は、グローバルモデル51を識別するモデル名を表すテキストに、ダウンロードへのリンクを含んで選択可能にしてもよい。各々のグローバルモデル51を識別するテキストにダウンロードのアイコン等のインタフェースが含まれていてもよい。更新結果画面431に対し、ノード1又は情報処理装置4のオペレータが、モデルのいずれかを選択することによって初めて、選択されたモデルがノード1に記憶されるようにしてもよい。この場合、配布可能なモデルとして提供されるグローバルモデル51がノード1又は情報処理装置4でダウンロードされ、利用可能となる。なおこの場合、各モデルには、オペレータが選択するか否かを判断する基準となる評価や精度の情報が表示されていることが好ましい。
【0087】
上述したように第1の実施形態のモデル学習システム100では、ローカルデータはサーバ3へ送信されることなしに、各所に記憶されているローカルデータを用いた学習結果に基づいてグローバルモデル51が実用化される。各所のローカルデータのみでは、データ量が不足するような場合であっても、1箇所に集約させた大量のデータによる学習よりも精度よく、且つ早期に実用可能なモデルを提供することが可能になる。
【0088】
(第2の実施形態)
第2の実施形態におけるモデル学習システム100は、学習完了条件を満たすための判断処理が、第1の実施形態と異なる。第2の実施形態におけるモデル学習システム100の構成は、上述の判断処理の詳細を除いて第1の実施形態のモデル学習システム100と同様の構成であるから、共通する構成については同一の符号を付して詳細な説明を省略する。
【0089】
図8は、第2の実施形態のモデル学習システム100における学習処理手順の一例を示すフローチャートである。
図8のフローチャートに示す処理手順の内、
図4のフローチャートに示した処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
【0090】
ステップS4でグローバルモデル51を更新すると(S4)、サーバ3の処理部30は、更新後のグローバルモデル51を、複数のノード1へ送信する(ステップS501)。
【0091】
更新後のグローバルモデル51を受信した複数のノード1は夫々、送信されたグローバルモデル51を用いて、記憶装置2からローカルデータを読み出し、入力データに対する精度評価を実行する。ノード1の処理部10は、ローカルデータの入力データを入力した場合の精度を算出し、サーバ3へ送信する。処理部10は、精度として、ローカルデータにおける入力データをグローバルモデル51に入力した場合の出力データと、ローカルデータにおいて入力データに対応する出力データとの合致率を算出してもよい。処理部10は、ノード1のオペレータから操作部14を介して精度評価を受け付けてもよい。
【0092】
サーバ3の処理部30は、各ノード1から送信される評価値を取得し(ステップS502)、複数のノード1から取得した評価値から総評価値を算出する(ステップS503)。ステップS503において処理部30は、精度の平均値を算出してもよいし、合致率の平均でもよいし、オペレータから受けた評価の平均を求めてもよい。
【0093】
処理部30は、算出した総評価値が所定の基準を満たすか否かを判断し(ステップS504)、所定の基準を満たすと判断された場合(S504:YES)、処理をステップS7へ進める。ステップS504において処理部30は、グローバルモデル51の更新を停止するか否かを判断してもよい。
【0094】
所定の基準を満たさないと判断された場合(S504:NO)、処理部30は処理をステップS6へ進める。
【0095】
ステップS504において所定の基準とは例えば、評価値が精度であって、評価値がその平均の場合、その値に対する閾値であることである。その他、所定の条件は、評価がA,B,C評価である場合にはB以上であることであってもよいし、評価に対する良/可/不可等の条件であってもよい。また所定の条件は、精度が安定することであってもよい。評価値の変化が学習の進行に応じて小さくなった場合に、所定の条件を満たすとしてもよい。
【0096】
評価をノード1におけるローカルデータを用いた有用性に基づいて導出し、各ノード1で精度が認められる場合に配布可能なモデルとして提供することができる。
【0097】
(第3の実施形態)
第3の実施形態では、サーバ3が、過去の更新後のグローバルモデル51と比較して、分配するグローバルモデル51を決定する。第3の実施形態のモデル学習システム100の構成は、第1の実施形態のモデル学習システム100の構成と同様であるから、共通する構成については同一の符号を付して詳細な説明を省略する。
【0098】
図9及び
図10は、第3の実施形態のモデル学習システム100における学習処理手順の一例を示すフローチャートである。
図9及び
図10のフローチャートに示す処理手順の内、第2の実施形態の
図8のフローチャートに示した処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
【0099】
サーバ3は、ステップS4で更新した後のグローバルモデル51と、更新前のグローバルモデル51とを各ノード1へ送信する(ステップS511)。
【0100】
サーバ3は、送信先の複数のノード1から、各々のグローバルモデル51の評価値を取得し(ステップS512)、総評価値を算出する(ステップS513)。サーバ3は、ラウンド情報と対応付けて、更新後のグローバルモデル51、及び総評価値を、記憶部31に記憶する(ステップS514)。ラウンド情報は、1回の学習(バージョン)が完了するまでの間に何度目に更新されたグローバルモデル51であるかを示すデータであり、第n次の「n」の情報である。
【0101】
サーバ3は、ステップS513で算出した、更新後のグローバルモデル51に対して算出した総評価値と、更新前のグローバルモデル51に対する総評価値とを比較する(ステップS515)。
【0102】
ステップS515においてサーバ3は、総評価値が数値である場合には値同士を比較してもよいし、総評価値が、複数段階の評価である場合には評価内容同士を比較してもよい。ステップS515においてサーバ3は、過去の更新後のグローバルモデル51を廃棄せずに記憶している場合、3つ以上のグローバルモデル51に対する総評価値を比較してもよい。
【0103】
サーバ3は、評価が高い方のグローバルモデル51を、分配対象の最新のグローバルモデル51として決定する(ステップS516)。サーバ3は、評価が低い方のグローバルモデル51を、記憶部31から削除(廃棄)してもよい。
【0104】
サーバ3は、決定したグローバルモデル51に対してステップS513で算出した総評価値が所定の基準を満たすか否かを判断する(ステップS517)。所定の基準は、評価値が精度であって、総評価値がその平均である場合、その値に対する閾値であることである。その他、所定の条件は、評価がA,B,C評価である場合にはB以上であることであってもよいし、評価に対する良/可/不可等の条件であってもよい。また所定の条件は、精度が安定することであってもよい。評価値の変化が学習の進行に応じて小さくなった場合に、所定の条件を満たすとしてもよい
【0105】
所定の基準を満たさないと判断された場合(S517:NO)、サーバ3は、分配対象のグローバルモデル51を各ノード1へ再配布し(ステップS518)、処理をステップS3へ戻す。
【0106】
所定の基準を満たすと判断された場合(S517:YES)、サーバ3は、決定したグローバルモデル51を他の装置へも配布可能なモデルとして記憶部31に記憶し(ステップS519)、処理をステップS8へ進める。
【0107】
図11は、第3の実施形態のモデル学習の概要図である。
図11の概要図では、サーバ3が、グローバルモデルの更新時に、前回の更新後の第n次グローバルモデルモデル51が、今回の更新後の第n+1次グローバルモデル51よりも評価が高い場合に、前回の第n次グローバルモデル51を選択することを示している。
図1のモデル学習システムの概要図と比較して、グローバルモデル51が常に、更新されるものが連綿と採用されるのではないことが示されている。
【0108】
1回のグローバルモデル51の更新の間に、各ノード1ではローカルデータが増加している、又は、更新されている。前回更新された第n次グローバルモデル51が採用され続けたとしても、各ノード1でアクセス可能なローカルデータに基づく評価が変化し得る。同一のグローバルモデル51でも、評価が高くなるグローバルモデル51が得られる。
【0109】
これにより、精度が良くなるように分散学習を進めることが可能になる。
【0110】
(第4の実施形態)
第4の実施形態では、各ノード1で学習されたローカルモデル52に基づくグローバルモデル51の更新方法が第1~第3の実施形態で説明した方法と異なる。第4の実施形態におけるモデル学習システム100の構成は、グローバルモデル51の更新処理の詳細を除いて第1の実施形態のモデル学習システム100と同様の構成であるから、共通する構成については同一の符号を付して詳細な説明を省略する。
【0111】
第4の実施形態のモデル学習システム100では、サーバ3は第1の実施形態の
図4のフローチャートに示した処理手順、第2の実施形態の
図8のフローチャートに示した処理手順、第3の実施形態の
図9及び
図10のフローチャートに示した処理手順のいずれかの学習処理手順を実行する。第4の実施形態では、それらの処理手順の内、ステップS4の更新処理が異なる。また、更新処理が異なることに対応して、ノード1から送信されるデータ内容も第1の実施形態での説明と異なる。
【0112】
図12は、第4の実施形態のノード1におけるローカルモデル52の学習処理手順の一例を示すフローチャートである。
図12のフローチャートに示す処理手順の内、第1の実施形態における
図6のフローチャートに示した処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
【0113】
ノード1の処理部10は、記憶装置2からその時点で記憶されているローカルデータを取得し(S303)、ローカルデータのデータ量(データ件数)を算出し(ステップS313)、処理をステップS304へ進める。
【0114】
ノード1の処理部10は、学習を実行する都度(S304)、学習量を算出し(ステップS314)、学習完了条件を満たすか否かを判断する(S305)。
【0115】
ステップS314において処理部10は、学習の繰り返し回数を学習量として算出してもよいし、前回のラウンドにおけるローカルモデル52からの精度の向上度合いを学習量として算出してもよいし、ローカルモデル52の変化量を学習量として算出してもよい。
【0116】
ステップS305において処理部10は、学習の結果、ローカルデータに対するニューラルネットワークからの出力データの精度が所定の条件を満たす、例えば精度が所定値以上である場合に、学習完了条件を満たすと判断してもよい。処理部10は、学習量(学習回数)が所定量(所定回数)以上である場合に学習完了条件を満たすと判断してもよい。
【0117】
ノード1の処理部10は、学習したローカルモデル52と共に、ステップS313で算出したデータ量、又は、カウントされている学習量をサーバ3へ送信し(ステップS315)、処理を終了する。これにより、サーバ3は、複数のノード1夫々から、ローカルデータで学習されたローカルモデル52と共に、元となるローカルデータのデータ量、又は、学習量を取得することができる。
【0118】
第4の実施形態においても、ノード1からは、ローカルデータのデータ量は送信されても、データ自体がサーバ3へ送信されることがない。
【0119】
図13は、第4の実施形態のサーバ3におけるグローバルモデル51の更新処理の一例を示すフローチャートである。
図13のフローチャートに示す処理手順の内、第1の実施形態の
図7のフローチャートに示した処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
【0120】
サーバ3の処理部30は、各ノード1から送信されるローカルモデル52、及びデータ量又は学習量を取得し(ステップS411)、ノード1の識別データと対応付けてローカルモデル52、及びデータ量又は学習量を記憶する(ステップS412)。ステップS411においてサーバ3の処理部30は、非同期に、各ノード1から送信されるローカルモデル52を取得する。
【0121】
処理部30は、更新すべきであると判断された場合(S403:YES)、サーバ3の処理部30は、複数のノード1からのローカルモデル52に、データ量又は学習量の重みを付与した加重平均を求める(ステップS414)。処理部30は、ローカルモデル52の加重平均を、新たなグローバルモデル51として更新する(ステップS415)。
【0122】
処理部30は、更新後のグローバルモデル51を、ラウンド情報を示すデータと対応付けて記憶し(S406)、グローバルモデル51の更新処理を終了する。
【0123】
更新後のグローバルモデル51の精度が所定の基準を満たすまで、
図13のフローチャートに示した更新処理を継続する。
【0124】
第4の実施形態における更新方法によって、データ量が異なるローカルデータによって学習されたモデルを、データ量に応じて扱い、適切に評価することが可能になる。また、異なる学習量のローカルモデル52を単純平均するよりも、グローバルモデル51の性能の向上が期待できる。
【0125】
(第5の実施形態)
モデル学習システム100は、ニューラルネットワークを始めとする深層学習のモデルに適用できる。例えば、入力データは画像データであり、出力データは画像データの画像に写っている被写体の検出結果、又は被写体に対する判定結果である。他の例では、入力データは、入出金データであり、出力データは評価等の判定結果、あるいは企業業況変化(成長または劣化)に関する予測値や経済予測に関する予測値である。他の例では、入力データは、工場、生産設備に設けられた各種センサからの測定データであり、出力データは異常/正常を含む生産管理に関するデータである。他の例では、入力データはテキストデータであり、出力データは判定結果、または予測データである。
【0126】
第5の実施形態では、モデル学習システム100を、医療施設にて患者に関して得られる医療データから、患者に特定の病気の症状が発生しているか否かの診断を支援するデータを出力するモデルの学習に適用させた例を挙げて説明する。以下の説明では、医療データは、例えば検査で撮影された眼底写真の画像データである。
【0127】
図14は、第5の実施形態のモデル学習システム100の概要図である。第5の実施形態におけるモデル学習システム100の構成は基本的に、第1の実施形態のモデル学習システム100と同様である。第5の実施形態のモデル学習システム100の内、第1の実施形態のモデル学習システム100と共通する構成については同一の符号を付して詳細な説明を省略する。
【0128】
第5の実施形態においてノード1及び情報処理装置は、医療施設に設けられている。ノード1及び情報処理装置は、患者の眼底写真を撮影する撮影装置から得られる画像データを取得できる。ノード1が設けられている医療施設では、撮影装置は記憶装置2に対して画像データを出力する。撮影装置は、異なる種類の装置を含む。
【0129】
第5の実施形態においてグローバルモデル51、ローカルモデル52及び配布可として記憶されるモデルは、画像データが入力された場合に、緑内障の診断を支援するデータ及び精度を出力するように学習されるモデルである。トレーニングデータとして用いられるローカルデータは、入力データとして画像データと、出力データとして眼底写真におけるDisc部分とCup部分とをセグメンテーションした結果の画像データである。出力データはその他、症状がみられるか否かを医師又は技師が判定した判定結果を含むデータセットであってもよい。ローカルデータの入力データである画像データは、撮影装置の種類を示す装置データと対応付けられている。装置データは型番でもよいし、装置メーカを識別するデータであってもよい。
【0130】
第5の実施形態においてモデル学習システム100では、サーバ3が予め特定の医療施設で複数の異なるアーキテクチャで作成された初期的なグローバルモデル(第0次グローバルモデル)51を取得する。サーバ3は、異なるアーキテクチャの第0次グローバルモデル51を、トレーニングに協力する医療施設のノード1へ各配布する。
【0131】
各ノード1は、配布された複数の第0次グローバルモデル51を受信し、異なる第0次グローバルモデル51に基づいてそれぞれ、ローカルデータをトレーニングデータとして学習を進行し、複数の第1次ローカルモデル52を得る。ノード1は、異なるアーキテクチャで学習された第1次ローカルモデル52をサーバ3へ送信する。
【0132】
サーバ3は、各ノード1から取得したローカルモデル52を、異なるアーキテクチャ毎に、加重平均して第1次グローバルモデル51を作成する。作成された第1次グローバルモデル51を、サーバ3は、複数のノード1へ再配布する。
【0133】
サーバ3は、配布した第n次グローバルモデル51から作成される第(n+1)次ローカルモデル52の取得、第(n+1)次ローカルモデル52からの第(n+1)次グローバルモデル51の更新を、異なるアーキテクチャ毎に繰り返す。
【0134】
サーバ3は、異なるアーキテクチャ毎に繰り返して得られたグローバルモデル51を、相互に比較し、精度がより高いアーキテクチャのグローバルモデル51を選択し、配布可能なモデルとしてノード1及び情報処理装置へ提供する。
【0135】
これにより、個人情報そのものである検査結果の画像データが、サーバ3へ集約されることなく、且つ、異なる医療施設に亘って多くのデータを用いて学習することが可能になる。
【0136】
図15は、第5の実施形態のモデル学習システム100における学習処理手順の一例を示すフローチャートである。
【0137】
サーバ3は、特定の医療施設にて、異なるアーキテクチャで作成された初期的な(第0次)グローバルモデル51を取得する(ステップS201)。ステップS201の取得は、予め記憶部31に記憶されているグローバルモデル51の読み出しを含む。
【0138】
サーバ3は、取得した複数の第0次グローバルモデル51を各ノード1へ配布する(ステップS202)。
【0139】
サーバ3は、ノード1へ配布したグローバルモデル51を基に、異なるアーキテクチャ毎に、ノード1で学習されるローカルモデル52を取得する(ステップS203)。
【0140】
サーバ3は、取得したローカルモデル52に対し、異なるアーキテクチャ毎に、統計処理を実行し、次世代のグローバルモデル51に更新する(ステップS204)。ステップS204においてサーバ3は、更新の回数を加算するとよい。
【0141】
サーバ3は、学習完了条件を満たすか否かを判断する(ステップS205)。
【0142】
ステップS205についてサーバ3は例えば、更新回数(ラウンド数)が所定回数に到達したか否かで判断する。サーバ3は、特定のノード1におけるローカルデータの入力データを異なるアーキテクチャのグローバルモデル51に入力した場合に、いずれか複数のグローバルモデル51において、対応する出力データを出力する精度が所定の条件を満たすか否かで判断してもよい。学習完了条件は、第2から第4の実施形態で示したように、各ノード1へ送信したグローバルモデル51に対する評価値から総評価値を算出し、総評価値が所定の基準を満たすことであってもよい。
【0143】
学習完了条件を満たさないと判断された場合(S205:NO)、サーバ3は、更新後の各アーキテクチャのグローバルモデル51を複数のノード1へ再分配し(ステップS206)、処理をステップS203へ戻す。
【0144】
学習完了条件を満たすと判断された場合(S205:YES)、サーバ3は、更新後の各アーキテクチャのグローバルモデル51から、1又は複数、配布可能なグローバルモデル51として選択する(ステップS207)。ステップS207においてサーバ3は例えば、精度が比較的高い1又は複数のグローバルモデル51を選択する。
【0145】
サーバ3は、記憶したグローバルモデル51を複数のノード1又は他の情報処理装置へ送信し(ステップS208)、処理を終了する。
【0146】
これにより、各医療施設の画像データに対しての精度が高く、実用性が高いアーキテクチャのモデルを、各医療施設で使用することができる。一旦配布可能なモデルとして送信されるグローバルモデル51についても、サーバ3は以後、
図15のフローチャートに示した処理を実行してバージョンを更新するとよい。
【0147】
図16は、第5の実施形態におけるローカルモデル52の学習処理手順の一例を示すフローチャートである。
図16のフローチャートに示す処理は、サーバ3がステップS202又はステップS206でグローバルモデル51を配布した場合に、複数のノード1夫々で実行する処理である。
図16のフローチャートに示す処理手順の内、第1の実施形態の
図6のフローチャートに示した処理手順と共通する手順については同一の符号を付して詳細な説明を省略する。
【0148】
ノード1の処理部10は、配布されたグローバルモデル51を受信及び記憶すると(S301)、アーキテクチャ毎に、S302からS305の処理を実行する。処理部10は、学習後のグローバルモデル51を、ローカルモデル52として、アーキテクチャを識別するデータと対応付けて記憶する(ステップS316)。
【0149】
処理部10は、学習を完了させた時点における前記ローカルモデル52の出力精度の評価を、ローカルデータに基づいて算出する(ステップS317)。ステップS317で処理部10は、ローカルモデル52にローカルデータの入力データを与えた場合に出力される精度の平均を精度評価として算出してよい。処理部10は、ローカルデータをローカルモデル52に入力した場合の出力データがトレーニングデータの出力データと合致する合致率を、精度評価として算出してもよい。処理部10は、精度評価を操作部14にて受け付けてもよい。
【0150】
処理部10は、全てのアーキテクチャについて学習を完了したか否か判断する(ステップS318)。
【0151】
学習が完了していないと判断された場合(S318:NO)、処理部10は処理をステップS302へ戻し、次のアーキテクチャについてステップS302からS317の処理を実行する。
【0152】
全てのアーキテクチャについて学習が完了したと判断された場合(S318:YES)、ノード1の処理部10は、記憶したローカルモデル52及びその精度の評価を、ローカルデータの特性である装置データと対応付けてサーバ3へ送信する(ステップS319)。そして処理部10はノード1における第n次の学習処理を終了する。
【0153】
これにより、サーバ3は、複数のノード1夫々から、ローカルデータで学習されたローカルモデル52を取得することができる。ローカルデータそのものはサーバ3へ送信されないが、ローカルデータの品質が、サーバ3で区別できるようになる。
【0154】
図17は、第5の実施形態のサーバ3におけるグローバルモデル51の更新処理の一例を示すフローチャートである。
図17のフローチャートに示す処理手順は、
図15のフローチャートに示した処理手順の内のステップS204の詳細に対応する。
図17のフローチャートに示す処理手順の内、第1の実施形態の
図6のフローチャートに示した処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
【0155】
サーバ3の処理部30は、ノード1から送信されるアーキテクチャ毎のローカルモデル52及び精度評価、並びに装置データを取得する(ステップS421)。処理部30は、取得したアーキテクチャ毎のローカルモデル52及びノード1における精度評価、並びに装置データを、ノード1の識別コードと対応付けて記憶する(ステップS422)。
【0156】
更新すべきであると判断された場合(S403:YES)、サーバ3の処理部30は、複数のノード1からのローカルモデル52の内、精度評価が所定の評価よりも低いローカルモデル52を除外する(ステップS423)。処理部30は、除外後のローカルモデル52に対して装置データに対応付けられている重みを付与した加重平均を、アーキテクチャ毎に求める(ステップS424)。処理部30は、ローカルモデル52の加重平均を、アーキテクチャ毎に、新たなグローバルモデル51として更新する(ステップS425)。
【0157】
ステップS424において装置データに対応付けられている重みは、予め記憶部31に記憶されている。装置が新しく、品質が高い画像データのローカルデータから学習されたローカルモデル52については、重みを大きくし、古い装置から得られる画像データのローカルデータから学習されたローカルモデル52については、重みを小さくしてあってもよい。装置の医療施設への普及量が大きいほど、重みが大きくしてあり、汎用性の高いモデルが作成されるようにしてあってもよい。異なる品質で集められているローカルデータから学習されたローカルモデル52を、そのまま平均した場合よりも、ローカルデータの品質に応じた重みをローカルモデル52に付与して加重平均を算出する場合の精度の向上が期待できる。
【0158】
ステップS424では、精度評価が所定の評価よりも低いローカルモデル52を除外することによって、評価に応じた重みを考慮したグローバルモデル51を作成することができる。なお所定の評価については、予めサーバ3のオペレータによって閾値が設定されてもよい。ノード1経由で、サーバ3のオペレータからのアクセスを許可して、ローカルモデル52の評価を受け付けてもよい。
【0159】
ステップS424において、上述の例では、重みは、装置データに対応付けられているデータが採用された。これに限られず、ローカルデータに対するアノテーションの正確性についての評価を、各ノード1で記憶しておき、サーバ3は、その評価の高低に応じた重みによって加重平均を算出してもよい。アノテーションの正確性についての評価は、ノード1の管理者によって実行されてもよい。
【0160】
処理部30は、ステップS425で更新したグローバルモデル51を、アーキテクチャ毎に、記憶部31に記憶し(ステップS426)、処理を終了する。
【0161】
第5の実施形態では、ローカルデータは医療データであるから、ステップS424の加重平均で用いられる重みは、医療データの属性に応じて付与されてもよい。例えば、患者の男女比、年齢分布、又は地域性等に応じた重みが付与されてもよい。これらの抽象化されたデータについてはローカルモデル52に反映されてもよい。
【0162】
第5の実施形態では、更新後のグローバルモデル51が学習完了条件を満たすまで、
図17のフローチャートに示した更新処理を継続する。
【0163】
第5の実施形態における更新方法によって、品質が異なるローカルデータによって学習されたモデルを、データの品質に応じて重みを変えて統合することができる。異なる品質のローカルモデル52を単純平均するよりも、グローバルモデル51の性能の向上が期待できる。
【0164】
第5の実施形態における更新方法によって、異なるアーキテクチャのCNNのいずれを用いたグローバルモデル51が最も適切であるかが評価されて実用可能となる。
【0165】
上述のように開示された実施の形態は全ての点で例示であって、制限的なものではない。本発明の範囲は、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれる。
【符号の説明】
【0166】
1 ノード
10 処理部
2 記憶装置
3 サーバ
30 処理部
51 グローバルモデル
52 ローカルモデル