以下に図面を参照して、検証システム及び検証装置の実施形態について詳細に説明する。本実施形態に係る検証システムは、例えばCAD(Computer Aided Diagnosis)において、学習済みモデルに入力された医用情報の判別結果の妥当性を、学習済みモデルにおける中間的な演算結果を用いて検証する。本実施形態における学習済みモデルは、例えば、多層のニューラルネットワークにより構成することができる。なお、以下において、学習済みモデルの中間的な演算結果を、「中間演算結果」、又は単に「演算結果」と表記する場合がある。
例えば、本実施形態における学習済みモデルは、入力層において、X線画像データなどの医用情報の入力を受け付け、中間層に出力する。中間層は、入力されたデータに対して演算処理を行い、演算結果を出力層に出力する。出力層は、中間層から入力された演算結果を用いて、「肺がん」や「肺結節」などの複数の症例候補のそれぞれに対する確度を示す信頼度を算出し、信頼度に基づいて判別結果を出力する。なお、判別結果は、例えば各症例における信頼度として出力されてもよく、また単に症例だけが出力されてもよい。また、以下において、判別結果が妥当であるか否かを、「判別結果の妥当性」、又は単に「妥当性」と表記する場合がある。
例えば、学習済みモデルにレアケースが入力された場合、中間層における演算結果において特異な値が出力されることが多くなり、その結果として判別結果が妥当ではなくなる場合がある。例えば、「肺がん」に判別されるべき入力情報に対して、「肺がん」の信頼度よりも、「肺結節」の信頼度が大きくなるような判別結果が出力される場合がある。この場合、出力される判別結果は、「肺がん」であるのか「肺結節」であるのかを医師が診断する上での支援情報として有用ではない場合がある。なお、以下において「レアケース」は、希少な症例に限られず、症例としては希少ではなくとも、学習済みモデルにおいて学習済みの範囲外であるとみなされるパラメータを含む医用情報も含むものとする。
例えば、多層のニューラルネットワークにおいて、学習用データのうちどのパラメータが学習済みモデルに反映されたか、すなわち学習済みの範囲がどの程度であるかは明確には特定できない場合が多い。このため、学習済みモデルに入力された医用情報が、当該学習済みモデルにおけるレアケースに該当するか否かを判別することが難しい場合がある。そこで、本実施の形態においては、学習済みモデルにおける中間層が出力する演算結果を用いて、医用情報に対する判別結果の妥当性を検証する構成について説明する。
(第1の実施形態)
まず、第1の実施形態について説明する。第1の実施形態では、検証装置10を含んだ検証システム1を一例として説明する。
図1は、第1の実施形態に係る検証システムの構成の一例を示す図である。図1に示すように、本実施形態に係る検証システム1は、検証装置10と、医用画像診断装置20と、画像保管装置21と、学習装置30と、端末40とを備える。
図1に示すように、検証装置10、医用画像診断装置20、学習装置30及び端末40は、ネットワークNWを介して相互に通信可能に接続される。なお、図1においては、検証装置10、医用画像診断装置20、画像保管装置21、学習装置30及び端末40をそれぞれ1台ずつ含む検証システム1を示しているが、各装置の台数は任意である。また、検証システム1は、病院会計システム(不図示)や電子カルテシステム(不図示)等の病院におけるその他のシステムに含まれる各サーバ装置(不図示)などと直接的、又は、間接的に、相互に通信可能に接続されていてもよい。
検証装置10は、学習済みモデルに入力された医用情報の判別結果の妥当性を検証する。検証装置10は、例えば、学習装置30による判別処理において、学習済みモデルの中間層が出力する特徴量などの演算結果を用いて、医用情報の判別結果の妥当性を検証する。例えば、検証装置10は、ワークステーション等のコンピュータ機器によって実現される。
医用画像診断装置20は、被検体から医用情報を収集する装置である。なお、画像データとして処理される医用情報については、医用画像データとも記載する。例えば、医用画像診断装置20は、被検体から医用画像データを収集し、収集した医用画像データを学習装置30に送信する。図1において、医用画像診断装置20の一例としてX線診断装置を示しているが、やX線CT(Computed Tomography)装置、SPECT(Single Photon Emission Computed Tomography)装置、SPECT装置とX線CT装置とが一体化されたSPECT-CT装置、超音波診断装置等の他の医用画像診断装置であってもよい。また、図1では、医用画像診断装置20が1台としているが、本実施形態にかかる検証システム1は、医用画像診断装置20を複数台備えてもよい。
画像保管装置21は、ネットワークNWを介して他の医用画像診断装置20が収集した医用画像データを記憶するデータベース(DB)等である。例えば、図1において、画像保管装置21は、医用画像診断装置20から医用画像データを取得し、取得した医用画像データを装置内又は装置外に設けられたメモリに記憶させる。また、画像保管装置21は、医用画像データに対応する症例等の情報を含む正解データをさらに記憶してもよい。例えば、画像保管装置21は、サーバ装置等のコンピュータ機器によって実現される。
学習装置30は、ネットワークNWを介して医用画像診断装置20等から医用画像データを取得し、取得した医用画像データを用いた種々の処理を実行する。例えば、学習装置30は、ネットワークNWを介して、医用画像診断装置20又は画像保管装置21から医用画像データを取得する。学習装置30は、取得した医用画像データを学習済みモデルに入力して判別処理を行い、該当する症例や当該症例に該当する信頼度等を出力する。また、学習装置30は、学習済みモデルへの入力情報となる医用画像データと、例えば症例などの正解データとをデータの組として含む学習用データを用いて、学習済みモデルに対する学習を行う。例えば、学習装置30は、ワークステーション等のコンピュータ機器によって実現される。
端末40は、例えば病院の診察室等に設置され、医師等のユーザに対して、学習装置30における判別結果を出力する。端末40は、例えば図1に示すようなデスクトップコンピュータであるが、これに限られず、スマートフォンやタブレットのような携帯可能なコンピュータであってもよい。
なお、ネットワークNWを介して接続可能であれば、検証装置10、医用画像診断装置20及び学習装置30が設置される場所は任意である。例えば、学習装置30は、検証装置10が設置される病院とは異なる病院に設置されてもよい。即ち、ネットワークNWは、院内で閉じたローカルネットワークにより構成されてもよいし、インターネットを介したネットワークでもよい。
次に、検証システム1における検証処理について、図2を用いて説明する。図2は、第1の実施形態に係る検証システムの実装例を説明するための図である。図2に示すように、学習装置30は、例えば、医用画像診断装置20から、X線画像データなどの医用画像データ91の入力を受け付ける。学習装置30は、多層のニューラルネットワークにより構成される学習済みモデルに、医用画像データ91を入力する。本実施形態に係る多層のニューラルネットワークは、図2に示すように、入力層(l=1)、中間層(l=2,3,・・・,L-1の計(L-2)層)、出力層(l=L)のL個の層から構成されるものとする。
学習装置30は、例えば入力信号xの各成分xp(p=1,2,・・・,N)として、医用画像データ91を構成する画素の画素値を用いる。入力層に続く中間層(l=2,3,・・・,L-1)層においては、入力された信号に対する演算処理を順次実行することで、(L-2)個の中間層それぞれの出力zを計算することができる。また、各中間層は、それぞれ複数のフィルタを有する。出力層Lは、各層の出力zに対する演算処理を実行することで、出力yn(n=1,2,・・・,M)を計算することができる。出力ynは、例えば各症例に対する信頼度を示す。すなわち、図2に示す例において、出力ynは、M個の症例それぞれに対する信頼度を出力する。なお、各層における演算処理については例えば公知のニューラルネットワークにおける技術を用いることができるため、詳細な説明は省略する。
学習装置30は、出力層Lにおける出力ynに基づく判別結果に関する情報を、端末40に出力する。端末40は、例えば図2に示すように、学習装置30から出力された判別結果に関する情報を出力する。図2に示す一例では、肺結節である確度が60%であり、肺がんである確度が30%であるとする判別結果を出力している。なお、図2においては、端末40が、判別結果に関する情報として、各症例の信頼度を表示する例を示したが、これに限られず、端末40は、単に最も信頼度が高い症例だけを示す等の他の情報を表示してもよい。例えば、端末40は、「肺結節の可能性があります」と表示してもよい。また、例えば、端末40は、医用画像データ91において、60%の確度で肺結節が疑われる領域を表示してもよい。
本実施形態において、検証装置10は、学習装置30の学習済みモデルの中間層における演算結果92a、92b等を取得して妥当性を検証する。本実施形態において、検証装置10は、多層のニューラルネットワークにより構成される学習済みモデルの中間層のうち、例えばプーリング層における演算結果を取得するが、これに限られず、畳み込み層、ReLU(Rectified Liner Unit)層等の各層における演算結果を取得してもよい。
本実施形態において、検証装置10は、例えば学習装置30における学習時、及び判別処理の際に、中間層において出力される演算結果を逐次取得し、格納していく。また、検証装置10は、例えば新たに取得した演算結果を、記憶されている演算結果と比較することにより、新たに取得した演算結果がレアケースに基づくものであるか否かを判定する。
入力画像がレアケースであるか否かの判定基準について、図3を用いて説明する。図3は、第1の実施形態に係る演算結果の分布の一例を示す図である。図3において、横軸は演算結果の値を示し、縦軸は当該値に該当する演算結果の出現頻度を示す。例えば、図3に示すように、演算結果の出現頻度が正規分布を取る場合、平均値μから±3σ(以下、標準偏差を「σ」と表記する場合がある)の範囲内にある演算結果97aは、レアケースに基づくものではないと判定される。一方、平均値μから±3σの範囲を逸脱する演算結果97b及び97cは、レアケースに基づくものであると判定される。なお、レアケースに基づく演算結果であるか否かの判定基準は一例であり、その他の基準に基づいて決定してもよい。また、演算結果の出現頻度が正規分布を取らない場合において、同様に平均値μからの距離に基づいて、レアケースに基づく演算結果であるか否かが判定されてもよい。
レアケースに基づく演算結果は、活性化関数によりその特徴が出力層まで伝播されない場合が多い。図4は、第1の実施形態に係る活性化関数の一例を示す図である。図4は、多層のニューラルネットワークにより構成される学習済みモデルの中間層において用いられることが多い、ReLU関数のグラフの一例を示す。例えば、レアケースに基づく演算結果が、演算結果の平均値μよりも-3σ以上逸脱する場合であっても、図4に示すようなReLU関数に入力されると、出力は0となる。従って、入力層にレアケースが入力された場合の特徴は、出力層における判別結果に反映されない場合が多いので、判別結果に基づいて、入力情報がレアケースであるか否かを判定することは難しい。そこで、本実施形態においては、中間層における演算結果を用いて、入力情報がレアケースであるか否かを判定する構成について説明する。
図5は、第1の実施形態に係る検証システムの機能ブロックの一例を示す図である。図5に示すように、学習装置30は、通信I/F(Interface)31と、入力I/F32と、ディスプレイ33と、記憶回路34と、処理回路35とを有する。
通信I/F31は、処理回路35に接続され、ネットワークNWを介して接続された検証装置10、医用画像診断装置20及び画像保管装置21等との間で行われる各種データの伝送及び通信を制御する。例えば、通信I/F31は、ネットワークカードやネットワークアダプタ、NIC(Network Interface Controller)等によって実現される。
入力I/F32は、処理回路35に接続され、管理者から受け付けた入力操作を電気信号に変換して処理回路35に出力する。例えば、入力I/F32は、スイッチボタン、マウス、キーボード、タッチパネル等である。
ディスプレイ33は、処理回路35に接続され、処理回路35から出力される各種情報及び各種画像データを表示する。例えば、ディスプレイ33は、液晶モニタやCRT(Cathode Ray Tube)モニタ、タッチパネル等によって実現される。
記憶回路34は、処理回路35に接続され、各種データを記憶する。例えば、記憶回路34は、RAM(Random Access Memory)、フラッシュメモリ等の半導体メモリ素子や、ハードディスク、光ディスク等によって実現される。本実施形態では、記憶回路34は、学習装置30に含まれる回路がその機能を実現するためのプログラムを記憶する。また、例えば、記憶回路34は、図5に示すように、学習済みモデル341を記憶する。なお、記憶回路34は、学習装置30とネットワークNWを介して接続されたサーバ群(クラウド)により実現されることとしてもよい。
学習済みモデル341は、処理回路35により実行される、入力される医用画像データに基づいて症例を判別する判別処理に組み込まれる学習済みモデルである。学習済みモデル341は、例えば図2に示すように、入力層(l=1)、中間層(l=2,3,・・・,L-1)、出力層(l=L)のL個の層から構成される多層のニューラルネットワークにより構成される。学習済みモデル341は、後に説明するモデル生成機能352により生成される。
図5に戻って、処理回路35は、制御機能351と、モデル生成機能352と、判別機能353と、出力機能354とを実行する。ここで、例えば、図5に示す処理回路35の構成要素である制御機能351、モデル生成機能352、判別機能353及び出力機能354の各処理機能は、コンピュータによって実行可能なプログラムの形態で記憶回路34に記録されている。処理回路35は、各プログラムを記憶回路34から読み出し、読み出した各プログラムを実行することで各プログラムに対応する機能を実現するプロセッサである。換言すると、各プログラムを読み出した状態の処理回路35は、図5の処理回路35内に示された各機能を有することとなる。
なお、制御機能351、モデル生成機能352、判別機能353及び出力機能354の全ての処理機能がコンピュータによって実行可能な1つのプログラムの形態で、記憶回路34に記録されていてもよい。例えば、このようなプログラムは、学習プログラムとも称される。この場合、処理回路35は、学習プログラムを記憶回路34から読み出し、読み出した学習プログラムを実行することで学習プログラムに対応する制御機能351、モデル生成機能352、判別機能353及び出力機能354を実現する。
処理回路35における制御機能351は、学習装置30に対する操作や、他装置との通信に関する各種処理、他装置からのデータ取得に関する各種処理を制御する。例えば、制御機能351は、学習モデル生成処理の開始のトリガに応じて、医用画像データと正解データとの組を含む学習用データを、例えば画像保管装置21から取得し、モデル生成機能352に出力する。また、例えば、制御機能351は、判別処理の開始のトリガに応じて、医用画像データを、例えば画像保管装置21から取得し、判別機能353に出力する。なお、学習処理及び判別処理の開始のトリガは、例えば入力I/F32を介して学習装置30の管理者から操作を受け付けてもよく、通信I/F31を介して、端末等から受信してもよい。
モデル生成機能352は、学習済みモデル341の生成に関する処理を実行する。例えば、モデル生成機能352は、まず、制御機能351から学習用データの入力を受け付けると、学習用データに基づいて、学習用データに含まれる医用画像データから、症例などの正解データを判別するように、モデルを学習させる。図6は、第1の実施形態に係る学習処理の流れの一例を示す図である。
図6に示すように、例えば、モデル生成機能352は、学習用データに含まれる医用画像データを入力側データ、学習用データに含まれる正解データを出力側データとしてモデルのパラメータを調整することにより、症例などを判別する関数を近似した学習済みモデルを生成する。生成する学習済みモデルがニューラルネットワークによる学習済みモデルである場合、調整するパラメータは、例えば、重みとバイアスとのうち少なくとも一方である。そして、モデル生成機能352は、生成した学習済みモデル341を記憶回路34に格納する。また、学習済みモデル341は、中間層における演算結果を出力する。なお、モデル生成機能352は、新たな学習用データを取得した場合に、学習済みモデル341に対して、判別精度を高めるために再学習処理を行ってもよい。
なお、モデル生成機能352は、学習用データに含まれる医用画像データを入力側データとして用いてもよいし、医用画像データに基づくデータを入力側データとして用いてもよい。例えば、モデル生成機能352は、図6に示すように、医用画像データに対する前処理(例えば、空間フィルタやコンボリューションフィルタを用いた画像処理等)を実行し、前処理後の画像データである入力用データを入力側データとしてもよい。
なお、画像処理フィルタの種類としては、例えば、移動平均(平滑化)フィルタ、ガウシアンフィルタ、メディアンフィルタ、リカーシブフィルタ、バンドパスフィルタ等が挙げられる。また、画像処理フィルタのパラメータとしては、例えば、各フィルタの強度、移動平均(平滑化)フィルタ、ガウシアンフィルタ及びメディアンフィルタの縦方向及び横方向のサイズ、リカーシブフィルタにおいて使用するフレーム数及び各フレームに対する重み、バンドパスフィルタにおける周波数の設定等が挙げられる。
判別機能353は、学習済みモデル341に基づいて、入力される医用画像データに対する判別処理を実行する。具体的には、判別機能353は、例えば、前処理後の医用画像データを学習済みモデル341に入力することにより、症例を判別する判別処理を実行する。そして、判別機能353は、学習済みモデル341から出力された判別結果を、出力機能354に出力する。図7は、第1の実施形態に係る判別処理の流れの一例を示す図である。
一例を挙げると、判別機能353は、まず、記憶回路34から学習済みモデル341を読み出す。次に、判別機能353は、図7に示すように、医用画像データを学習済みモデル341に入力し、症例を判別する判別処理を実行する。学習済みモデル341は、入力された前処理後の医用画像データに基づいて、判別結果を出力する。また、学習済みモデル341は、中間層における演算結果を出力する。なお、判別機能353は、図7に示すように、学習処理と同様に、医用画像データに対する前処理を実行し、前処理後の画像データを入力側データとしてもよい。
出力機能354は、判別機能353による判別結果を出力する。具体的には、出力機能354は、学習済みモデル341から出力される判別結果を、通信I/F31を介して、図1に示す端末40に出力する。
次に、検証装置10は、図5に示すように、通信I/F11と、入力I/F12と、ディスプレイ13と、記憶回路14と、処理回路15とを有する。
通信I/F11は、処理回路15に接続され、ネットワークNWを介して接続された学習装置30等との間で行われる各種データの伝送及び通信を制御する。例えば、通信I/F11は、ネットワークカードやネットワークアダプタ等によって実現される。
入力I/F12は、処理回路15に接続され、検証装置10の管理者(不図示)から受け付けた入力操作を電気信号に変換して処理回路15に出力する。入力I/F12は、例えば管理者によるモードの選択などの入力操作を受け付ける。例えば、入力I/F12は、スイッチボタン、マウス、キーボード、タッチパネル等である。
ディスプレイ13は、処理回路15に接続され、処理回路15から出力される各種情報などを表示する。ディスプレイ13は、例えば、ディスプレイ13は、液晶モニタやCRTモニタ、タッチパネル等によって実現される。
記憶回路14は、処理回路15に接続され、各種データを記憶する。例えば、記憶回路14は、RAM、フラッシュメモリ等の半導体メモリ素子や、ハードディスク、光ディスク等によって実現される。本実施形態では、記憶回路14は、検証装置10に含まれる回路がその機能を実現するためのプログラムを記憶する。また、例えば、記憶回路14は、図5に示すように、演算結果情報141と、統計データ142と、検証結果情報143とを記憶する。なお、記憶回路14は、検証装置10とネットワークNWを介して接続されたサーバ群(クラウド)により実現されることとしてもよい。
演算結果情報141は、学習装置30における学習処理又は判別処理において、学習済みモデル341の中間層から出力される演算結果を記憶する。例えば、演算結果情報141は、図6に示す学習処理で出力された演算結果や、図7に示す判別処理で出力された演算結果を記憶する。演算結果情報141は、例えば後に説明する制御機能151により格納される。なお、演算結果情報141は、記憶部が記憶する情報の一例である。
図8は、第1の実施の形態に係る演算結果情報の一例を示す図である。例えば、演算結果情報141は、図8に示すように、学習済みモデル341の中間層の各層に含まれるフィルタごとに一つのテーブルを保持する。図8に示す演算結果情報141は、例えば「1」番目の中間層の「2」番目のフィルタから出力される演算結果を記憶する。
例えば、演算結果情報141は、図8に示すように、「取得日時」と、「画像ID」と、「処理区分」と、「演算結果」とを対応付けた情報である。「取得日時」は、当該演算結果が取得された日時を示す。「画像ID」は、当該演算結果が出力される際に入力された医用画像データを一意に識別する識別子(IDentifier)を示す。「処理区分」は、当該演算結果が、「学習時」に出力されたものか、又は「判別時」に出力されたものかを示す。「演算結果」は、中間層の当該層の当該フィルタから出力された演算結果を示す。演算結果情報141に蓄積される演算結果は、例えば後に説明する統計データの生成に用いられる。図8では、例えば、「画像ID:XXX1」を用いた「学習時」において、「2018年6月2日 15:20」に、「1」番目の中間層の「2」番目のフィルタから出力された演算結果が「0.604」であることが記憶されている。また、図8では、例えば、「画像ID:XXY1」に対する「判別時」において、「2018年6月30日 10:00」に、「1」番目の中間層の「2」番目のフィルタから出力された演算結果が「0.317」であることが記憶されている。
なお、図8に示す項目は一例であり、演算結果情報141は、これ以外に「判別結果」などのその他の情報をさらに記憶してもよく、また図8に示す項目の一部を記憶しないような構成であってもよい。また、演算結果情報141は、一つの層の全てのフィルタにおいて取得された演算結果ごとに一つのテーブルを保持してもよく、全ての演算結果を一つのテーブルで保持してもよい。以下に説明する各テーブルについても同様である。
統計データ142は、演算結果情報141に記憶される演算結果を統計処理して算出される、演算結果の平均値μ、標準偏差σ等の統計データを記憶する。統計データ142は、例えば制御機能151により格納される。なお、統計データ142は、記憶部が記憶する情報の一例である。
図9は、第1の実施形態に係る統計データの一例を示す図である。例えば、統計データ142は、図9に示すように、「中間層No.」及び「フィルタNo.」と、「レコード数」と、「平均値」と、「-3σ」及び「+3σ」とを対応付けた情報である。ここで、図9における「中間層No.」及び「フィルタNo.」は、演算結果が出力される層及びフィルタを一意に識別する情報を示す。「レコード数」は、当該層の当該フィルタから出力され、演算結果情報141に記憶された演算結果の件数を示す。「平均値」は、当該演算結果の平均値μを示す。「-3σ」及び「+3σ」は、当該演算結果の平均値からそれぞれプラスマイナス3σ離れた値を示す。
図9において、「平均値」、「-3σ」及び「+3σ」は、例えば、取得された演算結果がレアケースに基づくものであるか否かを判定するための閾値として用いられる。例えば、演算結果が平均値μから「-3σ」又は「+3σ」を逸脱している場合、後に説明する検証機能152において、演算結果はレアケースに基づくものであると判定される。図9において、例えば「1」番目の中間層の「1」番目のフィルタから出力された演算結果が「0.431」よりも小さい場合、又は「0.674」よりも大きい場合、当該演算結果はレアケースによるものであると判定される。同様に、図9において、例えば「1」番目の中間層の「2」番目のフィルタから出力された演算結果が「-0.932」よりも小さい場合、又は「0.450」よりも大きい場合、当該演算結果はレアケースによるものであると判定される。
検証結果情報143は、統計データ142を用いた演算結果の検証結果を記憶する。検証結果情報143は、例えば検証機能152により格納される。
図10は、第1の実施形態に係る検証結果情報の一例を示す図である。例えば、検証結果情報143は、図10に示すように、「画像ID」と、「中間層No.」及び「フィルタNo.」と、「検証結果」とを対応付けた情報である。ここで、図10における「画像ID」は、当該演算結果が出力される際に入力された医用画像データを一意に識別する識別子を示す。「中間層No.」及び「フィルタNo.」は、演算結果が出力される層及びフィルタを一意に識別する情報を示す。「検証結果」は、当該層の当該フィルタから出力された演算結果の検証結果を示す。
例えば、図10に示すテーブルは、画像ID「XXX1」の医用画像データが入力された場合における、「1」番目の中間層の各フィルタから出力された演算結果についての検証結果を示す。図10において、「1」番目のフィルタから出力された演算結果は、当該フィルタから出力された演算結果の平均値μから「-3σ」を超えて乖離していることを示す。同様に、図10に示すテーブルは、「2」番目のフィルタから出力された演算結果は平均値μから「-3σ」から「3σ」までの範囲内であること、「3」番目のフィルタから出力された演算結果は平均値μから「3σ」を超えて乖離していることを示す。さらに、図10に示すテーブルは、画像ID「XXY1」の医用画像データが入力された場合における、「3」番目の中間層の「2」番目のフィルタから出力された演算結果は、平均値μから「3σ」を超えて乖離していることも示す。
図5に戻って、処理回路15は、制御機能151と、検証機能152と、出力機能153とを実行する。ここで、制御機能151は、取得部の一例である。検証機能152は、判定部の一例である。また、出力機能153は、出力部の一例である。ここで、例えば、図5に示す処理回路15の構成要素である制御機能151、検証機能152及び出力機能153の各処理機能は、コンピュータによって実行可能なプログラムの形態で記憶回路14に記録されている。処理回路15は、各プログラムを記憶回路14から読み出し、読み出した各プログラムを実行することで各プログラムに対応する機能を実現するプロセッサである。換言すると、各プログラムを読み出した状態の処理回路15は、図5の処理回路15内に示された各機能を有することとなる。
なお、制御機能151、検証機能152及び出力機能153の全ての処理機能がコンピュータによって実行可能な1つのプログラムの形態で、記憶回路14に記録されていてもよい。例えば、このようなプログラムは、検証プログラムとも称される。この場合、処理回路15は、検証プログラムを記憶回路14から読み出し、読み出した検証プログラムを実行することで検証プログラムに対応する制御機能151、検証機能152及び出力機能153を実現する。
処理回路15における制御機能151は、検証装置10に対する操作や、他装置との通信に関する各種処理、他装置からのデータ取得に関する各種処理を制御する。例えば、制御機能151は、検証処理の開始のトリガに応じて、演算結果を、例えば学習装置30から取得し、検証機能152に出力する。また、制御機能151は、取得した演算結果に対する統計処理を行い、統計データ142に格納する。なお、検証処理の開始のトリガは、例えば制御機能151が学習装置30における学習処理の開始又は判別処理の開始を検出した際に実行される。また、検証処理の開始のトリガは、例えば入力I/F12を介して検証装置10の管理者から操作を受け付けてもよく、通信I/F11を介して、端末等から受信してもよい。
検証機能152は、演算結果がレアケースに基づくものであるか否かを判定する。例えば、検証機能152は、まず、制御機能151から演算結果の出力を受けると、統計データ142を参照し、演算結果が、図9に示すような「-3σ」から「+3σ」までの範囲に収まるか否かを判定する。図11は、第1の実施形態に係る検証処理の流れの一例を示す図である。検証機能152は、例えば、図11に示すように、制御機能151から出力を受けた中間演算結果と、統計データ142とを比較した結果を、判定結果として図10に示すような検証結果情報143に格納する。
出力機能153は、検証機能152による検証結果を出力する。例えば、出力機能153は、検証結果情報143に記憶された情報のうち、条件に合致する情報を抽出する。例えば、出力機能153は、図10に示すような検証結果のうち、状態が「-3σ未満」である「1」番目の中間層の「1」番目のフィルタに関する情報を抽出する。同様に、出力機能153は、図10に示すような検証結果のうち、状態が「+3σ」を超過する「1」番目の中間層の「3」番目のフィルタに関する情報及び「3」番目の中間層の「2」番目のフィルタに関する情報を抽出する。
また、出力機能153は、例えば、レアケースに基づくものであると判定された演算結果を出力したフィルタの数を計数する。また、出力機能153は、例えば、当該フィルタの数に基づき、入力された医用情報がレアケースであるか否かを検証する。
そして、出力機能153は、例えば端末40に、レアケースに基づくものであると判定された演算結果を出力したフィルタの数、及び入力された医用情報がレアケースであるか否かを検証した結果に関する情報を出力する。出力機能153は、例えば、レアケースに基づくものであると判定された演算結果を出力したフィルタの数が、学習済みモデル341の中間層に含まれる全てのフィルタの数に占める割合が「80%以上」である場合に、入力された医用情報がレアケースであると判定する。出力する情報については、後に図14を用いて説明する。
次に、第1の実施形態に係る検証システム1による処理の手順について、図12及び図13を用いて説明する。図12は、第1の実施形態に係る取得処理の一例を示すフローチャートである。ここで、図12におけるステップS101からS120までの各処理は、例えば、処理回路15が制御機能151に対応するプログラムを記憶回路14から読み出して実行することにより実現される。
例えば、図12に示すように、本実施形態に係る検証システム1では、まず、処理回路15は、中間層の演算結果を、ネットワークNWを通じて、学習装置30から取得する(ステップS101)。次に、処理回路15は、取得した演算結果を、演算結果情報141に格納する(ステップS102)。
続いて、処理回路15は、演算結果情報141に記憶された演算結果に対する統計処理を行い(S103)、統計データ142に格納する(S104)。
次に、処理回路15は、全てのフィルタに対する処理を完了したか否かを判定する(ステップS110)。処理回路15は、全てのフィルタに対する処理を完了していないと判定した場合(ステップS110否定)、ステップS101に移行し、処理を繰り返す。
一方、処理回路15は、全てのフィルタに対する処理を完了したと判定した場合(ステップS110肯定)、全ての層に対する処理を完了したか否かを判定する(ステップS120)。処理回路15は、全ての層に対する処理を完了していないと判定した場合(ステップS120否定)、ステップS101に移行し、処理を繰り返す。一方、処理回路15は、全ての層に対する処理を完了したと判定した場合(ステップS120肯定)、処理を終了する。
次に、新たに取得した演算結果に対する検証処理について説明する。図13は、第1の実施形態に係る検証処理の一例を示すフローチャートである。ここで、図13におけるステップS201、S220及びS230は、例えば、処理回路15が制御機能151に対応するプログラムを記憶回路14から読み出して実行することにより実現される。また、ステップS202、S210及びS211は、例えば、処理回路15が検証機能152に対応するプログラムを記憶回路14から読み出して実行することにより実現される。また、ステップS231は、例えば、処理回路15が出力機能153に対応するプログラムを記憶回路14から読み出して実行することにより実現される。
例えば、図13に示すように、本実施形態に係る検証システム1では、まず、処理回路15は、中間層の演算結果を、ネットワークNWを通じて、学習装置30から取得する(ステップS201)。
続いて、処理回路25は、取得した演算結果を、統計データ142と比較し(S202)、レアケースと判定されるための条件を満たすか、例えば判定結果が閾値以上であるか否かを判定する(ステップS210)。処理回路15は、判定結果が閾値以上ではないと判定した場合(ステップS210否定)、ステップS220に移行する。
一方、処理回路25は、判定結果が閾値以上であると判定した場合(ステップS210肯定)、判定結果として、例えば、当該演算結果に対応する中間層の層及びフィルタに関する情報を検証結果情報143に格納する(ステップS211)。その後、ステップS220に移行する。
次に、処理回路15は、全てのフィルタに対する処理を完了したか否かを判定する(ステップS220)。処理回路15は、全てのフィルタに対する処理を完了していないと判定した場合(ステップS220否定)、ステップS201に移行し、処理を繰り返す。
一方、処理回路15は、全てのフィルタに対する処理を完了したと判定した場合(ステップS220肯定)、全ての層に対する処理を完了したか否かを判定する(ステップS230)。処理回路15は、全ての層に対する処理を完了していないと判定した場合(ステップS230否定)、ステップS201に移行し、処理を繰り返す。
一方、処理回路15は、全ての層に対する処理を完了したと判定した場合(ステップS230肯定)、検証結果情報143に記憶された情報を用いて、検証結果を生成し、検証結果を端末40等に出力して(ステップS231)、処理を終了する。
ステップS231における検証結果について、図14を用いて説明する。図14は、第1の実施形態に係る検証結果の一例を示す図である。図14に示すように、出力機能153から端末40に出力される「検証結果」は、例えば、図14に示すように、レアケースに基づくものであると判定された演算結果を出力したフィルタの数が「100件」のうち「83件」であることを示す情報を含む。さらに、「検証結果」は、例えば、図14に示すように、入力された医用情報がレアケースであると判定した結果を含む。
なお、検証結果に含まれる情報はこれらに限られず、例えば、出力機能153は、演算結果に対応する医用画像データを識別する画像IDを出力してもよい。また、出力機能153は、例えば、図14に示すように、図2に示すような演算結果に対応する学習装置30における「判別結果」を合わせて出力してもよい。また、例えば、出力機能153は、レアケースに基づくものであると判定された演算結果を出力したフィルタが、何番目の中間層の何番目のフィルタであるかを示す情報をさらに出力してもよい。
上述したように、第1の実施形態に係る検証システム1は、記憶部と、取得部と、判定部とを備える。記憶部は、入力された情報に対する演算処理を行う1つ以上の中間層と、前記中間層の演算結果に基づいて判別結果を出力する出力層とを含む第1の学習済みモデルにおける、前記中間層が出力する演算結果に関する情報を記憶する。取得部は、前記第1の学習済みモデルの入力層に医用情報が入力されたことに応じて、前記中間層が出力する演算結果を取得する。判定部は、前記医用情報の入力に応じて、前記出力層が出力した判別結果の妥当性を、前記記憶部が記憶する前記演算結果に関する情報と前記取得部が取得した演算結果とに基づいて判定する。これにより、学習済みモデルを用いた判別結果の妥当性を検証することができる。
(第2の実施形態)
上述した第1の実施形態では、検証機能152が、統計データ142を用いて演算結果を検証する構成について説明した。これに対し、第2の実施形態では、検証機能が、学習済みモデルを用いて演算結果を検証する場合について説明する。
第2の実施形態に係る検証装置10aは、図5に示した第1の実施形態に係る検証装置10と同様の構成を有し、処理回路15が、検証機能152の代わりに検証機能152aを有する点で相異する。そこで、第1の実施形態において説明した構成と同様の構成を有する点については、図5と同一の符号を付し、説明を省略する。
以下、図15を用いて、第2の実施形態に係る検証システム1aについて説明する。図15は、第2の実施形態に係る検証システムの機能ブロックの一例を示す図である。図15に示すように、検証システム1aは、検証装置10aと、医用画像診断装置20と、画像保管装置21と、学習装置30と、端末40とを備える。検証装置10aは、通信I/F11と、入力I/F12と、ディスプレイ13と、記憶回路14aと、処理回路15aとを有する。
例えば、記憶回路14は、図15に示すように、演算結果情報141と、統計データ142と、検証結果情報143とに加えて、学習済みモデル144をさらに記憶する。学習済みモデル144は、処理回路15aにより実行される、入力される演算結果に基づいて、演算結果の妥当性を出力する判別処理に組み込まれる学習済みモデルである。学習済みモデル144は、例えば図2に示す学習済みモデル341と同様に、入力層、複数の中間層及び出力層から構成される多層のニューラルネットワークにより構成される。学習済みモデル341は、例えば後に説明するモデル生成機能154により生成される。
また、処理回路15aは、制御機能151と、検証機能152aと、出力機能153と、モデル生成機能154とを実行する。検証機能152aは、学習済みモデル144に基づいて、入力される演算結果に対する判別処理を実行する。具体的には、検証機能152aは、演算結果を学習済みモデル144に入力することにより、演算結果の妥当性を判別する判別処理を実行する。そして、検証機能152aは、学習済みモデル144から出力された判別結果を、出力機能153に出力する。
モデル生成機能154は、学習済みモデル144の生成に関する処理を実行する。例えば、モデル生成機能154は、まず、制御機能151から、入力データである演算結果と、正解データである妥当性を示す情報との組を含む学習用データの入力を受け付ける。モデル生成機能154は、学習用データに基づいて、学習用データに含まれる演算結果から、妥当性などの正解データを判別するように、モデルを学習させる。
以上、第2の実施形態に係る検証装置10aの構成の一例について説明した。かかる構成の下、検証装置10aは、学習済みモデルを用いた判別結果の妥当性を、学習済みモデルに基づいて判別することができる。
(第3の実施形態)
上述した第1の実施形態では、統計データとして、演算結果の平均値μと標準偏差σとを用いる構成について説明した。これに対し、第3の実施形態では、統計データとして、第1の演算結果と第2の演算結果との関係を用いる場合について説明する。図16は、第3の実施形態に係る演算結果の分布の一例を示す図である。
図16は、第1の値である演算結果1と、第2の値である演算結果2との相関分布を示す。図16に示すように、演算結果1と演算結果2との組の多くは、範囲98に沿って分布する。この場合において、範囲98に含まれる演算結果1と演算結果2との組99aは、レアケースに基づく演算結果であるとは判定されない。一方、範囲98を逸脱する演算結果1と演算結果2との組99b及び99cについては、レアケースに基づく演算結果であるとは判定される。
以上、第3の実施形態に係る構成において、検証装置は、学習済みモデルを用いた判別結果の妥当性を、複数の演算結果の関係に基づいて判別することができる。なお、図16においては、2つの演算結果の関係に基づいてレアケースであるか否かを判定する構成について説明したが、これに限られず、3つ以上の演算結果の関係に基づいて判定するような構成であってもよい。
上述した各実施形態の説明で用いた「プロセッサ」という文言は、例えば、CPU(Central Processing Unit)、GPU(Graphics Processing Unit)、或いは、特定用途向け集積回路(Application Specific Integrated Circuit:ASIC)、プログラマブル論理デバイス(例えば、単純プログラマブル論理デバイス(Simple Programmable Logic Device:SPLD)、複合プログラマブル論理デバイス(Complex Programmable Logic Device:CPLD)、及びフィールドプログラマブルゲートアレイ(Field Programmable Gate Array:FPGA))等の回路を意味する。ここで、メモリにプログラムを保存する代わりに、プロセッサの回路内にプログラムを直接組み込むように構成しても構わない。この場合には、プロセッサは回路内に組み込まれたプログラムを読み出し実行することで機能を実現する。また、本実施形態の各プロセッサは、プロセッサごとに単一の回路として構成される場合に限らず、複数の独立した回路を組み合わせて一つのプロセッサとして構成され、その機能を実現するようにしてもよい。
ここで、プロセッサによって実行されるプログラムは、ROM(Read Only Memory)や記憶部等に予め組み込まれて提供される。なお、このプログラムは、これらの装置にインストール可能な形式又は実行可能な形式のファイルでCD(Compact Disk)-ROM、FD(Flexible Disk)、CD-R(Recordable)、DVD(Digital Versatile Disk)等のコンピュータで読み取り可能な記憶媒体に記録されて提供されてもよい。また、このプログラムは、インターネット等のネットワークに接続されたコンピュータ上に格納され、ネットワーク経由でダウンロードされることにより提供又は配布されてもよい。例えば、このプログラムは、各機能部を含むモジュールで構成される。実際のハードウェアとしては、CPUが、ROM等の記憶媒体からプログラムを読み出して実行することにより、各モジュールが主記憶装置上にロードされて、主記憶装置上に生成される。
また、各実施の形態における検証システムの構成は上記したものに限られず、例えば、学習装置30が処理回路15の一部又は全部の機能を実装してもよく、また記憶回路14が記憶する内容の一部又は全部を記憶してもよい。例えば、学習装置30が処理回路15の全部の機能を実装し、記憶回路14が記憶する内容の全部を記憶することにより、スタンドアロンのコンピュータ上において検証システム1と同様の構成を実装することができる。また、検証装置10の処理回路15が有する各機能がクラウド上に実装され、記憶回路14が記憶する内容がクラウド上に記憶されてもよい。
以上説明した少なくとも一つの実施形態によれば、学習済みモデルを用いた判別結果の妥当性を検証することができる。
本発明のいくつかの実施形態を説明したが、これらの実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。これら実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。これら実施形態やその変形は、発明の範囲や要旨に含まれると同様に、特許請求の範囲に記載された発明とその均等の範囲に含まれるものである。
例えば、出力機能153は、レアケースに該当すると判定された全てのフィルタに関する情報を出力してもよく、レアケースに該当すると判定されたフィルタのうち、演算結果の平均値μからの乖離が大きい一部のフィルタに関する情報だけを出力してもよい。また、出力機能153は、レアケースに該当すると判定されなかったフィルタに関する情報を出力してもよい。