(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022076278
(43)【公開日】2022-05-19
(54)【発明の名称】モデル学習方法、モデル学習システム、サーバ装置、及びコンピュータプログラム
(51)【国際特許分類】
G06N 20/00 20190101AFI20220512BHJP
G16H 30/00 20180101ALI20220512BHJP
G06F 16/53 20190101ALI20220512BHJP
G06F 16/90 20190101ALI20220512BHJP
A61B 5/00 20060101ALI20220512BHJP
【FI】
G06N20/00
G16H30/00
G06F16/53
G06F16/90 100
A61B5/00 G
【審査請求】未請求
【請求項の数】14
【出願形態】OL
(21)【出願番号】P 2020186621
(22)【出願日】2020-11-09
(71)【出願人】
【識別番号】507228172
【氏名又は名称】株式会社JSOL
(71)【出願人】
【識別番号】518148973
【氏名又は名称】株式会社シンクアウト
(74)【代理人】
【識別番号】100114557
【弁理士】
【氏名又は名称】河野 英仁
(74)【代理人】
【識別番号】100078868
【弁理士】
【氏名又は名称】河野 登夫
(72)【発明者】
【氏名】松崎 健一
(72)【発明者】
【氏名】石川 淳也
(72)【発明者】
【氏名】鈴木 悠哉
(72)【発明者】
【氏名】田淵 仁志
【テーマコード(参考)】
4C117
5B175
5L099
【Fターム(参考)】
4C117XA07
4C117XB06
4C117XB17
4C117XE42
4C117XF03
4C117XF22
4C117XH16
4C117XJ21
4C117XJ27
4C117XJ48
4C117XK12
4C117XK18
4C117XK20
4C117XK33
4C117XK42
4C117XL01
5B175DA02
5B175EA01
5L099AA26
(57)【要約】
【課題】医療関連データに対する分散学習に基づく学習モデルの実用化を促進するモデル学習方法、モデル学習システム、サーバ装置、及びコンピュータプログラムを提供する。
【解決手段】モデル学習方法は、医療施設に設置され、患者に関する医療データを含むローカルデータを処理するノードに対し、前記ローカルデータを入力として処理し診断を支援する診断支援データを出力するように学習されるグローバルモデルのデータをサーバから配布し、前記サーバは、前記ノードで前記ローカルデータによって前記グローバルモデルを基に学習したローカルモデルのデータを取得し、複数のノード夫々から取得した複数のローカルモデルのデータに基づいて、グローバルモデルのデータを更新する。
【選択図】
図1
【特許請求の範囲】
【請求項1】
医療施設に設置され、患者に関する医療データを含むローカルデータを処理するノードに対し、前記ローカルデータを入力として処理し診断を支援する診断支援データを出力するように学習されるグローバルモデルのデータをサーバから配布し、
前記サーバは、前記ノードで前記ローカルデータによって前記グローバルモデルを基に学習したローカルモデルのデータを取得し、
複数のノード夫々から取得した複数のローカルモデルのデータに基づいて、グローバルモデルのデータを更新する
処理を含むモデル学習方法。
【請求項2】
前記医療データは、患者に対して撮影された医療画像データである
請求項1に記載のモデル学習方法。
【請求項3】
更新後のグローバルモデルのデータを、異なる医療施設に設置された複数のノードへ再分配する
処理を含む請求項1又は2に記載のモデル学習方法。
【請求項4】
前記サーバは、前記複数のノードから取得したローカルモデルのデータを統計処理して前記グローバルモデルのデータを更新する
請求項1から請求項3のいずれか1項に記載のモデル学習方法。
【請求項5】
前記グローバルモデルのデータの更新の都度、前記複数のノード夫々のローカルデータで前記グローバルモデルによる医療データに基づく診断支援データの正確性に関する評価値を各算出させ、
前記複数のノードで算出された異なる評価値に基づいて前記グローバルモデルの総評価値を算出し、
算出された総評価値と対応付けて前記グローバルモデルのデータを記憶する
処理を含む請求項1から請求項4のいずれか1項に記載のモデル学習方法。
【請求項6】
前記総評価値に基づいて学習が所定の基準を満たすまで前記グローバルモデルの更新を継続し、
前記所定の基準を満たした学習結果に対応するグローバルモデルのデータの前記複数のノード及び他の装置への提供を許可する
処理を含む請求項5に記載のモデル学習方法。
【請求項7】
前記グローバルモデルのデータの更新の都度、
更新後のグローバルモデルに対して算出された総評価値を記憶し、
総評価に基づいて再分配するグローバルモデルを決定する
処理を含む請求項5又は6に記載のモデル学習方法。
【請求項8】
更新後のグローバルモデルに対して算出された総評価値と、前回の更新後のグローバルモデルに対する総評価値とを比較し、
比較の結果、評価がより高いグローバルモデルを、再分配するグローバルモデルとして決定する
処理を含む請求項7に記載のモデル学習方法。
【請求項9】
前記複数のノードに、前記サーバで更新された後のグローバルモデルに対して、ローカルデータに基づき評価値を算出させる都度に前記評価値及び前記グローバルモデルのデータを記憶し、
最も評価値が高い更新後のグローバルモデルを選択する
請求項5に記載のモデル学習方法。
【請求項10】
前記複数のノードは、ローカルモデルの学習に用いたローカルデータのデータ量、又はローカルモデルの学習量を逐次記憶し、
前記サーバは、前記複数のノードから集約したローカルモデルのデータ夫々に、前記データ量又は学習量に対応する重みを付与して前記グローバルモデルのデータの更新に使用する
処理を含む請求項1から請求項9のいずれか1項に記載のモデル学習方法。
【請求項11】
前記複数のノードは、前記ローカルデータに含まれる医療データの取得方法、前記医療データを出力する医療機器の仕様、又は、前記ローカルモデルの精度評価である特性を記憶しており、
前記サーバは、前記複数のノードから集約したローカルモデルのデータ夫々に、各ノードのローカルデータの特性に対応する重みを付与して前記グローバルモデルのデータの更新に使用する
処理を含む請求項1から請求項9のいずれか1項に記載のモデル学習方法。
【請求項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】
本開示の一実施形態のモデル学習方法は、前記総評価値に基づいて学習が所定の基準を満たすまで前記グローバルモデルの更新を継続し、前記所定の基準を満たした学習結果に対応するグローバルモデルのデータの前記複数のノード及び他の装置への提供を許可する処理を含んでもよい。
【0022】
総評価値に基づいて学習が所定の基準を満たしてノード以外の他の装置への配布が可能と判断される程度まで学習が完了した段階で、学習に協力したノードのみならず他の装置への提供がされる。複数の医療施設で得られたデータに基づく集合知的な学習モデルを広く利用することが可能になる。所定の基準とは、総評価値に基づき学習の精度が向上しなくなること、総評価値が所定値以上となること等として設定されてよい。
【0023】
本開示の一実施形態のモデル学習方法は、前記グローバルモデルのデータの更新の都度、更新後のグローバルモデルに対して算出された総評価値を記憶し、総評価に基づいて再分配するグローバルモデルを決定する処理を含んでもよい。
【0024】
グローバルモデルのデータの配布、ローカルモデルの学習、学習されたローカルモデルのデータに基づくグローバルモデルのデータの更新の繰り返しの中では、1つ前の更新におけるグローバルモデルの方が、評価が高いことがあり得る。各医療施設で逐次、医療データが追加されていく環境では、繰り返しの中で時折、過去のグローバルモデルを基に再度学習を進めることで、精度を向上させることが期待できる。
【0025】
本開示の一実施形態のモデル学習方法は、更新後のグローバルモデルに対して算出された総評価値と、前回の更新後のグローバルモデルに対する総評価値とを比較し、比較の結果、評価がより高いグローバルモデルを、再分配するグローバルモデルとして決定する処理を含んでもよい。
【0026】
過去のグローバルモデルを選択する場合は、総評価値を基準として選択するとよい。
【0027】
本開示の一実施形態のモデル学習方法では、前記複数のノードは、ローカルモデルの学習に用いたローカルデータのデータ量、又はローカルモデルの学習量を逐次記憶し、前記サーバは、前記複数のノードから集約したローカルモデルのデータ夫々に、前記データ量又は学習量に対応する重みを付与して前記グローバルモデルのデータの更新に使用する処理を含んでもよい。
【0028】
本開示の一実施形態のモデル学習方法では、前記複数のノードは、前記ローカルデータに含まれる医療データの取得方法、前記医療データを出力する医療機器の仕様、又は、前記ローカルモデルの精度評価である特性を記憶しており、前記サーバは、前記複数のノードから集約したローカルモデルのデータ夫々に、各ノードのローカルデータの特性に対応する重みを付与して前記グローバルモデルのデータの更新に使用する処理を含んでもよい。
【0029】
ローカルモデルに基づくグローバルモデルは、各ローカルモデルの基になったデータ量、又は、ローカルモデルにおける学習量に応じて、加重平均で算出される。グローバルモデルは、ローカルデータの特性に応じて加重平均で算出されてもよい。ローカルデータの規模又は品質は、医療施設毎に多様である。同一の検査項目であっても、検査の機器の新旧が異なる場合もある。それら品質が異なるデータを均等に統計処理するよりも、医療データの取得方法の違い、機器の仕様に応じた重みを付与して統計処理をすることによって、モデルの精度の向上が期待できる。ローカルモデルの精度は、ローカルデータを取得するための方法、ローカルデータを出力する機器の仕様、ローカルデータをトレーニングデータとして使用する場合のアノテーション精度等に影響される。これらの影響に対応する重みで加重平均することによって、グローバルモデルの更新が適切に行なわれることが期待できる。
【0030】
本開示の一実施形態のモデル学習方法では、前記複数のノードに、前記サーバで更新された後のグローバルモデルに対して、ローカルデータに基づき評価値を算出させる都度に前記評価値及び前記グローバルモデルのデータを記憶し、最も評価値が高い更新後のグローバルモデルを選択する。
【0031】
前回の更新のみならず、過去のグローバルモデルから最も評価値が高いグローバルモデルを選択してもよい。過去のグローバルモデルを基に再度学習を進めることで、精度を向上させることが期待できる。
【発明の効果】
【0032】
本開示のモデル学習方法によれば、患者の個人データである医療画像データをサーバへ送信されることなしに、各医療施設で検査によって得られたデータを用いた学習結果に基づいてグローバルモデルが実用化される。
【図面の簡単な説明】
【0033】
【
図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の実施形態のサーバにおけるグローバルモデルの更新処理の一例を示すフローチャートである。
【
図18】第6の実施形態における学習処理手順の一例を示すフローチャートである。
【
図19】グローバルモデルの参照処理及びノード1での追加学習手順の一例を示すフローチャートである。
【
図20】グローバルモデルの更新履歴画面の一例を示す。
【
図21】グローバルモデルの性能画面の一例を示す。
【
図22】第7の実施形態におけるノードの構成を示すブロック図である。
【
図23】第7の実施形態のモデル学習システムにおける学習処理手順の一例を示すフローチャートである。
【
図24】ノード1のモデル自動取得処理手順の一例を示すフローチャートである。
【発明を実施するための形態】
【0034】
本開示をその実施の形態を示す図面を参照して具体的に説明する。
【0035】
(第1の実施形態)
図1は、第1の実施形態のモデル学習システム100の概要図である。モデル学習システム100は、医療施設にて患者に対する検査で得られる検査データを記憶する記憶装置2に対して1又は複数設けられたノード1を含む。モデル学習システム100は、ノード1が通信接続可能なサーバ3を含む。モデル学習システム100は、ノード1及びサーバ3間を通信接続する通信網Nを含む。
【0036】
記憶装置2は、設置されている医療施設の検査装置から得られる医療データを蓄積する。第1の実施形態において記憶装置2は、患者の眼底写真を撮影する撮影装置20から得られる医療画像データを、患者の識別データと対応付けて記憶する。医療画像データは、眼底写真に限られない。医療データは勿論、医療画像データには限られない。医療データは、患者に対して実施された検査の数値データであってもよいし、数値データの変移のデータであってもよい。医療データは、患者を検査して得られる音声データ、例えば心音データであってもよい。医療データは、患者の属性、既往歴、投薬履歴等を含んでもよい。
【0037】
記憶装置2は、電子カルテのシステムと接続されていてもよい。記憶装置2は医療事業者が操作する情報端末の記憶装置であってもよい。記憶装置2は、医療施設における情報処理システムのクライアント装置からデータを収集するサーバ装置に使用される記憶装置であってもよい。
【0038】
ノード1は、記憶装置2が記憶している医療画像データ、即ち第1の実施形態では眼底写真の画像データが入力された場合に、診断を支援する診断支援データを精度と共に出力するモデルを利用し、医療施設の医師及び他の医療事業者を支援するコンピュータである。診断支援データは、病変の有無の判定結果、診断の基準となる数値、画像が入力された場合に診断をしやすくするように処理された画像を含む。病変は例えば、緑内障である。病変はその他、結膜充血、糖尿病網膜症、加齢黄斑変性であってもよい。
【0039】
サーバ3は、ノード1に対してモデルを提供するコンピュータであると共に、ノード1と協働してモデルを学習するモデル学習システム100を実現する。記憶装置2が記憶している医療画像データ(以下、ローカルデータという)をトレーニングデータとしてモデルの学習を実行するには、データへのアクセスが許可される必要がある。第1の実施形態のモデル学習システム100は、このサーバ3の医療に関するローカルデータへのアクセスを不可とした状態で、学習を進行することができる。
【0040】
サーバ3は、初期的に、第0次グローバルモデル51を得る。第0次グローバルモデルは、サーバ3は、第0次グローバルモデル51を、通信網Nを介してノード1へ配布する。モデルは例えば、CNN(Convolutional Neural Network)を用いたモデルである。サーバ3からノード1へ配布されるグローバルモデルモデル51の実体(データ)は、学習済みのパラメータのみ、又は、学習済みのパラメータとプログラムとの両方である。グローバルモデル51は、モデルの構成を定義する定義データ(ネットワーク定義、損失や予め設定されるハイパーパラメータを含む)と、学習対象の重み係数等のパラメータとであってもよい。ノード1で学習済みパラメータを組み込んだプログラムを再現できるデータであれば、差分やパラメータのみであってもよい。
【0041】
深層学習のモデルの種類は、入力される医療データ及び出力されるべき診断支援データの内容に応じて適切に選択されるべきである。学習対象のモデルは分類系、検出系、又は生成系等のいずれでもよいし、時系列要素を加味して学習するRNN(Recurrent Neural Network)等であってもよい。
【0042】
通信網Nは、所謂インターネットである公衆通信網、キャリアネットワークを含む。通信網Nは、モデル学習システム100用の専用回線であってもよい。
【0043】
ノード1は、記憶装置2との間のローカルネットワークLNに基づいて、記憶装置2に蓄積されたローカルデータにアクセス可能である。ノード1は、アクセス可能なローカルデータを用いて深層学習を実行する。ローカルデータに対しては既に、ノード1が設置されている場所のオペレータによってアノテーションが実施済であるとよい。ノード1は、サーバ3から配布される第0次グローバルモデル51を取得する。ノード1は、第0次グローバルモデル51を基に、ローカルデータをトレーニングデータとして学習を進行し、第1次ローカルモデル52を得る。以下の説明におけるトレーニングデータとして用いられるローカルデータは例えば、入力データとして眼底写真の画像データと、出力データとして眼底写真におけるDisc部分とCup部分とをセグメンテーションした結果の画像データである。出力データはその他、緑内障の診断を支援するデータであってよい。ノード1は、患者から得られた画像データをモデルに入力して出力されるセグメンテーション済みの画像データを画面に表示させることにより、診断を行なう医師の緑内障の診断を支援する。見落としの低減や、診断を異なる医療施設で均質化させることが期待できる。
【0044】
ノード1は、第1次ローカルモデル52を、サーバ3へ送信する。ローカルデータはサーバ3へ送信されないから、ローカルデータの抽象化、匿名化等の処理は不要である。
【0045】
サーバ3は、複数のノード1夫々から第1次ローカルモデル52を複数受信し、受信した複数の第1次ローカルモデル52に対して統計処理を実行して第1次グローバルモデル51を作成する。サーバ3は、第1次グローバルモデル51を、複数のノード1へ再配布する。再配布されるグローバルモデル51は、重み係数のみであってもよい。再配布される重み係数は学習対象であってもよいし、全体であってもよい。再配布されるグローバルモデル51は、前回の更新からの差分に対応するものであってもよい。
【0046】
モデル学習システム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から可能であってもよい(クラウド型)。
【0047】
これにより、サーバ3から、医療データであるローカルデータへのアクセスを許可することなく、分散学習が可能になる。個人情報そのものである検査結果の画像データが、サーバ3へ集約されることなく、且つ、各々がアクセス可能なローカルデータのデータ量が少なくても、異なる医療施設に亘って多くのデータを用いて学習することが可能になる。
【0048】
分散学習によってノード1以外へも配布可能な精度までに学習されたグローバルモデル51は、各ノード1に加え、ローカルモデル52の作成に参加しない情報処理装置4へも配布され、使用される。
【0049】
このような学習方法を実現するためのモデル学習システム100の構成について詳細に説明する。
【0050】
図2は、ノード1の構成を示すブロック図である。ノード1は、パーソナルコンピュータ又はサーバコンピュータである。ノード1は、処理部10、記憶部11、通信部12、表示部13及び操作部14を備える。
【0051】
処理部10は、CPU(Central Processing Unit )及び/又はGPU(Graphics Processing Unit)を用いたプロセッサである。処理部10は、記憶部11に記憶されているノードプログラム1Pに基づき、記憶装置2からローカルデータの読み出し、サーバ3との間でのモデルの送受信、及びモデル学習を含む処理を実行する。
【0052】
記憶部11は、例えばハードディスク、フラッシュメモリ、SSD(Solid State Drive)等の不揮発性メモリを用いる。記憶部11は、処理部10が参照するデータを記憶する。記憶部11は、ノードプログラム1Pを記憶する。記憶部11は、深層学習用のライブラリ1Lを記憶する。ノードプログラム1P及び/又は深層学習用のライブラリ1Lは、記録媒体8に記憶してあるノードプログラム8P及び/又は深層学習用のライブラリ8Lを処理部10が読み出して記憶部11に複製したものであってもよい。記憶部11は、サーバ3から取得するグローバルモデル51、及び、ローカルデータによって学習されるローカルモデル52夫々を記憶する。
【0053】
通信部12は、通信網Nを介したデータ通信、及び、ローカルネットワークLNを介した記憶装置2との通信を各々実現する。通信部12は具体的には、例えばネットワークカードである。処理部10は、通信部12によって記憶装置2からデータを読み出し、サーバ3との間でデータを送受信する。
【0054】
表示部13は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等のディスプレイである。表示部13は、記憶部11に記憶されているデータに基づく情報、又はサーバ3から提供されるデータを含む画面を表示する。表示部13は、タッチパネル内蔵型ディスプレイであってもよい。
【0055】
操作部14は、処理部10との間で入出力が可能なキーボード及びポインティングデバイス等のユーザインタフェースである。操作部14は、音声入力部であってもよい。操作部14は、表示部13のタッチパネルであってもよい。操作部14は、物理ボタンであってもよい。操作部14は、ノード1のオペレータによる操作データを処理部10へ通知する。
【0056】
図3は、サーバ3の構成を示すブロック図である。サーバ3は、サーバコンピュータである。サーバ3は、処理部30、記憶部31及び通信部32を備える。サーバ3は、以下の説明においては1台のサーバコンピュータによって構成されるものとして説明するが、複数台のサーバコンピュータをネットワークで通信接続して分散処理させる態様であってもよい。サーバ3は、通信網Nを介して各ノード1から通信接続が可能なクラウド型であってもよいし、仮想的なプライベートネットワークを介して各ノード1と通信接続するオンプレミス型であってもよい。
【0057】
処理部30は、CPU及び/又はGPUを用いたプロセッサである。処理部30は、記憶部31に記憶されているサーバプログラム3Pに基づき、グローバルモデル51の学習処理を実行する。
【0058】
記憶部31は、例えばハードディスク、SSD等の不揮発性メモリを用いる。記憶部31は、処理部30が参照するデータを記憶する。記憶部31は、サーバプログラム3Pを記憶する。記憶部31は、学習対象のグローバルモデル51、複数のノード1から送信されるローカルモデル52を記憶する。サーバプログラム3Pは、記録媒体9に記憶してあるサーバプログラム9Pを処理部30が読み出して記憶部31に複製したものであってもよい。
【0059】
通信部32は、通信網Nを介したデータ通信を実現する。通信部32は具体的には、例えばネットワークカードである。処理部30は、通信部32によって複数のノード1との間でデータを送受信する。
【0060】
このように構成されるモデル学習システム100における学習処理手順について説明する。
図4は、モデル学習システム100における学習処理手順の一例を示すフローチャートである。
【0061】
サーバ3は、予め用意された初期的な(第0次)グローバルモデル51を取得する(ステップS1)。初期的なグローバルモデル51は、特定のノード1で第0次モデルとして作成されたモデルであってもよいし、ノード1ではなく特定の医療施設で学習されたモデルであってもよく、予め記憶部31に記憶してあるとよい。ステップS1の取得は、予め記憶部31に記憶されているグローバルモデル51の読み出しを含む。
【0062】
サーバ3は、取得した第0次グローバルモデル51をノード1へ配布する(ステップS2)。
【0063】
サーバ3は、ノード1へ配布したグローバルモデル51を基に、ノード1で学習されるローカルモデル52を取得する(ステップS3)。
【0064】
サーバ3は、取得したローカルモデル52に対して統計処理を実行し、次世代のグローバルモデル51に更新する(ステップS4)。ステップS4においてサーバ3は、更新(ラウンド)の回数を加算するとよい。
【0065】
サーバ3は、更新したグローバルモデル51が学習完了条件を満たすか否か判断する(ステップS5)。
【0066】
ステップS5についてサーバ3は例えば、更新回数が所定回数に到達したか否かで判断する。サーバ3は、特定のノード1又は特定の医療施設におけるトレーニングデータに含まれる眼底写真の画像データをグローバルモデル51に入力した場合に、対応するセグメンテーション結果(診断支援データ)を出力する精度が所定の条件(所定値以上、向上が見られない等)を満たすか否かで判断してもよい。またサーバ3は、後述する方法によって学習完了条件を満たすか否かを判断してもよい。ステップS5においてサーバ3は、オペレータの操作によって更新回数が所定回数に到達していなくとも学習停止が指示されたか否かを判断し、指示された場合にはステップS5において条件を満たすと判断してもよい。
【0067】
学習完了条件を満たさないと判断された場合(S5:NO)、サーバ3は、更新後のグローバルモデル51を複数のノード1へ再分配し(ステップS6)、処理をステップS3へ戻す。
【0068】
ステップS6においてサーバ3は、グローバルモデル51をそのまま再配布するのではなく、重み係数等のパラメータのみを再配布してもよい。
【0069】
ステップS6においてサーバ3は、何回目の更新後のグローバルモデル51であるのか、即ち第n次グローバルモデル51の「n」を示すデータを共に送信するとよい。ステップS6においてサーバ3は、後述するように学習のラウンド情報を得られる場合にはそのラウンド情報を、グローバルモデル51に対応付けて送信するとよい。ラウンド情報は、学習完了条件を満たすと判断されるまでに、ノード1への分配及び統計処理の実行した回数を示す情報である。サーバ3は、グローバルモデル51の種類、例えばどのようなアーキテクチャの深層学習がされたのか、を示すデータを共にノード1へ送信してもよい。
【0070】
学習完了条件を満たすと判断された場合(S5:YES)、サーバ3は、更新後のグローバルモデル51を、ノード1以外の装置へも配布可能なグローバルモデル51として記憶する(ステップS7)。
【0071】
サーバ3は、記憶したグローバルモデル51を複数のノード1又は他の情報処理装置へ送信し(ステップS8)、処理を終了する。他の情報処理装置とは、ノード1同様に、学習対象と同種のデータを用いるが、ローカルデータをトレーニング用に提供しない装置である。
【0072】
サーバ3は、
図4のフローチャートに示した処理手順を、複数回、例えば月に一度といった周期で実行してもよい。その都度、グローバルモデルのバージョンが上昇し、実用的なモデルとなる。
【0073】
図5は、配布されたグローバルモデル51に基づくローカルモデル52の学習処理手順の一例を示すフローチャートである。
図5のフローチャートに示す処理は、サーバ3がステップS2又はステップS6でグローバルモデル51を配布した場合に、複数のノード1夫々で実行する処理である。
【0074】
ノード1の処理部10は、配布されたグローバルモデル51を受信し、記憶部11に記憶する(ステップS301)。
【0075】
ノード1の処理部10は、記憶したグローバルモデル51をインスタンスとしてロードする(ステップS302)。処理部10は、記憶装置2に記憶してあるローカルデータをトレーニングデータとして取得し(ステップS303)、これをグローバルモデル51に与えて学習を実行する(ステップS304)。
【0076】
ステップS304において処理部10は、ロードしたグローバルモデル51に対してローカルデータの眼底写真の画像データを入力する。処理部10は、出力されるセグメンテーション結果の画像データと、入力された画像データに対する医療事業者による判断結果とに対する損失を算出する。処理部10は、セグメンテーション結果から得られる診断結果と、医療事業者が画像から診断した結果とが合致しているか否かの正誤によって学習を進めてもよい。処理部10は、算出した損失に基づいて配布されたグローバルモデル51における重み係数を含むパラメータを学習する。
【0077】
ノード1の処理部10は、学習完了条件を満たすか否かを判断する(ステップS305)。ステップS305において処理部10は、更新回数が所定回数を満たすことを学習完了条件としてもよい。処理部10は、学習後のグローバルモデル51の出力精度が記憶してある所定値以上である場合に、学習完了条件を満たすと判断してもよい。処理部10は、精度の変化が所定範囲内に収まり、収束していると判断できる場合に学習完了条件を満たすと判断してもよい。
【0078】
学習完了条件を満たさないと判断された場合(S305:NO)、処理部10は処理をステップS304)へ戻す。これにより、学習が続行される。
【0079】
学習完了条件を満たすと判断された場合(S305:YES)、処理部10は学習を終了し、パラメータが更新されたグローバルモデル51を、ローカルモデル52として記憶する(ステップS306)。
【0080】
ノード1の処理部10は、記憶したローカルモデル52を、サーバ3へ送信し(ステップS307)、処理を終了する。これにより、サーバ3は、複数のノード1夫々から、ローカルデータで学習されたローカルモデル52を取得することができる。
【0081】
ステップS307において処理部10は、第n次のローカルモデル52なのか、又は元となるグローバルモデル51が第n次なのかの「n」を示すデータを共に送信するとよい。ステップS307においてノード1は、後述するように1回の学習完了までの更新回数に対応するラウンド情報を得られる場合にはそのラウンド情報を、ローカルモデル52に対応付けて送信してもよい。
【0082】
図5のフローチャートに示した処理によってノード1からは、ローカルデータがサーバ3へ送信されることがない点が、着目されるべきである。ローカルデータの匿名化も実行されない。ノード1から送信されるデータは、モデルそのものである。ローカルデータの特性は反映されているが、個人的な医療データの送信はされない。
【0083】
図6は、サーバ3におけるグローバルモデル51の更新処理の一例を示すフローチャートである。
図6のフローチャートに示す処理手順は、
図4のフローチャートに示す処理手順の内のステップS4の詳細に対応する。
【0084】
サーバ3の処理部30は、ノード1から送信されるローカルモデル52を取得し(ステップS401)、ノード1の識別データと対応付けてローカルモデル52を記憶する(ステップS402)。ステップS401においてサーバ3の処理部30は、非同期に各ノード1から送信されるローカルモデル52を取得する。
【0085】
処理部30は、取得したローカルモデル52でグローバルモデル51を更新すべきか否かを判断する(ステップS403)。ステップS403において処理部30は、グローバルモデル51を配布した配布先のノード1全てからローカルモデル52を取得できた場合に更新すべきであると判断してもよい。ステップS403において処理部30は、予め決定しておいた代表的の複数のノード1からローカルモデル52を取得できた場合に更新すべきであると判断してもよい。
【0086】
更新すべきでないと判断された場合(S403:NO)、サーバ3の処理部30は処理をステップS401へ戻す。更新すべきであると判断されるまで、各ノード1から送信されるローカルモデル52を取得し、集約する。
【0087】
更新すべきであると判断された場合(S403:YES)、サーバ3の処理部30は、複数のノード1からのローカルモデル52の平均を求める(ステップS404)。処理部30は、平均を新たなグローバルモデル51として更新する(ステップS405)。
【0088】
処理部30は、更新後のグローバルモデル51を、ラウンド数(第n次)を示すデータと対応付けて記憶し(ステップS406)、グローバルモデル51の更新処理を終了する。これにより、第n-1次グローバルモデル51は、第n次グローバルモデル51に更新される。
【0089】
更新が完了したグローバルモデル51は、各ノード1及び情報処理装置4から利用可能になる。
図7は、ノード1で表示される画面例を示す。
図7の更新結果画面431は、サーバ3から提供されるWebページに基づいてノード1の表示部13に表示される。更新結果画面431には、配布可能なモデルとして記憶されたグローバルモデル51の一覧が表示されている。更新結果画面431は、ノード1へサーバ3から自動的に配布された最新のグローバルモデル51のモデル名及び更新日時を示す。
【0090】
サーバ3で更新が完了したグローバルモデル51は、各ノード1及び情報処理装置4から、選択的に利用されてもよい。更新結果画面431は、グローバルモデル51を識別するモデル名を表すテキストに、ダウンロードへのリンクを含んで選択可能にしてもよい。各々のグローバルモデル51を識別するテキストにダウンロードのアイコン等のインタフェースが含まれていてもよい。更新結果画面431に対し、ノード1又は情報処理装置4のオペレータが、モデルのいずれかを選択することによって初めて、選択されたモデルがノード1に記憶されるようにしてもよい。この場合、配布可能なモデルとして提供されるグローバルモデル51がノード1又は情報処理装置4でダウンロードされ、利用可能となる。なおこの場合、各モデルには、オペレータが選択するか否かを判断する基準となる評価や精度の情報が表示されていることが好ましい。
【0091】
上述したように第1の実施形態のモデル学習システム100では、患者の個人データである医療画像データはサーバ3へ送信されることなしに、各医療施設で得られた医療データを用いた学習結果に基づいてグローバルモデル51が実用化される。各所のローカルデータのみでは、例えば小規模のクリニックでは学習にデータ量が不足するような場合であっても、参加する複数のノード1でアクセス可能な医療データに基づき、1箇所に集約した大量のデータによる学習よりも精度よく、且つ早期に実用可能なモデルを提供することが可能になる。
【0092】
(第2の実施形態)
第2の実施形態におけるモデル学習システム100は、学習完了条件を満たすための判断処理が、第1の実施形態と異なる。第2の実施形態におけるモデル学習システム100の構成は、上述の判断処理の詳細を除いて第1の実施形態のモデル学習システム100と同様の構成であるから、共通する構成については同一の符号を付して詳細な説明を省略する。
【0093】
図8は、第2の実施形態のモデル学習システム100における学習処理手順の一例を示すフローチャートである。
図8のフローチャートに示す処理手順の内、
図4のフローチャートに示した処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
【0094】
ステップS4でグローバルモデル51を更新すると(S4)、サーバ3の処理部30は、更新後のグローバルモデル51を、複数のノード1へ送信する(ステップS501)。
【0095】
更新後のグローバルモデル51を受信した複数のノード1は夫々、送信されたグローバルモデル51を用いて、記憶装置2からローカルデータを読み出し、ローカルデータとして記憶している眼底写真の画像データを入力した場合の精度評価を実行する。ノード1の処理部10は、記憶装置2のローカルデータの眼底写真の画像データを入力した場合の精度を算出し、サーバ3へ送信する。処理部10は、精度として、各医療施設にて撮影された眼底写真の画像データをグローバルモデル51に入力した場合の出力データに基づく診断結果と、医療事業者が眼底写真を視認した場合の診断結果との合致率を算出してもよい。処理部10は、ノード1のオペレータから操作部14を介して、グローバルモデル51に判定させた場合の精度評価を受け付けてもよい。
【0096】
サーバ3の処理部30は、各ノード1から送信される評価値を取得し(ステップS502)、複数のノード1から取得した評価値から総評価値を算出する(ステップS503)。ステップS503において処理部30は、精度の平均値を算出してもよいし、合致率の平均でもよいし、オペレータから受けた評価の平均を求めてもよい。
【0097】
処理部30は、算出した総評価値が所定の基準を満たすか否かを判断し(ステップS504)、所定の基準を満たすと判断された場合(S504:YES)、処理をステップS7へ進める。ステップS504において処理部30は、グローバルモデル51の更新を停止するか否かを判断してもよい。
【0098】
所定の基準を満たさないと判断された場合(S504:NO)、処理部30は処理をステップS6へ進める。
【0099】
ステップS504において所定の基準とは例えば、評価値が精度であって、評価値がその平均の場合、その値に対する閾値であることである。その他、所定の条件は、評価がA,B,C評価である場合にはB以上であることであってもよいし、評価に対する良/可/不可等の条件であってもよい。また所定の条件は、精度が安定することであってもよい。評価値の変化が学習の進行に応じて小さくなった場合に、所定の条件を満たすとしてもよい。
【0100】
このように第2の実施形態では、評価を、各ノード1にてアクセス可能な実際の医療画像データを用いた有用性に基づいて導出する。これにより、各ノード1で精度が認められる場合に配布可能なモデルとして提供することができる。
【0101】
(第3の実施形態)
第3の実施形態では、サーバ3が、過去の更新後のグローバルモデル51と比較して、分配するグローバルモデル51を決定する。第3の実施形態のモデル学習システム100の構成は、第1の実施形態のモデル学習システム100の構成と同様であるから、共通する構成については同一の符号を付して詳細な説明を省略する。
【0102】
図9及び
図10は、第3の実施形態のモデル学習システム100における学習処理手順の一例を示すフローチャートである。
図9及び
図10のフローチャートに示す処理手順の内、第2の実施形態の
図8のフローチャートに示した処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
【0103】
サーバ3は、ステップS4で更新した後のグローバルモデル51と、更新前のグローバルモデル51とを各ノード1へ送信する(ステップS511)。
【0104】
サーバ3は、送信先の複数のノード1から、各々のグローバルモデル51の評価値を取得し(ステップS512)、総評価値を算出する(ステップS513)。サーバ3は、ラウンド情報と対応付けて、更新後のグローバルモデル51、及び総評価値を、記憶部31に記憶する(ステップS514)。ラウンド情報は、1回の学習(バージョン)が完了するまでの間に何度目に更新されたグローバルモデル51であるかを示すデータであり、第n次の「n」の情報である。
【0105】
サーバ3は、ステップS513で算出した、更新後のグローバルモデル51に対して算出した総評価値と、更新前のグローバルモデル51に対する総評価値とを比較する(ステップS515)。
【0106】
ステップS515においてサーバ3は、総評価値が数値である場合には値同士を比較してもよいし、総評価値が、複数段階の評価である場合には評価内容同士を比較してもよい。ステップS515においてサーバ3は、過去の更新後のグローバルモデル51を廃棄せずに記憶している場合、3つ以上のグローバルモデル51に対する総評価値を比較してもよい。
【0107】
サーバ3は、評価が高い方のグローバルモデル51を、分配対象の最新のグローバルモデル51として決定する(ステップS516)。サーバ3は、評価が低い方のグローバルモデル51を、記憶部31から削除(廃棄)してもよい。
【0108】
サーバ3は、決定したグローバルモデル51に対してステップS513で算出した総評価値が所定の基準を満たすか否かを判断する(ステップS517)。所定の基準は、評価値が精度であって、総評価値がその平均である場合、その値に対する閾値であることである。その他、所定の条件は、評価がA,B,C評価である場合にはB以上であることであってもよいし、評価に対する良/可/不可等の条件であってもよい。また所定の条件は、精度が安定することであってもよい。評価値の変化が学習の進行に応じて小さくなった場合に、所定の条件を満たすとしてもよい。
【0109】
所定の基準を満たさないと判断された場合(S517:NO)、サーバ3は、分配対象のグローバルモデル51を各ノード1へ再配布し(ステップS518)、処理をステップS3へ戻す。
【0110】
所定の基準を満たすと判断された場合(S517:YES)、サーバ3は、決定したグローバルモデル51を配布可能なモデルとして記憶部31に記憶し(ステップS519)、処理をステップS8へ進める。
【0111】
図11は、第3の実施形態のモデル学習の概要図である。
図11の概要図では、サーバ3が、グローバルモデルの更新時に、前回の更新後の第n次グローバルモデルモデル51が、今回の更新後の第n+1次グローバルモデル51よりも評価が高い場合に、前回の第n次グローバルモデル51を選択することを示している。
図1のモデル学習システムの概要図と比較して、グローバルモデル51が常に、更新されるものが連綿と採用されるのではないことが示されている。
【0112】
1回のグローバルモデル51の更新の間に、各ノード1ではローカルデータが増加している、又は、更新されている。前回更新された第n次グローバルモデル51が採用され続けたとしても、各ノード1でアクセス可能なローカルデータに基づく評価が変化し得る。同一のグローバルモデル51でも、評価が高くなるグローバルモデル51が得られる。
【0113】
これにより、精度が良くなるように分散学習を進めることが可能になる。
【0114】
(第4の実施形態)
第4の実施形態では、各ノード1で学習されたローカルモデル52に基づくグローバルモデル51の更新方法が第1~第3の実施形態で説明した方法と異なる。第4の実施形態におけるモデル学習システム100の構成は、グローバルモデル51の更新処理の詳細を除いて第1の実施形態のモデル学習システム100と同様の構成であるから、共通する構成については同一の符号を付して詳細な説明を省略する。
【0115】
第4の実施形態のモデル学習システム100では、サーバ3は第1の実施形態の
図4のフローチャートに示した処理手順、第2の実施形態の
図8のフローチャートに示した処理手順、第3の実施形態の
図9及び
図10のフローチャートに示した処理手順のいずれかの学習処理手順を実行する。第4の実施形態では、それらの処理手順の内、ステップS4の更新処理が異なる。また、更新処理が異なることに対応して、ノード1から送信されるデータ内容も第1の実施形態での説明と異なる。
【0116】
図12は、第4の実施形態のノード1におけるローカルモデル52の学習処理手順の一例を示すフローチャートである。
図12のフローチャートに示す処理手順の内、第1の実施形態における
図5のフローチャートに示した処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
【0117】
ノード1の処理部10は、記憶装置2からその時点で記憶されているローカルデータを取得し(S303)、ローカルデータのデータ量(データ件数)を算出し(ステップS313)、処理をステップS304へ進める。
【0118】
ノード1の処理部10は、学習を実行する都度(S304)、学習量を算出し(ステップS314)、学習完了条件を満たすか否かを判断する(ステップS305)。
【0119】
ステップS314において処理部10は、学習の反復回数を学習量として算出してもよいし、前回のラウンドにおけるローカルモデル52からの精度の向上度合いを学習量として算出してもよいし、ローカルモデル52の変化量を学習量として算出してもよい。
【0120】
ステップS305において処理部10は、学習の結果、ローカルデータに対するニューラルネットワークからの出力データの精度が所定の条件を満たす、例えば精度が所定値以上である場合に、学習完了条件を満たすと判断してもよい。処理部10は、学習量(学習回数)が所定量(所定回数)以上である場合に学習完了条件を満たすと判断してもよい。
【0121】
ノード1の処理部10は、学習したローカルモデル52と共に、ステップS313で算出したデータ量、又は、カウントされている学習量をサーバ3へ送信し(ステップS317)、処理を終了する。これにより、サーバ3は、複数のノード1夫々から、ローカルデータで学習されたローカルモデル52と共に、元となるローカルデータのデータ量、又は、学習量を取得することができる。
【0122】
第4の実施形態においても、ノード1からは、ローカルデータのデータ量は送信されても、データ自体がサーバ3へ送信されることがない。
【0123】
図13は、第4の実施形態のサーバ3におけるグローバルモデル51の更新処理の一例を示すフローチャートである。
図13のフローチャートに示す処理手順の内、第1の実施形態の
図6のフローチャートに示した処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
【0124】
サーバ3の処理部30は、各ノード1から送信されるローカルモデル52、及びデータ量又は学習量を取得し(ステップS411)、ノード1の識別データと対応付けてローカルモデル52、及びデータ量又は学習量を記憶する(ステップS412)。ステップS411においてサーバ3の処理部30は、非同期に、各ノード1から送信されるローカルモデル52を取得する。
【0125】
処理部30は、更新すべきであると判断された場合(S403:YES)、サーバ3の処理部30は、複数のノード1からのローカルモデル52に、データ量又は学習量の重みを付与した加重平均を求める(ステップS414)。処理部30は、ローカルモデル52の加重平均を、新たなグローバルモデル51として更新する(ステップS415)。
【0126】
処理部30は、更新後のグローバルモデル51を、ラウンド情報を示すデータと対応付けて記憶し(S406)、グローバルモデル51の更新処理を終了する。
【0127】
更新後のグローバルモデル51の精度が所定の基準を満たすまで、
図13のフローチャートに示した更新処理を継続する。
【0128】
第4の実施形態における更新方法によって、データ量が異なるローカルデータによって学習されたモデルを、データ量に応じて扱い、適切に評価することが可能になる。また、異なる学習量のローカルモデル52を単純平均するよりも、グローバルモデル51の性能の向上が期待できる。
【0129】
(第5の実施形態)
図14は、第5の実施形態のモデル学習システム100の概要図である。第5の実施形態におけるモデル学習システム100の構成は基本的に、第1の実施形態のモデル学習システム100と同様である。第5の実施形態のモデル学習システム100の内、第1の実施形態のモデル学習システム100と共通する構成については同一の符号を付して詳細な説明を省略する。
【0130】
第5の実施形態において、モデル51,52に対して入力する眼底写真の画像データは、撮影装置20の種類を示す装置データと対応付けられている。装置データは型番でもよいし、装置メーカを識別するデータであってもよい。
【0131】
第5の実施形態においてモデル学習システム100では、サーバ3が予め特定の医療施設で複数の異なるアーキテクチャで作成された初期的なグローバルモデル(第0次グローバルモデル)51を取得する。サーバ3は、異なるアーキテクチャの第0次グローバルモデル51を、トレーニングに協力する医療施設のノード1へ各配布する。
【0132】
各ノード1は、配布された複数の第0次グローバルモデル51を受信し、異なる第0次グローバルモデル51に基づいてそれぞれ、ローカルデータをトレーニングデータとして学習を進行し、複数の第1次ローカルモデル52を得る。ノード1は、異なるアーキテクチャで学習された第1次ローカルモデル52をサーバ3へ送信する。
【0133】
サーバ3は、各ノード1から取得したローカルモデル52を、異なるアーキテクチャ毎に、加重平均して第1次グローバルモデル51を作成する。作成された第1次グローバルモデル51を、サーバ3は、複数のノード1へ再配布する。
【0134】
サーバ3は、配布した第n次グローバルモデル51から作成される第(n+1)次ローカルモデル52の取得、第(n+1)次ローカルモデル52からの第(n+1)次グローバルモデル51の更新を、異なるアーキテクチャ毎に繰り返す。
【0135】
サーバ3は、異なるアーキテクチャ毎に繰り返して得られたグローバルモデル51を、相互に比較し、精度がより高いアーキテクチャのグローバルモデル51を選択し、配布可能なモデルとしてノード1及び情報処理装置へ提供する。
【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の実施形態の
図5のフローチャートに示した処理手順と共通する手順については同一の符号を付して詳細な説明を省略する。
【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に記憶されている。新しく、品質が高い画像データを撮影する撮影装置20によるローカルデータから学習されたローカルモデル52については、重みを大きくし、古い撮影装置20から得られる画像データのローカルデータから学習されたローカルモデル52については、重みを小さくしてあってもよい。医療施設への普及率がより高い撮影装置20からのローカルデータによるローカルモデル52ほど、重みを大きくし、汎用性の高いモデルが作成されるようにしてもよい。異なる品質で集められているローカルデータから学習されたローカルモデル52を、そのまま平均した場合よりも、ローカルデータの品質に応じた重みをローカルモデル52に付与して加重平均を算出する場合の精度の向上が期待できる。
【0158】
ステップS424では、精度評価が所定の評価よりも低いローカルモデル52を除外することによって、評価に応じた重みを考慮したグローバルモデル51を作成することができる。なお所定の評価については、予めサーバ3のオペレータによって閾値が設定されてもよい。ノード1経由で、サーバ3のオペレータからのアクセスを許可して、ローカルモデル52の評価を受け付けもよい。
【0159】
ステップS424において、上述の例では、重みは、装置データに対応付けられているデータが採用された。これに限られず、ローカルデータに対するアノテーションの正確性についての評価を、各ノード1で記憶しておき、サーバ3は、その評価の高低に応じた重みによって加重平均を算出してもよい。アノテーションの正確性についての評価は、ノード1の管理者によって実行されてもよい。
【0160】
処理部30は、ステップS425で更新したグローバルモデル51を、アーキテクチャ毎に、記憶部31に記憶し(ステップS426)、処理を終了する。
【0161】
ステップS424の加重平均で用いられる重みは、医療データの属性に応じて付与されてもよい。例えば、患者の男女比、年齢分布、又は地域性等に応じた重みが付与されてもよい。これらの抽象化されたデータについてはローカルモデル52に反映されてもよい。
【0162】
第5の実施形態では、更新後のグローバルモデル51が学習完了条件を満たすまで、
図17のフローチャートに示した更新処理を継続する。
【0163】
第5の実施形態における更新方法によって、品質が異なるローカルデータによって学習されたモデルを、データの品質に応じて重みを変えて統合することができる。異なる品質のローカルモデル52を単純平均するよりも、グローバルモデル51の性能の向上が期待できる。
【0164】
第5の実施形態における更新方法によって、異なるアーキテクチャのCNNのいずれを用いたグローバルモデル51が最も適切であるかが評価されて配布可能となる。
【0165】
(第6の実施形態)
第6の実施形態では、ノード1は、グローバルモデル51を実際に利用するに際し、過去のバージョンを含めてオペレータがいずれかを選択することを可能にし、更に、グローバルモデル51をノード1用に最適化する。
【0166】
第6の実施形態におけるモデル学習システム100では、ノード1のノードプログラム1PはWebブラウザプログラムを含む。サーバ3は、サーバプログラム3Pに含まれるWebサーバプログラムに基づき、Webサーバとしての機能を発揮する。
【0167】
第6の実施形態におけるモデル学習システム100の構成は、サーバ3がWebサーバの機能によってノード1からの選択を受け付ける処理手順を含む詳細な処理手順以外は、第1の実施形態と同様である。第6の実施形態のモデル学習システム100の構成の内、第1の実施形態と共通する構成については同一の符号を付して詳細な説明を省略する。
【0168】
図18は、第6の実施形態における学習処理手順の一例を示すフローチャートである。
図18のフローチャートに示す処理手順の内、第1の実施形態の
図4のフローチャートに示した処理手順と共通する処理手順については同一のステップ番号を付して詳細な説明を省略する。
【0169】
サーバ3は、ステップS4でグローバルモデル51を更新すると(S4)、更新したグローバルモデル51に対する性能評価値を算出する(ステップS505)。サーバ3はステップS505において、特定のノード1又は情報処理装置4に対し、入力データを更新後のグローバルモデル51に入力した場合に、対応する出力データを出力する精度を評価値として算出してもよい。性能評価値は、各ノード1で算出される評価値を用いて算出してもよい。
【0170】
サーバ3は、算出した性能評価値を、更新回数に対応するラウンド情報と対応付けて、記憶部31に記憶し(ステップS506)、処理をステップS5へ進める。ラウンド情報は、更新回数のみならず、日時等であってもよい。サーバ3は、第0次から最初の数ラウンドにおいては、ステップS505,S506の処理を省略してもよい。
【0171】
このように第6の実施形態では、サーバ3は、グローバルモデル51の更新の都度、各世代のグローバルモデル51を、性能評価値と対応付けてラウンドを遡って読み出し可能に記憶部31に記憶する(S506)。
【0172】
サーバ3は、ステップS5で学習条件を満たすと判断されると(S5:YES)、最新ラウンドにおいて更新した後のグローバルモデル51を、配布可能なグローバルモデル51として、バージョン情報と対応付けて記憶する(ステップS507)。バージョン情報は、ステップS5にて学習完了条件を満たすと判断されるまでローカルモデル52の学習及びグローバルモデル51の更新を実行した回数に対応する。バージョン情報は、ラウンド情報をマイナーな情報として含んでもよい。
【0173】
サーバ3は、
図18のフローチャートに示した処理手順を、繰り返し実行し、実行の都度、ステップS507においてバージョン情報を変更して記憶する。これにより第6の実施形態では、サーバ3にて、グローバルモデル51の更新の過程に関する情報を、バージョン別、ラウンド毎に情報処理装置4又はノード1に向けて提供することが可能である。
【0174】
図19は、グローバルモデル51の参照処理及びノード1での追加学習手順の一例を示すフローチャートである。サーバ3は、サーバプログラム3Pに基づく以下の処理手順により、ノード1からの参照リクエストに応じてグローバルモデル51の更新履歴を提供し、ダウンロードを受け付ける。ノード1は、ノードプログラム1Pに基づいてグローバルモデル51の選択操作を受け付け、選択されたグローバルモデル51の再学習処理を実行する。
【0175】
ノード1のオペレータは、サーバ3から提供されるWebページへのアクセスを試みる。ノード1の処理部10は、ノードプログラム1Pに含まれるWebブラウザプログラムに基づき、リクエストをサーバ3へ送信する(ステップS701)。以下、Webブラウザプログラムに基づく処理は、Webブラウザのバックグラウンドで実行されてもよい。
【0176】
サーバ3は、リクエストを受信する(ステップS601)。サーバ3の処理部30は、リクエストに含まれるノード1のアカウント情報に応じて、アカウントに対応するグローバルモデル51の一覧を含むWebページを記憶部31から読み出してノード1へ送信する(ステップS602)。
【0177】
ノード1の管理者毎に、サーバ3へのアクセス用のアカウントが発行されている。アカウントは、アカウントID、認証情報、権限のデータを含む。サーバ3は、記憶部31にアカウントデータを記憶している。ノード1の管理者向けのアカウントには、グローバルモデル51の選択及びダウンロードの権限が対応付けられている。
【0178】
ノード1では処理部10が、グローバルモデル51の一覧を受信し(ステップS702)、グローバルモデル51の一覧を表示部13に表示し、グローバルモデル51の指定を受け付ける(ステップS703)。処理部10は、グローバルモデル51の指定をサーバ3へ送信する(ステップS704)。
【0179】
サーバ3は、Webサーバとしてノード1からグローバルモデル51の指定を受信し(ステップS603)、指定されたグローバルモデル51の性能評価値を含む更新履歴の一覧を含むWebページを送信する(ステップS604)。グローバルモデル51が更新される都度に、グローバルモデル51、及び性能評価値が、バージョン情報及びラウンド情報と対応付けて記憶されている。したがって、処理部30は記憶されているデータに基づいて更新履歴の一覧を作成できる。
【0180】
ノード1は、指定したグローバルモデル51の更新履歴の一覧を含むWebページを受信し(ステップS705)、処理部10は表示部13に表示させ(ステップS706)、一覧からバージョン情報(又はラウンド情報)の指定を受け付ける(ステップS707)。処理部10は、受け付けたバージョン情報の指定をサーバ3へ送信する(ステップS708)。
【0181】
サーバ3は、バージョン情報の指定を受信すると(ステップS605)、指定されたバージョンのグローバルモデル51の性能評価値、及びこのグローバルモデル51をノード1へ出力する(ステップS606)。サーバ3の処理は終了する。
【0182】
ノード1は、指定したバージョンのグローバルモデル51及び性能評価値をサーバ3から取得し(ステップS709)、処理部10は、性能評価値を表示部13に表示させ(ステップS710)、ノード1用に再学習するか否かを受け付ける(ステップS711)。
【0183】
再学習しないと受け付けられた場合(S711:NO)、処理部10は、受信したグローバルモデル51を記憶部11に記憶し(ステップS712)、処理を終了する。記憶されたグローバルモデル51は、以後、ノード1で利用可能になる。
【0184】
再学習すると受け付けられた場合(S711:YES)、処理部10は、受信したグローバルモデル51を実体化し、記憶装置2から取得できるローカルデータを与えて再学習を実行する(ステップS713)。処理部10は、再学習後のグローバルモデル51を記憶部11に記憶し(ステップS712)、処理を終了する。
【0185】
再学習が行なわれることにより、ノード1は、ノード1に対して性能が良いと選択されたグローバルモデル51を、ノード1で扱うローカルデータによって最適化したモデルとして以後、実用することができる。
【0186】
図20及び
図21は、ノード1で表示される画面例を示す。
図20は、グローバルモデル51の更新履歴画面432の一例を示す。
図20の更新履歴画面432は、サーバ3から送信されるグローバルモデル51の更新履歴の一覧を含む。更新履歴画面432は、グローバルモデル51のバージョン情報に対応するバージョン名に対応付けて、性能評価値、更新日時を表形式で示す。バージョン名を示すテキストは、個別ページへのリンクを含んで選択可能にしてある。バージョン名を示すテキストが選択されると、ノード1の処理部10によって、バージョン情報の指定が受け付けられる。
【0187】
図21は、グローバルモデル51の性能画面433の一例を示す。性能画面433は、
図20の更新履歴画面432で選択されたバージョン情報に対応するグローバルモデル51の性能を視覚化した画面であり、性能評価値を含む。
図21は、
図20で「ver4.0」のバージョンを選択した場合の性能画面433の例を示す。
図9の性能画面433には、指定されたバージョン情報のグローバルモデル51の、更新ラウンド毎に算出された性能評価値の推移を示すグラフが含まれる。
【0188】
性能画面433には、再学習を受け付けないでグローバルモデル51をダウンロードするためのインタフェース434と、再学習を受け付けるインタフェース435が含まれている。インタフェース434が選択されると、ノード1の処理部10は再学習せずにサーバ3から出力されたグローバルモデル51を記憶して以後利用する。
【0189】
インタフェース435が選択されると、ノード1の処理部10は、再学習を実行して(S713)、ノード1用にグローバルモデル51を最適化してから記憶し、以後利用する。
【0190】
これにより、ノード1の処理対象であるデータに対して精度が高いモデルを利用することが可能になる。
【0191】
(第7の実施形態)
第7の実施形態におけるモデル学習システム100は、ノード1によって算出されるグローバルモデル51の評価値を用いて性能評価値を算出する。また第7の実施形態では、ノード1が追加プログラム1Tに基づき、サーバ3におけるグローバルモデル51の学習途上で各バージョンの評価値を定期的に、自動的に参照し、より高い評価値のグローバルモデル51を取得し、再学習する。
【0192】
図22は、第7の実施形態におけるノード1の構成を示すブロック図である。ノード1の記憶部11には追加プログラム1Tが記憶されている。追加プログラム1T及び上述した詳細な処理手順を除き、第7の実施形態におけるモデル学習システム100の構成は第6の実施形態のモデル学習システム100と同様の構成である。したがって、共通する構成については同一の符号を付して詳細な説明を省略する。
【0193】
図23は、第7の実施形態のモデル学習システム100における学習処理手順の一例を示すフローチャートである。
図23のフローチャートに示す処理手順の内、
図18のフローチャートに示した処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
【0194】
ステップS4でグローバルモデル51を更新すると(S4)、サーバ3の処理部30は、更新後のグローバルモデル51を、複数のノード1へ送信する(ステップS521)。
【0195】
更新後のグローバルモデル51を受信した複数のノード1は夫々、送信されたグローバルモデル51を用いて、記憶装置2からローカルデータを読み出し、ローカルデータとして記憶している眼底写真の画像データを入力した場合の精度評価を実行する。ノード1の処理部10は、記憶装置2のローカルデータの眼底写真の画像データを入力した場合の精度を算出し、サーバ3へ送信する。処理部10は、精度として、各医療施設にて撮影された眼底写真の画像データをグローバルモデル51に入力した場合の出力データに基づく診断結果と、医療事業者が眼底写真を視認した場合の診断結果との合致率を算出してもよい。処理部10は、ノード1のオペレータから操作部14を介して、グローバルモデル51に判定させた場合の精度評価を受け付けてもよい。
【0196】
サーバ3の処理部30は、各ノード1から送信される評価値を取得し(ステップS522)、複数のノード1から取得した評価値から総評価値を算出する(ステップS523)。ステップS523において処理部30は、精度の平均値を算出してもよいし、合致率の平均でもよいし、オペレータから受けた評価の平均を求めてもよい。
【0197】
処理部30は、更新したグローバルモデル51に対してステップS502で各ノードから得た評価値、及びステップS523で算出した総評価値を、グローバルモデル51のラウンド情報と対応付けて記憶し(ステップS524)、処理をステップS5へ進める。
【0198】
処理部30は、学習完了条件を満たすと判断されると(S5:YES)、最新ラウンドにおいて更新した後のグローバルモデル51を、配布可能なグローバルモデル51として、バージョン情報と対応付けて記憶する(ステップS527)。
【0199】
サーバ3は、
図23のフローチャートに示した処理手順を、繰り返し実行し、実行の都度、ステップS527においてバージョン情報を変更して記憶する。これにより第6の実施形態では、サーバ3にて、グローバルモデル51の更新の過程に関する情報を、バージョン別、ラウンド毎に情報処理装置4又はノード1に向けて提供することが可能である。
【0200】
図23のフローチャートに示した処理手順により、各ノード1で実際に処理するローカルデータに基づく評価に基づき、各ノード1から、グローバルモデル51を選択可能になる。
【0201】
図24は、ノード1のモデル自動取得処理手順の一例を示すフローチャートである。ノード1の処理部10は、設定された周期が到来すると以下の処理手順を実行する。ノード1は、以下に示す処理手順を予め設定された周期、例えばグローバルモデル51の改訂(バージョンアップ)の周期に対応する周期で自動的に実行する。なお、ノード1のオペレータによる操作にて以下の処理を進めるようにしてもよい。
【0202】
ノード1の処理部10は、サーバ3から、最新のグローバルモデル51のバージョン情報及びそのバージョンのラウンド毎のグローバルモデル51の性能評価値を取得する(ステップS721)。
【0203】
処理部10は、バージョン情報が、前回取得したバージョン情報から更新されているか否かを判断する(ステップS722)。
【0204】
バージョン情報が更新されていないと判断された場合(S722:NO)、処理を終了し、次の周期が到来するまで待機する。
【0205】
バージョン情報が更新されていると判断された場合(S722:YES)、処理部10は、バージョン情報及び性能評価値を記憶する(ステップS723)。
【0206】
処理部10は、性能評価値が、他のバージョン情報に対応付けてすでに記憶されている性能評価値以上であるか否かを判断する(ステップS724)。性能評価値未満であると判断された場合(S724:NO)、処理部10は処理を終了する。
【0207】
性能評価値以上であると判断された場合(S724:YES)、処理部10は、更新されたバージョン情報を指定してグローバルモデル51の取得リクエストをサーバ3へ送信し(ステップS725)、グローバルモデル51を取得する(ステップS726)。
【0208】
処理部10は、取得したグローバルモデル51を、記憶装置2から取得できるローカルデータを用いて再学習を実行する(ステップS727)。処理部10は、再学習による精度を算出し(ステップS728)、算出した精度と対応付けて、再学習後のローカルモデル52を記憶部11に記憶するとともに(ステップS729)、サーバ3へ送信し(ステップS730)、処理を終了する。
【0209】
ノード1は、
図24のフローチャートに示した処理手順のみならず、以下のような手順で、自ノード1向けに最適なグローバルモデル51を取得してもよい。ノード1は、
図23のフローチャートで示したように、サーバ3から更新の都度に依頼されて算出する評価値、即ちステップS521の処理に応じて算出する評価値を、バージョン情報、ラウンド情報と対応付けて記憶しておく。ノード1は、自身のローカルデータで評価した評価値が最も高いグローバルモデル51を使用し、更に、ステップS727の再学習を実行し、最適化して利用する。
【0210】
これにより、グローバルモデル51の更新履歴の中で、ノード1が処理するローカルデータに最も適したグローバルモデル51を利用することが可能になる。一旦、評価値が最も高いとして選択し、取得したグローバルモデル51が、その後更新され、更に評価値が高くなった場合に、ノード1は追加プログラム1Tに基づいてこれを自動的に取得して最適化して利用できる。サーバ3側にも、各ローカルデータでの最適化後のグローバルモデル51が送信され、以後、更新の際の利用が可能になる。
【0211】
第7の実施形態においてサーバ3は、更新を繰り返して得られたグローバルモデル51を記憶しておく。各ノード1は、性能評価値が、各ノード1のローカルデータにとって最も高いグローバルモデル51を選択し、適宜、再学習して配布可能なモデルとして利用する。
【0212】
第7の実施形態では、グローバルモデル51又はローカルモデル52の評価値として、感度(=真陽性/(真陽性+偽陰性))、特異度(=真陰性/(偽陽性+真陰性))を算出して用いるようにしてもよい。
【0213】
上述のように開示された実施の形態は全ての点で例示であって、制限的なものではない。本発明の範囲は、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれる。
【符号の説明】
【0214】
1 ノード
10 処理部
2 記憶装置
3 サーバ
30 処理部
51 グローバルモデル
52 ローカルモデル