以下、添付図面を参照し、本発明の実施形態について説明する。なお、以下説明する実施形態は、本発明を具体的に実施した場合の一例を示すもので、特許請求の範囲に記載した構成の具体的な実施例の1つである。
[第1の実施形態]
本実施形態では、以下のような構成を有する情報処理装置の一例について説明する。該情報処理装置は、入力データに対するそれぞれのカテゴリに対応する第1のニューラルネットワークの出力値を求める(第1の計算)。ここで、入力データに対するそれぞれのカテゴリに対応する、前記第1のニューラルネットワークにおいて指定されたユニットを変更した第2のニューラルネットワークの出力値を求める(第2の計算)。そして、それぞれのカテゴリについて、第1の計算で求めた出力値と第2の計算で求めた出力値との間の変化を表す変化情報を求め(第3の計算)、第3の計算で求めた変化情報に基づいて、指定されたユニットの寄与を表す情報を表示装置に出力する。
本実施形態では、このような情報処理装置を図1に示すような認識学習システム1における認識学習装置10に適用した場合について説明する。図1に示す如く、認識学習システム1は、認識学習装置10と、端末装置100と、を有しており、認識学習装置10と端末装置100とは無線若しくは有線のネットワークを介して互いにデータ通信が可能なように構成されている。このネットワークには、例えば、固定電話回線網や、携帯電話回線網や、インターネットが適用できる。なお、図1では認識学習装置10と端末装置100とは別個の装置として示しているが、認識学習装置10と端末装置100とを一体化させて1つの装置してもよい。
本実施形態では、認識学習システム1の利用者が、学習用の画像若しくは映像(以下、学習用データ)に対して、学習済みのDNNにおいて不要な特徴量が認識に用いられていないかを確認するケースについて説明する。具体的には、認識学習システム1は、評価用に用いる画像若しくは映像(以下、評価用データ)の認識に寄与したDNNの特徴量を特定し、該特徴量を示す情報を該評価用データに重畳して表示する。ここで、不要な特徴量とは、学習用データの取得時に不意に映り込んだ、学習用データの取得環境に特有の物体や事象に依存する特徴量などである。例えば、学習用データが実験室にて演技を行った様子を撮影したことで得たデータである場合、実験室ならではの実験装置や、演技者ならではの癖、服装、姿勢などが、学習用データの取得環境に特有の物体や事象に対応する。ここで、利用者とは、例えば本システムを開発する研究開発者、または本システムを監視カメラとともにエンド利用者に提供するためにDNNの調整を行うシステムインテグレータなどである。また、DNNの認識対象とは、概念化および言語化可能な物体の状態であり、該状態を言語的に示すラベル情報により特徴付けられる。認識対象には、例えば、「人」、「車」などの物体の属性や、「歩いている」、「走っている」などの物体の行動や、「鞄」、「カゴ」などの人の所持品などが含まれる。なお、ここで、DNNには、以下の文献にて提案されているConvolution Neural Network(以下CNNと省略)などがある。
・ ImageNet Classification with Deep Convolutional Neural Networks, A. Krizhevsky, I. Sutskever and G. E. Hinton, Advances in Neural Information Processing Systems 25 (NIPS 2012)
先ず、端末装置100について説明する。端末装置100は、各種の情報を表示する表示部DSと、該表示部DS上で行われた利用者の操作を検知するための操作検知部OPと、を有する装置である。端末装置100には、例えばPC(Personal Computer)やタブレットPC、スマートフォン、フューチャーフォン等が適用できる。
表示部DSは、液晶パネルや有機ELパネルなどの画像表示パネルを備えており、認識学習装置10から受信した各種の情報を表示する。詳しくは後述するが、表示部DSは、評価用データ、後述する可視化部15により生成された特徴量を可視化するためのユニット可視化情報、検出部13により生成された特徴量の認識における寄与度を示す変化情報、を表示する。また、表示部DSは、後述する認識学習装置10が記憶するDNNを構成する特徴マップやニューロンを識別するユニットIDや、認識対象のカテゴリを識別するカテゴリIDの一覧を表示する。
操作検出部OPは、表示部DSの画像表示パネルに配置されたタッチセンサを備えており、利用者の指やタッチペンの動きに基づく利用者の操作を検出するとともに、検出した操作を示す操作情報を認識学習装置10に対して送信する。なお、操作検出部OPは、コントローラ、キーボード及びマウスなどの入力デバイスを備え、画像表示パネルに表示された画像に対する利用者の操作を示す操作情報を取得するようにしても良い。この操作情報には、例えば、評価用データの選定指示や、可視化の実行指示や、ユニットIDやカテゴリIDの選択指示などがある。なお、操作検出部OPは、操作情報として「可視化の実行」を検出した場合、端末装置100が記憶する評価用データを、認識学習装置10に対して送信する。また操作検出部OPは、操作情報としてユニットID及びカテゴリIDの選択を検出した場合、該ユニットID及びカテゴリIDに対応するユニット可視化情報及び変化情報を認識学習装置10から受信し、評価用データに重畳して表示部DSに表示させる。
次に、認識学習装置10について説明する。記憶部M1は、認識対象のカテゴリを識別するカテゴリIDと関連づけて、次のような情報を記憶する。即ち、DNNの各階層を識別する階層ID、該階層IDの階層の名称を示す階層名情報、該階層の直下の階層を識別する下階層ID、該階層の直上の階層を識別する上階層ID、該階層における処理方法及び処理パラメータを示す処理パラメータ情報、を記憶する。記憶部M1が記憶する情報の一例を図2に示す。
図2では、認識対象のカテゴリID及び階層IDはアルファベット及び数字から成る文字列として表しているが、カテゴリID及び階層IDの表現方法は特定の表現方法に限るものではない。図2の場合、認識対象のカテゴリは2つあり、該2つのカテゴリは、カテゴリID「C01」とカテゴリID「C02」とで識別される。
図2では、階層ID「L01」と関連付けて、階層名「入力層」、下階層ID「NULL」(階層ID「L01」の階層よりも下位の階層は存在しないことを表す)、上階層ID「L02」、処理パラメータ「処理方法:データ入力」が記憶されている。これは、階層ID「L01」である階層が「入力層」であって、入力層よりも下位の階層は存在せず、入力層より1階層上の階層の階層IDが「L02」であり、入力層において行う処理方法がデータ入力であることを表している。つまり、入力層とは、画像または映像などのデータをDNNに入力して階層IDが「L02」である階層に転送するための処理を行う階層である。
また図2では、階層ID「L02」と関連付けて、階層名「Convolution1層」、下階層ID「L01」、上階層ID「L03」、処理パラメータ「処理方法:Convolution…」が記憶されている。これは、階層ID「L02」である階層の階層名がConvolution1層であり、Convolution1層の1つ下位の階層が「入力層」であって、Convolution1層より1階層上の階層の階層IDが「L03」であることを表している。更に、Convolution1層において行う処理方法が、入力層から入力したデータに対し、処理パラメータとしての重み係数とバイアス項を用いた畳み込み演算を行うことを表している。つまり、Convolution1層とは、入力層から入力したデータに対して重み係数とバイアス項を用いた畳み込み演算を行い、該畳み込み演算の結果を階層IDが「L03」である階層(Pooling1層)に対して出力する階層である。この処理パラメータが保持する処理方法には、データ入力およびConvolution以外にも、以下の文献に記載されているものがある。すなわち、フィルタごとに最大値を求めるPoolingや、入力データと重み係数との内積を計算するInnerProductおよび評価用データがカテゴリに属する確率を計算するsoftmaxなどがある。
・ J. Yangging et al., Caffe: COnvolutional Architecture for Fast Feature Embedding, 2014
また、この処理パラメータには、各階層の処理に用いられるフィルタの大きさ、数およびストライド幅、Convolution層やInnerProduct層で用いられる重み係数やバイアス項の値などが含まれている。
記憶部M1に格納されている情報によって規定されるDNNのネットワーク構造の一例を図3に示す。図3に例示したDNNは、入力層301、Convolution1層302、Pooling1層303、Convolution2層304、Pooling2層305、Innerproduct層306、出力層307から構成されている。入力層301とConvolution1層302との間において行われる処理は、Convolution1層302に対応する処理パラメータ情報で規定されている「Convolution処理311」である。また、Convolution1層302とPooling1層303との間において行われる処理は、Pooling1層303に対応する処理パラメータ情報で規定されている「Pooling処理312」である。また、Pooling2層305とInnerproduct層306との間において行われる処理は、Innerproduct層306に対応する処理パラメータ情報で規定されている「InnerProduct処理313」である。また、Innerproduct層306と出力層307との間において行われる処理は、出力層307に対応する処理パラメータ情報で規定されている「softmax処理314」である。
また、図3では、Convolution層およびpooling層には複数の特徴マップが存在しており、InnerProduct層および出力層には複数のニューロンが存在している。そして、特徴マップおよびニューロンなどのユニットは、ユニットIDにより識別される。例えば、Convolution1層302における2つの特徴マップは、ユニットID「F02001」321とユニットID「F02002」322とにより識別される。また、InnerProduct層306における2つのニューロンは、ユニットID「F06001」323とユニットID「F06002」324とにより識別される。また、図3では、出力層307の2つのニューロンに対して、それぞれ認識対象のカテゴリID=C01、C02が割り当てられている。つまり、詳しくは後述するが、カテゴリID=C01のニューロンからの出力値が、カテゴリID=C01に対応する出力スコア情報であり、カテゴリID=C02のニューロンからの出力値が、カテゴリID=C02に対応する出力スコア情報である。
このように、記憶部M1に格納されている情報は、DNNのネットワーク構造を規定するものであるから、以下では、記憶部M1に格納されている情報を、DNNの構造情報と称する場合がある。
記憶部M2は、評価用データに対するDNNの各階層の処理結果であるユニットの状態を示すユニット状態情報と、認識対象のカテゴリごとのDNNの出力スコアを示す出力スコア情報と、を記憶する。具体的には、記憶部M2は、各カテゴリを識別するカテゴリIDに対応付けて、各カテゴリに対するDNNの出力スコア情報を記憶する。また、記憶部M2は、DNNの階層を識別する階層IDと関連付けて、該階層における特徴マップまたはニューロンなどのユニットを識別するユニットIDと、該ユニットの状態を示すユニット状態情報と、を記憶する。記憶部M2が記憶する情報の一例を図4に示す。
図4では、ユニットIDはアルファベット及び数字から成る文字列として表しているが、ユニットIDの表現方法は特定の表現方法に限るものではない。ユニットIDは、ユニットが属する階層の階層IDと、該階層における該ユニットの順番と、に基づいて生成される。例えば、階層ID「L02」の1番目のユニットのユニットIDは「F02001」である。また、同階層の2番目のユニットのユニットIDは、「F02002」である。
また、図4では、カテゴリID「C01」の出力スコア情報として「10.5」、カテゴリID「C02」の出力スコア情報として「3.8」が記憶されている。また、階層ID「L01」に関連付けられて、ユニットID「F02001」と、ユニット状態として、特徴マップの行列が記憶されている。また、階層ID「L06」に関連付けられて、ユニットID「F06001」と、ユニット状態としてニューロンの値が記憶されている。
図1に戻って、処理部11は、評価用データに対するDNNの各認識対象カテゴリの出力スコア情報を計算するとともに、計算の過程で得られた各ユニットのユニット状態情報を記憶部M2に格納する。具体的には、処理部11は、記憶部M1から、DNNが認識対象とするカテゴリのカテゴリIDと、各階層IDに関連付けられた下階層ID、上階層ID、処理パラメータ情報、を読み込む。そして処理部11は、読み込んだ構造情報に基づいてDNNを構築し、端末装置100から受信した評価用データに対し、最下位の階層から最上位の階層の順に各階層に対応する処理パラメータ情報を適用して処理を行う。そして、処理部11は、DNNの最上位層からの出力(出力スコア情報)のうち、記憶部M1から読み出したカテゴリIDに対応する出力スコア情報を、該カテゴリIDと対応付けて記憶部M2に格納する。
なお、本実施形態では、評価用データとして画像を用いるが、評価用データは画像に限らない。例えば、以下の文献にて提案されているように、映像を認識対象とすることができる。
・ Two-stream convlutional networks for action recognition in videos, K. Simonyan and A. Zisserman, Advances in Neural Information Processing System 25 (NIPS), 2014.
・ 3D Convlutional Neural Networks for Human Action Recognition, S. Ji, W. Xu, M. Yang and K. Yu, Pattern Analysis and Machine Intelligence, vol. 35, no. 1, pp. 221-231, 2012
処理部11は入力層に評価用データを入力してから最上位階層の出力を得るまでの過程における各ユニットのユニット状態情報を、該ユニットが属する階層の階層ID及び該ユニットのユニットIDに関連付けて記憶部M2に格納する。そして処理部11は、トリガーを処理部12に対して出力する。
処理部12は、処理部11からトリガーを入力したことに応じて、記憶部M1から、認識対象のカテゴリIDと、階層IDに関連付けられた下階層ID、上階層ID、処理パラメータ情報、を読み込む。また処理部12は、記憶部M2から、カテゴリIDに関連付けられた出力スコア情報と、階層IDとユニットIDとに関連付けられたユニット状態情報とを読み込む。そして処理部12は、読み込んだユニットIDのうち特定のユニットIDに対応するユニット状態情報について規定の処理を行う。ここで、特定のユニットIDとは、可視化対象のユニット(可視化対象ユニット)を識別するユニットIDとして利用者によって予め指定(設定)されたユニットIDである。例えば、利用者がConvolution1層の1番目の特徴マップを可視化対象としたい場合は、「F02001」を特定のユニットIDとして設定する。また、利用者がConvolution1層の全ての特徴マップを可視化対象としたい場合は、ワイルドカードを用いて「F02*」を特定のユニットIDとして設定する。また、特定のユニットIDに対応するユニット状態情報について行う「規定の処理」には様々な処理が考えられるが、例えば、以下のような2種類の処理(第1の処理、第2の処理)が考えられる。
第1の処理では、処理部12は、記憶部M2から読み込んだユニット状態情報のうち特定のユニットIDに対応するユニット状態情報が表す数値の集合と同サイズ且つ要素が全て0となる別集合を付加ユニット情報として生成する。例えば、ユニット状態情報が特徴マップの行列を表している場合には、該行列と同サイズ且つ全ての要素が0である行列を付加ユニット情報として生成する。また、ユニット状態情報がニューロンの値である場合には、値が0のニューロン値を付加ユニット情報として生成する。以下では、特定のユニットIDに対応するユニット状態情報は要素が全てゼロのユニット(特徴マップまたはニューロン)に置き換えられるので、該ユニットからの出力が0になり、DNN上では疑似的に該ユニットが削除された状態になる。
第2の処理では、処理部12は、記憶部M2から読み込んだユニット状態情報のうち特定のユニットIDに対応するユニット状態情報が表す数値の集合と同サイズ且つ要素が全てランダム値となる別集合を付加情報として生成する。ランダム値は、例えば、独立同一に正規分布やラプラス分布などに従う。例えば、ユニット状態情報が特徴マップの行列を表している場合には、該行列と同サイズ且つ全ての要素がランダム値である行列を付加情報として生成する。また、ユニット状態情報がニューロンの値である場合には、値がランダム値のニューロン値を付加情報として生成する。そして処理部12は、特定のユニットIDに対応するユニット状態情報に付加情報を加算する(対応する要素ごとの加算)ことで付加ユニット情報を生成する。
そして処理部12は、特定のユニットID(規定の処理の対象となったユニット状態情報のユニットID)と、付加ユニット情報と、を検出部13に対して出力する。
検出部13は、記憶部M1から認識対象のカテゴリIDと、階層IDに関連付けられた下階層ID、上階層ID、処理パラメータ情報を読み込む。更に検出部13は、記憶部M2からカテゴリIDに関連付けられた出力スコア情報と、階層IDとユニットIDとに関連付けられたユニット状態情報とを読み込む。そして検出部13は、処理部11と同様にして、評価用データに対するDNNの各認識対象カテゴリの出力スコア情報を計算するのであるが、その際、特定のユニットIDに対応するユニット状態情報として付加ユニット情報を用いる。更に、検出部13は、特定のユニットIDに対応する階層IDよりも下位の階層に対応する階層IDと関連づけられているユニット状態情報は再度計算する必要はなく、記憶部M2に格納されているユニット状態情報を用いればよい。例えば、Convolution2層のユニットについて規定の処理を行った場合、Convolution1層、Pooling1層のユニット状態情報が出力スコア情報の計算に再利用される。
このようにして検出部13は、特定のユニットIDに対応するユニットを付加ユニット情報に置き換えた場合のDNNの評価用データに対する各認識対象カテゴリの出力スコア情報を計算する。検出部13は、記憶部M2に格納されている出力スコア情報に対する該計算した出力スコア情報の変化(特定のユニットIDに対応するユニットを付加ユニット情報に置き換えたことによる出力スコア情報の変化を示す変化情報)をカテゴリ毎に求める。また、変化情報の算出処理には様々な算出処理が考えられるが、例えば、以下の2つの算出処理(第1の算出処理、第2の算出処理)が考えられる。
第1の算出処理では検出部13は、特定のユニットIDに対応するユニット状態情報を付加ユニット情報に置き換えた場合のDNNの評価用データに対する出力スコア情報と、記憶部M2に格納されている出力スコア情報と、の差分を変化情報として求める。第1の算出処理では、例えば以下の式(1)に従って変化情報を求める。なお、式(1)のように、この差分は、負の値を取らないようにするために絶対値をとってもよい。
式(1)においてΔSc、uは、ユニットID=uのユニット状態情報を付加ユニット情報に置き換えた場合においてカテゴリcについて求めた変化情報である。Scは、記憶部M2から読み込んだカテゴリcの出力スコア情報、Sc、uは、ユニットID=uのユニット状態情報を付加ユニット情報に置き換えた場合においてカテゴリcについてDNNから出力された出力スコア情報である。
第2の処理では検出部13は、特定のユニットIDに対応するユニット状態情報を付加ユニット情報に置き換えた場合のDNNの評価用データに対する出力スコア情報と、付加ユニット情報を生成するために用いた付加情報との相関係数を変化情報として求める。この場合、処理部12は更に検出部13に対して付加情報を出力する必要がある。具体的には、各可視化対象ユニットについて(若しくはその一部について)処理部12及び検出部13は以下のような処理を行う。即ち、処理部12は、該可視化対象ユニットのユニット状態情報に付加情報を加えて付加ユニット情報を生成し、検出部13は可視化対象ユニットのユニット状態情報の代わりに該付加ユニット情報を用いたDNNの出力スコア情報を計算する。そして検出部13は、計算した各出力スコア情報と、該出力スコア情報を計算するために用いた付加情報と、の組を用いて以下の式(2)を計算することで、相関係数を変化情報として計算する。
式(2)においてNは繰り返す回数(組の数)を示す。Sc、u、iは、ユニットID=uのユニット状態情報を、i番目の規定の処理によって生成された付加ユニット情報に置き換えた場合のカテゴリcの出力スコア情報を示す。aiは、i番目の付加情報である。
処理部12が上記の第1の処理を行った場合における変化情報の求め方について、図5を用いて説明する。図5では、DNNのConvolution1層501およびConvolution2層502に含まれるユニット(それぞれユニット511,512)が可視化対象ユニットに設定されている。このような場合、処理部12は、ユニット511と同サイズ且つ全ての要素が0であるユニット(付加ユニット情報)531を生成すると共に、ユニット512と同サイズ且つ全ての要素が0であるユニット(付加ユニット情報)532を生成する。
そして図5では、検出部13は、ユニット511をユニット531に差し替えた場合のDNNの出力スコア情報(ユニット512をユニット532に差し替えた場合のDNNの出力スコア情報)を8.5として求めている。また、図5では、差し替え前のDNNの出力スコア情報を10.5としている。然るに、変化情報は2となっている。このような変化情報の算出処理はカテゴリごとに行われる。
このように、処理部12及び検出部13は、可視化対象ユニットごとに、それぞれのカテゴリについての変化情報を算出することができる。つまり、それぞれの可視化対象ユニットについて次のような一連の処理が行われる。即ち、該可視化対象ユニットのユニット状態情報を対応する付加ユニット情報に置き換えたDNNのカテゴリごとの出力スコア情報を算出し、置き換え前のDNNのカテゴリごとの出力スコア情報に対する変化情報を求める。
そして検出部13は、カテゴリIDごとに、特定のユニットIDと変化情報とユニット状態情報との組を、選択部14に対して出力する。つまり、検出部13は、式(1)または式(2)などで計算した、カテゴリcごとの変化情報ΔSc、uの集合を、選択部14に出力する。
選択部14は、入力した変化情報に基づき、入力したカテゴリIDごとに、認識への寄与度が高いユニットのユニットIDを選択する。このユニットIDの選択方法として、選択部14は、カテゴリIDごとに、変化情報の値が大きいユニットIDを、寄与度の高いユニットのユニットIDとして選択する。具体的には、例えば、選択部14は、カテゴリIDごとに、閾値以上の変化情報を持つユニットIDを全て選択する。また、選択部14は、カテゴリIDごとに、変化情報の値の大きい順に先頭から規定数の変化情報を持つユニットIDを選択する。そして選択部14は、カテゴリIDごとに、選択したユニットIDと変化情報との組を可視化部15に対して出力する。なお、選択部14は、カテゴリごとではなく全カテゴリに対して認識に寄与するユニットを選択してもよい。例えば、選択部14は、特定のユニットIDの全カテゴリの変化情報の平均値、合計または最大値などの統計値を求め、その統計値が大きいユニットを選択する。
なお、変化情報と比較する閾値や、選択するユニットIDの数については、例えば、端末装置100の表示部DSに表示された数値を人が調整することにより設定できる。また、操作検出部OPは、人による該数値の変更を示す操作を検出し、該数値と操作情報とを認識学習装置10に出力する。認識学習装置10は、端末装置100から該数値と操作情報とを入力したことに応じて、該数値を閾値や選択するユニットIDの数として、認識学習装置10内の不図示のメモリに記憶させる。
可視化部15は、選択部14から受けたユニットIDに対応するユニットを可視化するための情報をユニット可視化情報として生成する。具体的には、可視化部15は、記憶部M1から、各階層IDに関連付けられた下階層ID、上階層ID、処理パラメータ情報、を読み込む。そして、可視化部15は、記憶部M1から読み込んだ下階層ID、上階層ID、処理パラメータ情報に基づき、ユニット可視化情報を生成する。例えば、非特許文献1に記載のように、ユニット状態情報を、下位のpooling層とconvolution層との逆変換を順次かけて入力層まで戻す方法を用いることができる。これにより、評価用データとしての画像上において可視化対象ユニットに対応する対象(特徴)を特定することができる。この特定した対象(特徴)の画像上の領域及び該領域に配置するオブジェクトを示す情報がユニット可視化情報である。
そして可視化部15は選択部14から受けたユニットID及び変化情報、該ユニットIDに対応する階層ID、カテゴリID、ユニット可視化情報、を端末装置100に対して送信する。
端末装置100の表示部DSには、図6に例示するGUI(グラフィカルユーザインターフェース)が表示される。このGUIにおいてDS1は、端末装置100が保持する評価用データとしての画像である。DS2は、可視化部15から受けたユニットIDの一覧と階層IDとを表示する表示領域である。DS3は、可視化部15から受けたカテゴリIDの一覧を表示する表示領域である。このようなGUIにおいて図7に例示する如く、DS2に一覧表示されているユニットIDのうち1つを利用者の手による操作US1によって指定したことを操作検出部OPが検出したとする。また、DS3に一覧表示されているカテゴリIDのうち1つを利用者の手による操作US2によって指定したと操作検出部OPが検出したとする。すると端末装置100の表示部DSには図7に示す如く、認識学習装置10から受信した変化情報のうち、指定されたユニットID及びカテゴリIDに対応する変化情報が寄与度DS102として表示される。更に表示部DSには、指定されたユニットIDに対応するユニット可視化情報が示す領域(頭部の領域)内に、該ユニット可視化情報が示すオブジェクトDS101が表示される。寄与度DS102及びオブジェクトDS101は何れも評価用データとしての画像上に重畳して表示される。しかし、GUIのレイアウトは図7に示したレイアウトに限らない。然るに、寄与度DS102及びオブジェクトDS101を表示する際には、評価用データとしての画像上に重畳させなくても構わない。なお、指定されたユニットの寄与を表す情報としては、変化情報をそのまま寄与度として表示するのではなく、適当な大きさの値に正規化したり、所定範囲ごとにレベルで表してもよく、あるいはグラフ化して表現してもよい。
次に、上述の認識学習システム1の動作について、図8のフローチャートに沿って説明する。図8は、DNNにおける認識処理に寄与する特徴量の可視化の一例を示すフローチャートである。なお、図8に示した各処理の詳細は上記の通りであるため、以下では簡単に説明する。
先ず、端末装置100の表示部DSは、評価用データの一覧を表示する(V101)。評価用データの一覧としては、例えば、画像のサムネイルの一覧であっても良いし、映像のプレビューの一覧であっても良い。ここで利用者が評価用データの一覧から1つを選択する操作を行うと共に、「可視化の実行」の指示を入力したことを操作検出部OPが検知すると、端末装置100は一覧から選択された評価用データを認識学習装置10に対して送信する(V102)。認識学習装置10の処理部12は、端末装置100から送信された評価用データを受信する(V102)。
次に、認識学習装置10の処理部11は記憶部M1から、DNNが認識対象とするカテゴリのカテゴリIDと、各階層IDに関連付けられた下階層ID、上階層ID、処理パラメータ情報を読み込む(V103)。
次に処理部11は、読み込んだ構造情報に基づき、端末装置100から受信した評価用データに対して、最下位の階層から最上位の階層の順に各階層に対応する処理パラメータ情報を適用し、カテゴリごとの出力スコア情報を求める(V104)。
そして処理部11は、DNNの最上位層からの出力(出力スコア情報)のうち、記憶部M1から読み出したカテゴリIDに対応する出力スコア情報を、該カテゴリIDと対応付けて記憶部M2に格納する(V105)。更に処理部11は、各ユニットのユニット状態情報を、該ユニットが属する階層の階層ID及び該ユニットのユニットIDに関連付けて記憶部M2に格納する(V105)。そして処理部11は、トリガーを処理部12に対して出力する。
次に、処理部12は、可視化対象ユニットの数をカウントするためのカウンタ変数iの値を0に初期化する(V106)。更に処理部12は、記憶部M1から、認識対象のカテゴリIDと、階層IDに関連付けられた下階層ID、上階層ID、処理パラメータ情報、を読み込む(V106)。また処理部12は、記憶部M2から、カテゴリIDに関連付けられた出力スコア情報と、階層IDとユニットIDとに関連付けられたユニット状態情報とを読み込む(V106)。
読み込んだユニットIDのうち特定のユニットIDの数をN(Nは2以上の整数)とすると、処理部12は、i番目の特定のユニットIDに対応するユニット状態情報について規定の処理を行うことで、付加ユニット情報を生成する(V107)。そして処理部12は、i番目の特定のユニットIDと、該i番目の特定のユニットIDについて生成した付加ユニット情報と、を検出部13に対して出力する(V107)。
検出部13は処理部11と同様にして、評価用データに対するDNNの各認識対象カテゴリの出力スコア情報を計算するが、その際、i番目の特定のユニットIDに対応するユニット状態情報の代わりに付加ユニット情報を用いる(V108)。
そして検出部13は、V108で計算した出力スコア情報と、記憶部M2に格納されている出力スコア情報と、の間の変化をカテゴリごとに求める(V109)。そして検出部13は、カウンタ変数iの値を1つインクリメントする(V110)。インクリメント後のカウンタ変数iの値がN以上となった場合には、処理はV111を介してV112に進み、N未満であれば、処理はV111を介してV107に戻る。
選択部14は、カテゴリIDごとに、認識への寄与度が高いユニットのユニットIDを選択し、カテゴリIDごとに、選択したユニットIDと変化情報との組を可視化部15に対して出力する(V112)。
可視化部15は、選択部14から受けたユニットIDに対応するユニットを可視化するための情報をユニット可視化情報として生成する(V113)。そして可視化部15は、選択部14から受けたユニットID及び変化情報、該ユニットIDに対応する階層ID、カテゴリID、ユニット可視化情報、を端末装置100に対して送信する(V113)。
端末装置100の表示部DSは、端末装置100が保持する評価用データとしての画像、可視化部15から受けたユニットIDの一覧と階層ID、可視化部15から受けたカテゴリIDの一覧を表示している。このような状態において、利用者がGUI上でユニットID及びカテゴリIDを指定したとする。すると表示部DSは、該指定されたユニットID及びカテゴリIDに対応する変化情報の表す寄与度、指定されたユニットIDに対応するユニット可視化情報が示すオブジェクト、のそれぞれを評価用データに重畳して表示する(V114)。
このように、本実施形態によれば、評価用データに対して、DNNの認識に寄与する特徴マップまたはニューロンなどのユニットの情報を可視化することが出来る。然るに利用者は、学習データ特有の特徴量など不要な特徴量が認識に利用されていないかを確認することができる。そして、もしDNNが不要な特徴量を認識に用いていることが分かった場合、利用者は該特徴量を含むデータを学習データから削除して、DNNを再学習することができる。これにより、利用者は不要な特徴量を用いないDNNを獲得することができる。
また、本実施形態では、出力スコア情報の変化を検出する際に、既に計算した各ユニットの状態を再利用する。これにより、認識に寄与するユニットを高速に求めることができる。特に上位の階層におけるユニットほど再利用できる下位層のユニットがより多いため、より高速に求めることができる。そのため、利用者は、より多くの評価用データを用いてDNNの認識に寄与する特徴量を確認することができる。
なお、本実施形態では、各ユニットに対する出力スコア情報の独立的な変化に基づき、認識に寄与するユニットを選択する場合について説明した。しかしながら、これらの一連の処理を、複数のユニットの共起性を考慮して行ってもよい。例えば、以下の文献にて記載されているForward SelectionまたはBackward Selectionを用いて、近似的に出力スコアの変化を最大化するユニットの組み合わせを選択してもよい。
・ Feature Selection for Reinforcement Learning: Evaluating Implicit State-Reward Dependency via Conditional Mutual Information, H. Hachiya & M. Sugiyama, ECML2010
[第2の実施形態]
本実施形態を含め、以降の各実施形態では、第1の実施形態との差分について重点的に説明し、以下で特に触れない限りは、第1の実施形態と同様であるものとする。本実施形態に係る認識学習システム1aの構成例について、図9を用いて説明する。本実施形態に係る認識学習システム1aは、学習済みのDNNが不要な特徴量を認識に用いていないかを利用者が確認し、もし用いられている場合は該特徴量の重要度を低く設定して認識器を再学習させる構成を有する。つまり、可視化された特徴量に対する利用者からのフィードバックを示す操作情報に基づいて、認識学習装置10aがDNNを再学習する点において、第1の実施形態と異なる。
本実施形態に係る認識学習システム1aは認識学習装置10aと端末装置100aとを有しており、認識学習装置10aと端末装置100aとの間は第1の実施形態と同様、有線や無線等のネットワークを介して互いにデータ通信が可能なように構成されている。
端末装置100aの操作検出部OPは、第1の実施形態と同様に利用者の表示部DSに対する操作情報を検知するのである。本実施形態では更に操作検出部OPは、後述する重要度情報の設定指示や、DNNの再学習の実行指示を検知する。
本実施形態では、表示部DSは、図7のGUIの代わりに、図10に例示するGUIを表示する。図10のGUIでは、DS2からユニットIDとして「F04001」、DS3からカテゴリIDとして「C02」が選択されておいる。その結果、背景にある建物(ユニット可視化情報が示す領域)にオブジェクトDS101(ユニット可視化情報が示すお武家区と)が重畳されて表示されている。また図10のGUIでは、表示領域DS4内にオブジェクトDS101で示したユニット(特徴量)に対する利用者からのフィードバック操作US3を取得するための重要度のプルダウンメニューDS401と再学習の実行ボタンDS402とが表示されている。プルダウンメニューDS401は、指示することで複数の重要度(例えば0〜1の間の実数値で、値が大きいほどより高い重要度を表し、値が小さいほどより低い重要度を表す)の一覧を表示するので、利用者は一覧から1つの重要度を選択指示することができる。実行ボタンDS402は、指示することで認識学習装置10aに対して再学習を指示することができる。
操作検出部OPは、利用者によるプルダウンメニューDS401や実行ボタンDS402に対する操作を示す操作情報を検知する。操作情報が「プルダウンメニューDS401を用いた重要度の入力」である場合には、端末装置100aは、入力された重要度を示す重要度情報を、オブジェクトDS101に対応する可視化対象ユニットのユニットIDに関連付けて記憶する。一方、操作情報が「実行ボタンDS402の指示」である場合には、端末装置100aは、記憶している重要度情報と、該重要度情報と関連づけて記憶されているユニットIDと、を再学習の実行指示と共に認識学習装置10aに対して送信する。なお、利用者がプルダウンメニューDS401を用いて重要度を設定していない場合には、デフォルトの重要度を示す重要度情報が送信されることになる。このデフォルトの重要度については特定の重要度に限らないが、例えば1である。また、このデフォルトの重要度は、認識学習装置10aからユニットIDに関連付けられて入力した変化情報の値が設定されてもよい。
一方、認識学習装置10aの再学習部16は、端末装置100aから再学習の実行指示を受けると、学習データを用いて、重要度情報に基づきDNNを学習する。具体的には、端末装置100aからユニットIDと重要度情報との組みを入力したことに応じて再学習部16は記憶部M1から、DNNが認識対象とするカテゴリIDと、各階層IDに関連付けられた下階層ID、上階層ID、処理パラメータ情報、を読み込む。そして再学習部16は、記憶部M1から読み込んだDNNの構造情報と、端末装置100aから受信した重要度情報と、に基づく重要度付き学習方法を用いて、学習データに対するDNNの識別誤差を最小化するように処理パラメータ情報を更新する。ここで、更新が行われる処理パラメータ情報は、例えば、Convolution処理やInnerProduct処理の重み係数とバイアス項の値である。この学習データは、画像や映像などの入力データと入力データが属するカテゴリIDの複数の組から成るデータであり、予め作成されたものである。また、この重要度付き学習方法には、例えば、次の2つの学習方法がある。
第1の学習方法として、再学習部16は、端末装置100aから受信したユニットIDと重要度情報とに基づき、記憶部M1から読み込んだDNNの構造情報の各ユニットのドロップアウトする割合を設定する。ドロップアウトとは上記の非特許文献3にて提案されているように、学習過程の各反復においてランダムに選んだユニットを一時的にネットワークから切り離す処理のことで、ドロップアウトされたユニットに係る処理パラメータ情報は、該反復において更新が行われない。
このドロップアウトが行われる各ユニットの割合は、通常は固定の0.5(上記文献)などに設定されるが、この第1の学習方法では、該割合を、以下の式(3)のように、入力した重要度情報に基づき設定される。
式(3)においてrはドロップアウトの割合で、Iは重要度情報が表す重要度である。例えば、重要度Iが1の場合は、ドロップアウトの割合は通常の割合0.5に設定される。しかし、重要度Iが0.1のユニットについては、ドロップアウトの割合は通常の割合より高い値、例えば、0.95に設定される。これにより、重要度が低いユニットは、高い頻度でドロップアウトが行われるため、該ユニットの処理パラメータ情報は更新が行われにくくなる。そのため、該ユニットの認識への寄与は相対的に小さくなる。
各ユニットに設定されたドロップアウトの割合の一例を図11に示す。図11では、Convolution2層1201の特徴マップ1202および特徴マップ1203のそれぞれにドロップアウトの割合0.5および0.95が設定されている。また、図11では、Innerproduct層1204のニューロン1205のドロップアウトの割合が0.7に設定されている。
第2の学習方法として、再学習部16は、端末装置100aから受信したユニットIDと重要度情報とに基づく罰則項を、以下の式(4)のように最小化を行う識別誤差に付加する。
式(4)においてθはDNNの各ユニットの処理パラメータ情報を要素に持つベクトル、E(θ)は学習データに対するDNNの識別誤差、λは誤差と重要度の罰則項のバランスを取るための係数、Uは各ユニットの重要度の逆数を対角成分にもつ行列である。例えば、i番目のユニットの重要度が0.5の場合は、行列Uの要素Uiiは2となる。ここで、重要度が低いユニットほど、ユニットの処理パラメータ情報に対する罰則が強くなるため、式(4)を最小化するように学習したDNNは、より重要度の低いユニットを使わないように学習される。
なお、詳細は省くが、第1および第2の学習方法において、各階層の処理パラメータ情報は、最初に初期化された後、識別誤差を最小化するようにする。そのために、Stochastic Gradient Descent(SGD)やAdaDelta(J. Yangging et al., Caffe: COnvolutional Architecture for Fast Feature Embedding, 2014)などの勾配法が用いられる。
そして、再学習部16は、更新した処理パラメータ情報を、記憶部M1に階層IDに関連付けて記憶させる。これにより、記憶部M1に格納されているDNNの構造情報が再学習により更新されたことになる。
次に、本実施形態に係る認識学習システム1aの動作について、図12のフローチャートを用いて説明する。図12において図8に示した処理ステップと同じ処理ステップには同じステップ番号を付しており、該処理ステップに係る説明は省略する。
V114の処理の後、利用者が「プルダウンメニューDS401を用いた重要度の入力」を行ったとする。このとき、端末装置100aは、入力された重要度を示す重要度情報を、オブジェクトDS101に対応する可視化対象ユニットのユニットIDに関連付けて記憶する(F101)。一方、利用者が「実行ボタンDS402の指示」を行った場合には、端末装置100aは、重要度情報と、該重要度情報と関連づけて記憶されているユニットIDと、を認識学習装置10aに対して送信する(F101)。
次に、再学習部16は、端末装置100aから受信したユニットIDと重要度情報とに基づき、記憶部M1から読み込んだDNNの構造情報の各ユニットのドロップアウトする割合を設定する(F102)。次に、再学習部16は、処理パラメータ情報を初期化した後、識別誤差を最小化するようにSGDやAdaDeltaなどの勾配法を用いて、処理パラメータ情報を更新する(F103)。次に、再学習部16は、F103で更新した処理パラメータ情報を、対応する階層IDと関連付けて記憶部M1に記憶させる(F104)。
このように、本実施形態によれば、第1の実施形態に係る効果に加え、もしDNNが不要な特徴量を認識に用いていることが分かった場合、利用者は該特徴量に対して低い重要度を設定して、DNNを再学習することができる。これにより、利用者は直感的および簡単な操作で不要な特徴量を用いないDNNを獲得することができる。
[第3の実施形態]
本実施形態に係る認識学習システム1bの構成例について、図13を用いて説明する。本実施形態に係る認識学習システム1bは、利用者が用意した評価用データの認識において寄与度の低い特徴マップおよびニューロンを選定し、DNNから削除する構成を有する。ここで、評価用データは、例えば、ある特定のドメインの複数の画像または複数のクリップから構成される映像である。ドメインとは、本システムが利用されると想定される環境であり、例えば、介護施設、一般家庭、公共施設の駅や市街、店舗などである。
本実施形態に係る認識学習システム1bは認識学習装置10bと端末装置100とを有しており、認識学習装置10aと端末装置100との間は第1の実施形態と同様、有線や無線等のネットワークを介して互いにデータ通信が可能なように構成されている。
選択部14bは、検出部13から入力した変化情報に基づき、入力したカテゴリIDごとに、認識への寄与度が低いユニットのユニットIDを選択する。このユニットIDの選択方法として、選択部14bは、カテゴリIDごとに、変化情報が小さいユニットIDを、寄与度の低いユニットのユニットIDとして選択する。例えば、選択部14は、カテゴリIDごとに、様々な評価用データに対する変化情報の平均を各ユニットIDについて求め、該平均が閾値未満の変化情報を持つユニットIDを全て選択する。また、選択部14bは、カテゴリIDごとに、平均の小さい順に先頭から規定数の平均に対応するユニットIDを選択ユニットIDとして選択する。そして選択部14bは、カテゴリIDごとに、選択ユニットIDと変化情報との組を可視化部15及び削除部17に対して出力する。
削除部17は、選択ユニットIDに対応するユニットをDNNから削除する。具体的には、選択部14bから、選択ユニットIDと変化情報との組を入力したことに応じて、削除部17は、記憶部M1から、DNNが認識対象とするカテゴリIDと、各階層IDに関連付けられた下階層ID、上階層ID、処理パラメータ情報、を読み込む。そして、削除部17は、選択部14bから入力した選択ユニットIDに基づく更新方法で、DNNの構造情報を更新する。更新方法として、例えば、処理パラメータ情報に含まれている、選択ユニットIDのユニットの重み係数およびバイアス項を0にするなどして該ユニットを削除する。また、削除部17は、選択ユニットIDのユニットが属する階層の処理パラメータ情報が保持するフィルタ数を、削除したユニット数に応じて減らす。そして削除部17は、更新した構造情報を、記憶部M1に記憶させる。
なお、可視化部15は、選択ユニットIDに対応するユニットを可視化するユニット可視化情報を生成する。そして、端末装置100は、生成されたユニット可視化情報に基づいてオブジェクトを表示部DSに表示する。これにより、利用者は、認識学習装置10bにより、削除されたユニットを確認することができる。
なお、削除部17は、削除したユニットの重み係数およびバイアス項などの処理パラメータ情報を認識学習システム1b内に保持しておいてもよい。そして、端末装置100は、削除されたユニットのユニット可視化情報とともに、「復旧」ボタンを表示部DSに表示する。そして、端末装置100の操作検出部OPが利用者によるユニット可視化情報の選択及び「復旧」ボタンに対する操作を示す操作情報を検出した場合、端末装置100は、認識学習装置10bの削除部17に対して操作情報を送信する。削除部17は、端末装置100から操作情報を受信したことに応じて、自装置内に記憶しておいた、利用者が選択したユニット可視化情報に対応するユニットIDに対応する処理パラメータ情報を選択し、記憶部M1に、該処理パラメータ情報を追加する。これにより利用者は、認識学習装置10bにより削除されたユニットを確認し、もし重要なユニットが削除されたことが分かった場合は、該ユニットをDNNに復旧させることができる。
このように、本実施形態によれば、特定のドメインにおける評価データに対してDNNの認識に寄与しない特徴マップまたはニューロンを削除することができる。これにより、特定のドメインにおいて、DNNは認識精度を維持しながら、軽量および高速に認識ができるようになる。例えば、様々なドメインを含む学習データを用いて多様な環境に対応可能なDNNを学習しておき、実際に本システムが利用される特定のドメインに合わせて、DNNを調整するようなことができる。
[第4の実施形態]
特定のユニットIDに対応するユニット状態情報について行う「規定の処理」には様々な処理が考えられるが、例えば、以下のような処理(第3の処理、第4の処理)も考えられる。
第3の処理として、処理部12は、記憶部M2から読み込んだユニット状態情報のうち特定のユニットIDに対応するユニットと同じ階層の任意のユニットIDに関連付けられたユニット状態情報を付加ユニット情報として生成する。ここで、任意のユニットIDとは、例えば、特定のユニットIDと隣り合うユニットIDや、ランダムに選択したユニットのIDや、固定のユニットIDなどに相当する。ここで、ランダムなユニットIDは、例えば、同じ階層内のユニットIDの中から、一様分布に従って選択される。なお、「規定の処理」として、所定のユニット状態情報に、付加ユニット情報を足すなどの四則演算などの処理を施してもよい。
第4の処理として、処理部12は、記憶部M2から読み込んだユニット状態情報のうち特定のユニットIDに対応するユニット状態情報が表す数値の集合と同サイズ且つ要素が所定の値を持つ特徴マップまたはニューロンを示す付加ユニット情報を生成する。ここで、所定の値とは、例えば、予め定められた固定の数値パターンである。
この「規定の処理」に必要な処理情報は、自装置内または外部の記憶装置に記憶されている。例えば、処理情報は、自装置内の記憶部M1のDNNの構造情報の一部として記憶されている。この処理情報には、例えば、「規定の処理」を示すID、付加ユニット情報、ランダム値を生成する確率分布の情報、および差し替えや四則演算などの付加ユニット情報と特定のユニット情報とに対する処理情報などがある。
また、「規定の処理」は、DNNの構造の一部として処理を施してもよい。具体的には、処理部12は、処理対象である所定の階層と、一つ上位の階層との間に、「規定の処理」を施すユニット付加処理層を挿入した構造を示すDNN構造情報を生成する。ここで、ユニット付加処理層の各ユニット情報は、図16で後述するように、付加ユニット情報に対応しており、一つ下位の階層の各ユニット情報に対して、「規定の処理」を適用するように、DNN構造情報の処理パラメータが設定される。そして、処理部12は、生成したDNN構造情報を、記憶部M1に記憶させる。
図15は、DNNの可視化対象のユニットに第3の処理を適用する一例を示す図である。まず、図15では、記憶部M1に格納されているDNNのConvolution1層501およびConvolution2層502に含まれるユニットが可視化対象ユニットに設定されている場合について説明されている。具体的には、図15では、第3の処理として、ユニット511と512とそれぞれ同じ階層で隣り合うユニット531−2、532−2を付加ユニット情報として選択し、ユニット511、512のユニット状態情報がそれぞれ差し替えられる(541−2、542−2)または加算されることが示されている。
図16は、「規定の処理」をDNNの階層の処理として適用する一例を示す図である。まず、図16では、記憶部M1に格納されているDNNのConvolution1層501およびConvolution2層502に含まれるユニットが可視化対象ユニットに設定されている場合について説明されている。具体的には、図16では、Convolution1層501とConvolution2層502の出力が、それぞれユニット付加処理1層501−3とユニット付加処理2層502−3に入力され、上述した第1から第4の処理が適用されることを示している。例えば、Convolution1層のユニットIDがF02001のユニットに対しては、ユニット付加処理1層のユニットIDがF03001の付加ユニット情報が適用される。また、Convolution2層のユニットIDがF05003のユニットに対しては、ユニット付加処理2層のユニットIDがF06003の付加ユニット情報が適用される。例えば、ユニット付加処理1層にて第4の処理が用いられる場合、付加ユニット情報F03001をユニットIDがF02001のユニットと同じ大きさで要素が所定の値を持つように設定し、ユニットIDがF02001のユニットを置き換えるまたは加算するなどの四則演算を適用する。
[第5の実施形態]
図8のステップV106とステップV107との間のステップにおいて、「規定の処理」としてどのような処理を行うのかを設定するようにしても良い。その場合、設定された「規定の処理」を実現するための処理が以降の各ステップにおいて行われることになる。例えば、処理部12は、記憶部M1から読み込んだ処理情報に基づき「規定の処理」を設定する。例えば、図16の説明にて前述したように「規定の処理」がDNNの構造の一部として処理される場合は、ユニット付加処理層を挿入した構造および「規定の処理」に対応した処理パラメータを示すDNN構造情報を生成する。そして処理部12は、生成したDNN構造情報を記憶部M1に記憶させる。
また、上記の各実施形態では、複数の状態を識別する問題を例にとり説明したが、これに限るものではなく、一般的な識別問題に適用することが可能であり、例えば、正常と異常を識別する異常検知の問題に適用することができる。
また、上記の各実施形態においては、認識学習装置10、10a、10bのそれぞれは記憶部M1及び記憶部M2を備えていると説明したが、記憶部M1及び記憶部M2は認識学習装置10、10a、10bと通信可能な外部の機器としても構わない。例えば、記憶部M1及び記憶部M2は、ネットワークを介して認識学習装置10、10a、10bとデータ通信が可能なサーバ上や、他の装置が記憶部M1及び記憶部M2を備えてもよい。これは、他の機能部についても同様である。
また、以上説明した各実施形態や変形例の構成はその一部若しくは全部を適宜組み合わせて使用することが可能であるし、また、以上説明した各実施形態や変形例の構成の一部若しくは全部を選択的に使用しても構わない。
[第6の実施形態]
認識学習装置10、10a、10bを構成する各機能部はハードウェアで実装しても良いが、記憶部M1及び記憶部M2を除く他の各部をソフトウェア(コンピュータプログラム)で実装しても構わない。このような場合、このソフトウェアを実行可能なコンピュータ装置(記憶部M1及び記憶部M2を有する若しくは記憶部M1及び記憶部M2とデータ通信が可能である)は認識学習装置10、10a、10bに適用可能である。このようなコンピュータ装置のハードウェア構成例について、図14のブロック図を用いて説明する。
CPU901は、RAM902やROM903に格納されているコンピュータプログラムやデータを用いて処理を行う。これによりCPU901は、コンピュータ装置全体の動作制御を行うと共に、コンピュータ装置を適用する認識学習装置10、10a、10bが行うものとして上述した各処理を実行若しくは制御する。
RAM902は、ROM903や外部記憶装置906からロードされたコンピュータプログラムやデータ、I/F(インターフェース)907を介して外部から受信したデータ、を格納するためのエリアを有する。更にRAM902は、CPU901が各種の処理を実行する際に用いるワークエリアを有する。このようにRAM902は、各種のエリアを適宜提供することができる。ROM903には、書き換え不要の本コンピュータ装置の設定データやブートプログラムなどが格納されている。
操作部904は、マウスやキーボードなどのユーザインターフェースにより構成されており、ユーザが操作することで各種の指示をCPU901に対して入力することができる。例えば、ユーザが操作することで閾値などの設定情報をコンピュータ装置に入力することができる。
表示部905は、CRTや液晶画面などにより構成されており、CPU901による処理結果を画像や文字などでもって表示することができる。なお、表示部905は、投影面に対して画像や文字を投影する投射装置であっても構わない。なお、操作部904と表示部905とを一体化させてタッチパネル画面を構成しても構わない。
外部記憶装置906は、ハードディスクドライブ装置に代表される大容量情報記憶装置である。外部記憶装置906には、OS(オペレーティングシステム)や、認識学習装置10、10a、10bが行うものとして上述した各処理をCPU901に実行若しくは制御させるためのコンピュータプログラムやデータが保存されている。このコンピュータプログラムには、図1,9,13において記憶部M1及び記憶部M2を除く認識学習装置10、10a、10bの各機能部の機能をCPU901に実行若しくは制御させるためのコンピュータプログラムが含まれている。また、外部記憶装置906に保存されているデータには、認識学習装置10、10a、10bが既知の情報として取り扱うもの(閾値など)が含まれている。また、記憶部M1及び記憶部M2は外部記憶装置906内に設けられても良い。外部記憶装置906に保存されているコンピュータプログラムやデータは、CPU901による制御に従って適宜RAM902にロードされ、CPU901による処理対象となる。
I/F907は、外部の機器とのデータ通信を行うためのインターフェースとして機能するものであり、例えば、端末装置100(100a)との間のデータ通信は、このI/F907を介して行われる。
CPU901、RAM902、ROM903、操作部904、表示部905、外部記憶装置906、I/F907は何れもバス908に接続されている。なお、図14に示したコンピュータ装置の構成は端末装置100(100a)にも適用可能である。この場合、表示部905は表示部DSとして機能するし、操作検出部OPは操作部904によって実装可能である。
このように、上記の各実施形態や変形例によれば、評価用データの認識に寄与するDNNの特徴量を可視化することができる。そのため、利用者はDNNが学習データ特有の特徴量を利用していないかどうかを確認することができる。また、可視化された特徴量に対する利用者からの重要度のフィードバックに基づき、DNNを再学習することができる。そのため、利用者は学習データ特有の特徴量を利用しないようにDNNを制御することができる。また、評価用データの認識に寄与していないDNNの特徴量を削除することができる。そのため、利用環境に合わせてDNNの高速および軽量化することができる。
(その他の実施例)
本発明は、上述の実施形態の1以上の機能を実現するプログラムを、ネットワーク又は記憶媒体を介してシステム又は装置に供給し、そのシステム又は装置のコンピュータにおける1つ以上のプロセッサーがプログラムを読出し実行する処理でも実現可能である。また、1以上の機能を実現する回路(例えば、ASIC)によっても実現可能である。