IP Force 特許公報掲載プロジェクト 2022.1.31 β版

知財求人 - 知財ポータルサイト「IP Force」

▶ 株式会社JSOLの特許一覧 ▶ 株式会社シンクアウトの特許一覧

特開2022-76276モデルのデータ提供方法、モデルのデータ提供システム、及びコンピュータプログラム
<>
  • 特開-モデルのデータ提供方法、モデルのデータ提供システム、及びコンピュータプログラム 図1
  • 特開-モデルのデータ提供方法、モデルのデータ提供システム、及びコンピュータプログラム 図2
  • 特開-モデルのデータ提供方法、モデルのデータ提供システム、及びコンピュータプログラム 図3
  • 特開-モデルのデータ提供方法、モデルのデータ提供システム、及びコンピュータプログラム 図4
  • 特開-モデルのデータ提供方法、モデルのデータ提供システム、及びコンピュータプログラム 図5
  • 特開-モデルのデータ提供方法、モデルのデータ提供システム、及びコンピュータプログラム 図6
  • 特開-モデルのデータ提供方法、モデルのデータ提供システム、及びコンピュータプログラム 図7
  • 特開-モデルのデータ提供方法、モデルのデータ提供システム、及びコンピュータプログラム 図8
  • 特開-モデルのデータ提供方法、モデルのデータ提供システム、及びコンピュータプログラム 図9
  • 特開-モデルのデータ提供方法、モデルのデータ提供システム、及びコンピュータプログラム 図10
  • 特開-モデルのデータ提供方法、モデルのデータ提供システム、及びコンピュータプログラム 図11
  • 特開-モデルのデータ提供方法、モデルのデータ提供システム、及びコンピュータプログラム 図12
  • 特開-モデルのデータ提供方法、モデルのデータ提供システム、及びコンピュータプログラム 図13
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】公開特許公報(A)
(11)【公開番号】P2022076276
(43)【公開日】2022-05-19
(54)【発明の名称】モデルのデータ提供方法、モデルのデータ提供システム、及びコンピュータプログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20220512BHJP
【FI】
G06N20/00
【審査請求】未請求
【請求項の数】8
【出願形態】OL
(21)【出願番号】P 2020186619
(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】
ローカルデータを各々処理する複数のノードと、該複数のノードから通信接続されるサーバとを含み、
前記サーバは、前記複数のノードへグローバルモデルのデータを配布し、
前記複数のノードは夫々、処理対象のローカルデータによって前記グローバルモデルからローカルモデルの学習を各々進め、
前記サーバが備える処理部は、
学習後の前記ローカルモデルのデータを前記複数のノードから取得し、
前記複数のノード夫々から取得した学習後のローカルモデルに基づいてグローバルモデルのデータを更新し、
更新後のグローバルモデルのデータをバージョン情報と対応付けて記憶し、
前記グローバルモデルのバージョン情報の指定と共に前記グローバルモデルの選択を受け付け、
指定されたバージョン情報が対応付けられている前記グローバルモデルのデータを出力し、
出力後のグローバルモデルを、前記ローカルデータによって追加学習させる
モデルのデータ提供システム。
【請求項7】
複数のノードに通信接続が可能なコンピュータに、
記憶しているグローバルモデルのデータを前記複数のノードに対して配布し、
前記複数のノードで処理するローカルデータによって前記グローバルモデルを基に学習したローカルモデルのデータを取得し、
前記複数のノード夫々から取得した学習後のローカルモデルに基づいてグローバルモデルのデータを更新し、
更新後のグローバルモデルのデータをバージョン情報と対応付けて記憶し、
前記グローバルモデルのバージョン情報の指定と共に前記グローバルモデルの選択を受け付け、
指定されたバージョン情報が対応付けられている前記グローバルモデルのデータを出力し、
出力後のグローバルモデルを、前記ローカルデータによって追加学習させる
処理を実行させるコンピュータプログラム。
【請求項8】
サーバと通信接続されるコンピュータに、
前記サーバから配布されるグローバルモデルのデータを基にして処理対象のローカルデータを用いたローカルモデルを学習する処理と、学習後のローカルモデルのデータを前記サーバへ送信する処理とを繰り返し、
異なるバージョン情報が対応付けられたグローバルモデルの一覧を含む画面データを前記サーバから受信し、
受信した画面データに基づいて前記コンピュータに備えられる表示部に、前記一覧を表示し、
前記一覧の内のいずれかのバージョン情報の指定を受け付け、
指定されたバージョン情報に対応するグローバルモデルのデータを取得し、
取得したグローバルモデルのデータに基づき、前記グローバルモデルに前記ローカルデータを与えて再学習する
処理を実行させるコンピュータプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本発明は、分散学習の実用化のためのモデルのデータ提供方法、モデルのデータ提供システム、及びコンピュータプログラムに関する。
【背景技術】
【0002】
深層学習に基づく学習モデルを用いた判定、認識等が実用化されている。学習モデルは多様な技術分野で活用できることが確認されている。学習モデルの精度を各種分野で実用化できる程度に向上するため膨大なトレーニングデータを用いたとしてもパラメータの収束に長時間を要し、精度が良くなるとも限らない。
【0003】
特許文献1には、学習対象の学習モデルのレプリカを複数用意し、それらの複数のモデルレプリカが、非同期で独自に学習する方法が開示されている。特許文献1では、パラメータサーバが複数に断片化されており、学習モデルの複数のレプリカが夫々、非同期で、断片化されたパラメータサーバからパラメータを取得して学習し、パラメータを各パラメータサーバへ返すことを繰り返す。このような分散処理により、学習モデルのパラメータが早期に収束するとされている。
【先行技術文献】
【特許文献】
【0004】
【特許文献1】米国特許第8768870号明細書
【発明の概要】
【発明が解決しようとする課題】
【0005】
特許文献1に開示されているような分散処理による深層学習の方法であっても、トレーニングデータは集約している。しかしながら、医療、金融、認証といった分野のデータは個人データであって機密性が高い。モデルの精度を高めるためにトレーニングデータとしてデータを集約するためには、データの提供に各個人の同意が必要である上、同意が得られたとしてもデータ管理の安全性に対するリスクが常につきまとう。
【0006】
本発明は、斯かる事情に鑑みてなされたものであり、分散学習に基づく学習モデルの実用化を促進するモデルのデータ提供方法、モデルのデータ提供システム、及びコンピュータプログラムを提供することを目的とする。
【課題を解決するための手段】
【0007】
本開示の一実施形態のモデルのデータ提供方法は、サーバに記憶するグローバルモデルのデータを複数のノードに対して配布し、前記複数のノードで処理するローカルデータによって前記グローバルモデルを基に学習したローカルモデルのデータを取得し、前記複数のノード夫々から取得した学習後のローカルモデルのデータに基づいてグローバルモデルのデータを更新し、更新後のグローバルモデルのデータをバージョン情報と対応付けて記憶し、前記グローバルモデルのバージョン情報の指定と共に前記グローバルモデルの選択を受け付け、指定されたバージョン情報が対応付けられている前記グローバルモデルのデータを出力し、出力後のグローバルモデルを、前記ローカルデータによって追加学習させる処理を含む。
【0008】
本開示の一実施形態のモデルのデータ提供システムは、ローカルデータを各々処理する複数のノードと、該複数のノードから通信接続されるサーバとを含み、前記サーバは、前記複数のノードへグローバルモデルのデータを配布し、前記複数のノードは夫々、処理対象のローカルデータによって前記グローバルモデルからローカルモデルの学習を各々進め、前記サーバが備える処理部は、学習後の前記ローカルモデルのデータを前記複数のノードから取得し、前記複数のノード夫々から取得した学習後のローカルモデルに基づいてグローバルモデルのデータを更新し、更新後のグローバルモデルのデータをバージョン情報と対応付けて記憶し、前記グローバルモデルのバージョン情報の指定と共に前記グローバルモデルの選択を受け付け、指定されたバージョン情報が対応付けられている前記グローバルモデルのデータを出力し、出力後のグローバルモデルを、前記ローカルデータによって追加学習させる。
【0009】
本開示の一実施形態のコンピュータプログラムは、複数のノードに通信接続が可能なコンピュータに、記憶しているグローバルモデルのデータを前記複数のノードに対して配布し、前記複数のノードで処理するローカルデータによって前記グローバルモデルを基に学習したローカルモデルのデータを取得し、前記複数のノード夫々から取得した学習後のローカルモデルに基づいてグローバルモデルのデータを更新し、更新後のグローバルモデルのデータをバージョン情報と対応付けて記憶し、前記グローバルモデルのバージョン情報の指定と共に前記グローバルモデルの選択を受け付け、指定されたバージョン情報が対応付けられている前記グローバルモデルのデータを出力し、出力後のグローバルモデルを、前記ローカルデータによって追加学習させる処理を実行させる。
【0010】
本開示の一実施形態のコンピュータプログラムは、サーバと通信接続されるコンピュータに、前記サーバから配布されるグローバルモデルのデータを基にして処理対象のローカルデータを用いたローカルモデルを学習する処理と、学習後のローカルモデルのデータを前記サーバへ送信する処理とを繰り返し、異なるバージョン情報が対応付けられたグローバルモデルの一覧を含む画面データを前記サーバから受信し、受信した画面データに基づいて前記コンピュータに備えられる表示部に、前記一覧を表示し、前記一覧の内のいずれかのバージョン情報の指定を受け付け、指定されたバージョン情報に対応するグローバルモデルのデータを取得し、取得したグローバルモデルのデータに基づき、前記グローバルモデルに前記ローカルデータを与えて再学習する処理を実行させる。
【0011】
本開示のモデルのデータ提供方法、モデルのデータ提供システム、及びコンピュータプログラムでは、サーバに学習のためのデータを集約させずに各ノードでグローバルモデルを基に学習したローカルモデルを集約してグローバルモデルが作成される。作成されるグローバルモデルは、ローカルモデルのデータに対して平均等の統計処理がされて得られるから、ノードにおいて、利用する前にローカルデータで再学習することにより、各ノード用に最適化が可能になる。
【0012】
本開示の一実施形態のモデルのデータ提供方法は、前記複数のノードに、異なるバージョン情報が対応付けられた複数のグローバルモデルに対し、記憶しているローカルデータを用いた場合の精度の評価値を各算出させ、算出された評価値と対応付けて前記グローバルモデルの選択を受け付ける
処理を含む。
【0013】
本開示のモデルのデータ提供方法では、評価値に基づき、利用するモデルをノードから選択し、選択したノードを最適化することができる。
【0014】
本開示の一実施形態のモデルのデータ提供方法は、前記複数のノードは夫々、記憶するローカルデータによって配布されるグローバルモデルをローカルデータ用に追加学習する追加プログラムを記憶しておき、出力されるグローバルモデルのデータに基づき、前記グローバルモデルを前記追加プログラムによって追加学習する。
【0015】
本開示のモデルのデータ提供方法では、追加プログラムによってノード側から自動的に、グローバルモデルを選択して取得し、ノード用に最適化してから利用することが可能になる。
【0016】
本開示の一実施形態のモデルのデータ提供方法は、前記複数のノードは夫々、医療施設に設置されて患者に関する医療データを記憶しており、前記グローバルモデル及びローカルモデルは、前記医療データが入力された場合に、診断を支援する診断支援データを出力するように学習される。
【0017】
本開示のモデルのデータ提供方法では、個人データである医療データについて、サーバで集約せずに学習を実行することができ、更に、サーバから提供されるグローバルモデルのデータを、ノード用に最適化してから利用することが可能になる。医療データは、患者の属性、既往歴、患者に対して実施した検査で得られる検査データ(画像、数値、又は音声)、投薬履歴等のいずれかを含む。医療データが入力された場合にモデルから得られる診断支援データは、病変の有無の判定結果、診断の基準となる数値、画像が入力された場合に診断をしやすくするように処理された画像を含む。
【0018】
本開示の一実施形態のモデルのデータ提供方法は、前記医療データは、患者に対して撮影された医療画像データである。
【0019】
医療画像データは、機密性が高い個人情報であり、また、医療施設単体ではデータ数が少ない場合があるためローカルデータのみでの学習では充分な精度を得ることが難しい。本開示のモデル提供方法では、複数のノードでのローカルモデルを集約してグローバルモデルのデータを更新する方法により、データ数が少ない医療施設であってもモデル学習システムに参加することで実用的なモデルを得ることができる。
【発明の効果】
【0020】
本開示のモデルのデータ提供方法によれば、学習用のデータを集約せずとも、多数のデータに基づいて分散学習されたモデルを、ローカルデータに対して精度が高まるように最適化してからノードで利用することが可能になる。
【図面の簡単な説明】
【0021】
図1】第1の実施形態のモデル提供システムの概要図である。
図2】ノードの構成を示すブロック図である。
図3】サーバの構成を示すブロック図である。
図4】モデル提供システムにおける学習処理手順の一例を示すフローチャートである。
図5】配布されたグローバルモデルに基づくローカルモデルの学習処理手順の一例を示すフローチャートである。
図6】サーバにおけるグローバルモデルの更新処理の一例を示すフローチャートである。
図7】グローバルモデルの参照処理及びノードでの追加学習手順の一例を示すフローチャートである。
図8】グローバルモデルの更新履歴画面の一例を示す。
図9】グローバルモデルの性能画面の一例を示す。
図10】第2の実施形態におけるノードの構成を示すブロック図である。
図11】第2の実施形態のモデル提供システムにおける学習処理手順の一例を示すフローチャートである。
図12】ノードのモデル自動取得処理手順の一例を示すフローチャートである。
図13】第3の実施形態のモデル提供システム100の概要図である。
【発明を実施するための形態】
【0022】
本開示をその実施の形態を示す図面を参照して具体的に説明する。
【0023】
(第1の実施形態)
図1は、第1の実施形態のモデル提供システム100の概要図である。モデル提供システム100は、データを記憶する記憶装置2に対して1又は複数設けられたノード1と、サーバ3と、ノード1及びサーバ3間を通信接続する通信網Nとを含む。
【0024】
記憶装置2は、物理量を測定するセンサ、画像を撮影するカメラ等、学習対象のデータを入出力する機器との間でデータの入出力が可能であり、それらのデータを蓄積する。記憶装置2は、操作によって入力されるデータに応じて出力する特定用途の計算機に接続されてもよい。記憶装置2は、ユーザが用いる情報端末の記憶装置であってもよい。記憶装置2は、クライアント装置からデータを収集するサーバ装置に使用される記憶装置であってもよい。
【0025】
ノード1は、記憶装置2が記憶しているデータと同種のデータが入力された場合に、データに基づいて認識結果、判定結果、又は新たなデータを出力するように、モデルの深層学習を実行する。サーバ3は、ノード1に対してモデルを提供するコンピュータであると共に、ノード1と協働してモデルを学習するモデル提供システム100を実現する。記憶装置2が記憶しているデータ(以下、ローカルデータという)をトレーニングデータとしてモデルの学習を実行するには、これらにアクセスできる必要がある。本実施の形態のモデル提供システム100は、サーバ3からのローカルデータへのアクセスを不可とした状態で、学習を進行させることができる。
【0026】
サーバ3は、初期的に、第0次グローバルモデル51を得る。サーバ3は、第0次グローバルモデル51を、通信網Nを介してノード1へ配布する。サーバ3からノード1へ配布されるグローバルモデル51の実体(データ)は、学習済みのパラメータのみ、又は、学習済みのパラメータとプログラムの両方である。グローバルモデル51は、モデルの構成を定義する定義データ(ネットワーク定義、損失や予め設定されるハイパーパラメータを含む)と、学習対象の重み係数等のパラメータとであってもよい。
【0027】
学習対象のモデルは、深層学習と呼ばれる学習の対象であればアーキテクチャは問わない。深層学習のモデルの種類は、入力データ及び出力データの内容に応じて適切に選択されるべきである。以下説明する学習対象のモデルは、畳み込み層を含むCNN(Convolutional Neural Network)を用いた分類系、検出系、又は生成系等のいずれでもよいし、時系列要素を加味して学習するRNN(Recurrent Neural Network)であってもよい。
【0028】
通信網Nは、所謂インターネットである公衆通信網、キャリアネットワークを含む。通信網Nは、モデル提供システム100用の専用回線であってもよい。
【0029】
ノード1は、記憶装置2との間のローカルネットワークLNに基づいて、記憶装置2に蓄積されたローカルデータにアクセス可能である。ノード1は、アクセス可能なローカルデータを用いて深層学習を実行する。ローカルデータに対しては既に、ノード1が設置されている場所のオペレータによってアノテーションが実施済であるとよい。ノード1は、サーバ3から配布される第0次グローバルモデル51を取得する。ノード1は、第0次グローバルモデル51を基に、ローカルデータをトレーニングデータとして学習を進行し、第1次ローカルモデル52を得る。
【0030】
ノード1は、第1次ローカルモデル52を、サーバ3へ送信する。ローカルデータはサーバ3へ送信されないから、ローカルデータの抽象化、匿名化等の処理は不要である。
【0031】
サーバ3は、複数のノード1夫々から第1次ローカルモデル52を複数受信し、受信した複数の第1次ローカルモデル52に対して統計処理を実行して第1次グローバルモデル51を作成する。サーバ3は、第1次グローバルモデル51を、複数のノード1へ再配布する。再配布されるグローバルモデル51は、重み係数のみであってもよい。再配布される重み係数は学習対象であってもよいし、全体であってもよい。再配布されるグローバルモデル51は、前回の更新からの差分に対応するものであってもよい。
【0032】
モデル提供システム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から可能であってもよい(クラウド型)。
【0033】
これにより、サーバ3からローカルデータへのアクセスを許可することなく、分散学習が可能になる。
【0034】
分散学習によってノード1以外へも配布可能な精度までに学習されたグローバルモデル51は、各ノード1に加え、ローカルモデル52の作成に参加しない情報処理装置6へも配布され、使用される。
【0035】
モデル提供システム100では、ノード1は、グローバルモデル51を実際に利用するに際し、過去のバージョンを含めてオペレータがいずれかを選択することを可能にし、更に、グローバルモデル51をノード1用に最適化する。
【0036】
このような学習方法を実現するためのモデル提供システム100の構成について詳細に説明する。
【0037】
図2は、ノード1の構成を示すブロック図である。ノード1は、パーソナルコンピュータ又はサーバコンピュータである。ノード1は、処理部10、記憶部11、通信部12、表示部13及び操作部14を備える。
【0038】
処理部10は、CPU(Central Processing Unit )及び/又はGPU(Graphics Processing Unit)を用いたプロセッサである。処理部10は、記憶部11に記憶されているノードプログラム1Pに基づき、記憶装置2からのデータの読み出し、サーバ3との間でのモデルの送受信、モデル学習、及び追加学習を含む処理を実行する。
【0039】
記憶部11は、例えばハードディスク、フラッシュメモリ、SSD(Solid State Drive)等の不揮発性メモリを用いる。記憶部11は、処理部10が参照するデータを記憶する。記憶部11は、ノードプログラム1Pを記憶する。ノードプログラム1PはWebブラウザプログラムを含む。記憶部11は、深層学習用のライブラリ1Lを記憶する。ノードプログラム1P及び/又は深層学習用のライブラリ1Lは、記録媒体8に記憶してあるノードプログラム8P及び/又は深層学習用のライブラリ8Lを処理部10が読み出して記憶部11に複製したものであってもよい。記憶部11は、サーバ3から取得するグローバルモデル51、及び、ローカルデータによって学習されるローカルモデル52夫々を記憶する。
【0040】
通信部12は、通信網Nを介したデータ通信、及び、ローカルネットワークLNを介した記憶装置2との通信を各々実現する。通信部12は具体的には、例えばネットワークカードである。処理部10は、通信部12によって記憶装置2からデータを読み出し、サーバ3との間でデータを送受信する。
【0041】
表示部13は、液晶ディスプレイ、有機EL(Electro Luminescence)ディスプレイ等のディスプレイである。表示部13は、記憶部11に記憶されているデータに基づく情報、又はサーバ3から提供されるデータを含む画面を表示する。表示部13は、タッチパネル内蔵型ディスプレイであってもよい。
【0042】
操作部14は、処理部10との間で入出力が可能なキーボード及びポインティングデバイス等のユーザインタフェースである。操作部14は、音声入力部であってもよい。操作部14は、表示部13のタッチパネルであってもよい。操作部14は、物理ボタンであってもよい。操作部14は、ノード1のオペレータによる操作データを処理部10へ通知する。
【0043】
図3は、サーバ3の構成を示すブロック図である。サーバ3は、サーバコンピュータである。サーバ3は、処理部30、記憶部31及び通信部32を備える。サーバ3は、以下の説明においては1台のサーバコンピュータによって構成されるものとして説明するが、複数台のサーバコンピュータをネットワークで通信接続して分散処理させる態様であってもよい。サーバ3は、通信網Nを介して各ノード1から通信接続が可能なクラウド型であってもよいし、仮想的なプライベートネットワークを介して各ノード1と通信接続するオンプレミス型であってもよい。
【0044】
処理部30は、CPU及び/又はGPUを用いたプロセッサである。処理部30は、記憶部31に記憶されているサーバプログラム3Pに基づき、グローバルモデル51の学習処理を実行する。処理部30は、サーバプログラム3Pに含まれるWebサーバプログラムに基づき、Webサーバとしての機能を発揮する。
【0045】
記憶部31は、例えばハードディスク、SSD等の不揮発性メモリを用いる。記憶部31は、処理部30が参照するデータを記憶する。記憶部31は、サーバプログラム3Pを記憶する。記憶部31は、学習対象のグローバルモデル51、複数のノード1から送信されるローカルモデル52を記憶する。サーバプログラム3Pは、記録媒体9に記憶してあるサーバプログラム9Pを処理部30が読み出して記憶部31に複製したものであってもよい。
【0046】
通信部32は、通信網Nを介したデータ通信を実現する。通信部32は具体的には、例えばネットワークカードである。処理部30は、通信部32によって複数のノード1との間でデータを送受信する。
【0047】
このように構成されるモデル提供システム100における学習処理手順について説明する。図4は、モデル提供システム100における学習処理手順の一例を示すフローチャートである。
【0048】
サーバ3は、予め用意された初期的な(第0次)グローバルモデル51を取得する(ステップS1)。初期的なグローバルモデル51は、特定のノード1で第0次モデルとして作成されたモデルであってもよいし、ノード1ではなく特定の場所で学習されたモデルであってもよく、予め記憶部31に記憶してあるとよい。ステップS1の取得は、予め記憶部31に記憶されているグローバルモデル51の読み出しを含む。
【0049】
サーバ3は、取得した第0次グローバルモデル51をノード1へ配布する(ステップS2)。
【0050】
サーバ3は、ノード1へ配布したグローバルモデル51を基に、ノード1で学習されるローカルモデル52を取得する(ステップS3)。
【0051】
サーバ3は、取得したローカルモデル52に対して統計処理を実行し、次世代のグローバルモデル51に更新する(ステップS4)。ステップS4においてサーバ3は、更新(ラウンド)回数を、加算して記憶してもよい。
【0052】
サーバ3は、更新したグローバルモデル51に対する性能評価値を算出する(ステップS5)。サーバ3はステップS5において、特定のノード1又は情報処理装置6に対し、入力データを更新後のグローバルモデル51に入力した場合に、対応する出力データを出力する精度を評価値として算出してもよい。性能評価値は、後述するように各ノード1からの評価値を用いて算出してもよい。
【0053】
サーバ3は、算出した性能評価値を、更新(ラウンド)回数に対応するラウンド情報と対応付けて、記憶部31に記憶する(ステップS6)。ラウンド情報は、更新回数のみならず、日時等であってもよい。サーバ3は、第0次から最初の数ラウンドにおいては、ステップS5,6の処理を省略してもよい。
【0054】
サーバ3は、更新したグローバルモデル51が学習完了条件を満たすか否か判断する(ステップS7)。
【0055】
ステップS7についてサーバ3は例えば、更新回数が所定回数に到達したか否かで判断する。サーバ3は、ステップS5で算出した性能評価値が、予め記憶してある基準値を満たした場合に、学習完了条件を満たすと判断してもよい。サーバ3はステップS7において、更新前と比較して性能評価値が向上していないと判断される場合に学習完了条件を満たすと判断してもよい。
【0056】
学習完了条件を満たさないと判断された場合(S7:NO)、サーバ3は、更新後のグローバルモデル51を複数のノード1へ再分配し(ステップS8)、処理をステップS3へ戻す。
【0057】
ステップS8においてサーバ3は、グローバルモデル51をそのまま再配布するのではなく、重み係数等のパラメータのみ等、更新前のグローバルモデルからの差分のみを、サーバ3から再配布してもよい。
【0058】
ステップS8においてサーバ3は、何回目の更新後のグローバルモデル51であるのか、即ち第n次グローバルモデル51の「n」を示すデータを共に送信するとよい。ステップS8においてサーバ3は、ステップS6で記憶したラウンド情報を、グローバルモデル51に対応付けて送信するとよい。ラウンド情報は、上述したように、ステップS7で学習完了条件を満たすと判断されるまでに、ノード1への分配及び統計処理を実行した回数を示す情報である。サーバ3は、グローバルモデル51の種類、例えばどのようなアーキテクチャの深層学習がされたのか、を示すデータを共に送信してもよい。
【0059】
学習完了条件を満たすと判断された場合(S7:YES)、サーバ3は、更新後のグローバルモデル51を、ノード1以外へも配布可能なグローバルモデル51としてバージョン情報と対応付けて記憶する(ステップS9)。バージョン情報は、ステップS7にて学習完了条件を満たすと判断されるまでローカルモデル52の学習及びグローバルモデル51の更新を実行した回数に対応する。バージョン情報は、ラウンド情報をマイナーな情報として含んでもよい。
【0060】
サーバ3は、記憶したグローバルモデル51を複数のノード1又は他の情報処理装置6へ送信し(ステップS10)、処理を終了する。他の情報処理装置6とは、ノード1同様に、学習対象と同種のデータを用いるが、ローカルデータをトレーニング用に提供しない装置である(図1参照)。
【0061】
サーバ3は、図4のフローチャートに示した処理手順を、複数、例えば月に一度といった周期で実行する。その都度、グローバルモデルのバージョンが上昇し、より実用的なモデルとなる。
【0062】
図5は、配布されたグローバルモデル51に基づくローカルモデル52の学習処理手順の一例を示すフローチャートである。図5のフローチャートに示す処理は、サーバ3がステップS2又はステップS8でグローバルモデル51を配布した場合に、複数のノード1夫々で実行する処理である。
【0063】
ノード1の処理部10は、配布されたグローバルモデル51を受信し、記憶部11に記憶する(ステップS301)。
【0064】
ノード1の処理部10は、記憶したグローバルモデル51をインスタンスとしてロードする(ステップS302)。処理部10は、記憶装置2に記憶してあるローカルデータをトレーニングデータとして取得し(ステップS303)、これをグローバルモデル51に与えて学習を実行する(ステップS304)。
【0065】
ステップS304において処理部10は、ロードしたグローバルモデル51に対してローカルデータの入力データを入力する。処理部10は、出力されたデータと、ローカルデータに含まれる前記入力データに対応する結果データとに対する損失を算出する。処理部10は、算出した損失に基づいて配布されたグローバルモデル51における重み係数を含むパラメータを学習する。
【0066】
ノード1の処理部10は、学習完了条件を満たすか否かを判断する(ステップS305)。ステップS305において処理部10は、学習(更新)回数が所定回数(1回以上)を満たすことを学習完了条件とする。処理部10は、学習後のグローバルモデル51の出力精度が記憶してある所定値以上である場合に、学習完了条件を満たすと判断してもよい。処理部10は、出力精度の変化が所定範囲内に収まり、収束していると判断できる場合に学習完了条件を満たすと判断してもよい。
【0067】
学習完了条件を満たさないと判断された場合(S305:NO)、処理部10は処理をステップS304)へ戻す。これにより、学習が続行される。
【0068】
学習完了条件を満たすと判断された場合(S305:YES)、処理部10は学習を終了し、パラメータが更新されたグローバルモデル51を、ローカルモデル52として記憶する(ステップS306)。
【0069】
ノード1の処理部10は、記憶したローカルモデル52を、サーバ3へ送信し(ステップS307)、処理を終了する。これにより、サーバ3は、複数のノード1夫々から、ローカルデータで学習されたローカルモデル52を取得することができる。
【0070】
ステップS307において処理部10は、第n次のローカルモデル52なのか、又は元となるグローバルモデル51が第n次なのかの「n」を示すデータを共に送信するとよい。ステップS307においてノード1は、後述するように1回の学習完了までの更新回数に対応するラウンド情報を得られる場合にはそのラウンド情報を、ローカルモデル52に対応付けて送信してもよい。
【0071】
図5のフローチャートに示した処理によってノード1からは、ローカルデータがサーバ3へ送信されることがない点が、着目されるべきである。ローカルデータの匿名化も実行されない。ノード1から送信されるデータは、モデルそのものである。ローカルデータの特性は反映されているが、データの送信はされない。
【0072】
図6は、サーバ3におけるグローバルモデル51の更新処理の一例を示すフローチャートである。図6のフローチャートに示す処理手順は、図4のフローチャートに示す処理手順の内のステップS4の詳細に対応する。
【0073】
サーバ3の処理部30は、ノード1から送信されるローカルモデル52を取得し(ステップS401)、ノード1の識別データと対応付けてローカルモデル52を記憶する(ステップS402)。ステップS401においてサーバ3の処理部30は、非同期に各ノード1から送信されるローカルモデル52を取得する。
【0074】
処理部30は、取得したローカルモデル52でグローバルモデル51を更新すべきか否かを判断する(ステップS403)。ステップS403において処理部30は、グローバルモデル51を配布した配布先のノード1全てからローカルモデル52を取得できた場合に更新すべきであると判断してもよい。ステップS403において処理部30は、予め決定しておいた代表的の複数のノード1からローカルモデル52を取得できた場合に更新すべきであると判断してもよい。
【0075】
更新すべきでないと判断された場合(S403:NO)、サーバ3の処理部30は処理をステップS401へ戻す。更新すべきであると判断されるまで、各ノード1から送信されるローカルモデル52を取得し、集約する。
【0076】
更新すべきであると判断された場合(S403:YES)、サーバ3の処理部30は、複数のノード1からのローカルモデル52の平均を求める(ステップS404)。処理部30は、平均を新たなグローバルモデル51として更新する(ステップS405)。
【0077】
処理部30は、更新後のグローバルモデル51を、ラウンド情報、例えば更新回数(第n次)を示すデータ「n」と対応付けて記憶し(ステップS406)、グローバルモデル51の更新処理を終了する。これにより、第n-1次グローバルモデル51は、第n次グローバルモデル51に更新される。
【0078】
ステップS406において処理部30は、各世代のグローバルモデル51を、更新回数を遡って読み出し可能に記憶部31に記憶する。
【0079】
上述したように第1の実施形態のモデル提供システム100では、ローカルデータはサーバ3へ送信されることなしに、各所に記憶されているローカルデータを用いた学習結果に基づいてグローバルモデル51が実用化される。各所のローカルデータのみでは、データ量が不足するような場合であっても、1箇所に集約させた大量のデータによる学習よりも精度よく、且つ早期に実用可能なモデルを提供することが可能になる。
【0080】
第1の実施形態では、サーバ3がグローバルモデル51の学習(更新)及び改訂(バージョンアップ)の過程でラウンド情報、及びバージョン情報と対応付けて、グローバルモデル51を記憶している。したがって、サーバ3にて、更新の過程に関する情報を、バージョン別、ラウンド毎に、モニタ4又はノード1に向けて提供することが可能である。
【0081】
図7は、グローバルモデル51の参照処理及びノード1での追加学習手順の一例を示すフローチャートである。サーバ3は、サーバプログラム3Pに基づく以下の処理手順により、ノード1からの参照リクエストに応じてグローバルモデル51の更新履歴を提供し、ダウンロードを受け付ける。ノード1は、ノードプログラム1Pに基づいてグローバルモデル51の選択操作を受け付け、選択されたグローバルモデル51の再学習処理を実行する。
【0082】
ノード1のオペレータは、サーバ3から提供されるWebページへのアクセスを試みる。ノード1の処理部10は、ノードプログラム1Pに含まれるWebブラウザプログラムに基づき、リクエストをサーバ3へ送信する(ステップS201)。以下、Webブラウザプログラムに基づく処理は、Webブラウザのバックグラウンドで実行されてもよい。
【0083】
サーバ3は、リクエストを受信する(ステップS601)。サーバ3の処理部30は、リクエストに含まれるノード1のアカウント情報に応じて、アカウントに対応するグローバルモデル51の一覧を含むWebページを記憶部31から読み出してノード1へ送信する(ステップS602)。
【0084】
ノード1の管理者毎に、サーバ3へのアクセス用のアカウントが発行されている。アカウントは、アカウントID、認証情報、権限のデータを含む。サーバ3は、記憶部31にアカウントデータを記憶している。ノード1の管理者向けのアカウントには、グローバルモデル51の選択及びダウンロードの権限が対応付けられている。
【0085】
ノード1では処理部10が、グローバルモデル51の一覧を受信し(ステップS202)、グローバルモデル51の一覧を表示部13に表示し、グローバルモデル51の指定を受け付ける(ステップS203)。処理部10は、グローバルモデル51の指定をサーバ3へ送信する(ステップS204)。
【0086】
サーバ3は、Webサーバとしてノード1からグローバルモデル51の指定を受信し(ステップS603)、指定されたグローバルモデル51の性能評価値を含む更新履歴の一覧を含むWebページを送信する(ステップS604)。図4のフローチャートに示したように、グローバルモデル51が更新される都度に、グローバルモデル51、及び性能評価値が、バージョン情報と対応付けて記憶されている。したがって、処理部30は記憶されているデータに基づいて更新履歴の一覧を作成できる。
【0087】
ノード1は、指定したグローバルモデル51の更新履歴の一覧を含むWebページを受信し(ステップS205)、処理部10は表示部13に表示させ(ステップS206)、一覧からバージョン情報(又はラウンド情報)の指定を受け付ける(ステップS207)。処理部10は、受け付けたバージョン情報の指定をサーバ3へ送信する(ステップS208)。
【0088】
サーバ3は、バージョン情報の指定を受信すると(ステップS605)、指定されたバージョンのグローバルモデル51の性能評価値、及びこのグローバルモデル51をノード1へ出力する(ステップS606)。サーバ3の処理は終了する。
【0089】
ノード1は、指定したバージョンのグローバルモデル51及び性能評価値をサーバ3から取得し(ステップS209)、処理部10は、性能評価値を表示部13に表示させ(ステップS210)、ノード1用に再学習するか否かを受け付ける(ステップS211)。
【0090】
再学習しないと受け付けられた場合(S211:NO)、処理部10は、受信したグローバルモデル51を記憶部11に記憶し(ステップS212)、処理を終了する。記憶されたグローバルモデル51は、以後、ノード1で利用可能になる。
【0091】
再学習すると受け付けられた場合(S211:YES)、処理部10は、受信したグローバルモデル51を実体化し、記憶装置2から取得できるローカルデータを与えて再学習を実行する(ステップS213)。処理部10は、再学習後のグローバルモデル51を記憶部11に記憶し(ステップS212)、処理を終了する。
【0092】
再学習が行なわれることにより、ノード1は、ノード1に対して性能が良いと選択されたグローバルモデル51を、ノード1で扱うローカルデータによって最適化したモデルとして以後、実用することができる。
【0093】
図8及び図9は、ノード1で表示される画面例を示す。図8は、グローバルモデル51の更新履歴画面431の一例を示す。図8の更新履歴画面431は、サーバ3から送信されるグローバルモデル51の更新履歴の一覧を含む。更新履歴画面431は、グローバルモデル51のバージョン情報に対応するバージョン名に対応付けて、性能評価値、更新日時を表形式で示す。バージョン名を示すテキストは、個別ページへのリンクを含んで選択可能にしてある。バージョン名を示すテキストが選択されると、ノード1の処理部10によって、バージョン情報の指定が受け付けられる。
【0094】
図9は、グローバルモデル51の性能画面432の一例を示す。性能画面432は、図8の更新履歴画面431で選択されたバージョン情報に対応するグローバルモデル51の性能を視覚化した画面であり、性能評価値を含む。図9は、図8で「ver4.0」のバージョンを選択した場合の性能画面432の例を示す。図9の性能画面432には、指定されたバージョン情報のグローバルモデル51の、更新ラウンド毎に算出された性能評価値の推移を示すグラフが含まれる。
【0095】
性能画面432には、再学習を受け付けないでグローバルモデル51をダウンロードするためのインタフェース433と、再学習を受け付けるインタフェース434が含まれている。インタフェース433が選択されると、ノード1の処理部10は再学習せずにサーバ3から出力されたグローバルモデル51を記憶して以後利用する。
【0096】
インタフェース434が選択されると、ノード1の処理部10は、再学習を実行して(S213)、ノード1用にグローバルモデル51を最適化してから記憶し、以後利用する。
【0097】
これにより、ノード1の処理対象であるデータに対して精度が高いモデルを利用することが可能になる。
【0098】
(第2の実施形態)
第2の実施形態におけるモデル提供システム100は、ノード1にて、グローバルモデル51に対してローカルデータに基づく評価値を算出し、その評価値を用いて性能評価値を算出する。また第2の実施形態では、ノード1が追加プログラム1Tに基づき、サーバ3におけるグローバルモデル51の学習途上で各バージョンの評価値を定期的に、自動的に参照し、より高い評価値のグローバルモデル51を取得し、再学習する。
【0099】
図10は、第2の実施形態におけるノード1の構成を示すブロック図である。ノード1の記憶部11には追加プログラム1Tが記憶されている。追加プログラム1T及び上述した詳細な処理手順以外を除き、第2の実施形態におけるモデル提供システム100の構成は第1の実施形態のモデル提供システム100と同様の構成である。したがって、共通する構成については同一の符号を付して詳細な説明を省略する。
【0100】
図11は、第2の実施形態のモデル提供システム100における学習処理手順の一例を示すフローチャートである。図11のフローチャートに示す処理手順の内、図4のフローチャートに示した処理手順と共通する手順については同一のステップ番号を付して詳細な説明を省略する。
【0101】
ステップS4でグローバルモデル51を更新すると(S4)、サーバ3の処理部30は、更新後のグローバルモデル51を、複数のノード1へ送信する(ステップS501)。
【0102】
更新後のグローバルモデル51を受信した複数のノード1は夫々、送信されたグローバルモデル51を用いて、記憶装置2からローカルデータを読み出し、入力データに対する精度評価を実行する。ノード1の処理部10は、ローカルデータの入力データを入力した場合の精度を算出し、サーバ3へ送信する。処理部10は、精度として、ローカルデータにおける入力データに対応する出力データとの合致率を算出してもよいし、ノード1のオペレータから表示部13及び操作部14を介して精度評価を受け付けてもよい。
【0103】
サーバ3の処理部30は、各ノード1から送信される評価値を取得し(ステップS502)、複数のノード1から取得した評価値から総評価値を算出する(ステップS503)。ステップS503において処理部30は、精度の平均値を算出してもよいし、合致率の平均でもよいし、オペレータから受けた評価の平均を求めてもよい。
【0104】
処理部30は、更新したグローバルモデル51に対してステップS502で各ノードから得た評価値、及びステップS503で算出した総評価値を、グローバルモデル51のラウンド情報と対応付けて記憶し(ステップS504)、処理をステップS7へ進める。
【0105】
図11のフローチャートに示した処理手順により、各ノード1で実際に処理するローカルデータに基づく評価に基づき、各ノード1から、グローバルモデル51を選択可能になる。
【0106】
図12は、ノード1のモデル自動取得処理手順の一例を示すフローチャートである。ノード1の処理部10は、設定された周期が到来すると以下の処理手順を実行する。ノード1は、以下に示す処理手順を予め設定された周期、例えばグローバルモデル51の改訂(バージョンアップ)の周期に対応する周期で自動的に実行する。なお、ノード1のオペレータによる操作にて以下の処理を進めるようにしてもよい。
【0107】
ノード1の処理部10は、サーバ3から、最新のグローバルモデル51のバージョン情報及び性能評価値を取得する(ステップS221)。
【0108】
処理部10は、バージョン情報が、前回取得したバージョン情報から更新されているか否かを判断する(ステップS222)。
【0109】
バージョン情報が更新されていないと判断された場合(S222:NO)、処理を終了し、次の周期が到来するまで待機する。
【0110】
バージョン情報が更新されていると判断された場合(S222:YES)、処理部10は、バージョン情報及び性能評価値を記憶する(ステップS223)。
【0111】
処理部10は、性能評価値が、他のバージョン情報に対応付けてすでに記憶されている性能評価値以上であるか否かを判断する(ステップS224)。性能評価値未満であると判断された場合(S224:NO)、処理部10は処理を終了する。
【0112】
性能評価値以上であると判断された場合(S224:YES)、処理部10は、更新されたバージョン情報を指定してグローバルモデル51の取得リクエストをサーバ3へ送信し(ステップS225)、グローバルモデル51を取得する(ステップS226)。
【0113】
処理部10は、取得したグローバルモデル51を、記憶装置2から取得できるローカルデータを用いて再学習を実行する(ステップS227)。処理部10は、再学習による精度を算出し(ステップS228)、算出した精度と対応付けて、再学習後のローカルモデル52を記憶部11に記憶するとともに(ステップS229)、サーバ3へ送信し(ステップS230)、処理を終了する。
【0114】
ノード1は、図12のフローチャートに示した処理手順のみならず、以下のような手順で、自ノード1向けに最適なグローバルモデル51を取得してもよい。ノード1は、図11のフローチャートで示したように、サーバ3から更新の都度に依頼されて算出する評価値、即ちステップS501の処理に応じて算出する評価値を、バージョン情報、ラウンド情報と対応付けて記憶しておく。ノード1は、自身のローカルデータで評価した評価値が最も高いグローバルモデル51を使用し、更に、ステップS227の再学習を実行し、最適化して利用する。
【0115】
これにより、グローバルモデル51の更新履歴の中で、ノード1が処理するローカルデータに最も適したグローバルモデル51を利用することが可能になる。一旦、評価値が最も高いとして選択し、取得したグローバルモデル51が、その後更新され、更に評価値が高くなった場合に、ノード1は追加プログラム1Tに基づいてこれを自動的に取得して最適化して利用できる。サーバ3側にも、各ローカルデータでの最適化後のグローバルモデル51が送信され、以後、更新の際の利用が可能になる。
【0116】
(第3の実施形態)
モデル提供システム100は、ニューラルネットワークを始めとする深層学習のモデルに適用できる。例えば、入力データは画像データであり、出力データは画像データの画像に写っている被写体の検出結果、又は被写体に対する判定結果である。他の例では、入力データは、入出金データであり、出力データは評価等の判定結果、あるいは企業業況変化(成長または劣化)に関する予測値や経済予測に関する予測値である。他の例では、入力データは、工場、生産設備に設けられた各種センサからの測定データであり、出力データは異常/正常を含む生産管理に関するデータである。他の例では、入力データはテキストデータであり、出力データは判定結果、または予測データである。
【0117】
図13は、第3の実施形態のモデル提供システム100の概要図である。第3の実施形態のモデル提供システム100は、医療施設にて患者に関して得られる医療データから、患者に特定の病気の症状が発生しているか否かの診断を支援するデータを出力するモデルの学習、及び提供に適用させる。
【0118】
モデル提供システム100の構成は基本的に、第1又は第2の実施形態のモデル提供システム100と同様である。第3の実施形態においてノード1及び情報処理装置6は、医療施設に設けられている。ノード1及び情報処理装置6は、患者の眼底写真を撮影する撮影装置7から得られる画像データを取得できる。ノード1が設けられている医療施設では、撮影装置7は記憶装置2に対して画像データを出力する。撮影装置は、異なる種類の装置を含む。
【0119】
第3の実施形態においてグローバルモデル51、ローカルモデル52及び配布可能として記憶されたモデルは、画像データが入力された場合に、緑内障の診断を支援するデータ及び精度を出力するように学習されるモデルである。トレーニングデータとして用いられるローカルデータは、入力データとして画像データと、出力データとして眼底写真におけるDisc部分とCup部分とをセグメンテーションした結果の画像データである。出力データはその他、症状がみられるか否かを医師又は技師が判定した判定結果を含むデータセットであってもよい。ローカルデータの入力データである画像データは、撮影装置の種類を示す装置データと対応付けられている。装置データは型番でもよいし、装置メーカを識別するデータであってもよい。
【0120】
第3の実施形態においてモデル提供システム100では、サーバ3が予め特定の医療施設で作成した初期的なグローバルモデル(第0次グローバルモデル)51を取得する。サーバ3は、第0次グローバルモデル51を、トレーニングに協力する医療施設のノード1へ各配布する。
【0121】
各ノード1は、配布された第0次グローバルモデル51を受信し、第0次グローバルモデル51に基づいてそれぞれ、ローカルデータをトレーニングデータとして学習を進行し、第1次ローカルモデル52を得る。ノード1は、学習された第1次ローカルモデル52をサーバ3へ送信する。
【0122】
サーバ3は、各ノード1から取得したローカルモデル52を、統計処理(平均、加重平均)して第1次グローバルモデル51を作成する。作成された第1次グローバルモデル51を、サーバ3は、複数のノード1へ再配布する。
【0123】
サーバ3は、配布した第n次グローバルモデル51から作成される第(n+1)次ローカルモデル52の取得、第(n+1)次ローカルモデル52からの第(n+1)次グローバルモデル51の更新を、繰り返す。
【0124】
サーバ3は、更新を繰り返して得られたグローバルモデル51を記憶しておく。各ノード1が、性能評価値が、各ノード1のローカルデータにとって最も高いグローバルモデル51を選択し、適宜、再学習して配布可能なモデルとして利用する。
【0125】
第3の実施形態では、グローバルモデル51又はローカルモデル52の評価値として、感度(=真陽性/(真陽性+偽陰性))、特異度(=真陰性/(偽陽性+真陰性))を算出して用いるようにしてもよい。
【0126】
これにより、個人情報そのものである検査結果の画像データが、サーバ3へ集約されることなく、且つ、異なる医療施設に亘って多くのデータを用いて学習することが可能になる。
【0127】
上述のように開示された実施の形態は全ての点で例示であって、制限的なものではない。本発明の範囲は、特許請求の範囲によって示され、特許請求の範囲と均等の意味及び範囲内での全ての変更が含まれる。
【符号の説明】
【0128】
1 ノード
10 処理部
11 記憶部
1P ノードプログラム
1T 追加プログラム
2 記憶装置
3 サーバ
30 処理部
31 記憶部
3P サーバプログラム
51 グローバルモデル
52 ローカルモデル
図1
図2
図3
図4
図5
図6
図7
図8
図9
図10
図11
図12
図13