以下に、本願の開示するDNN選択プログラム、DNN選択方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、本発明は、実施例により限定されるものではない。
[実施例1に係る情報処理装置の構成]
図1は、実施例1に係る情報処理装置の構成を示す機能ブロック図である。図1に示す情報処理装置1は、複数の学習済みのDNNがある場合に、判別対象の新たなデータに対してどのDNNを適用するかを選択する。
ここで、実施例1に係る情報処理装置1が行うDNN選択のアイデアを、図2を参照して説明する。図2は、実施例1に係るDNN選択のアイデアを示す図である。図2では、DNN-1が、学習済みの犬の種類を判別するDNNであるものとする。かかるDNN-1は、判別対象のデータに対して、犬の種類を判別し、ラベル(ここでは犬種)毎の確信度を出力する。
図2に示すように、DNN-1は、一般に、浅い層で一般的な特徴を、深い層で犬の種類を判別するのに必要な特有な特徴を抽出するように学習する。すなわち、浅い層では、画像に一般的な特徴(エッジなど)が抽出され、深い層では、DNNが担当する犬の種類を判別するのに必要な特徴が抽出され、DNNが担当する犬の種類を判別するのに必要でない情報は、落ちていると考えられる。例えば、犬の種類を判別するDNN-1の深い層では、犬とは異なる猫の種類を判別するために必要な特徴はほぼ残っていないと考えられる。
そこで、情報処理装置1は、判別対象の新たなデータに対して、DNNの深い層でどれだけ判別するために必要な情報が残っているかによって、このDNN-1を選択するのが適当かどうかを見積もる。すなわち、情報処理装置1は、判別対象の新たなデータに対して、判別するためにより適切なDNNを選択する。
複数のDNNから適切なDNNを選択するために、情報処理装置1は、複数のDNNそれぞれについて、DNNに入力するデータを当該DNNの中間層(深い層)から得られる特徴から復元する復元器を学習するようにする。そして、情報処理装置1は、判別対象の新たなデータについて、複数の復元器それぞれから出力されるデータおよび当該新たなデータに基づき選択される復元器に対応するDNNを選択するようにする。
図1に戻って、情報処理装置1は、制御部10および記憶部20を有する。
制御部10は、CPU(Central Processing Unit)などの電子回路に対応する。そして、制御部10は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部10は、復元器学習部11、復元データ生成部12、DNN選択部13、判別部14および層決定部15を有する。なお、復元器学習部11は、復元器学習部の一例である。DNN選択部13は、DNN選択部の一例である。
記憶部20は、例えば、RAM、フラッシュメモリ(Flash Memory)などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。記憶部20は、データ群21、復元データ22および復元データ(新データ)23を有する。
データ群21は、復元器を学習するために用いられる一般の自然画像などの学習データの集合である。データ群21は、各DNNの学習データと異なる学習データの集合である。
復元データ22は、DNNに入力するデータを当該DNNの中間層から得られる特徴から復元する復元器を学習する際に、復元器から出力されるデータであり、複数のDNNそれぞれについてのデータである。
復元データ(新データ)23は、判別対象の新たなデータについて、複数の復元器それぞれから出力されるデータである。
復元器学習部11は、複数のDNNそれぞれについて、DNNに対応する復元器を学習する。ここでいう復元器は、DNNの中間層(深い層)から得られる特徴から当該DNNに入力するデータを復元する学習器のことをいう。復元器は、一般のデータを用いて学習するが、各DNNそれぞれの学習に用いたデータと異なるデータを用いて学習する。これは、DNNの学習に用いたデータと復元器の学習に用いるデータとの独立性を担保するためである。
例えば、復元器学習部11は、データ群21に含まれるデータを複数のDNNに入力する。復元器学習部11は、複数のDNNの中間層から得られるそれぞれの特徴を抽出し、抽出したそれぞれの特徴を複数のDNNに対応する復元器に入力する。復元器学習部11は、それぞれの復元器から出力される復元データ22と、それぞれのDNNに入力されたデータとを比較し、誤差が小さくなるように、それぞれの復元器を学習する。なお、どの中間層から特徴を抽出するかは、後述する層決定部15によって決定される。
復元データ生成部12は、判別対象の新たなデータに対して、DNN、復元器を通して復元データ22を生成する。すなわち、復元データ生成部12は、判別対象の新たなデータをDNNに入力し、DNNの中間層から抽出される特徴を復元器に入力し、復元器から復元データ(新データ)23を出力する。
DNN選択部13は、新たなデータについて複数の復元器それぞれから出力されるデータおよび新たなデータに基づき、誤差の最も小さい復元器を選択し、選択した復元器に対応するDNNを選択する。誤差が最も小さければ、対応するDNNの中間層が有効な特徴をより多く持っていることになるので、DNN選択部13は、当該DNNを新たなデータを判別するDNNとして選択する。すなわち、DNN選択部13は、誤差によって新たなデータに対して各DNNが有効な特徴をどれだけ抽出できていたかを見積もる。これにより、確信度は、DNNに入力する未知のデータに対して高くなってしまうことがしばしばあるのに対して、誤差は、DNNに入力する未知のデータに対して大きくなることが期待できる。
判別部14は、判別対象の新たなデータを、選択されたDNNを用いて判別(分類)する。
ここで、復元器学習部11による復元器学習の流れの一例を、図3を参照して説明する。図3は、実施例1に係る復元器学習の流れの一例を示す図である。図3には、複数のDNNと複数のDNNそれぞれに対応する復元器とが表わされている。複数のDNNとして、犬の種類を判別するDNN-1、猫の種類を判別するDNN-2および鳥の種類を判別するDNN-3が挙げられている。DNN-1に対応する復元器として、復元器-1が挙げられている。DNN-2に対応する復元器として、復元器-2が挙げられている。DNN-3に対応する復元器として、復元器-3が挙げられている。
このような状況の下、復元器学習部11は、データ群21に含まれるデータをDNN-1,DDN-2およびDNN-3に入力する。復元器学習部11は、DNN-1の中間層から得られる特徴を抽出し、抽出した特徴を復元器-1に入力する。復元器学習部11は、DNN-2の中間層から得られる特徴を抽出し、抽出した特徴を復元器-2に入力する。復元器学習部11は、DNN-3の中間層から得られる特徴を抽出し、抽出した特徴を復元器-3に入力する。復元器学習部11は、復元器-1から出力される復元データ22-1と、DNN-1に入力されたデータとを比較し、誤差が小さくなるように、復元器-1を学習する。復元器学習部11は、復元器-2から出力される復元データ22-2と、DNN-2に入力されたデータとを比較し、誤差が小さくなるように、復元器-2を学習する。復元器学習部11は、復元器-3から出力される復元データ22-3と、DNN-3に入力されたデータとを比較し、誤差が小さくなるように、復元器-3を学習する。
ここで、DNN選択部13によるDNN選択の流れの一例を、図4を参照して説明する。図4は、実施例1に係るDNN選択の流れの一例を示す図である。図4には、複数のDNNと複数のDNNそれぞれに対応する学習済みの復元器とが表わされている。複数のDNNとして、犬の種類を判別するDNN-1、猫の種類を判別するDNN-2および鳥の種類を判別するDNN-3が挙げられている。DNN-1に対応する復元器として、復元器-1が挙げられている。DNN-2に対応する復元器として、復元器-2が挙げられている。DNN-3に対応する復元器として、復元器-3が挙げられている。
このような状況の下、復元データ生成部12は、判別対象の新たなデータをDNN-1,DNN-2およびDNN-3に入力する。復元データ生成部12は、DNN-1の中間層から得られる特徴を抽出し、抽出した特徴を復元器-1に入力し、復元データ-1を出力する。復元データ生成部12は、DNN-2の中間層から得られる特徴を抽出し、抽出した特徴を復元器-2に入力し、復元データ-2を出力する。復元データ生成部12は、DNN-3の中間層から得られる特徴を抽出し、抽出した特徴を復元器-3に入力し、復元データ-3を出力する。DNN選択部13は、復元器-1から出力される復元データ-1と、新たなデータとを比較し、誤差を算出する。DNN選択部13は、復元器-2から出力される復元データ-2と、新たなデータとを比較し、誤差を算出する。DNN選択部13は、復元器-3から出力される復元データ-3と、新たなデータとを比較し、誤差を算出する。
そして、DNN選択部13は、誤差の最も小さい復元器を選択し、選択した復元器に対応するDNNを選択する。ここでは、復元データ-1と新たなデータとの誤差は、0.5と算出される。復元データ-2と新たなデータとの誤差は、0.1と算出される。復元データ-3と新たなデータとの誤差は、1.2と算出される。そこで、DNN選択部13は、誤差の最も小さい復元データ-2を出力した復元器-2を選択し、選択した復元器-2に対応するDNN-2を選択する。
つまり、DNN選択部13は、判別対象の新たなデータに対して、DNNの中間層にどれだけ判別に必要な情報が残っているかによって、各DNNの選択が適当かどうかを見積もる。この結果、DNN選択部13は、判別対象の新たなデータに対して、判別するためにより適切なDNNを選択することができる。
図1に戻って、層決定部15は、DNNの特徴を抽出する中間層を決定する。
1つの例では、DNNが畳み込みNN(Neural Network)である場合には、層決定部15は、全結合層の手前の層を、DNNの特徴を抽出する中間層として決定する。手前の層とは、一例として、1個前の層である。ここでいう畳み込みNNとは、畳み込み層、ぷーリング層の繰り返しの後、全結合層が続く構成のDNNのことをいう。
ここで、層決定部15による層決定の一例を、図5Aを参照して説明する。図5Aは、層決定の一例を示す図である。図5Aには、畳み込みNNとしてDNN-1が表わされているとする。例えば、層決定部15は、DNN-1の全結合層の1つ手前の層を、DNNの特徴を抽出する中間層として決定する。
また、別の例では、DNNのそれぞれの層について復元器が構成される場合に、層決定部15は、以下の処理を行う。すなわち、層決定部15は、それぞれの復元器について、復元器の学習に用いたデータ群21に対する復元誤差の分散が最大となる復元器に対する層を、DNNの特徴を抽出する中間層として決定する。
ここで、層決定部15による層決定の別の例を、図5Bを参照して説明する。図5Bは、層決定の別の例を示す図である。図5Bには、DNN-1とDNN-1のそれぞれの層について構成される復元器とが表わされている。例えば、層決定部15は、それぞれの復元器について、復元器の学習に用いたデータ群21に対する復元誤差の分散が最大となる復元器に対する層を、DNNの特徴を抽出する中間層として決定する。復元誤差の分散が最大となる復元器に対する層を中間層として決定するのは、以下の理由による。復元誤差の分散が大きければ、うまく復元できるデータとうまく復元できないデータとが存在することになる。したがって、復元に得意なクラスと不得意なクラスとで復元の良否に差があることとなり、DNNの選択に利用しやすいからである。
ここで、実施例1と従来技術とのDNN選択の動作の比較を、図6Aおよび図6Bを参照して説明する。図6Aおよび図6Bは、実施例1と従来技術とのDNN選択の動作の比較を示す図である。図6Aは、従来技術のDNN選択の動作を示す図である。図6Aには、犬の種類を判別するDNN-1、猫の種類を判別するDNN-2が表わされている。ここで、新たなデータとして猫の画像が各DNNに入力されたとする。
猫の画像がDNN-1によって判別された場合には、判別結果が、DNN-1の特徴空間の中で、犬種cのクラスに写像されるが、犬種abcの各クラスの境界面から離れた場所であって既に学習された学習データからも離れた場所に写像される。これは、猫画像が犬の種類を判別するDNN-1にとって未知のデータであるので、既に学習された学習データとは離れた場所に写像されるためである。ところが、判別結果が、境界面から離れているので、DNN-1は、高い確信度で犬種cと判定してしまう。
猫の画像がDNN-2によって判別された場合には、判別結果が、DNN-2の特徴空間の中で、猫種aのクラスに写像されるが、猫種abcの各クラスの境界面に近い場所であって既に学習された学習データと同じような場所に写像される。これは、猫の種類を判別するDNN-2が新たなデータである猫画像を見たことがあるので、既に学習された学習データと同じような場所に写像されるためである。ところが、判別結果が、境界面から近いので、DNN-2は、低い確信度で猫種aと判定してしまう。
したがって、従来技術のDNN選択では、新たなデータが猫の画像であるので、本来はDNN-2が選択されるべきであるが、より高い確信度を出力したDNN-1が選択されてしまう。
これに対して、図6Bは、実施例1のDNN選択の動作を示す図である。図6Bには、図6Aと同様のDNN-1、DNN-2が表わされている。さらに、DNN-1に対応する復元器として、復元器-1が表されている。DNN-2に対応する復元器として、復元器-2が表わされている。復元器-1,2は、復元器学習部11によってDNN-1,2に入力されたデータと復元データとの誤差が小さくなるように既に学習されたものである。ここで、新たなデータとして猫の画像が各DNNに入力されたとする。
実施例1に係るDNN選択部13は、DNN-1の中間層から得られる特徴を抽出し、抽出した特徴を復元器-1に入力し、復元器-1から出力される復元画像と、新たなデータである猫の画像とを比較し、誤差を算出する。ここでは、DNN-1は犬種を判別する学習しかしていないため、中間層には、猫についての特徴は残っていない。したがって、DNN選択部13は、誤差として大きい値を算出する。つまり、猫の画像がDNN-1によって判別された場合には、判別結果が、DNN-1の特徴空間の中で、犬種abcの各クラスの境界面から離れた場所であって既に学習された学習データから離れた場所に写像される。従来技術では、未知の画像である猫の画像に対して犬種cの確信度が高くなるが、実施例1に係るDNN選択部13では、未知の画像である猫の画像に対して復元誤差が大きくなる。
DNN選択部13は、DNN-2の中間層から得られる特徴を抽出し、抽出した特徴を復元器-2に入力し、復元器-2から出力される復元画像と、新たなデータである猫の画像とを比較し、誤差を算出する。ここでは、DNN-2は猫種を判別する学習をしているため、中間層には、猫についての特徴が残っている。したがって、DNN選択部13は、誤差として復元器―1の場合と比べて小さい値を算出する。つまり、猫の画像がDNN-1によって判別された場合には、判別結果が、猫種aのクラスに写像されるが、猫種abcの各クラスの境界面に近い場所であって既に学習された学習データと同じような場所に写像される。従来技術では、境界面から近くに写像された猫の画像に対して猫種aの確信度が低くなるが、実施例1に係るDNN選択部13では、見分ける学習をした猫の画像に対して復元誤差が小さくなる。
したがって、実施例1に係るDNN選択部13は、復元誤差を比較することで、より適切にDNN-2を選択できる。
[実施例1に係るDNN選択処理のフローチャート]
図7は、実施例1に係るDNN選択処理のフローチャートの一例を示す図である。
図7に示すように、層決定部15および復元器学習部11は、複数のDNNの中から1つのDNNを選択する(ステップS11)。層決定部15は、選択したDNNのどの中間層から中間特徴量を取るかを決定する(ステップS12)。
復元器学習部11は、決定した層の中間特徴量を用いて、選択したDNNに対応する復元器を一般データ(データ群21)で学習する(ステップS13)。例えば、復元器学習部11は、データ群21に含まれるデータを選択したDNNに入力する。復元器学習部11は、選択したDNNの中間層から得られる中間特徴量を抽出し、抽出した中間特徴量を選択したDNNに対応する復元器に入力する。復元器学習部11は、復元器から出力される復元データ22と、選択したDNNに入力されたデータとを比較し、誤差が小さくなるように、復元器を学習する。
層決定部15および復元器学習部11は、全てのDNNを選択したか否かを判定する(ステップS14)。全てのDNNを選択していないと判定した場合には(ステップS14;No)、層決定部15および復元器学習部11は、次のDNNを選択すべく、ステップS11に移行する。
一方、全てのDNNを選択したと判定した場合には(ステップS14;Yes)、復元データ生成部12は、複数のDNNの中から1つのDNNを選択する(ステップS15)。
復元データ生成部12は、選択したDNNに判別対象の新たなデータを入力し、DNN選択部13は、復元誤差を計算する(ステップS16)。例えば、復元データ生成部12は、新たなデータを選択したDNNに入力する。復元データ生成部12は、選択したDNNの中間層から得られる中間特徴量を抽出し、抽出した中間特徴量を選択したDNNに対応する復元器に入力する。復元データ生成部12は、復元器から復元データ22を出力する。DNN選択部13は、復元器から出力された復元データ22と、新たなデータとを比較し、復元誤差を計算する。
復元データ生成部12は、全てのDNNを選択したか否かを判定する(ステップS17)。全てのDNNを選択していないと判定した場合には(ステップS17;No)、復元データ生成部12は、次のDNNを選択すべく、ステップS15に移行する。
一方、全てのDNNを選択したと判定した場合には(ステップS17;Yes)、DNN選択部13は、復元誤差の最も小さい復元器に対応するDNNを選択する(ステップS18)。そして、判別部14は、選択したDNNに判別対象の新たなデータを入力し、判別結果を出力する(ステップS19)。
[実施例1の効果]
このようにして、情報処理装置1は、複数のDNNそれぞれについて、DNNに入力するデータを当該DNNの中間層から得られる特徴から復元する復元器を、複数のDNNそれぞれの学習に用いたデータと異なるデータにより学習する。情報処理装置1は、新たなデータについて、複数の復元器それぞれから出力されるデータおよび新たなデータに基づき選択される復元器に対応するDNNを選択する。かかる構成によれば、情報処理装置1は、DNNの中間層から得られる特徴から復元したデータと新たなデータをを用いることで、より適切なDNNを選択することが可能になる。
また、情報処理装置1は、複数の復元器それぞれから出力されるデータと、新たなデータとの誤差を算出し、算出した誤差が最小となるデータの復元器に対応するDNNを選択する。かかる構成によれば、情報処理装置1は、復元器から出力されるデータと新たなデータとの誤差を用いることで、より適切なDNNを選択することができる。
また、情報処理装置1は、中間層として用いる層を、DNNが畳み込みDNNである場合に、全結合層に近い層とする。かかる構成によれば、情報処理装置1は、DNNの特徴を得る中間層を全結合層に近い層とすることで、DNNが担当するタスクそのものの特徴の情報量を見積もることができる。
また、情報処理装置1は、中間層として用いる層を、DNNのそれぞれの層を用いた場合のそれぞれの復元器について、学習に用いたデータに対する復元誤差の分散が最大となる復元器に対する層とする。かかる構成によれば、情報処理装置1は、復元誤差の分散が大きければ、うまく復元できる場合とうまく復元できない場合とが存在することになるので、復元誤差を用いたDNNの選択に利用することができる。
ところで、実施例1では、情報処理装置1は、複数のDNNや復元器の規模に差が無い場合に、判別対象の新たなデータに対してどのDNNを適用するかを選択した。すなわち、情報処理装置1は、複数のDNNそれぞれについて、DNNに入力するデータを当該DNNの中間層(深い層)から得られる特徴から復元する復元器を学習する。そして、情報処理装置1は、判別対象の新たなデータについて、複数の復元器それぞれから出力されるデータおよび当該新たなデータに基づき選択される復元器に対応するDNNを選択すると説明した。しかしながら、情報処理装置1は、これに限定されず、複数のDNNや復元器の規模に差が有る場合に、判別対象の新たなデータに対してどのDNNを適用するかを選択するようにしても良い。ここでいうDNNの規模とは、例えば、層の多少や層に属するユニットの多少のことをいう。
そこで、実施例2では、情報処理装置1は、複数のDNNや復元器の規模に差が有る場合に、判別対象の新たなデータに対してどのDNNを適用するかを選択する情報処理装置1について説明する。
[実施例2に係る情報処理装置の構成]
図8は、実施例2に係る情報処理装置の構成を示す機能ブロック図である。なお、図1に示す情報処理装置1と同一の構成については同一符号を示すことで、その重複する構成および動作の説明については省略する。実施例1と実施例2とが異なるところは、制御部10に補助DNN学習部31、復元しやすさ計算部32および確信度計算部33を追加した点にある。また、記憶部20のデータ群21をデータ群21Aに変更した点にある。制御部10のDNN選択部13をDNN選択部13Aに変更した点にある。記憶部20にクラス別復元しやすさ41およびクラス別確信度42を追加した点にある。
データ群21Aは、復元器および後述する補助DNNを学習するために用いられる一般の自然画像などの学習データの集合であり、ラベル(クラス)付きの学習データの集合である。データ群21Aは、各DNNの学習データと異なる学習データの集合である。なお、データ群21Aは、例えばImageNet(150k images,1000classes)のような様々なデータを備え、クラス数も多いデータであることが望ましい。
クラス別復元しやすさ41は、復元器のクラス毎の復元のしやすさを示す情報であり、復元器毎に存在する。1つのクラスの復元のしやすさは、例えばデータ群21Aに含まれる当該クラスの複数のデータについて、これらデータとこれらデータの復元器から出力される復元データとの復元誤差の平均値の逆数である。すなわち、復元誤差の平均値が小さければ、復元のしやすさは、大きくなる。復元誤差の平均値が大きければ、復元のしやすさは、小さくなる。クラス別復元しやすさ41は、復元しやすさ計算部32によって生成される。
クラス別確信度42は、新たなデータについて、補助DNNによりクラスを判別させた際に出力されるクラス毎の確信度を示す情報である。ここでいう補助DNNとは、データのクラス(ラベルの種類)を判別する学習器のことをいう。補助DNNは、学習する際、復元器の学習に用いたデータ群21Aに含まれるデータと同じデータを用いて学習する。学習済みの補助DNNは、新たなデータに対して、クラス毎の確信度であるクラス別確信度42を出力する。
補助DNN学習部31は、データのクラス(ラベルの種類)を判別する補助DNNを学習する。例えば、補助DNN学習部31は、復元器の学習に用いたデータ群21に含まれるデータと同じデータにより学習する。
復元しやすさ計算部32は、データ群21Aを用いて、複数の学習済みの復元器それぞれのクラス毎の復元のしやすさを計算する。例えば、復元しやすさ計算部32は、データ群21Aに含まれる複数のデータを順次複数のDNNに入力する。以下は、複数のDNNの中の特定のDNNおよび特定のDNNに対応する復元器に着目して、処理の説明をする。復元しやすさ計算部32は、入力したデータについて、特定のDNNの中間層から得られる特徴を抽出し、抽出した特徴を当該DNNに対応する復元器に入力する。復元しやすさ計算部32は、復元器から出力される復元データ22と、特定のDNNに入力されたデータとを比較し、復元誤差を算出する。復元しやすさ計算部32は、特定のDNNに入力されたデータのラベル(クラス)に対応付けて算出された復元誤差を保持する。復元しやすさ計算部32は、複数のデータの他のデータに関しても、特定のDNNについて、それぞれ特定のDNNに入力されたデータのラベル(クラス)に対応付けて算出される復元誤差を保持する。そして、復元しやすさ計算部32は、特定のDNNに対応する復元器について、クラス毎に、復元誤差の平均値の逆数を算出して、クラス別復元しやすさ41を計算する。復元しやすさ計算部32は、複数のDNNの中の他のDNNに対応する復元器についても、同様に、クラス別復元しやすさ41を計算する。
確信度計算部33は、判別対象の新たなデータに対して、学習済みの補助DNNを通して、クラス別確信度42を計算する。
DNN選択部13Aは、新たなデータについて、複数の復元器それぞれのクラス別復元しやすさ41とクラス別確信度42とを比較し、最も傾向が類似するクラス別復元しやすさ41の復元器を選択し、選択した復元器に対応するDNNを選択する。なお、クラス別復元しやすさ41とクラス別確信度42との類似度は、例えばコサイン類似度を用いれば良い。クラス別復元しやすさ41は、DNNおよび復元器における、データ群21Aに対する相対的な復元のしやすさの情報を意味する。したがって、DNN選択部13Aは、複数のDNNおよび復元器の規模に差が有る場合であっても、クラス別復元しやすさ41を用いることで、判別対象の新たなデータに対してどのDNNを適用するかを選択できる。
ここで、復元器学習部11による復元器学習および補助DNN学習部31による補助DNN学習の流れの一例を、図9を参照して説明する。図9は、実施例2に係る復元器学習および補助DNN学習の流れの一例を示す図である。なお、復元器学習部11による復元器学習の流れは、図3で説明したので、省略する。
図9で示される一般のデータは、データ群21Aの一例である。補助DNN学習部31は、復元器の学習に用いたデータ群21Aに含まれるそれぞれのラベル付きデータを補助DNNに入力する。そして、補助DNN学習部31は、入力したラベル付きデータのラベルの入力に応じて、入力されたデータのラベルの判別結果が、入力されたデータに付されたラベルに近づくように学習する。
ここで、DNN選択部13AによるDNN選択の流れの一例を、図10を参照して説明する。図10は、実施例2に係るDNN選択の流れの一例を示す図である。図10には、複数のDNNと複数のDNNそれぞれに対応する学習済みの復元器と補助DNNとが表わされている。なお、図10では、それぞれの学習済みの復元器のクラス別復元しやすさ41-1,41-2,41-3が、復元しやすさ計算部32によって計算されたものとする。
このような状況の下、確信度計算部33は、判別対象の新たなデータに対して、学習済みの補助DNNを通して、クラス別確信度42を計算する。そして、DNN選択部13Aは、計算されたクラス別確信度42と、復元器-1のクラス別復元しやすさ41-1とを比較する。DNN選択部13Aは、計算されたクラス別確信度42と、復元器-2のクラス別復元しやすさ41-2とを比較する。DNN選択部13Aは、計算されたクラス別確信度42と、復元器-3のクラス別復元しやすさ41-3とを比較する。そして、DNN選択部13Aは、比較の結果、最も傾向が類似するクラス別復元しやすさ41の復元器を選択する。ここでは、復元器-2が選択される。この結果、DNN選択部13Aは、選択した復元器-2に対応するDNN-2を選択する。すなわち、DNN選択部13Aは、DNN-2が復元しやすいクラスと新たなデータの確信度が高いクラスとが類似するので、DNN-2を適用する。
これにより、DNN選択部13Aは、複数のDNNや復元器の規模に差が有る場合であっても、新たなデータに対してより適切なDNNを選択することが可能となる。
[実施例2に係るDNN選択処理のフローチャート]
図11は、実施例2に係るDNN選択処理のフローチャートの一例を示す図である。
図11に示すように、層決定部15および復元器学習部11は、複数のDNNの中から1つのDNNを選択する(ステップS21)。層決定部15は、選択したDNNのどの中間層から中間特徴量を取るかを決定する(ステップS22)。
復元器学習部11は、決定した層の中間特徴量を用いて、選択したDNNに対応する復元器を一般データ(データ群21A)で学習する(ステップS23)。例えば、復元器学習部11は、データ群21Aに含まれるデータを選択したDNNに入力する。復元器学習部11は、選択したDNNの中間層から得られる中間特徴量を抽出し、抽出した中間特徴量を選択したDNNに対応する復元器に入力する。復元器学習部11は、復元器から出力される復元データ22と、選択したDNNに入力されたデータとを比較し、誤差が小さくなるように、復元器を学習する。
層決定部15および復元器学習部11は、全てのDNNを選択したか否かを判定する(ステップS24)。全てのDNNを選択していないと判定した場合には(ステップS24;No)、層決定部15および復元器学習部11は、次のDNNを選択すべく、ステップS21に移行する。
一方、全てのDNNを選択したと判定した場合には(ステップS24;Yes)、補助DNN学習部31は、ラベル付きの一般データ(データ群21A)で補助DNNを学習する(ステップS25)。
続いて、復元しやすさ計算部32は、複数のDNNの中から1つのDNNを選択する(ステップS26)。復元しやすさ計算部32は、ラベル付きの一般データをDNNと復元器とに通し、クラス毎の復元しやすさを計算する(ステップS27)。例えば、復元しやすさ計算部32は、選択したDNNに対応する復元器について、クラス毎に、復元誤差の平均値の逆数を算出して、クラス別復元しやすさ41を計算する。
復元しやすさ計算部32は、全てのDNNを選択したか否かを判定する(ステップS28)。全てのDNNを選択していないと判定した場合には(ステップS28;No)、復元しやすさ計算部32は、次のDNNを選択すべく、ステップS26に移行する。
一方、全てのDNNを選択していたと判定した場合には(ステップS28;Yes)、確信度計算部33は、判別対象の新たなデータを補助DNNに入力し、クラス毎の確信度を計算する(ステップS29)。例えば、確信度計算部33は、判別対象の新たなデータに対して、学習済みの補助DNNを通して、クラス別確信度42を計算する。
続いて、DNN選択部13Aは、複数のDNNの中から1つのDNNを選択する(ステップS30)。DNN選択部13Aは、選択したDNNのクラス毎の復元しやすさ(クラス別復元しやすさ41)と、計算したクラス毎の確信度(クラス別確信度42)との類似度を計算する(ステップS31)。類似度は、例えば、コサイン類似度である。
DNN選択部13Aは、全てのDNNを選択したか否かを判定する(ステップS32)。全てのDNNを選択していないと判定した場合には(ステップS32;No)、DNN選択部13Aは、次のDNNを選択すべく、ステップS30に移行する。
一方、全てのDNNを選択していたと判定した場合には(ステップS32;Yes)、DNN選択部13Aは、類似度の最も高いDNNを選択する(ステップS33)。例えば、DNN選択部13Aは、最も傾向が類似するクラス別復元しやすさ41の復元器を選択し、選択した復元器に対応するDNNを選択する。そして、判別部14は、選択したDNNに判別対象の新たなデータを入力し、判別結果を出力する(ステップS34)。
[実施例2の効果]
このようにして、情報処理装置1は、複数のDNNそれぞれについて、DNNに入力するデータを当該DNNの中間層から得られる特徴から復元する復元器を、複数のDNNそれぞれの学習に用いたデータと異なるデータにより学習する。情報処理装置1は、データのクラスを判別する補助DNNを復元器の学習に用いたデータと同じデータにより学習する。情報処理装置1は、複数の復元器それぞれのクラス毎の復元のしやすさを示す情報(クラス別復元しやすさ41)と、新たなデータを補助DNNにより学習させた際に出力されるクラス毎の確信度(クラス別確信度42)とを比較する。そして、情報処理装置1は、比較の結果、最も傾向が類似するクラス別復元しやすさ41の復元器に対応するDNNを選択する。かかる構成によれば、情報処理装置1は、複数のDNNや復元器の規模に差が有る場合であっても、新たなデータに対してより適切なDNNを選択することが可能となる。
[その他]
なお、図示した情報処理装置1の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、情報処理装置1の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、復元データ生成部12とDNN選択部13とを1つの部として統合しても良い。また、層決定部15を、全結合層の手前の層を中間層として決定する第1の層決定部と、復元誤差の分散を用いて中間層を決定する第2の層決定部とに分離しても良い。また、記憶部20を情報処理装置1の外部装置としてネットワーク経由で接続するようにしても良い。
また、上記実施例1,2で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図1に示した情報処理装置1と同様の機能を実現するDNN選択プログラムを実行するコンピュータの一例を説明する。図12は、DNN選択プログラムを実行するコンピュータの一例を示す図である。
図12に示すように、コンピュータ200は、各種演算処理を実行するCPU203と、ユーザからのデータの入力を受け付ける入力装置215と、表示装置209を制御する表示制御部207とを有する。また、コンピュータ200は、記憶媒体からプログラムなどを読取るドライブ装置213と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部217とを有する。また、コンピュータ200は、各種情報を一時記憶するメモリ201と、HDD(Hard Disk Drive)205を有する。そして、メモリ201、CPU203、HDD205、表示制御部207、ドライブ装置213、入力装置215、通信制御部217は、バス219で接続されている。
ドライブ装置213は、例えばリムーバブルディスク210用の装置である。HDD205は、DNN選択プログラム205aおよびDNN選択処理関連情報205bを記憶する。
CPU203は、DNN選択プログラム205aを読み出して、メモリ201に展開し、プロセスとして実行する。かかるプロセスは、情報処理装置1の各機能部に対応する。DNN選択処理関連情報205bは、データ群21、復元データ22および復元データ(新データ)23に対応する。そして、例えばリムーバブルディスク210が、DNN選択プログラム205aなどの各情報を記憶する。
なお、DNN選択プログラム205aについては、必ずしも最初からHDD205に記憶させておかなくても良い。例えば、コンピュータ200に挿入されるフレキシブルディスク(FD)、CD-ROM(Compact Disk Read Only Memory)、DVD(Digital Versatile Disk)、光磁気ディスク、IC(Integrated Circuit)カードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ200がこれらからDNN選択プログラム205aを読み出して実行するようにしても良い。