以下、図面に基づき、本発明の実施形態を詳述する。なお、以下に説明する実施形態は特許請求の範囲に係る発明を限定するものではなく、また、実施形態の中で説明されている諸要素およびその組み合わせの全てが発明の解決手段に必須であるとは限らない。また実施形態の中で説明されている諸要素を適宜組み合わせた形態も、本願が開示する実施形態に含まれる。
以下に説明する発明の構成において、同一部分又は同様な機能を有する部分には同一の符号を異なる図面間で共通して用い、重複する説明は省略することがある。
同一あるいは同様な機能を有する要素が複数ある場合には、同一の符号に異なる添字を付して説明する場合がある。ただし、複数の要素を区別する必要がない場合には、添字を省略して説明する場合がある。
本明細書等における「第1」、「第2」、「第3」などの表記は、構成要素を識別するために付するものであり、必ずしも、数、順序、もしくはその内容を限定するものではない。また、構成要素の識別のための番号は文脈毎に用いられ、一つの文脈で用いた番号が、他の文脈で必ずしも同一の構成を示すとは限らない。また、ある番号で識別された構成要素が、他の番号で識別された構成要素の機能を兼ねることを妨げるものではない。
図面等において示す各構成の位置、大きさ、形状、範囲などは、発明の理解を容易にするため、実際の位置、大きさ、形状、範囲などを表していない場合がある。このため、本発明は、必ずしも、図面等に開示された位置、大きさ、形状、範囲などに限定されない。
本明細書で引用した刊行物、特許および特許出願は、そのまま本明細書の説明の一部を構成する。
本明細書において単数形で表される構成要素は、特段文脈で明らかに示されない限り、複数形を含むものとする。
実施例で説明される機械学習用情報処理装置の一例は、機械学習が適用される解析装置の学習を支援する用途に用いられるものである。機械学習としては、学習データ(教師データ)を用いてニューラルネットワークを学習するものがあげられる。この装置は、画像解析結果の正誤情報を生成する正誤情報生成部と、画像解析処理において解析に関わる信頼性を判定する信頼性判定部と、正誤情報および信頼性に基づき学習条件を提示する学習条件出力部と、を備える。
このような機械学習用情報処理装置は、一般的な情報処理装置、例えばサーバーによって構成可能である。一般的なサーバーと同様に、かかる機械学習用情報処理装置は、制御装置と、記憶装置と、入力装置と、出力装置と、各部を接続するバスを備えている。装置で実行されるプログラムは、記憶装置に予め組み込んでおくものとする。以下の説明では、情報処理装置が当然備える制御装置、記憶装置、入力装置、出力装置を敢えて図示することはなく、装置で実現される機能に着目して説明する。
具体的には、各機能は記憶装置に記憶され、処理装置で実行されるプログラムによって実現される。すなわち、本実施例では計算や制御等の機能は、記憶装置に格納されたプログラムが処理装置によって実行されることで、定められた処理を他のハードウェアと協働して実現される。計算機などが実行するプログラム、その機能、あるいはその機能を実現する手段を、「機能」、「手段」、「部」、「ユニット」、「モジュール」等と呼ぶ場合がある。
機械学習用情報処理装置の構成は、単体の装置で構成してもよいし、あるいは、入力装置、出力装置、処理装置、記憶装置の任意の部分が、ネットワークで接続された他のコンピュータで構成されてもよい。発明の思想としては等価であり、変わるところがない。
本実施例中、ソフトウェアで構成した機能と同等の機能は、FPGA(Field Programmable Gate Array)、ASIC(Application Specific Integrated Circuit)などのハードウェアでも実現できる。そのような態様も本願発明の範囲に含まれる。
図1は、実施形態に係る機械学習用情報処理装置100の構成例を示すブロック図である。機械学習用情報処理装置100は、正誤情報生成部101、信頼性判定部102、学習条件出力部103および表示内容生成部104を備える。正誤情報生成部101、信頼性判定部102、学習条件出力部103および表示内容生成部104は、バス106を介して接続されている。バス106は、バス106に接続されている各処理部で扱われるデータ、制御情報および解析情報を保持し、もしくは伝送を仲介する。
冒頭で述べたように、本実施例では、正誤情報生成部101、信頼性判定部102、学習条件出力部103および表示内容生成部104はソフトウェアで実装するものとする。また、機械学習用情報処理装置100は情報処理装置として通常備える、各種の入出力装置やインターフェースを備えるものとする。
機械学習用情報処理装置100は、バス106を介して画像解析装置110および入出力装置111に接続されている。機械学習用情報処理装置100は、画像解析装置110および入出力装置111と有線接続されてもよいし、無線接続されてもよい。なお、図1では、画像解析装置110および入出力装置111は、機械学習用情報処理装置100の外部に設けた例で示したが、機械学習用情報処理装置100に内蔵されていてもよい。
画像解析装置110は、画像から特定の対象を解析する機能を有する。画像を解析する処理は、画像を特定の特徴を有するか否かを分類して、1つ以上の分類結果を算出するものでも良いし、画像において特定の対象が含まれる領域を検出して、画像における対象の位置や大きさを算出するものでもよいし、画像において特定の対象が含まれる領域をセグメントとして分けて、他の対象と色を分けた画像として算出するものでも良い。以降、画像の分類、画像の検出、画像のセグメント分けに代表されるように、画像から特定の対象を解析する処理を、画像解析と呼ぶこととする。画像解析処理については公知の技術を用いる。
画像解析装置110は、典型的な例示としては、教師有り学習によって内部パラメータを設定されるディープニューラルネットワーク(DNN)等で構成することができる。当該構成は、ソフトウェアで実装してもよいし、FPGAのようなハードウェアで構成してもよい。画像解析装置110は、一般的には所定の入力に対して所定の出力を行う関数近似器として定義される。一般的な関数近似器とした場合、入力は上記のように画像データでもよいし、音声その他の種類のデータを入力としてもよい。
図2に、画像解析装置110による画像解析結果の例を示す。撮影画像210は顕微鏡により撮影される画像の例として三日月状の物体201と楕円状の物体202が混在している状態を示している。画像解析装置110は、例えば撮影画像210を入力とすると、三日月状の物体201と楕円状の物体202を識別して分類する。
例えば、この撮影画像210について、三日月状の物体201は白色に色分けしてセグメント化し、楕円状の物体202及び背景は灰色に色分けしてセグメント化するように画像解析した結果の画像例を解析結果画像220に示す。
解析結果画像220においては、三日月状の物体201A,201B,201Dを正しく白色にセグメント化したセグメント211A,211B,211Dおよび、楕円状の物体202Aを正しく灰色にセグメント化したセグメント212Aがある。一方で、三日月状の物体201Cが正しくセグメント化されていないセグメント211Cや、楕円状の物体202Bが正しくセグメント化されていないセグメント212Bを含んでいる。
入出力装置111は、画像解析装置110により処理された解析結果の正誤に関する情報を機械学習用情報処理装置100に出力する機能を有する。正誤に関する情報を出力する例としては、例えば、画像解析装置110による解析結果を解析結果画像220のような形態で入出力装置111に画像として表示し、利用者により解析の正誤を選択させ、選択した結果を機械学習用情報処理装置100に出力する。
この場合、入出力装置111は、例として画像を表示するディスプレイと利用者が操作できるマウスもしくはキーボードを有するPCにより構成されるが、解析結果画像220を利用者に出力して、解析結果の正誤を利用者により入力するものであればよい。例えばスマートフォンやタブレット端末が有するタッチパネルディスプレイでも良いし、画像結果をプリンタにより印刷するのでも良いし、音声により利用者の選択を入力するものでも良い。
入出力装置111が処理し機械学習用情報処理装置100に出力する情報は、解析結果の正誤を利用者により選択したものでも良いし、期待される解析結果を利用者により作成したものでも良い。また、正誤に関する情報を出力する別の例としては、画像解析装置110とは異なる解析手段による情報を入出力装置111から機械学習用情報処理装置100に出力する。例えば、単眼カメラで物体を撮影した画像を用いて、画像解析装置110によりカメラから物体までの距離を解析する場合では、予めレーザースキャナやTOFカメラなどの3Dセンサにより計測した距離を正解情報として、入出力装置111はこの正解情報を機械学習用情報処理装置100に出力する。正解情報を得る手段については、公知の技術を用いる。
図3を用いて、利用者により解析の正誤を選択する方法の例を説明する。利用者に提示する画像310は、解析結果画像220に基づき作成したもので、利用者に解析結果の正誤を選択するよう促す。利用者による選択の例として、図3ではカーソル301を操作し各セグメントの正誤を選択させる。利用者が選択した結果を正誤選択結果画像320に示す。
利用者による選択の結果、解析結果が正しい(三日月状の物体201を白色にセグメント化、もしくは楕円状の物体202を灰色にセグメント化)と判断したものについては、「正」と表示しており、解析結果が誤っている(三日月状の物体201ではないものを白色にセグメント化、もしくは三日月状の物体201を灰色にセグメント化)と判断したものを「誤」、解析結果が重要でない(以降の学習に反映させる必要がない)と判断したものを「未選択」として表示している。
正誤情報生成部101は、入出力装置111から入力する情報に基づき、画像解析結果の正誤情報を生成する。正誤情報の粒度は任意であるが、図3の例では、セグメント対応で正誤情報を与えている。すなわち、この例では、正誤情報は画像の部分的な領域に対応している。あるいは、正誤のカウント数や正誤の比率によって、画像毎に正誤判定を行ってもよい。
信頼性判定部102は、画像解析の信頼性を判定する。ここで信頼性とは、画像解析における不確かさを指す。画像解析処理を機械学習などにより統計学的にモデル化するとき、モデル化が十分に精緻になされていないと、解析の難度が高いデータを与えたときに、モデル化した解析処理が不確かさを持つことにより、解析結果にばらつきが生じて解析精度が低下し得る。このとき、「モデルが不確かである」ということができ、以降では「モデルの信頼性が低い」と呼ぶ。このケースは、前述の非特許文献1で認識における不確かさと呼ばれているものである。
また、画像解析処理のモデル化が十分に精緻であっても、解析対象のデータが他と比べて局所的にノイズを含み解析の難度が高くなっているような場合では、当該データが不確かさを持つことにより、解析結果にばらつきが生じて解析精度が低下し得る。このとき、「データが不確かである」ということができ、以降では「データの信頼性が低い」と呼ぶ。このケースは前述の非特許文献1で偶発的な不確かさと呼ばれているものである。
信頼性判定部102では、モデルの信頼性およびデータの信頼性を算出する。信頼性判定部102が判定する信頼性は、モデルの信頼性のみでも良いし、データの信頼性のみでも良いし、モデルの信頼性とデータの信頼性の両方でも良い。モデルの信頼性およびデータの信頼性を算出する手法については、例えば非特許文献1記載の公知の技術を用いる。非特許文献1にも記載されているように、モデルの信頼性およびデータの信頼性は、画像の部分的な領域に対応した連続値として、例えばコントラストや色の差で視覚的に示すことができる。
学習条件出力部103は、正誤情報生成部101により生成される画像解析結果の正誤情報と信頼性判定部102により判断される画像解析の信頼性より、学習条件を判定して提示する。
図4は、画像解析結果の正誤情報と画像解析の信頼性に基づいて、学習条件を判定するルールの例を示す表図である。このようなルールは、予め使用者が定めておき、例えばテーブル形式のデータとして機械学習用情報処理装置100の記憶装置(図示せず)に記憶させておく。学習条件出力部103は当該ルールを参照して判定を行う。
図4のうちテーブル410は、解析結果の正誤情報およびモデルの信頼性から学習条件を判定する例であり、モデルの信頼性に対して閾値aもしくはbを用いて信頼性が高いか否かを判定している。閾値はルールの一部として予め使用者が定めておく。
410(1)では、解析結果が正しくかつモデルの信頼性が高いと判定していることから、画像解析装置110の学習は適切と考えられる。この場合、学習条件を維持(現状維持)するよう判定結果を提示する。
410(2)(4)では、モデルの信頼性が低いことから、共に該当するデータを学習データに追加して学習することにより解析精度が向上すると判定している。閾値bを閾値aよりも小さく設定することにより、解析結果が誤っている(4)の方を優先的に学習データに追加させることができる。
図5は、正誤選択結果画像320と信頼性表示画像510の関係を示している。信頼性表示画像510は非特許文献1にも開示されておりモデルの信頼性を示しているが、データの信頼性も同様に表示できる。この例では、信頼性が閾値より低い部分をグレーで、閾値以上の部分を白で示している。ここで、セグメント511の部分は、解析結果が正しいがモデルの信頼性が低い410(2)に該当する。セグメント512の部分は、解析結果が誤りでモデルの信頼性が低い410(4)に該当する。
学習データへの追加は、正誤選択結果画像320に対応する原画像(画像解析装置110への入力画像)と正解の組を学習データに追加すればよい。あるいは、画像中の該当する部分(例えばセグメント511あるいは512に対応する部分)をカーソル301で指定して切り出し、学習データに追加してもよい。
410(3)では、解析結果が誤っているにもかかわらずモデルの信頼性が高い状態であり、図5のセグメント513の部分に対応する。ここでは、学習データの追加よりも学習設定値を変更することによりモデルを大きく変更することが効果的であると判断している。学習設定値とは、例えば学習実行時に学習条件を設定するパラメータや、モデルをチューニングするハイパーパラメータである。
一方、図4のうちテーブル420は、解析結果の正誤情報およびデータの信頼性から学習条件を判定する例であり、データの信頼性に対して閾値cもしくはdを用いて信頼性が高いか否かを判定している。
420(5)では、解析結果が正しくかつデータの信頼性が高いと判定していることから、学習条件を維持するよう判定結果を提示する。
420(6)(8)では、データの信頼性が低く該当するデータに偶発的なノイズが生じていると考えられ、該当するデータを学習データに追加しても解析精度は向上せず、かえって解析精度が低下する恐れがある。すなわち、該当するデータは学習データに使用しない方が良いということである。このことから、当該データの学習データとしての使用は推奨しないことを提示する。さらに学習データを追加して解析精度を向上するためには、データの再取得を提示する。再取得とは、異なる対象についての画像を取得することと、同じ対象についての画像を再取得することの両方があり得る。同じ対象についての画像であっても、条件(例えば撮影条件)によっては学習データに適切なものが取得できる可能性があるからである。具体的には、再度の撮影により、画像中のノイズやハレーションが改善されることが期待される。
420(7)では、解析結果が誤っているにも関わらずデータの信頼性が高い状態であり、データの再取得よりも学習設定値を変更することによりモデルを大きく変更することが効果的であると判断している。
表示内容生成部104は、図3で説明したように、入出力装置111にて利用者が画像解析の正誤を選択する際に、利用者に提示する表示内容を生成する。解析結果が正しいもしくは誤っていると利用者が判断できるような表示内容であればよく、画像分類であれば分類結果を文字として表示するのでも良いし画像として表示するのでも良い。画像の検出であれば、画像のうち検出した領域を枠や色を付与して表示するのでも良いし検出した領域のみを切り出して表示するのでも良い。画像のセグメント分けであれば、画像のうちセグメント分けした領域に色を付与して表示するのでも良いし、セグメント分けした領域のみを切り出して表示するのでも良い。ほかにも、画像のうち画像解析した結果を示す手法であれば、公知の技術でも構わない。また、2つ以上ある複数の画像解析結果を並べて表示させ、その中から画像解析の正誤を選択するような表示内容でも構わない。
また、表示内容生成部104は、学習条件出力部103の出力結果を表示するための画像データも生成する。また、後に図7で説明するようなインターフェース画像の生成を行う。
図4に示した、モデルの信頼性に基づく判定と、データの信頼性に基づく判定は、片方だけを独立に行ってもよいし、両方を行ってもよい。両方行う場合には、先にデータの信頼性に基づく判定を行い、420(6)(8)で学習データへの採用が推奨されない画像を除外してから、モデルの信頼性に基づく判定を行うことで、非推奨データが学習データに用いられることを防止するのがよい。
図6は、機械学習用情報処理装置100による機械学習用情報処理を示すフローチャートである。図6では、解析結果の正誤情報およびモデルの信頼性から学習条件を判定する処理をフローチャート図により示している。
機械学習用情報処理装置100への入力は、画像解析装置110から入力される画像解析結果と、入出力装置111から入力される例えば使用者による正解である。学習データの追加を想定している場合には、画像解析装置110の解析対象として学習データ以外の新しい画像(追加しようとする学習データ候補)を使用する。
S601では、画像解析装置110と入出力装置111から入力される情報に基づき、正誤情報生成部101により正誤情報を生成する。正誤情報は、解析結果画像の各々について付与されるものでも良いし、図3の例のように解析結果画像に含まれる1以上の解析結果の各々について付与されるものでも良い。また、入出力装置111において利用者が正誤を判断した画像についてのみ正誤情報を生成するのでも良く、その場合はS603で対象とするデータは、利用者が正誤を判断したデータに限定する。
S602では、信頼性判定部102によりモデルの信頼性を判定する。モデルの信頼性は、解析結果画像に対して例えば画像の大きさ(水平方向画素数×垂直方向画素数)の数だけ数値を有するものでも良いし、解析結果画像1つに対して単一の数値を有するものでも良い。信頼性判定の具体例については、例えば非特許文献1に開示がある。
S603では解析結果画像のうち本実施例で参照するデータ(たとえば追加しようとする学習データ候補)を判定しており、対象データ全ての参照が完了するまでS604からS610までの処理を実行する。参照が全て完了すると、処理を終了する。
S604では、解析結果の正誤情報を参照し、解析結果が「正」であった場合はS605に、解析結果が「誤」であった場合はS606にすすむ。S605ではモデルの信頼性が閾値a以上か否かを判定し、S607もしくはS608にすすむ。S606ではモデルの信頼性が閾値b以上か否かを判定し、S609もしくはS610にすすむ。S607からS610に示す学習条件については、前述のとおりである。
図6では、モデルの信頼性を用いた判定について説明しているが、データの信頼性でも同様の処理を行うことができる。その際には、閾値としてc、dを用いることはいうまでもない。
図7に、機械学習用情報処理装置100を実行するときに用いるGUI(Graphical User Interface)の例を示す。
GUIの画面700は、実行モード704、初期深層ネットワークモデルを格納したディレクトリを指定する欄705、入力データ及び学習データを格納したディレクトリを指定する欄706、推定結果データ、信頼性データ、及び学習後の深層ネットワークモデルを格納するディレクトリを指定する欄707、解析後の推奨データや深層ネットワークモデルを格納するディレクトリを指定する欄708、実行パラメータもしくは解析用パラメータを入力する欄711、実行ボタン714、レポート出力ボタン715、画像もしくは信頼性データを表示する画面702、画面702に表示する情報を指定するための欄701、703、716~721を備える。
画面700の内容は、表示内容生成部104により生成され、入出力装置111の例えば画像モニタに表示される。欄705では、画像解析装置110に実装するモデルを選択する。欄706では、記憶装置に記憶済みの種々のデータを選択して呼び出す。欄707では、生成したデータを記憶装置に保存する。欄708では、図6で示した処理の結果得られる推奨データやモデルを保存する。欄711では、モデルの学習時あるいは実行時に設定するパラメータを入力する。実行ボタン714では、学習や解析の処理を実行する。レポート出力ボタン715では、例えば図6で示した処理の結果得られる推奨データをレポート形式で出力する。画面702では、図2、図3、図5で示したような画像を同時あるいは切り替えて表示する。
欄716及び719は、入力データ(例えば図2の210のように表示できる)、正解データ(学習データ)、訓練データ、推論結果データ(例えば図2の220のように表示できる)、信頼性データ(例えば図3の310のように表示できる)などが選択できる。欄717及び720には、欄716及び719で選択したデータのリストが一覧表示される。各データは、機械学習用情報処理装置100の記憶装置あるいは外部の記憶装置に格納しておく。欄718及び721は、欄717及び720に表示されるリストの位置を示すゲージである。
欄701では、合成(濃淡)、合成(カラー)が選択でき、欄717及び720で選択されたデータを、703のゲージの比率で合成したデータが画面702に表示される。すなわち、この例では、異なる画像をオーバラップ表示可能である。そのほか、複数の画像を並べて表示してもよい。
実行モード704には、訓練(training)、推論(inference)、解析(analysis)などが選択できる。
まずは、実行モード704で訓練モードもしくは推論モードに設定し、欄705~707に適切なディレクトリを、欄711に実行パラメータを設定し、実行ボタン714を押下すると、設定したディレクトリ及び実行パラメータにしたがって、画像解析装置110のモデルの訓練もしくは推論が実行される。モデルの訓練や推論は、公知の手順で実行可能である。実行後、学習後の深層ネットワークモデル、推論結果データ、信頼性データが出力ディレクトリに格納される。
実行後、欄701、703、716~721を設定することにより、画面702に表示したいデータを表示することができる。すなわち、入力データ、学習データ、訓練データ、推論結果データ、信頼性データが参照できる。
次に、解析モードに設定し、欄708に、解析後の推奨データなどを格納したディレクトリを設定する。解析モードが実行されると、図6に示した処理が実行される。解析後の推奨データとは、学習データとして追加が推奨されるデータであり、図6の処理S608,S610で追加されたデータである。
欄701、703、716~721を設定して、画面702に表示したいデータを表示し、正誤の選択などを行うことで、解析結果の正誤情報の生成処理S601が実行できる。もっとも、解析結果の正誤情報は前もって生成して記憶しておいてもよい。その後、実行ボタン714を押下することにより、処理S602~S610が実行され欄708のディレクトリに推奨データが格納される。
また、図6の処理S607で学習条件を維持すべきとの判定結果があった場合も、入出力装置111は、例えば画面702にその旨を表示する。図6の処理S609で学習設定値を変更すべきとの判定結果があった場合は、使用者は欄711で任意のパラメータを調整する。
このようにして追加学習あるいはパラメータ変更を実行した後、訓練モードに設定し、欄706を推奨データが格納されているディレクトリに設定して、実行ボタン714を押下することにより、欄707のディレクトリに、改善された学習後の深層ネットワークモデル、推論結果データ、信頼性データが格納される。