A.実施形態
図1は、学習段階の判別システム100を説明するための図である。図2は、第1データセット12と事前ラベル14を説明するための図である。図1に示す判別システム100は、ベクトルニューラルネットワークを用いたモデル30の学習を行う段階を表している。判別システム100は、判別装置20と、外部装置との間でデータのやり取りをするデータインターフェースと、を備える。データインターフェースは、限定されないが好適にはUSBアダプター、有線または無線LANアダプターなどである。
本実施形態では、データインターフェースを介して、外部装置から判別装置20の記憶装置に第1データセット12が格納されている。第1データセット12は、モデル30の学習に用いられる。第1データセット12は、第1データ要素12A,12B,12Cと、第1データ要素12A,12B,12Cに対応する事前ラベル14とを有する。事前ラベル14のうち、第1データ要素12Aに対応するラベルを事前ラベル14Aとも呼び、第1データ要素12Bに対応するラベルを事前ラベル14Bとも呼び、第1データ要素12Cに対応するラベルを事前ラベル14Cとも呼ぶ。第1データセット12は、センサーによって取得された複数の第1データ要素12A,12B,12Cを含む。センサーは、RGBカメラ、赤外カメラ、デプスセンサー、マイクロフォン、加速度センサー、ジャイロセンサーなどの各種センサーであり、本実施形態ではカメラである。
図2に示すように、各第1データ要素12A~12Cは、カメラで撮像した種類が異なる対象物としてのサイコロである。第1データ要素12Aは、全面が一の目のサイコロをカメラで撮像したデータ要素である。第1データ要素12Bは、全面が二の目のサイコロをカメラで撮像したデータ要素である。第1データ要素12Cは、全面が三の目のサイコロをカメラで撮像したデータ要素である。画像データである第1データ要素12A~12Cはそれぞれ、1000枚ずつ準備されている。第1データ要素12A~12Cはそれぞれ画像サイズが32×32ピクセルである。また1000枚ずつの第1データ要素12A~12Cは、サイコロの目の位置が最大で±2ピクセル、サイコロの目の大きさが最大で±2ピクセル変動している。モデル30での学習に用いられる第1データ要素12A~12Cや、モデル30によってラベル判別される後述する第2データ要素は、特徴に階層性を有する。特徴に階層性を有するとは、注目するデータ領域を微小な領域から、段階的に大きくしていくと、領域ごとに異なる特徴が現れることを意味する。例えば、特徴として、領域のテクスチャー、領域に現れる形状、領域に現れる各要素の配置、領域に現れる全体構成などが各層に該当する。特徴の階層性は、多くのデータに一般的にみられる特徴構造であり、第1モデル30を用いた本開示の内容は汎用性が高い。
事前ラベル14は、第1データ要素12A~12Cのそれぞれに対応付けて第1入力データセット10に記憶されている。事前ラベルは、第1事前ラベルとしての良品ラベルと、第2事前ラベルとしての不良品ラベルとを有する。事前ラベル14は、単にラベル14とも呼ぶことがある。第1データ要素12Aには、事前ラベルとして不良品ラベルが対応付けられている。第1データ要素12Bには、事前ラベルとして不良品ラベルが対応付けられている。第1データ要素12Cには、事前ラベルとして良品ラベルが対応付けられている。つまり、本実施形態におけるモデル30は、立方体の各表面に3の目を印刷または刻印した製品を製造する場合に使用され、製品の良品と不良品を判別する。
図1に示す判別装置20は、パーソナルコンピューターなどの電子計算機である。判別装置20は、記憶装置22と、プロセッサー24と、出力部26とを備える。記憶装置22は、フラッシュメモリーやEEPROMなどの一時的でない記憶媒体としての不揮発性記憶媒体23と、メインメモリーとしてのDRAMと、を含む。記憶装置22には、モデル30と、入力された第1入力データセット10を用いて生成される収集データ要素32とが記憶されている。また、記憶装置22には、判別装置20の動作を制御するための各種プログラムが記憶されている。
プロセッサー24は、記憶装置22に記憶された各種プログラムを実行することで各種機能を実現する。プロセッサー24は、例えば、学習部と第1取得部と第2取得部と計算部として機能する。なお、他の実施形態では、各種機能の少なくとも一部がハードウェア回路によって実現されてもよい。ここで、本明細書において、「プロセッサー」は、CPU、GPU、およびハードウェア回路を包含する用語である。
出力部26は、各種情報を出力するために用いられる。出力部26は、例えば、液晶モニターである。各種情報としては、例えば、学習されたモデル30を用いて判別したデータ要素のラベルに関する情報を表示する。出力部26は、液晶モニターなどの表示装置に代えて、音声を出力するスピーカーであってもよい。
モデル30は、ベクトルニューラルネットワーク型のアルゴリズムモデルであり、複数層を有する階層型である。モデル30は、上記の特許文献2や非特許文献1,2に記載されたカプセルネットワークにおいて実行される動的ルーティング(Dynamic routing)を省略可能にしたネットワークである。モデル30は、動的ルーティングで必要となる反復処理が必要でない。以下にカプセルネットワークのアルゴリズムとベクトルニューラルネットワークのアルゴリズムの違いについて説明する。
カプセルネットワークの動的ルーティングのアルゴリズムの概略は、以下の式(1)~式(5)によって表される。
上記式(1)~(5)において、Xiは層Lでのカプセルの出力、Xjは次の層L+1でのカプセルの出力である。また、WijはXiからXjの予測値を求めるための変換行列であり、カプセルネットワークの学習過程において最適化される。また、aiは層Lでのカプセルのアクティベーション値である。Rijはルーティングファクターと呼ばれ、アルゴリズム開始時に定数で初期化される。またRijは前層のどのカプセルから、次の層のどのカプセルへ出力を行うか決定する要素である。動的ルーティングとは、Rijをデータ要素ごとに動的に変化させることを意味し、確率的統計の手法を用いて最適な値を決定する。式(3)および式(4)に記載の「F」や「G」は、確率的統計処理を抽象化して表した式である。式(3)および式(4)を、例えば、EMアルゴリズム(Expectation-Maximization algorithm)で考えた場合、「F」がMステップを、「G」がEステップを表すと対応付けることができる。また、式(4)から式(2)へとRijが収束するまで繰り返し計算が実行される。カプセルネットワークでは、2~3回程度の繰り返し計算が推奨されている。
一方で、本実施形態のモデル30に用いられるベクトルニューラルネットワークの出力決定アルゴリズムを以下に説明する。
ここで、上記式(6)の「M」に「i」と「L」を付した要素Emaは、層Lにおけるi番目のベクトルニューロンの出力を表す。式(5)の「W」に「ij」と「L」を付した要素Embは、要素Emaから、層L+1のj番目のベクトルニューロンの出力である上記式(9)の左辺の要素の方向に関する予測値vijを算出するための変換行列であり、確率的勾配降下法による学習対象である。ujは層Lにあるすべてのベクトルニューロンからの要素Emaの予測値vijの総和である。iは、1~Nをとり、Nは整数である。ujのノルムは、予測値が大きく、まとまっているほど大きくなる。式(8)のソフトマックス関数により、層L+1の全てのベクトルニューロンについてのujのノルムは、規格化した値である確度aに変換される。ここでβは、上述の式(8)に記載のごとく、ノルムの大きさの確度に与える影響を調節するパラメーターであり、今回はβ=1で実行している。また、式(8)において、「k」は1~Nをとる。確度aは、カプセルネットワークにおけるアクティベーションに相当する要素である。よって、確度aをアクティベーションaとも呼ぶ。jは、1~Mの値をとる。ここで、「M」は整数である。確度aの情報を式(9)により要素Embに統合するため、ベクトルニューロンから次のベクトルニューロンへと明示的に出力されることはない。式(9)により、ujの方向に関する情報だけを取り出して、層L+1内での相対的な確度aで重み付けされて、要素Emaが決定する。
要素Embは、学習の過程で極端に大きな値をとらないように、2ノルムがロス関数に組み込まれる。ここで、要素Embのノルムは、適当なベクトルとの積を用いて定義され、ベクトルとして要素Emaを用いると、以下の式(10)で表される。
ベクトルニューロンのベクトルである出力Mの大きさは、各層の相対的な確度aで重み付けされているため、確度aの高い情報からの投票は、大きな影響力をもつことになる。
図3は、予想の投票によるベクトルニューロンの決定を概念的に示す第1の図である。図4は、予想の投票によるベクトルニューロンの決定を概念的に示す第2の図である。図3および図4では、理解の容易のために、ベクトルニューロンの次元数を次元m1と次元m2の2としている。図3に示すように、方向のそろった予想の投票が確度の高い出力Mにつながる。一方で、図4に示すように、方向がそろっていない予想の投票は確度の低い出力Mとなる。
図5は、ベクトルニューラルネットワーク型のモデル30の設定方法を説明するための図である。モデル30は、入力される第1データセット12側から順に、畳み込み層33と、プライマリーニューロン層35と、第1ニューロン層37と、第2ニューロン層38と、最終層である分類ニューロン層39とを備える。なお、モデル30の階層数は、入力されるデータ要素の種類に応じて、適宜変更される。本実施形態では、ニューロン層は4つの層35,37,38,39によって構成された階層構造である。下位側から順に、プライマリーニューロン層35、第1ニューロン層37、第2ニューロン層38、分類ニューロン層39が配列される。上位側のニューロン層における各ニューロンのベクトルMとアクティベーションaは、カーネルとストライドで設定される1以上のニューロンによって構成された下位側の層である前層のニューロン群を用いて決定される。各ニューロンが有するベクトルMは、本実施形態では16次元である。
第1データセット12の各データ要素12A~12Cに対して、5×5のカーネルをストライド「2」で適用することで、データ要素の範囲のうちで畳み込み層33の一つのノードに出力を与える部分範囲が決まる。各データ要素12A~12Cに対して適用するカーネルの数は32である。これにより、畳み込み層33は、第1軸である縦軸と第1軸と直交する第2軸である横軸がそれぞれ14つに区切られた領域を有するように構成される。また、畳み込み層33の深さ方向の数を示すチャンネル数はカーネルの数と同数の32で構成される。「部分範囲」とは、データ要素上でこの縦軸の位置と横軸の位置で特定される1つの領域である。ただし、以下の説明から明らかなように、データ要素上の「部分範囲」の大きさは、「部分範囲」に対応するニューロン、または部分領域Rxがニューロン層35,37,38,39のどれに属するかに応じて異なる。また、「部分領域」とは、ニューロン層において縦軸の位置と横軸の位置とで特定される領域である。ニューロン層における各「部分領域」は、上記縦軸、横軸、およびチャンネルに対応する「Height」×「Width」×「Depth」の次元を有する。本実施形態では、1つの「部分領域」に含まれるカプセルの数は「1×1×デプス数」である。本明細書において、部分領域Rxの「x」にはニューロン層35,37,38,39に応じて、「35」、「37」、「38」、「39」の数値を代入する。例えば、部分領域R35は、ニューロン層35における領域を示す。
畳み込み層33は、1×1×32のカーネルをストライド「1」で適用することで、畳み込み層33の部分領域R33のうちから、プライマリーニューロン層35の一つのニューロンに出力する部分領域R33が、決まる。ここでは、同じサイズ、同じストライドで、16種類のカーネルが用いられることから、プライマリーニューロン層35において、畳み込み層33の一つの部分領域R33に対応するニューロンの数は16である。畳み込み層33のノードからプライマリーニューロン層35のニューロンへの出力の生成には、変換行列が用いられており、上記の式(6)~式(10)で示される出力決定アルゴリズムが用いられていない。なお、ニューロン層に畳み込むためのカーネルの次元は、チャネル数およびニューロンの要素数も考慮にいれる場合には、「Height」×「Width」×「Depth」×「ベクトルMの要素数」と表現されることもある。この表現にしたがうと、畳み込み層33からプライマリーニューロン層35への畳み込みに用いられるカーネルの次元は、1×1×32×16である。
プライマリーニューロン層35では、3×3×16のカーネルをストライド「1」で適用することで、プライマリーニューロン層35の部分領域R35のうちから、第1ニューロン層37の一つの部分領域R37に含まれるニューロンに出力を与える部分領域R35が、決まる。ここでは、同じサイズ、同じ次元、同じストライドで、12種類のカーネルが用いられることから、第1ニューロン層37の部分領域R37に含まれるニューロンの数は12である。プライマリーニューロン層35のニューロンから第1ニューロン層37のニューロンへの出力の生成には、上記の式(6)~式(10)で示される出力決定アルゴリズムが用いられる。ここで、下層35に適用されるカーネルは、上層37の1つのニューロンを合議制ルーティングにしたがって決めるために用いる下層35の3×3×16個のニューロンを指定する、とも表現される。これは、以下の説明でもあてはまる。なお、1つの部分領域Rxについて、1以上、本実施形態では複数のニューロンによって構成される集合をニューロン群とも呼ぶ。つまり、ニューロン群は、深さ方向に並んだ1以上のニューロンを有する。
第1ニューロン層37には、7×7×12のカーネルをストライド「2」で適用することで、第1ニューロン層37の部分領域R37のうちから、第2ニューロン層38の一つの部分領域R38に出力を与える部分領域R37、が決まる。ここでは、同じサイズ、同じ次元、同じストライドで、6種類のカーネルが用いられることから、第2ニューロン層38の部分領域R38に含まれるニューロンの数は6である。第1ニューロン層37のニューロンから第2ニューロン層38のニューロンを生成する際には、上記の式(6)~式(10)で示される出力決定アルゴリズムが用いられる。
第2ニューロン層38には、3×3×6のカーネルをストライド「1」で適用することで、第2ニューロン層38の部分領域R38のうちから、分類ニューロン層39の一つの部分領域R39に出力を与える部分領域R38が決まる。ここでは、同じサイズ、同じ次元、同じストライドで、2種類のカーネルが用いられることから、分類ニューロン層39の部分領域R39に含まれるニューロンの数は2である。第2ニューロン層38のニューロンから分類ニューロン層39のニューロンを生成する際には、上記の式(6)~式(10)で示される出力決定アルゴリズムが用いられる。
最終層である分類ニューロン層39は1つの部分領域R39で構成される。分類ニューロン層39は、モデル30に入力されたデータ要素について、予め定められたラベルに分類する。本実施形態では、予め定めたラベルは、良品ラベルと、不良品ラベルとである分類ニューロン層39では、2つのニューロンのうち、アクティベーションaが最大となるニューロンに対応するラベルが出力となる。分類ニューロン層39から出力されるラベルは、プロセッサー24によって制御されることで出力部26によって出力される。
上記図5において、プライマリーニューロン層35の1つの部分領域R35は、データ要素12A~12Cの5×5ピクセルの部分範囲に対応する。また、第1ニューロン層37の1つの部分領域R37は、データ要素12A~12Cの9×9ピクセルの部分範囲に対応する。また、第2ニューロン層38の部分領域R38は、データ要素12A~12Cの21×21ピクセルの部分範囲に対応する。また、分類ニューロン層39の部分領域R39は、データ要素12A~12Cの29×29ピクセルの部分範囲に対応する。
図6は、モデル30の学習段階で実行される学習処理を示すフローチャートである。まず、ステップS10において、モデル30のパラメーターの設定が行われる。ステップS10では、図5を用いて説明したように、階層の数や、層の間で適用されるカーネルのサイズおよび/またはストライドが設定される。
次に、ステップS12において、モデル30に学習させる第1データセット12が準備される。なお、ステップS10とステップS12の順番は上記に限定されるものではなく、ステップS12がステップS10よりも先に実行されてもよい。
次に、ステップS14において、第1データセット12の各第1データ要素12A~12Cをモデル30に順次入力し、第1データセット12の各データ要素12A~12Cと、各データ要素12A~12Cに対応する事前ラベルとの対応を再現するように、モデル30が学習される。プロセッサー24は、例えばミニバッチ勾配降下法のアルゴリズムを用いてモデル30を学習する。本実施形態では、プロセッサー24は、データ要素のサブセットであるミニバッチのサイズを「32」、エポックを「20000」に設定したミニバッチ勾配降下法のアルゴリズムを用いてモデル30を学習する。学習の結果、モデル30の正解率は100%となった。
ステップS16では、プロセッサー24は、ステップS14において学習されたモデル30に第1データセット12を再び入力し、ニューロン層である第1ニューロン層37、第2ニューロン層38、分類ニューロン層39のそれぞれについて、以下を実行する。すなわち、プロセッサー24は、各層37,38,39の各ニューロンが有する第1アクティベーションa1と第1ベクトルM1との少なくとも一方に基づく第1中間データを、第1データ要素12A~12C上の部分範囲であって各ニューロンが対応する部分範囲に関連付けて取得し、互いに関連付けられた第1中間データと関連付けられた部分範囲の相対位置とを記憶装置22に記憶する。なお、関連付けられた部分範囲そのものを記憶装置22に記憶してもよい。第1データ要素12A~12C上の部分範囲であって各ニューロンが対応する部分範囲を、第1部分データ要素とも呼ぶ。また、以下では、記憶された第1中間データおよび第1部分データ要素を収集データ32とも表記する。なお、他の実施形態では、プライマリーニューロン層35においても各層37,38,39と同様に、第1中間データを第1部分データ要素と関連付けて取得してもよい。また、後述する類似度に関する情報として、第1部分データ要素の領域を示す部分範囲情報を含まない場合には、第1中間データを第1部分データ要素と関連付けなくてもよい。なお、必ずしも全てのニューロン層から第1中間データが取得される必要はない。例えば、第2ニューロン層38だけから第1中間データが取得されてもよいし、いくつかの層の組み合わせから取得されてもよい。これは、以下で説明する第2中間データにも当てはまる。さらに、他の実施形態では、ステップS14でモデル30の学習に用いられる第1データセット12を2つに分割することで、ステップS14でモデル30の学習に用いられる第1データ要素12A,12B,12Cのグループと、学習に用いられない第1データ要素12A,12B,12Cのグループとに分割し、ステップS14では一方のグループだけでモデル30を学習し、ステップS16では2つのグループを用いて第1中間データを生成してもよい。要するに、モデル30の学習に用いられる第1データ要素12A,12B,12Cの事前ラベル14A,14B,14Cと同じ事前ラベル14A,14B,14Cが付与されている限り、ステップS16で中間データを生成するためのデータは、モデル30の学習に用いられた第1データ要素12A,12B,12Cだけに限定されない。
上記のように、プロセッサー24が実行する方法によれば、ステップS16によって、ニューロンが有する第1アクティベーションa1と第1ベクトルM1との少なくとも一方に基づく第1中間データを取得できる。これにより、モデル30に判別対象のデータ要素が入力された場合において、ニューロンが有する第2アクティベーションa2と第2ベクトルM2との少なくとも一方に基づく第2中間データを取得し、第1中間データから生成される特徴スペクトルと第2中間データから生成される特徴スペクトルとの類似度を計算できる。第2中間データは、第2ベクトルM2自体や第2アクティベーションa2自体であってもよいし、第2ベクトルM2や第2アクティベーションa2に対して重み付けなどのデータ処理したデータであってもよい。本実施形態では、第2中間データは、第2ベクトルM2と第2アクティベーションa2とによって構成される。なお、他の実施形態では、第1中間データと第2中間データとはそれぞれ特徴スペクトルであってもよい。特徴スペクトルの詳細については後述する。類似度を計算することで、例えば、類似度が予め定めた閾値未満のニューロンを特定できる。よって、モデル30を用いた入力したデータ要素の判別根拠が出力可能となる。この判別根拠の出力の態様についての詳細は後述する。
図7は、判別段階の判別システム100を説明するための図である。図8は、第2データセット62を説明するための図である。図7の判別システム100と図1の判別システム100との異なる点は、モデル30に入力するデータ要素として、第2入力データセット60が用いられる点である。
図7に示すように、第2入力データセット60は、第2データセット62を有する。図6に示すように、第2データセット62は、製造された複数のサイコロそれぞれにおいて、1つの面がカメラで撮像されることで取得された画像を表す第2データ要素62A~62Cである。第2データ要素62A~62Cのサイズは、例えば、モデル30の学習時と同じ32×32ピクセルである。また第2データ要素62A~62Cはそれぞれ1100枚ずつ準備され、サイコロの目の位置が最大で±2ピクセル、サイコロの目の大きさが最大で±2ピクセル変動している。
学習されたモデル30に、第2データ要素62A~62Cが1つずつ入力されることで、クラス判別、すなわちラベルが判別される。例えば、モデル30に、一の目を表す第2データ要素62Aや二の目を表す第2データ要素62Bが入力された場合は不良品であると判別され、三の目を表す第2データ要素62Cが入力された場合は良品であると判別される。また、本実施形態では、プロセッサー24は、ラベルを判別した判別根拠を生成し、出力部26に判別したラベルと共に判別根拠を表示させる。判別根拠の生成方法は後述する。
図9は、第2データセット62のクラス判別処理のフローチャートである。まず、ステップS20において、プロセッサー24は、第1データセット12を用いて学習されたモデル30に各第2データ要素62A~62Cを1つずつ入力し、クラス判別を実行する。次に、プロセッサー24が、ステップS22において、入力された第2データ要素62A~62Cの1つずつに、モデル30の状態、つまり、分類ニューロン層39の2つのニューロンのアクティベーションaとしての第2アクティベーションa2を計算、すなわち導出する。また、ステップS22では、プロセッサー24は、モデル30に入力された第2データ要素62A~62Cのそれぞれについて、モデル30から第2中間データを取得する。第2中間データの取得の詳細は、図10におけるステップS30を参照しながら後述する。
次に、ステップS24において、プロセッサー24は、ステップS22の計算結果をもとに、分類ニューロン層39の第2アクティベーションa2が最大となるニューロンに対応するラベルを判別結果として出力部26に出力する。なお、ラベルの判別結果は、画像情報に限られずユーザーに報知できる情報であればよい。例えば、ラベルの判別結果は、音声情報として出力されてもよい。この場合、出力部26はスピーカーを備える。以下の説明では、ラベルの判別の結果は、収集データ32の一部として、記憶装置22に記憶される。
このように、モデル30に第2データ要素62A~62Cを入力することでラベルを容易に判別できる。また、出力部26によって、ラベルの判別結果が出力されるので、ユーザーは容易にラベルの判別結果を把握できる。
図10は、第1説明処理のフローチャートである。図10の第1説明処理は、図9のクラス判別処理の後に行われてもよいし、図9のクラス判別処理と並列して行われてもよい。第1説明処理は、プロセッサー24によって実行される。第1説明処理は、収集データ要素32に記憶された良品ラベルが対応付けられた第1データ要素12Cと、入力された第2データ要素62A~62Cとを比較し、なぜ良品と判別したか、なぜ良品と判別しなかったか、の判別根拠を説明するための処理である。この第1説明処理によって生成される情報は、図9のステップS24の判別結果と共に出力されてもよい。図11は、特徴スペクトルを説明するための図である。
図10に示すように、まずステップS30において、プロセッサー24は、学習されたモデル30に第2データ要素62A~62Cを1つずつ入力し、第1モデル30にクラス判定を実行させる。当該クラス判定が終了したときに複数のニューロンがそれぞれ出力した第2中間データを取得し、記憶装置22に記憶する。本実施形態では、第2中間データは、第2ベクトルM2と第2アクティベーションa2とを含む。ステップS30では、少なくとも第1ニューロン層37、第2ニューロン層38、分類ニューロン層39のそれぞれについてステップS30が実行される。また、ステップS30において、プロセッサー24は、第2データ要素62A~62C上の部分範囲であって第2中間データに対応した部分範囲を、第2中間データに関連付けて記憶装置22に記憶する。本実施形態では、ステップS30は、図9に示すクラス判別処理のステップS22において実行される。次にステップS32において、プロセッサー24は、記憶装置22から、事前ラベルとして良品ラベルが付された第1データ要素12Cの全てに対してクラス判別を実施したときに得られた第1中間データを読み出す。本実施形態では、第1中間データは、第1ベクトルM1と第1アクティベーションa1とに基づいている。
次にステップS34において、プロセッサー24は、第2データ要素62A~62Cの特徴スペクトルSpと、良品ラベルの第1データ要素12Cの特徴スペクトルSpを計算する。具体的には、プロセッサー24は、第1ニューロン層37、第2ニューロン層38、分類ニューロン層39のそれぞれの部分領域R37,R38,R39ごとに、第1中間データおよび第2中間データからそれぞれの特徴スペクトルSpを計算する。本明細書では、特徴スペクトルSpは、ニューロン層における部分領域Rxごとに、1つ以上のベクトルMを平均0、分散1で正規化したり、Softmax関数を用いて規格化したりして配列することで表してもよい。また、特徴スペクトルSpは、部分領域RxごとにベクトルMの各次元または各要素を、対応するアクティベーションaで重み付けして配列することで表してもよい。重み付けとしては、例えば、ベクトルMと、ベクトルMに対応するアクティベーションaの値の積をとることで実現できる。また、特徴スペクトルSpは、ニューロン層37,38,39の部分領域R37,38,39ごとに、アクティベーションaの値を、配列することで表してもよい。また、配列したアクティベーションaを平均0、分散1となるように正規化してもよい。また、特徴スペクトルSpは、ニューロン層37,38,39の部分領域R37,38,39ごとに、ベクトルMおよび/またはアクティベーションaを配列することで表してもよい。なお、特徴スペクトルSpは正規化することなく、複数次元、本実施形態では16次元のベクトルMを一次元に変換して配列してもよい。
図11に示すグラフは第1ニューロン層37に対応する。第1ニューロン層37では、1つの部分領域R37が、深さ方向に並んだ12個のニューロンを有する。図11には、一例として、ある一つの部分領域R37に属する12個のニューロンが出力したそれぞれのアクティベーションaを平均0、分散1に正規化して並べたものを示している。図11における特徴スペクトルSpは、正規化されたこれら複数のアクティベーションaを要素に持つ。図11に示す特徴スペクトルSpの一例において、横軸は各ニューロンに対応するアクティベーションaを識別するための要素番号「0」~「11」であり、縦軸は各アクティベーションaの値である。
図10に示すように、次にステップS36において、プロセッサー24は、第1中間データと第2中間データとに基づく類似度を計算する。詳細には、プロセッサー24は、第1ニューロン層37、第2ニューロン層38、分類ニューロン層39の層ごとにおいて、第2データ要素62A~62Cの第2中間データから生成した特徴スペクトルSpと、良品ラベルの第1データ要素12Cの第1中間データから生成した特徴スペクトルSpとの類似度を計算する。本実施形態において、類似度の計算対象は、同じ階層に属する部分領域Rx同士である。具体的には、ニューロン層37,38,39ごとに、第2データ要素62A~62Cが与えられたときの一つの部分領域Rxに対して、第1データ要素12A~12Cが与えられたときの全ての部分領域Rxである。ここで、第1データ要素12A~12Cが与えられたときのニューロン層37,38,39における或る一つの部分領域Rxと、第2データ要素62A,62B,62Cが与えられたときのニューロン層37,38,39における部分領域Rxとは、それぞれ、第1データ要素12A~12Cである第1画像上の部分範囲と、第2データ要素62A~62Cである第2画像上の部分範囲と、に対応していることから、上記類似度は、第1画像の部分範囲と、第2画像の部分範囲と、の間の類似度であるとも解釈できる。言い換えると、本実施形態では、第1データ要素12A~12Cと第2データ要素62A~62Cとの間で互いに類似度の形態で中間データが比較されるのは、第2データ要素62A~62C上の或る階層に属する部分範囲に対して第1データ要素12A~12C上で同じ階層に属する全ての部分範囲である。しかしながら、後述するように、同じ階層の同じ部分範囲同士の間で類似度が求められてもよい。ここで、階層は部分範囲の大きさに関連付けられている。上述の通り、ニューロン層37,38,39が異なると、第1データ要素12A~12C、すなわち第1画像上で定義される部分範囲、および、第2データ要素62A~62C、すなわち第2画像上で定義される部分範囲の大きさも異なる。類似度としては、2つのベクトルを比較する任意の指標を用いることができ、例えばコサイン類似度や平均二乗誤差(MSE)やピークS/N比(PSNR)が用いられる。ステップS36では、第1ニューロン層37、第2ニューロン層38、分類ニューロン層39のそれぞれの部分領域Rxごとに、全ての第1データ要素12Cに対応する第1中間データの特徴スペクトルSpの類似度のうちで最も類似度が高い値を、第2データ要素62の部分領域Rxの類似度とする。第2データ要素62の部分領域Rxの類似度は、部分領域Rxのセンサーデータ要素である画像データ要素、および、部分領域Rxのアクティベーションaと対応付けて記憶装置22に記憶される。他の実施形態では、ステップS36における類似度の計算対象は、同じ層における同じ相対位置にある部分領域Rx同士ごとであってもよい。
次にステップS40において、プロセッサー24は、計算、すなわち導出した類似度に関する情報を、出力部26を用いて出力する。類似度に関する情報は、位置を表す階層部分範囲情報と、階層を表す層ラベル情報と、類似度情報と、比較情報との少なくとも一つを含む。階層部分範囲情報は、階層ごとの部分範囲情報である。限定されないが本実施形態では、階層部分範囲情報は、階層ごとにおいて類似度の計算が行われた部分領域Rxに対応する第1データ要素12A,12B,12C上の部分範囲および第2データ要素62A,62B,62C上の部分範囲を示す情報である。上記において、部分領域Rxに対応する第1データ要素12A,12B,12C上の部分範囲を第1部分データ要素とも呼ぶ。また上記において、部分領域Rxに対応する第2データ要素62A,62B,62C上の部分範囲を第2部分データ要素とも呼ぶ。層ラベル情報は、複数のニューロン層である第1ニューロン層37、第2ニューロン層38、および分類ニューロン層39の階層を識別するための情報である。類似度情報は、同じ階層、すなわち同じニューロン層37,38,39に属する部分領域Rx間の類似度を示す情報である。比較情報は、類似度と予め定められた閾値との大小関係を示す情報である。比較情報は、ステップS40において、プロセッサー24が、類似度と予め定めた閾値とを比較した場合に生成される情報である。第2データセット62のデータ要素において、類似度が予め定めた閾値より小さい場合には、その階層で既知の画像の特徴との類似度が低いと解釈され、予め定めた閾値以上の場合には、その階層で既知の画像の特徴との類似度が高いと解釈し得る。良品であると判別される。予め定めた閾値は、例えば、類似度が高いことや低いことを示す基準となる値である。このように、類似度は良品・不良品などのクラス判定に対する判断根拠として使用され得る。ステップS40では、類似度を含む類似度に関する情報を生成して出力部26に出力させる。ここで、判別根拠として複数のニューロン層37,38,39の一つのみを用いる場合には、階層部分範囲情報に代えて部分範囲情報が用いられてもよい。部分範囲情報は、類似度の計算が行われたデータ要素上の部分範囲を示す情報である。
なお、図10のステップS36において、第1部分データ要素上のある相対位置にある部分範囲の特徴スペクトルSpと、第2部分データ要素上の当該相対位置とは異なる相対位置の特徴スペクトルSpとの類似度が計算された場合には、類似度に関する情報は、それぞれ部分範囲の相対位置を示す情報を含む。
上記のように、類似度に関する情報は、出力部26の一例である液晶モニターを用いて出力されたが、音声情報として出力されてもよい。この場合、出力部26はスピーカーを備える。
上記のように、第1中間データと第2中間データとに基づく類似度を計算することで、例えば、類似度が予め定めた閾値未満のニューロンを特定できるので、モデル30を用いた第2データ要素62A~62Cの判別根拠を出力可能となる。また、図10のステップS36の処理において、第1部分データ要素の第1中間データと第1部分データ要素に対応した領域の第2部分データ要素の第2中間データとの類似度を計算することで、第1部分データ要素および第2部分データ要素の類似度を計算できる。これにより、類似度に関する情報が出力部26を用いて出力されることで、例えば第2データ要素におけるどの領域を根拠にしてラベルの判別が行われたかを容易に把握できる。よって、ユーザーは、ラベルの判別について、どのニューロン層37,38,39を根拠にしたのかなどの類似度に関する情報について容易に把握できる。つまり、ユーザーは、この類似度に関する情報から、入力データである第2データ要素62A~62Cについて、良品と類似している部分、類似していない部分、それぞれの位置と大きさを把握することができる。なお、ステップS36の処理において、類似度の計算の対象は、ニューロン層37,38,39における同じ相対位置の部分領域Rxからの第1中間データと第2中間データでなくともよい。このようにしても、計算の対象である第2データ要素の階層を識別するための層ラベル情報や部分領域Rxを示す部分領域情報などの類似度に関する情報を出力することで、ユーザーは、ラベルの判別について、どのニューロン層37,38,39を根拠にしたのか、および、どの部分領域Rxを根拠にしたのかなどの類似度に関する情報について容易に把握できる。
図12は、第2説明処理のフローチャートである。第2説明処理は、プロセッサー24によって実行される。第2説明処理は、第2データ要素62A~62Eが、モデル30の学習に用いられた既知の第1データ要素12A~12Cと同じ種類であるか否かの判別とその根拠を説明するための処理である。図13は、第2データセット62aを説明するための図である。第2説明処理は、端的に言うと、知らないデータを無理やり判別したのか、知っているデータとして判別したのか、どちらなのかを説明する処理ともいえる。
図13に示すように、第2データセット62aは、5種類の第2データ要素62A~62Eを有する。第2データ要素62A,62B,62Cはそれぞれ、図6に示す第2データ要素62A,62B,62Cと同じであり、モデル30の学習の際に用いられた第1データ要素12A~12Cと同じ種類の対象物であるサイコロを撮像した画像データ要素である。第2データ要素62D,62Eは、モデル30の学習の際に用いられた第1データ要素12A~12Cとは種類が異なる対象物であるサイコロを撮像した画像データ要素である。具体的には、第2データ要素62Dは、各面において三の目の中央の目がバツ印のサイコロを撮像した画像データ要素である。また第2データ要素62Eは、各面が四の目のサイコロを撮像した画像データ要素である。以上のように、第2データ要素62D,62Eは、モデル30の学習の際に用いられなかった未知の種類のデータ要素である。第2データ要素62A~62Eのサイズは、例えば、モデル30の学習時と同じ32×32ピクセルである。また、また第2データ要素62A~62Eはそれぞれ1100枚ずつ準備され、サイコロの目の位置が最大で±2ピクセル、サイコロの目の大きさが最大で±2ピクセル変動している。準備された第2データ要素62A~62Eは、1つずつモデル30に入力されることで、クラス判別、すなわちラベルが判別される。
図12に示すようにステップS30において、プロセッサー24は、学習されたモデル30に第2データ要素62A~62Eを1つずつ入力し、第2データ要素62A~62Eのそれぞれについてクラス判別を実行する。そして、クラス判別が終了したときの、第2データ要素62A~62Eのそれぞれに対する第2中間データをモデル30から取得する。図12に示すステップS30は、図10に示すステップS30と同じ処理である。次にステップS32aにおいて、プロセッサー24は、記憶装置22に記憶されているモデル30の学習に用いられた第1データ要素12A~12Cのそれぞれの第1中間データを全て抽出する。
次にステップS34aにおいて、プロセッサー24は、モデル30に入力された第2データ要素62A~62Eの特徴スペクトルと、抽出した学習済みの第1データ要素12A~12Cの特徴スペクトルSpを計算する。計算方法については、図10のステップS34において記載の方法と同様であるため、ここでは説明を省略する。
次にステップS36aにおいて、プロセッサー24は、第2データ要素62A~62Cの特徴スペクトルSpと、第1データ要素12A~12Cの特徴スペクトルSpとの類似度を計算する。類似度としては、例えばコサイン類似度が用いられる。ステップS36では、第1ニューロン層37、第2ニューロン層38、分類ニューロン層39のそれぞれの部分領域Rxごとに、全ての第1データ要素12A~12Cに対して最も類似度が高い値を、部分領域Rxの類似度とする。部分領域Rxの類似度は、部分領域Rxが対応する画像データ要素の部分範囲、および、部分領域Rxのアクティベーションaと対応付けて記憶装置22に記憶される。
次にステップS40aにおいて、プロセッサー24は、計算した類似度に関する情報を、出力部26を用いて出力する。類似度に関する情報は、位置を表す階層部分範囲情報や部分範囲情報と、階層を表す層ラベル情報と、類似度情報と、比較情報との少なくとも一つを含む。図10に示すステップS40とステップS40aとで異なる点は、ステップS40aでは、類似度の閾値の値が異なる点である。例えば、ステップS40aにおいて予め定めた閾値は、モデル30の学習に用いられたデータ要素と同じ種類である第2データ要素62A,62B,62Cを既知のデータ要素として判別でき、そして、モデル30の学習に用いられたデータ要素と異なる種類である第2データ要素62D,62Eを未知のデータ要素として示唆できる値に設定される。
上記のように、第2説明処理において第1説明処理と同様の構成や処理を行う点において同様の効果を奏する。例えば、第1中間データと第2中間データとに基づく類似度を計算することで、例えば、類似度が予め定めた閾値未満のニューロンを特定できるので、モデル30を用いた第2データ要素の判別根拠を出力可能となる。
図14は、第1ニューロン層37におけるコサイン類似度を示す図である。図15は、第2ニューロン層38におけるコサイン類似度を示す図である。以下では、図14および図15を参照しながら、第1説明処理と第2説明処理の効果について説明する。
特徴スペクトルSpは、部分領域Rxが有するベクトルMを、アクティベーションaの値で重み付けすることで生成する。重み付けは、ベクトルMの各次元に、ベクトルMに対応するアクティベーションaの値を掛けることで実行される。この方法で生成した特徴スペクトルSpのグラフは、例えば、横軸に各ベクトルMの各次元を識別するための要素番号、縦軸に重み付け後の値をとることによって表される。本実施形態では、1つのベクトルMは16次元の要素を有する。よって、部分領域RxにおいてベクトルMの数が12個である第1ニューロン層37では、アクティベーションaは12個存在する。よって、横軸の要素数は、第1ニューロン層37では16×12個である。これは、ベクトルMの次元数と、第1ニューロン層37の1つの部分領域R37に含まれるニューロンの数と、の積である。
図14および図15の棒グラフにおいて、No.1~No.4のそれぞれの下に記載した符号である「A ― B」は以下を意味する。つまり、符号中の左側の符号「A」は、モデル30の学習に用いられていない第2データ要素62A~62Eであり、符号中の右側の符号「B」は、モデル30の学習に用いられた第1データ要素12A~12Cである。No.1の棒グラフは、三の目のサイコロの画像データ要素である、第2データ要素62Cと第1データ要素12Cとのコサイン類似度を示す。No.2のグラフは、二の目のサイコロの画像データ要素である第2データ要素62Bと、三の目のサイコロの画像データ要素である第1データ要素12Cとのコサイン類似度を示す。No.3の棒グラフは、四の目のサイコロの画像データ要素である第2データ要素62Eと、既知の第1データ要素12A~12Cとのコサイン類似度を示す。No.4の棒フラフは、三の目の中央の目がバツ印のサイコロの画像データ要素である第2データ要素62Dと、既知の第1データ要素12A~12Cとのコサイン類似度を示す。
No.1~No.4のそれぞれの棒グラフが示すコサイン類似度は、以下の方法で算出される。以下では、学習に用いた既知の第1データ要素12A~12Cの一部分を使っているが、学習に用いたすべてを使ってもよい。すなわち、既知の第1データ要素12A~12Cからランダムに200個を選択し、この200個の第1データ要素12A~12Cと、準備した比較対象サンプルである第2データ要素62B~62Eとの、各層である第1ニューロン層37および第2ニューロン層38においてストラウド、すなわち部分領域R37,R38ごとの類似度の計算を行い、類似度が最大のコサイン類似度の値のみを保存する。この操作を第2データ要素62B~62Eのランダムに選んだ100個について行い、その統計量を表すことで棒グラフが生成される。また、標準偏差をエラーバーで示している。本実施形態において、コサイン類似度は、最小値が「-1」、最大値が「1」である。
図14において、局所形状の比較に対応した第1ニューロン層37では、バツの目が付された第2データ要素62Dとの比較であるNo.4のコサイン類似度が、No.1~No.3のコサイン類似度よりも低い結果を得た。こうすることで、モデル30を用いて、第2データ要素62Dと既知データ要素である第1データ要素12A,12B,12Cとの間で異なる部分は、全体の中で局所的な部分であることが説明できる。他方、第2データ要素62Eについては、局所的な部分に既知データ、すなわち第1データ要素12A,12B,12Cとの差異はないことが説明できる。図18に示すように、上記方法を用いて生成した特徴スペクトルSpのコサイン類似度において、No.1~No.3と、No.4との境界である閾値TVを設定できる。本実施形態では、既知データと種々のデータとの比較において、第1ニューロン層37に関して得られた特徴スペクトルSpのコサイン類似度の大小を表現するのに都合のよい閾値TVが存在することを確認した。よって、閾値TVを適切に設定すれば、第2データ要素62Dは第1ニューロン層37での類似度が小さいと言えて、既知データ、すなわち第1データ要素12A,12B,12Cと異なる特徴を局所的に持つことの説明になり得る。
図15において、中間形状の比較、または局所形状の相対位置の比較、に対応した第2ニューロン層38では、No.1のコサイン類似度が、No.2~No.4のコサイン類似度よりも高い結果を得た。こうすることで、モデル30を用いた「未知」と「既知」のラベル付けの根拠説明の精度を向上できる。さらに、第2データ要素62Bと既知データ要素である第1データ要素12Cとの間で異なる部分は、全体の中で局所形状の相対位置であることが説明できる。また、第2データ要素62Eと既知データ要素である第1データ要素12A,12B,12Cとの間で異なる部分は、全体の中で局所形状の相対位置であることが説明できる。図15に示すように、上記方法を用いて生成した特徴スペクトルSpのコサイン類似度において、No.1と、No.2~No.4との境界である閾値TVを設定できる。本実施形態では、既知データと種々のデータとの比較において、第2ニューロン層38に関して得られた特徴スペクトルSpのコサイン類似度の大小を表現するのに都合がよい閾値TVが存在することを確認した。つまり、第2データ要素62B,62Eはサイコロの目の配置が異なることを、第2ニューロン層38に関して導出された類似度が低いことで説明できる。言い換えると、第2データ要素62Bは、良品である第1データ要素12Cとサイコロの目の配置が異なることを説明できる。第2データ要素62Eは、既知の第1データ要素12A,12B,12Cのどれともサイコロの目の配置が異なることを説明できる。第2データ要素62Dも低いが、これは、ネットワークの情報が下位層から上位層の方向で伝達するので、下位層で異なる特徴を持つとされると、上位層で正常な類似度を求めることは難しくなるためと考えられる。
類似度を計算するための特徴スペクトルSpは、上記に限定されるものではない。例えば、部分領域Rxが有するベクトルMをアクティベーションaの値にソフトマックス関数を適用した補正値で重み付けすることで特徴スペクトルSpを生成してもよいし、部分領域Rxが有するベクトルMを一次元に並び替えた要素に対して、要素ごとのベクトルMの値を並べることで特徴スペクトルSpを生成してもよい。つまり、類似度の計算方法は、第1ベクトルM1の特徴スペクトルSpと第2ベクトルM2の特徴スペクトルSpとの類似度を計算することであってもよい。
また、類似度の計算方法は上記方法に限定されるものではない。類似度の計算方法は、例えば、第1アクティベーションa1と第2アクティベーションa2の類似度を計算することであってもよい。詳細には、類似度の計算方法は、複数の第1アクティベーションa1を要素として有する特徴スペクトルSpと複数の第2アクティベーションa2を要素として有する特徴スペクトルSpとの類似度を計算することであってもよい。この場合、例えば、部分領域Rxが有するアクティベーションaの各要素を横軸に、要素ごとのアクティベーションaの値を縦軸にとることで特徴スペクトルSpが生成される。
上記実施形態によれば、第1中間データと第2中間データとの類似度を計算することで、例えば、類似度が予め定めた閾値未満のニューロンを特定できるので、モデル30を用いた第2データ要素62A~62Eの判別根拠を出力可能となる。ラベルの判別根拠が出力されることで、ラベル判別根拠を分析することで、例えば、不良品の発生の低減を行うための製造工程などの改善を行うことができる。
また上記実施形態によれば、入力されるデータ要素(本実施形態では画像)の部分範囲であって、階層型のベクトルニューラルネットワークモデルの各層に含まれる深さ方向のニューロンのまとまり(ニューロン群とも呼ぶ)が対応する部分範囲の大きさは、下位側の層から上位側の層に向かうに従い定性的に小から大へとなる傾向にあり、この傾向のもとで当該大きさをある程度調整可能である。そこで、データ要素に含まれる特徴が階層性を有する場合に、モデル30に含まれる層のそれぞれが、それぞれの階層の特徴に対応するよう、つまり、それぞれの大きさの特徴に対応するように、モデル30のネットワーク構造が調整され得る。さらに、階層型のベクトルニューラルネットワークモデルでは、各層においてニューロン群が対応するデータ要素上(例えば、画像上)の部分範囲の相関関係は、下位側の層から上位側の層に至るまで保持される。このことから、第1中間データと第2中間データとを、ニューロン層37,38,39ごとに比較することで、第2入力データセット60の各データ要素の判別結果を、特徴の階層ごとに説明し得る。第1中間データは、学習されたモデル30に、学習に用いた複数のデータ要素から構成される第1データセット12を入力として与えてニューロン層37,38,39から得られるデータである。また第2中間データは、モデル30に学習に用いられていないデータ要素、本実施形態では第2データセット62の各データ要素を入力として与えてニューロン層37,38,39から得られるデータである。
B.他の実施形態:
B-1.他の実施形態1:
上記実施形態では、第1中間データの特徴スペクトルSpと第2中間データの特徴スペクトルSpとの類似度は、コサイン類似度であったがこれに限定されるものではなく、類似度を比較する要素に応じて各種の類似度を用いてもよい。例えば、類似度は、二乗誤差であってもよいし、画像類似度(Structual Simirarity)を用いてもよい。また例えば、類似度は、2つのベクトルの内積または外積に基づく類似度、2つのベクトルに表される2つの点の間の距離、ノルムに基づく類似度であってもよい。
B-2.他の実施形態2:
上記実施形態において、第1説明処理と、第2説明処理は、プロセッサー24によって自動的に切り替え可能に構成されていてもよい。例えば、プロセッサー24は、第1説明処理を実行している場合において、入力データ要素の全体数に対して不良品であると判別された割合が、予め定めた値以上になった場合に、第1説明処理から第2説明処理へと切り替えてもよい。
B-3.他の実施形態3:
上記実施形態では、不揮発性記憶媒体23の記憶されたプログラムは、1つのプロセッサー24によって実行されたが、2つ以上のプロセッサー24によって実行されてもよい。
B-4.他の実施形態4:
第1中間データや第2中間データの生成方法は上記実施形態に限定されるものではなく、例えば、Kmeans法を用いて第1中間データや第2中間データを生成してもよい。また、PCAやICA、Fisherなどの変換を用いて第1中間データや第2中間データを生成してもよい。また、第1中間データと第2中間データとの変換方法は異なっていてもよい。
C.他の形態:
本開示は、上述した実施形態に限られるものではなく、その趣旨を逸脱しない範囲において種々の形態で実現することができる。例えば、本開示は、以下の形態(aspect)によっても実現可能である。以下に記載した各形態中の技術的特徴に対応する上記実施形態中の技術的特徴は、本開示の課題の一部又は全部を解決するために、あるいは、本開示の効果の一部又は全部を達成するために、適宜、差し替えや、組み合わせを行うことが可能である。また、その技術的特徴が本明細書中に必須なものとして説明されていなければ、適宜、削除することが可能である。
(1)本開示の第1の形態によれば、1または複数のプロセッサーに実行させるための方法が提供される。この方法は、第1データセットが有する複数の第1データ要素と、前記複数の第1データ要素のそれぞれに対応する事前ラベルと、の対応を再現するように、ベクトルニューラルネットワーク型のアルゴリズムであるモデルを学習することであって、前記モデルは、1以上のニューロン層を有し、前記1以上のニューロン層のそれぞれは1以上のニューロン群を有し、前記1以上のニューロン群のそれぞれは1以上のニューロンを有し、前記1以上のニューロンはそれぞれ、第1ベクトルと第1アクティベーションとの少なくとも一方に基づく第1中間データを出力する、ことと、学習された前記モデルに前記第1データセットを入力し、前記1以上の前記ニューロンが出力する前記第1中間データを、前記ニューロンと関連付けて取得することと、を備える。この形態によれば、ニューロンが有する第1アクティベーションと第1ベクトルとの少なくとも一方に基づく第1中間データを取得できる。これにより、モデルに判別対象の第2データ要素が入力された場合におけるニューロンが有する第2アクティベーションと第2ベクトルとの少なくとも一方に基づく第2中間データを取得し、第1中間データと第2中間データとの類似度を計算できる。類似度を計算することで、例えば、類似度が予め定めた閾値未満のニューロンを特定できるので、モデルを用いた第2データ要素の判別根拠を出力可能となる。
(2)本開示の第2の形態によれば、予め学習されたモデルを用いて、1または複数のプロセッサーに実行させるための方法が提供される。前記モデルは、第1データセットが有する複数の第1データ要素と、前記複数の第1データ要素のそれぞれに対応する事前ラベルと、の対応を再現するように学習されており、前記モデルは、ベクトルニューラルネットワーク型のアルゴリズムを用いており、1以上のニューロン層を有し、前記1以上のニューロン層のそれぞれは1以上のニューロン群を有し、前記1以上のニューロン群のそれぞれは1以上のニューロンを有し、前記1以上のニューロンはそれぞれ、第1ベクトルと第1アクティベーションとの少なくとも一方に基づく第1中間データを出力する。前記方法は、学習された前記モデルに前記第1データセットを入力し、前記1以上の前記ニューロンが出力する前記第1中間データを、前記ニューロンと関連付けて取得することと、前記モデルに第2データ要素を入力して、前記1以上の前記ニューロン層のそれぞれについて、前記1以上の前記ニューロンが有する第2ベクトルと第2アクティベーションとの少なくとも一方に基づく第2中間データを取得することと、前記1以上の前記ニューロン層において、前記第1中間データと前記第2中間データとの類似度を計算することと、を含む。この形態によれば、ニューロンが有する第1アクティベーションと第1ベクトルとの少なくとも一方に基づく第1中間データを取得できる。これにより、モデルに判別対象の第2データ要素が入力された場合におけるニューロンが有する第2アクティベーションと第2ベクトルとの少なくとも一方に基づく第2中間データを取得し、第1中間データと第2中間データとの類似度を計算できる。類似度を計算することで、例えば、類似度が予め定めた閾値未満のニューロンを特定できるので、モデルを用いた第2データ要素の判別根拠を出力可能となる。
(3)上記形態において、さらに、計算した前記類似度に関する情報を出力することを含んでもよい。この形態によれば、ユーザーは類似度に関する情報を容易に把握できる。
(4)上記形態において、さらに、前記モデルに前記第2データ要素を入力して、前記第2データ要素のラベルを判別することを含んでもよい。この形態によれば、モデルを用いた第2データ要素のラベルを判別できる。
(5)上記形態において、さらに、前記ラベルの判別結果を出力することを含んでもよい。この形態によれば、ユーザーはラベルの判別結果を容易に把握できる。
(6)上記形態において、前記ニューロン層は、複数の前記ニューロンを有し、前記第1中間データを取得することは、前記複数の前記ニューロンがそれぞれ有する前記第1中間データを取得することと、取得した前記第1中間データに対応した前記第1データ要素の一部である第1部分範囲を、対応する前記第1中間データに関連付けることと、を含み、前記第2中間データを取得することは、前記複数の前記ニューロンがそれぞれ有する前記第2中間データを取得することと、取得した前記第2中間データに対応した前記第2データ要素の一部である第2部分範囲を、対応する前記第2中間データに関連付けることと、を含み、前記類似度を計算することは、前記第1部分範囲の前記第1中間データと、前記第1部分範囲に対応した前記第2部分範囲の前記第2中間データとの前記類似度を計算することを含んでもよい。この形態によれば、第1部分範囲の第1中間データと第1部分範囲に対応した第2部分範囲の第2中間データとの類似度を計算することで、第1部分データ要素および第2部分データ要素の類似度を計算できる。これにより、第2データ要素におけるどの範囲を根拠にしてラベルの判別が行われたかを容易に把握できる。
(7)上記形態であって、前記類似度に関する情報は、前記類似度の計算が行われた前記第1部分範囲および前記第2部分範囲を示す部分範囲情報を含んでもよい。この形態によれば、ユーザーはラベルの判別がどの部分領域を根拠にして行われたかを容易に把握できる。
(8)上記形態において、前記ニューロン層は、複数層によって構成された階層構造であり、前記類似度を計算することは、前記ニューロン層ごとにおいて、前記第1部分範囲の前記第1中間データと、前記第1部分範囲に対応した前記第2部分範囲の前記第2中間データとの前記類似度を計算することを含んでもよい。この形態によれば、複数層のニューロン層の層ごとに第1中間データと第2中間データとの類似度を計算できる。
(9)上記形態において、前記ニューロン層は、複数の前記ニューロンを有し、前記第1中間データを取得することは、前記複数の前記ニューロンがそれぞれ有する前記第1中間データを取得することと、取得した前記第1中間データに対応した前記第1データ要素の一部である第1部分範囲を、対応する前記第1中間データに関連付けることと、を含み、前記第2中間データを取得することは、前記複数の前記ニューロンがそれぞれ有する前記第2中間データを取得することと、取得した前記第2中間データに対応した前記第2データ要素の一部である第2部分範囲を、対応する前記第2中間データに関連付けることと、を含み、前記類似度を計算することは、前記第1中間データと、前記第2中間データとの前記類似度を計算することを含んでいてもよい。この形態によれば、第1部分範囲の第1中間データと第2部分範囲の第2中間データとの類似度を計算することで、第1部分範囲および第2部分範囲の類似度を計算できる。これにより、第2データ要素におけるどの領域を根拠してラベルの判別が行われたかを容易に把握できる。
(10)上記形態において、前記類似度に関する情報は、前記類似度の計算が行われた前記第2部分範囲を示す部分範囲情報を含んでいてもよい。この形態によれば、ユーザーはラベルの判別がどの部分範囲を根拠にして行われたかを容易に把握できる。
(11)上記形態において、前記類似度に関する情報は、前記類似度の計算が行われた前記第1部分範囲および前記第2部分範囲を示す部分範囲情報を含んでいてもよい。この形態によれば、ユーザーはラベルの判別がどの部分範囲を根拠にして行われたかを容易に把握できる。
(12)上記形態において、前記ニューロン層は、複数層によって構成された階層構造であり、前記類似度を計算することは、前記ニューロン層ごとにおいて、前記第1中間データと、前記第2中間データとの前記類似度を計算することを含んでいてもよい。この形態によれば、複数層のニューロン層の層ごとに第1中間データと第2中間データとの類似度を計算できる。
(13)上記形態において、前記類似度に関する情報は、さらに、複数の前記ニューロン層の階層を識別するための層ラベル情報と、前記階層ごとの前記類似度を示す類似度情報と、前記階層ごとにおいて前記類似度の計算が行われた前記第2部分範囲である階層部分範囲を示す階層部分範囲情報と、前記類似度と予め定められた閾値との大小関係を示す比較情報と、の少なくとも一つを含んでもよい。この形態によれば、ユーザーは類似度に関する情報をさらに詳細に把握できる。
(14)上記形態において、前記第1中間データは、少なくとも前記第1ベクトルを含み、前記第2中間データは、少なくとも前記第2ベクトルを含み、前記類似度を計算することは、前記第1ベクトルと前記第2ベクトルとの前記類似度を計算することを含んでもよい。この形態によれば、第1ベクトルと第2ベクトルとを用いて類似度を計算できる。
(15)上記形態において、前記第1中間データは、少なくとも前記第1アクティベーションを含み、前記第2中間データは、少なくとも前記第2アクティベーションを含み、前記類似度を計算することは、前記第1アクティベーションと前記第2アクティベーションとの前記類似度を計算することを含んでもよい。この形態によれば、第1アクティベーションと第2アクティベーションとを用いて類似度を計算できる。
(16)上記形態において、前記第1中間データは、前記第1ベクトルと前記第1アクティベーションとを含み、前記第2中間データは、前記第2ベクトルと前記第2アクティベーションとを含み、前記類似度を計算することは、前記第1ベクトルを前記第1アクティベーションで重み付けし、前記第2ベクトルを前記第2アクティベーションで重み付けし、重み付け後の前記第1ベクトルと、重み付け後の前記第2ベクトルとの前記類似度を計算することを含んでもよい。この形態によれば、重み付け後の第1ベクトルと重み付け後の第2ベクトルとを用いて類似度を計算できる。
(17)本開示の第3の形態によれば装置が提供される。この装置は、第1データセットが有する複数の第1データ要素と、前記複数の第1データ要素のそれぞれに対応する事前ラベルと、の対応を再現するように、ベクトルニューラルネットワーク型のアルゴリズムであるモデルを学習する学習部であって、前記モデルは、1以上のニューロン層を有し、前記1以上のニューロン層のそれぞれは1以上のニューロン群を有し、前記1以上のニューロン群のそれぞれは1以上のニューロンを有し、前記1以上のニューロンはそれぞれ、第1ベクトルと第1アクティベーションとの少なくとも一方に基づく第1中間データを出力する、学習部と、学習された前記モデルに前記第1データセットを入力し、前記1以上の前記ニューロンが出力する前記第1中間データを、前記ニューロンと関連付けて取得する第1取得部と、を備える。この形態によれば、ニューロンが有する第1アクティベーションと第1ベクトルとの少なくとも一方に基づく第1中間データを取得できる。これにより、モデルに判別対象の第2データ要素が入力された場合におけるニューロンが有する第2アクティベーションと第2ベクトルとの少なくとも一方に基づく第2中間データを取得し、第1中間データと第2中間データとの類似度を計算できる。類似度を計算することで、例えば、類似度が予め定めた閾値未満のニューロンを特定できるので、モデルを用いた第2データ要素の判別根拠を出力可能となる。
(18)本開示の第4の形態によれば装置が提供される。この装置は、第1データセットが有する複数の第1データ要素と、前記複数の第1データ要素のそれぞれに対応する事前ラベルと、の対応を再現するように学習されたモデルを記憶する記憶装置であって、前記モデルは、ベクトルニューラルネットワーク型のアルゴリズムを用いており、1以上のニューロン層を有し、前記1以上のニューロン層のそれぞれは1以上のニューロン群を有し、前記1以上のニューロン群のそれぞれは1以上のニューロンを有し、前記1以上のニューロンはそれぞれ、第1ベクトルと第1アクティベーションとの少なくとも一方に基づく第1中間データを出力する、記憶装置と、前記学習された前記モデルに前記第1データセットを入力し、前記1以上の前記ニューロンが出力する前記第1中間データを、前記ニューロンと関連付けて取得する第1取得部と、前記モデルに第2データ要素を入力して、前記1以上の前記ニューロン層のそれぞれについて、前記1以上の前記ニューロンが有する第2ベクトルと第2アクティベーションとの少なくとも一方に基づく第2中間データを取得する第2取得部と、前記1以上の前記ニューロン層において、前記第1中間データと前記第2中間データとの類似度を計算する計算部と、を備える。この形態によれば、ニューロンが有する第1アクティベーションと第1ベクトルとの少なくとも一方に基づく第1中間データを取得できる。これにより、モデルに判別対象の第2データ要素が入力された場合におけるニューロンが有する第2アクティベーションと第2ベクトルとの少なくとも一方に基づく第2中間データを取得し、第1中間データと第2中間データとの類似度を計算できる。類似度を計算することで、例えば、類似度が予め定めた閾値未満のニューロンを特定できるので、モデルを用いた第2データ要素の判別根拠を出力可能となる。
(19)本開示の第5の形態によればコンピュータープログラムが提供される。このコンピュータープログラムは、第1データセットが有する複数の第1データ要素と、前記複数の第1データ要素のそれぞれに対応する事前ラベルと、の対応を再現するように、ベクトルニューラルネットワーク型のアルゴリズムであるモデルを学習する機能であって、前記モデルは、1以上のニューロン層を有し、前記1以上のニューロン層のそれぞれは1以上のニューロン群を有し、前記1以上のニューロン群のそれぞれは1以上のニューロンを有し、前記1以上のニューロンはそれぞれ、第1ベクトルと第1アクティベーションとの少なくとも一方に基づく第1中間データを出力する、機能と、学習された前記モデルに前記第1データセットを入力し、前記1以上の前記ニューロンが出力する前記第1中間データを、前記ニューロンと関連付けて取得する機能と、を1または複数のプロセッサーに実行させる。この形態によれば、ニューロンが有する第1アクティベーションと第1ベクトルとの少なくとも一方に基づく第1中間データを取得できる。これにより、モデルに判別対象の第2データ要素が入力された場合におけるニューロンが有する第2アクティベーションと第2ベクトルとの少なくとも一方に基づく第2中間データを取得し、第1中間データと第2中間データとの類似度を計算できる。類似度を計算することで、例えば、類似度が予め定めた閾値未満のニューロンを特定できるので、モデルを用いた第2データ要素の判別根拠を出力可能となる。
(20)本開示の第6の形態によれば、予め学習されたモデルを用いて実行されるコンピュータープログラムが提供される。前記モデルは、第1データセットが有する複数の第1データ要素と、前記複数の第1データ要素のそれぞれに対応する事前ラベルと、の対応を再現するように学習されており、前記モデルは、ベクトルニューラルネットワーク型のアルゴリズムを用いており、1以上のニューロン層を有し、前記1以上のニューロン層のそれぞれは1以上のニューロン群を有し、前記1以上のニューロン群のそれぞれは1以上のニューロンを有し、前記1以上のニューロンはそれぞれ、第1ベクトルと第1アクティベーションとの少なくとも一方に基づく第1中間データを出力する。このコンピュータープログラムは、学習された前記モデルに前記第1データセットを入力し、前記1以上の前記ニューロンが出力する前記第1中間データを、前記ニューロンと関連付けて取得する機能と、前記モデルに第2データ要素を入力して、前記1以上の前記ニューロン層のそれぞれについて、前記1以上の前記ニューロンが有する第2ベクトルと第2アクティベーションとの少なくとも一方に基づく第2中間データを取得する機能と、前記1以上の前記ニューロン層において、前記第1中間データと前記第2中間データとの類似度を計算する機能と、を1または複数のプロセッサーに実行させる。この形態によれば、ニューロンが有する第1アクティベーションと第1ベクトルとの少なくとも一方に基づく第1中間データを取得できる。これにより、モデルに判別対象の第2データ要素が入力された場合におけるニューロンが有する第2アクティベーションと第2ベクトルとの少なくとも一方に基づく第2中間データを取得し、第1中間データと第2中間データとの類似度を計算できる。類似度を計算することで、例えば、類似度が予め定めた閾値未満のニューロンを特定できるので、モデルを用いた第2データ要素の判別根拠を出力可能となる。
本開示は、上記形態の他に、コンピュータープログラムを記録したや装置を備えるシステムなどの形態で実現することができる。