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

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

▶ キヤノン株式会社の特許一覧

特許7408325情報処理装置、学習方法およびプログラム
<>
  • 特許-情報処理装置、学習方法およびプログラム 図1
  • 特許-情報処理装置、学習方法およびプログラム 図2
  • 特許-情報処理装置、学習方法およびプログラム 図3
  • 特許-情報処理装置、学習方法およびプログラム 図4
  • 特許-情報処理装置、学習方法およびプログラム 図5
  • 特許-情報処理装置、学習方法およびプログラム 図6
  • 特許-情報処理装置、学習方法およびプログラム 図7
  • 特許-情報処理装置、学習方法およびプログラム 図8
< >
(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2023-12-22
(45)【発行日】2024-01-05
(54)【発明の名称】情報処理装置、学習方法およびプログラム
(51)【国際特許分類】
   G06N 20/00 20190101AFI20231225BHJP
   G06N 3/08 20230101ALI20231225BHJP
【FI】
G06N20/00 130
G06N3/08
【請求項の数】 22
(21)【出願番号】P 2019167149
(22)【出願日】2019-09-13
(65)【公開番号】P2021043862
(43)【公開日】2021-03-18
【審査請求日】2022-08-16
(73)【特許権者】
【識別番号】000001007
【氏名又は名称】キヤノン株式会社
(74)【代理人】
【識別番号】110002860
【氏名又は名称】弁理士法人秀和特許事務所
(72)【発明者】
【氏名】菊地 徹
【審査官】大塚 俊範
(56)【参考文献】
【文献】特開2001-175636(JP,A)
【文献】国際公開第2018/140596(WO,A2)
【文献】国際公開第2018/116851(WO,A1)
【文献】特開2019-067078(JP,A)
【文献】特開2018-010626(JP,A)
【文献】佐々木 駿也 ほか1名,動的多層化ニューラルネットワーク,電子情報通信学会論文誌D [online],日本,電子情報通信学会,2019年03月01日,第J102-D巻, 第3号,第226頁-第234頁
(58)【調査した分野】(Int.Cl.,DB名)
G06N 20/00
G06N 3/00
(57)【特許請求の範囲】
【請求項1】
医用データの分類を行う分類器の学習の状態を判定する判定手段と、
前記判定手段により判定した前記状態に基づき、前記分類器の構造を設定する設定手段と、
前記設定手段により設定された前記分類器の構造に基づき、前記分類器の学習を行う学習手段と、
を備え
前記設定手段は、過学習の状態が継続した期間、または、学習不足の状態が継続した期間に基づき、前記構造の設定における変更度合いを設定する、
情報処理装置。
【請求項2】
医用データの分類を行う分類器の学習の状態を判定する判定手段と、
前記判定手段により判定した前記状態に基づき、前記分類器の構造を設定する設定手段と、
前記設定手段により設定された前記分類器の構造に基づき、前記分類器の学習を行う学習手段と、
を備え、
前記設定手段は、過学習の状態から学習不足の状態に変化した場合、または、学習不足の状態から過学習の状態に変化した場合は、前記構造の設定における変更度合いを変更する、
情報処理装置。
【請求項3】
前記判定手段が判定する前記状態は、過学習、学習不足、および適正学習、の少なくともいずれかを含む、
請求項1または2に記載の情報処理装置。
【請求項4】
前記設定手段が設定する前記構造は、前記分類器の複雑さに関する構造である、
請求項1から3のいずれか1項に記載の情報処理装置。
【請求項5】
前記設定手段は、前記状態が過学習の場合は前記複雑さを減少するよう前記構造を設定
する、
請求項に記載の情報処理装置。
【請求項6】
前記設定手段は、前記状態が学習不足の場合は前記複雑さを増加するよう前記構造を設定する、
請求項またはに記載の情報処理装置。
【請求項7】
前記分類器は深層学習に基づく分類器であり、
前記設定手段が設定する前記複雑さは、前記分類器の中間層の層数またはノード数である、
請求項からのいずれか1項に記載の情報処理装置。
【請求項8】
前記分類器は深層学習に基づく分類器であり、
前記設定手段が設定する前記複雑さは、前記分類器の畳み込み層の層数または畳み込みフィルタのフィルタ数である、
請求項からのいずれか1項に記載の情報処理装置。
【請求項9】
前記設定手段は、中間層または畳み込み層の層数と、ノード数またはフィルタ数とのいずれを設定するかをランダムに選択する、
請求項またはに記載の情報処理装置。
【請求項10】
前記設定手段は、中間層または畳み込み層の層数と、フィルタ数とのいずれを設定するかを、所定の順序で選択する、
請求項またはに記載の情報処理装置。
【請求項11】
前記判定手段は、前記分類器の状態として、勾配消失の発生を判定し、
前記設定手段は、前記分類器において勾配消失が発生している場合は、学習不足であっても、前記層数を増加させない、
請求項から10のいずれか1項に記載の情報処理装置。
【請求項12】
前記設定手段は、前記状態が適正学習の場合は前記構造を変更しない、
請求項から11のいずれか1項に記載の情報処理装置。
【請求項13】
前記設定手段は、過学習の状態が継続した期間、または、学習不足の状態が継続した期間が長いほど、前記構造の設定における変更度合いを大きくする、
請求項1から12のいずれか1項に記載の情報処理装置。
【請求項14】
前記設定手段は、過学習の状態から学習不足の状態に変化した場合、または、学習不足の状態から過学習の状態に変化した場合は、前記構造の設定における変更度合いを、直近の設定における変更度合いよりも小さくする、
請求項1から13のいずれか1項に記載の情報処理装置。
【請求項15】
前記学習手段は、前記状態が過学習であればドロップアウトの割合を増加させ、前記状態が学習不足であればドロップアウトの割合を減少させて、前記分類器の学習を行う、
請求項1から14のいずれか1項に記載の情報処理装置。
【請求項16】
前記学習手段は、半教師あり学習により前記分類器の学習を行うものであり、
前記設定手段は、前記状態の変化に基づいて前記分類器の構造を設定する際の変更度合いを決定し、
前記学習手段は、前記変更度合いが所定の基準より小さい場合には、前記状態が過学習
であればラベルつきデータに対する損失の学習への寄与割合を減少させ、前記状態が学習不足であればラベルつきデータに対する損失の学習への寄与割合を増加させる、
請求項1から15のいずれか1項に記載の情報処理装置。
【請求項17】
前記学習手段は、前記設定手段により前記分類器の構造を設定した後、それまでに学習した前記分類器のパラメータの値を引き継いで前記分類器の学習を行う、
請求項1から16のいずれか1項に記載の情報処理装置。
【請求項18】
前記学習手段は、前記設定手段による前記分類器の構造の設定した後、少なくとも所定のエポック数の学習を行う、
請求項1から17のいずれか1項に記載の情報処理装置。
【請求項19】
コンピュータが行う、医用データの分類を行う分類器を学習する学習方法であって、
前記分類器の学習の状態を判定する判定ステップと、
前記判定ステップにおいて判定した前記状態に基づき、前記分類器の構造を設定する設定ステップと、
前記設定ステップにおいて設定された前記構造に基づき、教師データを用いて前記分類器の学習を行う学習ステップと、
を含み、
前記設定ステップでは、過学習の状態が継続した期間、または、学習不足の状態が継続した期間に基づき、前記構造の設定における変更度合いを設定する、
学習方法。
【請求項20】
コンピュータが行う、医用データの分類を行う分類器を学習する学習方法であって、
前記分類器の学習の状態を判定する判定ステップと、
前記判定ステップにおいて判定した前記状態に基づき、前記分類器の構造を設定する設定ステップと、
前記設定ステップにおいて設定された前記構造に基づき、教師データを用いて前記分類器の学習を行う学習ステップと、
を含み、
前記設定ステップでは、過学習の状態から学習不足の状態に変化した場合、または、学習不足の状態から過学習の状態に変化した場合は、前記構造の設定における変更度合いを変更する、
学習方法。
【請求項21】
コンピュータを、請求項1から18のいずれか1項に記載の情報処理装置の各手段として機能させるためのプログラム。
【請求項22】
コンピュータに、請求項19または20に記載の学習方法の各ステップを実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、情報処理装置、学習方法およびプログラムに関する。
【背景技術】
【0002】
コンピュータで医用画像を解析し、医師に読影の助けとなる情報を提示するコンピュータ支援診断(Computer Aided Diagnosis:CAD)システムが知られている。このようなCADシステムの中でも、医用画像から鑑別診断の候補となる診断名を分類し提示するCADシステムには、医用画像と正解の診断名が対となった医用データを教師データとして分類器を機械学習することにより実現されるものがある。この機械学習では、解こうとしている問題に対して、分類器を適切に学習させなければならない。
【0003】
特許文献1で開示された学習装置は、ラベルつきデータに対する誤差とラベルなしデータに対する誤差の学習への寄与割合を、学習の過程で変更させることで、適切な半教師あり学習を実施している。具体的には、過学習状態を判定した際に、教師なし誤差の混合割合を上げ、そうでなければ適切または学習不足と判定して教師なし誤差の割合を下げる。
【0004】
特許文献2で開示された学習装置は、損失関数の勾配に学習率を乗じた値でニューラルネットワークのパラメータを更新する際に、評価データで精度を求め、精度が改善される場合はパラメータを記憶し、改善されない場合は学習率を低下させて学習を再開する。
【先行技術文献】
【特許文献】
【0005】
【文献】特開2018-181071号公報
【文献】特開2018-160200号公報
【発明の概要】
【発明が解決しようとする課題】
【0006】
しかし、機械学習により解こうとしている問題に対して、分類器の能力が適切でないと、適切な学習を行うことができない。具体的には、解こうとしている問題の分布の複雑さに対して分類器が表現できる分布の複雑さが高い場合には過学習を生じ、低い場合には学習不足が生じる。
【0007】
本発明は、解こうとしている問題に対して、適切なモデル構造を持つ分類器を構築することを目的とする。
【課題を解決するための手段】
【0008】
本発明の第一態様は、
医用データの分類を行う分類器の学習の状態を判定する判定手段と、
前記判定手段により判定した前記状態に基づき、前記分類器の構造を設定する設定手段と、
前記設定手段により設定された前記分類器の構造に基づき、前記分類器の学習を行う学習手段と、
を備え
前記設定手段は、過学習の状態が継続した期間、または、学習不足の状態が継続した期間に基づき、前記構造の設定における変更度合いを設定する、
情報処理装置である。
本発明の第二態様は、
医用データの分類を行う分類器の学習の状態を判定する判定手段と、
前記判定手段により判定した前記状態に基づき、前記分類器の構造を設定する設定手段と、
前記設定手段により設定された前記分類器の構造に基づき、前記分類器の学習を行う学習手段と、
を備え、
前記設定手段は、過学習の状態から学習不足の状態に変化した場合、または、学習不足の状態から過学習の状態に変化した場合は、前記構造の設定における変更度合いを変更する、
情報処理装置である。
【0009】
本発明の第態様は、
コンピュータが行う、医用データの分類を行う分類器を学習する学習方法であって、
前記分類器の学習の状態を判定する判定ステップと、
前記判定ステップにおいて判定した前記状態に基づき、前記分類器の構造を設定する設定ステップと、
前記設定ステップにおいて設定された前記構造に基づき、教師データを用いて前記分類器の学習を行う学習ステップと、
を含み、
前記設定ステップでは、過学習の状態が継続した期間、または、学習不足の状態が継続した期間に基づき、前記構造の設定における変更度合いを設定する、
学習方法である。
本発明の第四態様は、
コンピュータが行う、医用データの分類を行う分類器を学習する学習方法であって、
前記分類器の学習の状態を判定する判定ステップと、
前記判定ステップにおいて判定した前記状態に基づき、前記分類器の構造を設定する設定ステップと、
前記設定ステップにおいて設定された前記構造に基づき、教師データを用いて前記分類器の学習を行う学習ステップと、
を含み、
前記設定ステップでは、過学習の状態から学習不足の状態に変化した場合、または、学習不足の状態から過学習の状態に変化した場合は、前記構造の設定における変更度合いを変更する、
学習方法である。
【発明の効果】
【0010】
本発明によれば、解こうとしている問題に対して、適切なモデル構造を持つ分類器を構築することが可能となる。
【図面の簡単な説明】
【0011】
図1】実施形態1及び2の情報処理装置を含む情報処理システムのシステム構成図
図2】実施形態1及び2の情報処理装置のハードウェア構成図
図3】実施形態1及び2の情報処理装置の機能ブロック図
図4】実施形態1及び2の医用画像DBの構成を示す概念図
図5】実施形態1及び2の分類器のモデル構造を示す概念図
図6】実施形態1の分類器の学習処理のフロー図
図7】実施形態1及び2の学習状態判定の概念図
図8】実施形態2の分類器の学習処理のフロー図
【発明を実施するための形態】
【0012】
以下、添付の図面を参照して、本発明をその好適な実施形態に基づいて詳細に説明する。尚、特に断らない限り、他の実施形態等で説明した項目については、同一の番号を付し、その説明を省略する。また、以下の実施形態において示す構成は一例に過ぎず、本発明
は図示された構成に限定されるものではない。
【0013】
<実施形態1>
実施形態1では、胸部X線CT(Computed Tomography)画像上の肺結節影に対する診断名の分類を行うCADシステムの分類器の機械学習を行う情報処理装置について説明する。本実施形態の情報処理装置は、分類器の学習の際に、分類器の学習の状態を判定し、判定した学習の状態に基づいて、分類器のモデル構造を設定する。
【0014】
(システム構成)
図1は、本実施形態の情報処理装置101を含む情報処理システム1のシステム構成図である。図1において、情報処理システム1は、医用画像データベース(以降、医用画像DBと呼ぶ)102、情報処理装置101、LAN(Local Area Network)103から構成される。
【0015】
医用画像DB 102は、CT装置など医用画像の撮像装置で撮影された医用画像と、その医用画像の診断名とを含む医用データを記憶する。また、医用データを、LAN 103を介して検索、取得するための既知のデータベース機能を提供する。医用画像DB 102に記憶される医用データの構成については図4を用いて説明する。
【0016】
(医用データの構成)
図4は、医用画像DB 102に記憶される医用データの構成を示す概念図である。
【0017】
図4において、医用画像DB 102に記憶される医用データは、学習用データセット410と検証用データセット420から構成される。学習用データセット410は分類器301の学習に用いる教師データのデータセットであり、検証用データセット420は分類器301の学習状態の検証に用いるデータセットである。学習用データセット410は複数の学習用医用データ411-i(i=1,...,Nt)から成り、検証用データセット420は複数の検証用医用データ421-i(i=1,...,Nv)から成る。学習用医用データ411-i(i=1,...,Nt)と検証用医用データ421-i(i=1,...,Nv)は同様の構成を持ち、患者情報401、診断名402、画像403から構成される。ここで、患者情報401は、患者ID、患者氏名など、患者に関する情報を含む。診断名402は、画像403に関する診断名であり、本実施形態では「原発」、「転移」、「良性」のいずれかである。画像403は、CT画像から抽出した、肺結節を含む三次元の部分領域画像である。尚、診断名402は、「悪性」、「良性」であっても、原発、転移、良性を更に細分化した診断名でもよい。また、画像403は、CT画像と肺結節を含む三次元の部分領域を示す座標情報との組み合わせでもよい。また、学習用データセット410と検証用データセット420は、単一のデータセットから動的に生成してもよい。
【0018】
(ハードウェア構成)
図2は、本実施形態の情報処理装置101のハードウェア構成図である。情報処理装置101は、LAN103、ディスプレイ207、キーボード209、およびマウス210に接続される。
【0019】
図2において、記憶媒体201は、OS(Operating System)や本実施形態に係る各種処理を行うための処理プログラム、各種情報を記憶するHDD(Hard Disk Drive)等の記憶媒体である。ROM(Read Only Memory)202はBIOS(Basic Input Output System)等、ハードウェアを初期化しOSを起動するためのプログラムを記憶する。CPU(Central Processing Unit)203はBIOSやOS、処理プログラム
を実行する際の演算処理を行う。RAM(Random Access Memory)204は、CPU203がプログラムを実行する際の情報を一時記憶する。LANインタフェース205は、IEEE(Institute of Electrical and Electronics Engineers)802.3ab等の規格に対応し、LAN 103を介して通信を行うためのインタフェースである。ディスプレイインタフェース206は、ディスプレイ207に表示する画面情報を信号に変換し出力するインタフェースである。入力インタフェース208はキーボード209及びマウス210からの信号を受信するためのインタフェースである。内部バス211は、各ブロックが通信を行うための通信路である。
【0020】
ディスプレイ207は、液晶ディスプレイなどの表示装置である。キーボード209はキー入力を行うための入力装置であり、マウス210は画面上の座標位置を指定及びボタン操作の入力するための入力装置である。
【0021】
(機能構成)
図3は、本実施形態の情報処理装置101の機能ブロック図である。CPU203がプログラムを実行することにより、情報処理装置101は、図3に示すように、分類器301、学習部302、学習状態判定部303、モデル構造設定部304として機能する。
【0022】
分類器301は、画像403を入力し診断名の分類結果を出力する。具体的には、分類器301は、診断名の分類結果として、画像403が「原発」である尤度、「転移」である尤度、「良性」である尤度を出力する。
【0023】
ここで、分類器301のモデル構造について図5を参照して詳細に説明する。図5は、本実施形態の情報処理装置101の分類器301のモデル構造の概念図である。本実施形態の分類器301のモデル構造は、深層学習の一種である既知のCNN(ConvolutionalNeuralNetwork)である。
【0024】
図5において、モデル構造は入力層501、中間層502-i(i=1、・・・、Nl、図5ではNl=2)、出力層503から構成される。入力層501、中間層502-i(i=1、・・・、Nl)、出力層503の各層は複数のノード510から構成され、隣接する層のノードの入出力は相互に接続される。入力層501のノードには画像403が入力される。中間層502-i(i=1、・・・、Nl)のノードは、前方(図中で左側)のノードの出力値に対して、各ノードのカーネル値で畳み込み演算を行い、重みを足した値を後方(図中で右側)のノードに出力する(以降、畳み込み層と呼ぶ)。出力層503は、本実施形態では「原発」、「転移」、「良性」に対応した3つのノードを備える。出力層503の各ノードは、前方のノードの出力値にカーネル値を乗じて総和をとった値に重みを加え(以降、全結合層と呼ぶ)、その出力に既知のSoftmaxと呼ばれる演算を加え各分類に対する尤度を算出する。
【0025】
尚、本実施形態ではモデル構造としてCNNの例を示したが、中間層を全結合層に置き換えたDNN(Deep NeuralNetwork)等でもよく、これに限られるも
のではない。
【0026】
学習部302は、医用画像DB 102から取得した学習用データセット410を用いて、分類器301の機械学習を行う。具体的には、分類器301に学習用データセット410の画像403を入力し、分類器の出力である診断名の分類結果(尤度)と正解の診断名から損失を求める。また、損失の勾配に予め指定された学習率を乗じた値で分類器の学習パラメータを更新する。この更新は所定回数繰り返す(1回の更新を「エポック」と呼ぶ)。ここで、本実施形態の損失は既知の多クラス交差エントロピー(Categori
cal Cross Entropy)であり、更新する学習パラメータはCNNを構成する各ノードのカーネル値と重みである。
【0027】
学習状態判定部303は、分類器301の学習状態を判定する。学習状態とは分類器が過学習の状態であるか、学習不足の状態であるか、適正学習の状態であるかのいずれかである。ここで、過学習の状態とは、学習用のデータに適合し過ぎて検証用のデータなどの他のデータに対する適合が低下している状態である。学習不足の状態とは、学習パラメータの更新を繰り返しても学習用のデータへの適合が足りない状態である。適正な学習の状態とは、学習パラメータの更新を繰り返すことで学習用のデータと検証用のデータの両方への適合が進んでいる状態である。この学習状態は、検証用データセット420を用いて求めた検証用データセットに対する損失(以降、検証損失と呼ぶ)と学習部302から取得した学習用データセットに対する損失(以降、学習損失と呼ぶ)に基づいて判定する。判定の方法に関しては図7を用いて説明する。
【0028】
モデル構造設定部304は、学習状態判定部303が判定した学習状態に基づき分類器301の複雑さに関するモデル構造を設定する。ここで複雑さに関するモデル構造とは、分類器301が学習対象となる問題の分布を表現する能力に関するパラメータであり、CNNの場合は、畳み込み層の層数や畳み込みフィルタのフィルタ数である。尚、畳み込み層の数およびフィルタの数はモデル構造の複雑さの一例であり、これに限られるものではない。例えば、分類器301がDNNの場合は、中間層である全結合層の層数およびノード数である。
【0029】
(学習状態判定)
図7は、学習状態判定部303が行う学習状態判定の概念図である。図7において、701-i(i=1,2,3)は、エポックと学習損失および検証損失との関係を表したグラフ(以降、学習曲線と呼ぶ)である。学習曲線701-i(i=1,2,3)において、702-i(i=1,2,3)は学習損失の曲線(以降、学習損失曲線と呼ぶ)、703-i(i=1,2,3)は検証損失の曲線(以降、検証損失曲線と呼ぶ)である。
【0030】
学習曲線701-1は適正な学習の状態、学習曲線701-2は過学習の状態、学習曲線701-3は学習不足の状態を示している。
【0031】
適正な学習の状態の学習曲線701-1は、エポックが増加するに従って、学習損失曲線702-1も検証損失曲線703-1も下降している。したがって、学習状態判定部303は、学習損失と検証損失のいずれもがエポックの増加とともに減少する場合に、適正学習の状態であると判定できる。
【0032】
過学習の状態の学習曲線701-2は、エポックが増加するに従って、学習損失曲線702-1は下降するが、検証損失曲線703-1は上昇している。したがって、学習状態判定部303は、学習損失がエポックの増加とともに減少し、かつ、検証損失がエポックの増加とともに増加する場合に、過学習の状態であると判定できる。
【0033】
学習不足の学習曲線701-3は、エポックが増加しても、学習損失曲線702-1と検証損失曲線703-1のいずれも下降が少ない。したがって、学習状態判定部303は、学習損失と検証損失のいずれもがエポックの増加とともに減少するが、その減少度合いが閾値以下である場合に、学習不足の状態であると判定できる。学習不足と判断するための減少度合いの閾値は、学習対象となる問題毎に予め指定する。
【0034】
ここでは、学習損失と検証損失のエポック間での変化に基づいて学習状態を判定する例を説明したが、エポック間での変化に加えて、または代えて、学習損失と検証損失のそれ
ぞれの値またはこれらの値の差に基づいて学習状態を判定してもよい。例えば、学習状態判定部303は、学習損失と検証損失の差が大きい場合、すなわち第1閾値以上である場合に、過学習の状態であると判定してもよい。また、学習状態判定部303は、学習損失が大きい場合、すなわち第2閾値以上である場合に、未学習の状態であると判定してもよい。学習状態判定部303は、上記の第1閾値および第2閾値は、学習対象となる問題毎に予め指定する。上記以外の場合、すなわち、学習損失が小さく、かつ、学習損失と検証損失の差が小さい場合に、適正学習の状態であると判定してもよい。
【0035】
本実施形態では損失の変化により学習状態の判定を行ったが、これに限られるものではなく、正確度(accuracy)の変化により判定を行ってもよい。具体的には、学習用データセット410に対する正確度(以降、学習正確度と呼ぶ)と検証用データセット420に対する正確度(以降、検証正確度と呼ぶ)が、エポックが増加するに従って、共に増加する場合は適正な学習状態と判定する。また、学習正確度が上昇しているにもかかわらず検証正確度が下降する場合は過学習、学習正確度も検証正確度も所定の水準まで上昇しない場合は学習不足の状態と判定する。また、正確度のエポック間の変化ではなく、学習正確度と検証正確度のそれぞれの値またはこれらの値の差に基づいて学習状態を判定してもよい。
【0036】
(学習処理)
図6は、本実施形態の分類器301の学習方法の流れを示すフロー図である。学習処理は、情報処理装置101の起動後に、ユーザからの指示に基づき実行される。ユーザは学習処理を指示する際に、学習に使用する学習用データセット410と検証用データセット420と分類器301の初期のモデル構造を指定する。具体的には、データセットはCSV(Comma-Separated Values)ファイルのURL(Uniform Resource Locator)により指定され、分類器301のモデル構造は畳み込み層の数、畳み込みフィルタの数により指定される。
【0037】
ステップS601では、学習部302は、指定された畳み込み層の層数と畳み込みフィルタのフィルタ数に基づき、初期のモデルを作成する。初期のモデルとは、学習パラメータである畳み込みフィルタのカーネル値と重みに初期値が設定されたモデルである。初期値は固定値またはランダム値のいずれでもよい。
【0038】
ステップS602では、学習部302は、指定された学習用データセット410と検証用データセット420を医用画像DB 102から取得する。
【0039】
ステップS603では、学習部302は、学習損失を算出する。より詳細には、学習用医用データ411-i(i=1,・・・,Nt)毎に画像403を分類器に入力して分類毎の尤度を算出し、算出した尤度と正解となる診断名402から既知のCategorical Cross Entoropyを算出し平均をとる。
【0040】
ステップS604では、学習部302は、ステップS603で算出した学習損失に基づき、モデルの学習パラメータを更新する。パラメータの更新は、既知の勾配法と呼ばれる手法を用いて行う。勾配法は、損失を求める関数の勾配を計算し、勾配に学習率と呼ばれる定数を乗じた値を学習パラメータから減ずる方法である。学習率は学習の期間に渡って固定でも可変でもよい。可変とする場合は、学習が進むに連れて減少させるが、これに限られるものではない。
【0041】
ステップS605では、学習状態判定部303は、検証損失を算出する。より詳細には、検証用医用データ421-i(i=1,・・・,Nv)毎に画像403を分類器に入力して分類毎の尤度を算出し、算出した尤度と正解となる診断名402から既知のCate
gorical Cross Entoropyを算出し平均をとる。
【0042】
ステップS606では、学習状態判定部303は、学習損失と検証損失に基づき学習状態を判定する。学習状態判定については図7を用いて説明したので、繰り返しの説明は省略する。得られる学習状態は、過学習、学習不足、適正学習のいずれかである。
【0043】
ステップS607では、モデル構造設定部304は、ステップS606で判定された学習状態の変化に応じて、ステップS621及びステップS631で用いる増減数δ(>0)を設定する。なお、本実施形態においては、モデル構造設定部304は、現在のモデル構造の複雑さを所定の増減数δだけ変更することにより、モデル構造を設定する。増減数δは、モデル構造の複雑さを変更する際の変更度合いを表すパラメータである。ステップS607では、モデル構造設定部304は、具体的には、学習不足または適正な状態から過学習状態へ、過学習状態から学習不足または適正な状態へ変化した場合は増減数δを減らす、あるいは増減数δを初期値に設定し直す。また、モデル構造設定部304は、過学習状態または学習不足状態が一定期間(一定のエポック数)継続した場合は増減数δを所定の値だけ増やす。過学習状態または学習不足状態が継続する期間が長いほど、増減数δの値を大きくしてもよい。このようにすることで、過学習の状態が継続した後に学習不足の状態に変化した場合、および学習不足の状態が継続した後に過学習の状態に変化した場合、増減数(変更度合い)δは直近の変更における値よりも小さくなる。
【0044】
後述するように、モデル構造を変化させる際には層数とフィルタ数のいずれかを変化させる。そこで、ステップS607では、モデル構造設定部304は、増減数δを層数とフィルタ数に対してそれぞれ決定してもよいし、ステップS607では1つの増減数δを決定し、後の工程で増減数δに基づいて増減させる層数またはフィルタ数を決定してもよい。
【0045】
ステップS608では、モデル構造設定部304は、学習状態が学習不足の状態であるか否かを判定する。学習状態が学習不足の状態である場合(S608のYes)はステップS621に進み、学習不足の状態でない場合(S608のNo)はステップS609に進む。
【0046】
ステップS621では、モデル構造設定部304は、モデルの複雑さを増減数δだけ増やす。具体的には、CNNの畳み込み層の数と畳み込みフィルタの数とのいずれか一方をランダムに選択して所定数だけ増加させる。ここで、畳み込み層から出力されるデータのサイズが入力されたデータのサイズよりも小さくなるモデルの場合は、出力サイズがフィルタサイズより小さくならないように増加させる層数を制限する。増加させた畳み込みフィルタのカーネル値や重みは固定値またはランダム値で初期化し、学習中の他のカーネル値や重み等のパラメータはそれまでに学習したパラメータを引き継いで利用する。尚、増加させる対象は層数とフィルタ数の一方を固定的に選択しても、両者を選択しても、所定の順序に基づいて選択してもよい。また、追加する層やフィルタのモデル構造内での位置はランダムに選択しても、固定的に選択しても、所定の順序で選択してもよい。ステップS621の処理が終わるとステップS632に進む。
【0047】
ステップS609では、モデル構造設定部304は、学習状態が過学習の状態であるか否かを判定する。学習状態が過学習の状態である場合(S609のYes)はステップS631に進み、過学習の状態でない場合(S609のNo)はステップS610に進む。学習状態が過学習でも学習不足でもない場合(S608のNoかつS609のNo)、すなわち適正な学習の状態では、モデル構造の変更は行われない。
【0048】
ステップS631では、モデル構造設定部304は、モデルの複雑さを増減数δだけ減
らす。具体的には、CNNの畳み込み層の数と畳み込みフィルタの数とのいずれか一方をランダムに選択して所定数だけ減少させる。ここで、中間層の層数が最低でも1となるように制限を設ける。学習中のカーネル値や重みはそれまでに学習した値を引き継いで利用する。尚、減少させる対象は層数とフィルタ数の一方を固定的に選択しても、両者を選択しても、所定の順序に基づいて選択してもよい。また、削減する層やフィルタのモデル構造内での位置はランダムに選択しても、固定的に選択しても、所定の順序で選択してもよい。ステップS631の処理が終わるとステップS632に進む。
【0049】
ステップS632では、モデル構造設定部304は、エポック数を再設定する。具体的には、エポック数カウンタをゼロ或いは所定値にリセットする。本ステップは、モデル構造変更後に少なくとも所定のエポック数の学習を行うことを目的とした処理であるため、ステップS611で用いられる終了判定用のエポック数を所定数増やしてもよい。ステップS632の処理が終わるとステップS611に進む。
【0050】
ステップS610では、学習部302は、エポック数カウンタをインクリメントし、ステップS611に進む。ステップS611では、学習部302は、所定回数のエポックが終了したか否かを判定し、所定エポックを終了していない場合(S611のNo)は、ステップS603から処理を繰り返し、所定エポック終了の場合(S611のYes)は学習処理を終了する。
【0051】
以上説明したように、本実施形態によれば、医用画像から診断名を分類する分類器の学習において学習の状態を判定し、学習の状態に基づいて分類器のモデル構造を設定する。これにより、解こうとしている問題に対して、適切なモデル構造を持つ分類器を構築することが可能となる。
【0052】
また、ステップS631のモデル構造を変更する際に、学習中のカーネル値や重みを、それまでに学習した値を引き継ぐことで、引き継いだモデル構造部分に対する初期の学習パラメータの更新が省け、学習処理の効率化も可能となる。
【0053】
(実施形態1の変形例1)
実施形態1の分類器301のモデル構造は畳み込み層を中間層として備えるCNNであったが、畳み込み層と次の層との間にドロップアウトと呼ばれる処理を施したモデル構造であってもよい。ドロップアウトとは、学習時に一定の割合でノードの出力をゼロにする処理である。モデル構造設定部304は、過学習の状態を判定した場合にドロップアウトの割合を増加させ、学習不足を判定した場合に減少させてもよい。
【0054】
また、モデル構造は、既知の残差ネットワーク(Residual Network)のように複数の小さなネットワーク(以降、モジュールと呼ぶ)を組み合わせて大きなネットワークを構成するモデル構造であってもよい。モジュールには既知のResidualモジュールやInceptionモジュールがあるが、これに限られない。モデル構造設定部304は、学習の状態に基づきモジュールの数やモジュール自身の構造を変更してもよい。
【0055】
また、モデル構造は、RBF(Radial Basis Function Kernel)カーネルを用いたSVM(Support Vector Machine)でもよい。モデル構造設定部304は、学習の状態に基づき決定境界の複雑さに関するパラメータ(γと呼ばれる)を変更してもよい。
【0056】
(実施形態1の変形例2)
実施形態1は半教師あり学習でもよく、その場合は、層数やフィルタ数の変更に加えて
、ラベルつきデータに対する損失(以降、教師あり損失と呼ぶ)とラベルなしデータに対する損失(以降、教師なし損失と呼ぶ)の学習への寄与割合を変更してもよい。ここで寄与割合とは、教師あり損失と教師なし損失を加算した損失に基づいて学習パラメータを更新する際の、教師あり損失に対する重みである。モデル構造設定部304は、ステップS607で層数やフィルタ数の増減数δが所定の基準より小さくなった場合に、前記寄与割合を設定する。すなわちステップS621では、ラベルつきデータに対する寄与割合を増やし、ステップS631では、寄与割合を減らす。
【0057】
<実施形態2>
実施形態2では、実施形態1と同様に、胸部X線CT画像上の肺結節影に関する診断推論を行うCADシステムである情報処理装置について説明する。
【0058】
実施形態1の情報処理装置は過学習や学習不足といった学習状態に基づきモデル構造を設定したが、本実施形態では、それらの学習状態に加えて勾配消失と呼ばれる状態を判定し、モデル構造の設定を行う。
【0059】
尚、本実施形態に係る情報処理装置のシステム構成、ハードウェア構成、機能ブロック、医用画像DB 102の構成、モデル構造、学習状態判定方法は実施形態1と同様であるため説明を省略する。
【0060】
本実施形態で判定する勾配消失とは、学習パラメータを更新する際に算出する損失関数の勾配がゼロに近くなり、学習パラメータが更新されない状態を呼ぶ。勾配消失は層数が増えた場合に発生し易くなる。
【0061】
図3の機能ブロックにおいて、学習状態判定部303は、層数を増やすことにより損失関数の勾配がゼロに近い所定値以下になるか否かで勾配消失を判定する。モデル構造設定部304は、学習不足の状態で勾配消失が判定されると、層数以外の複雑さであるフィルタ数を増やすよう動作する。すなわち、勾配消失の評価結果に基づいて、層数に上限が設けられる。
【0062】
図8は、本実施形態の分類器301の学習方法のフロー図である。図8において、実施形態1と同様の処理には同一の番号を付し、説明を省略する。
【0063】
実施形態1で説明したステップS608の処理で学習状態が学習不足である場合(S608のYes)、ステップS801へ進む。
【0064】
ステップS801では、学習状態判定部303は、勾配消失の発生有無を判定する。勾配消失が判定された場合は(S801のYes)、ステップS802へ進み、判定されない場合は(S801のNo)、実施形態1で説明したステップS621へ進む。
【0065】
ステップS802では、モデル構造設定部304は、層数を除くモデルの複雑さを増減数δだけ増やす。具体的には、モデル構造がCNNであれば、フィルタ数を増やす。ステップS802の処理が終わると実施形態1で説明したステップS632に進む。
【0066】
以上説明したように、本実施形態によれば、医用画像から診断名を分類する分類器の学習において学習の状態を判定し、学習の状態に基づいて分類器のモデル構造を設定する。また、勾配消失の発生も判定しモデル構造を設定する。従って、解こうとしている問題に対して、適切なモデル構造を持つ分類器を構築することが可能となる。また、学習パラメータが更新されない層を作成しないことでモデル構造の無駄を低減できる。
【0067】
<その他の実施形態>
上記の実施形態では、分類器301は胸部X線CT画像から肺結節影の診断名を分類するものであったが、分類器301は、任意種類の医用画像から任意の疾患の診断名を分類するものであってよい。また、分類器301は、医用画像以外の画像を受け付けて、その分類結果を出力する分類器であっても構わない。また、分類器301への入力は、画像以外の任意のデータ形式の医用データであっても構わない。
【0068】
情報処理装置101によって学習された分類器301は、どのように用いられてもよい。例えば、情報処理装置101が、分類器301を用いて診断名の分類をおこなってもよい。また、分類器301あるいはその学習済みモデルデータを他の装置にコピーして、当該他の装置において分類をおこなってもよい。
【0069】
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。
【符号の説明】
【0070】
101:情報処理装置 301:分類器 302:学習部
303:学習状態判定部 304:モデル構造設定部
図1
図2
図3
図4
図5
図6
図7
図8