(57)【要約】【課題】複数のＤＮＮが存在する場合に、新たなデータに対してより適切なＤＮＮを選択する。【解決手段】情報処理装置１は、複数のＤＮＮそれぞれについて、ＤＮＮに入力するデータを当該ＤＮＮの中間層から得られる特徴から復元する復元器を、複数のＤＮＮそれぞれの学習に用いたデータと異なるデータにより学習する。情報処理装置１は、判定対象の新たなデータについて、複数の復元器それぞれから出力されるデータおよび判定対象の新たなデータに基づき選択される復元器に対応するＤＮＮを選択する。【選択図】図６Ｂ
2020119048.tif 000002
【特許請求の範囲】
【請求項１】
コンピュータに、
複数のＤＮＮ（Deep  learning  Neural  Network）それぞれについて、ＤＮＮに入力するデータを当該ＤＮＮの中間層から得られる特徴から復元する復元器を、前記複数のＤＮＮそれぞれの学習に用いたデータと異なるデータにより学習し、
特定のデータについて、複数の復元器それぞれから出力されるデータおよび前記特定のデータに基づき選択される復元器に対応するＤＮＮを選択する
処理を実行させるＤＮＮ選択プログラム。
【請求項２】
該選択する処理は、前記複数の復元器それぞれから出力されるデータと、前記特定のデータとの誤差を算出し、算出した誤差が最小となるデータの復元器に対応するＤＮＮを選択する
ことを特徴とする請求項１に記載のＤＮＮ選択プログラム。
【請求項３】
データのクラスを判別する学習器を前記復元器の学習に用いたデータと同じデータにより学習し、
該選択する処理は、前記複数の復元器それぞれのクラス毎の復元のしやすさを示す情報と、前記特定のデータを前記学習器により学習させた際に出力されるクラス毎の確信度とを比較し、最も傾向が類似する情報の復元器に対応するＤＮＮを選択する
ことを特徴とする請求項１に記載のＤＮＮ選択プログラム。
【請求項４】
前記中間層として用いる層は、前記ＤＮＮが畳み込みＤＮＮである場合に、全結合層に近い層である
ことを特徴とする請求項１に記載のＤＮＮ選択プログラム。
【請求項５】
前記中間層として用いる層は、前記ＤＮＮのそれぞれの層を用いた場合のそれぞれの復元器について、学習に用いたデータに対する復元誤差の分散が最大となる復元器に対する層である
ことを特徴とする請求項１に記載のＤＮＮ選択プログラム。
【請求項６】
複数のＤＮＮ（Deep  learning  Neural  Network）それぞれについて、ＤＮＮに入力するデータを当該ＤＮＮの中間層から得られる特徴から復元する復元器を、前記複数のＤＮＮそれぞれの学習に用いたデータと異なるデータにより学習し、
特定のデータについて、複数の復元器それぞれから出力されるデータおよび前記特定のデータに基づき選択される復元器に対応するＤＮＮを選択する
処理をコンピュータが実行するＤＮＮ選択方法。
【請求項７】
複数のＤＮＮ（Deep  learning  Neural  Network）それぞれについて、ＤＮＮに入力するデータを当該ＤＮＮの中間層から得られる特徴から復元する復元器を、前記複数のＤＮＮそれぞれの学習に用いたデータと異なるデータにより学習する復元器学習部と、
特定のデータについて、前記復元器学習部によって学習された複数の復元器それぞれから出力されるデータおよび前記特定のデータに基づき選択される復元器に対応するＤＮＮを選択するＤＮＮ選択部と、
を有することを特徴とする情報処理装置。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ＤＮＮ選択プログラムなどに関する。
【背景技術】
【０００２】
ディープニューラルネットワーク（ＤＮＮ：Deep  learning  Neural  Network）を用いて入力データを判別（分類）する技術が知られている（例えば、特許文献１参照）。
【０００３】
複数の学習済みのＤＮＮが存在する状況下で、新たに判別したいデータは、どのＤＮＮが最適であるかを決定したい場合がある。
【０００４】
かかる場合に、情報処理装置は、新たなデータに対して、複数のＤＮＮそれぞれから出力されるラベルの確信度に基づいて、適切なＤＮＮを決定することが可能である。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】国際公開第２０１６／１３２４６８号
【発明の概要】
【発明が解決しようとする課題】
【０００６】
しかしながら、複数のＤＮＮが存在する場合に、新たなデータに対してより適切なＤＮＮを選択することが難しいという問題がある。
【０００７】
例えば、未知のデータに対してはどのラベル（クラス）の確信度も低いという仮定が成立する場合には、情報処理装置は、ＤＮＮが出力するラベルの確信度に基づきＤＮＮを選択できる。ところが、判別対象のデータとＤＮＮとの関係によっては、ラベルの確信度に基づく選択が適切でない場合が存在することが知られている。すなわち、ＤＮＮは、未知のデータに対してもしばしば高い確信度を出力することがあるため、新たなデータに対してより適切なＤＮＮを選択することができないことがある。
【０００８】
本発明は、１つの側面では、複数のＤＮＮが存在する場合に、新たなデータに対してより適切なＤＮＮを選択することを目的とする。
【課題を解決するための手段】
【０００９】
１つの態様では、ＤＮＮ選択プログラムは、コンピュータに、複数のＤＮＮ（Deep  learning  Neural  Network）それぞれについて、ＤＮＮに入力するデータを当該ＤＮＮの中間層から得られる特徴から復元する復元器を、前記複数のＤＮＮそれぞれの学習に用いたデータと異なるデータにより学習し、特定のデータについて、複数の復元器それぞれから出力されるデータおよび前記特定のデータに基づき選択される復元器に対応するＤＮＮを選択する、処理を実行させる。
【発明の効果】
【００１０】
１実施態様によれば、複数のＤＮＮが存在する場合に、新たなデータに対してより適切なＤＮＮを選択することが可能となる。
【図面の簡単な説明】
【００１１】
【図１】図１は、実施例１に係る情報処理装置の構成を示す機能ブロック図である。
【図２】図２は、実施例１に係るＤＮＮ選択のアイデアを示す図である。
【図３】図３は、実施例１に係る復元器学習の流れの一例を示す図である。
【図４】図４は、実施例１に係るＤＮＮ選択の流れの一例を示す図である。
【図５Ａ】図５Ａは、層決定の一例を示す図である。
【図５Ｂ】図５Ｂは、層決定の別の例を示す図である。
【図６Ａ】図６Ａは、実施例１と従来技術とのＤＮＮ選択の動作の比較を示す図（１）である。
【図６Ｂ】図６Ｂは、実施例１と従来技術とのＤＮＮ選択の動作の比較を示す図（２）である。
【図７】図７は、実施例１に係るＤＮＮ選択処理のフローチャートの一例を示す図である。
【図８】図８は、実施例２に係る情報処理装置の構成を示す機能ブロック図である。
【図９】図９は、実施例２に係る復元器学習および補助ＤＮＮ学習の流れの一例を示す図である。
【図１０】図１０は、実施例２に係るＤＮＮ選択の流れの一例を示す図である。
【図１１】図１１は、実施例２に係るＤＮＮ選択処理のフローチャートの一例を示す図である。
【図１２】図１２は、ＤＮＮ選択プログラムを実行するコンピュータの一例を示す図である。
【発明を実施するための形態】
【００１２】
以下に、本願の開示するＤＮＮ選択プログラム、ＤＮＮ選択方法および情報処理装置の実施例を図面に基づいて詳細に説明する。なお、本発明は、実施例により限定されるものではない。
【実施例１】
【００１３】
［実施例１に係る情報処理装置の構成］
図１は、実施例１に係る情報処理装置の構成を示す機能ブロック図である。図１に示す情報処理装置１は、複数の学習済みのＤＮＮがある場合に、判別対象の新たなデータに対してどのＤＮＮを適用するかを選択する。
【００１４】
ここで、実施例１に係る情報処理装置１が行うＤＮＮ選択のアイデアを、図２を参照して説明する。図２は、実施例１に係るＤＮＮ選択のアイデアを示す図である。図２では、ＤＮＮ−１が、学習済みの犬の種類を判別するＤＮＮであるものとする。かかるＤＮＮ−１は、判別対象のデータに対して、犬の種類を判別し、ラベル（ここでは犬種）毎の確信度を出力する。
【００１５】
図２に示すように、ＤＮＮ−１は、一般に、浅い層で一般的な特徴を、深い層で犬の種類を判別するのに必要な特有な特徴を抽出するように学習する。すなわち、浅い層では、画像に一般的な特徴（エッジなど）が抽出され、深い層では、ＤＮＮが担当する犬の種類を判別するのに必要な特徴が抽出され、ＤＮＮが担当する犬の種類を判別するのに必要でない情報は、落ちていると考えられる。例えば、犬の種類を判別するＤＮＮ−１の深い層では、犬とは異なる猫の種類を判別するために必要な特徴はほぼ残っていないと考えられる。
【００１６】
そこで、情報処理装置１は、判別対象の新たなデータに対して、ＤＮＮの深い層でどれだけ判別するために必要な情報が残っているかによって、このＤＮＮ−１を選択するのが適当かどうかを見積もる。すなわち、情報処理装置１は、判別対象の新たなデータに対して、判別するためにより適切なＤＮＮを選択する。
【００１７】
複数のＤＮＮから適切なＤＮＮを選択するために、情報処理装置１は、複数のＤＮＮそれぞれについて、ＤＮＮに入力するデータを当該ＤＮＮの中間層（深い層）から得られる特徴から復元する復元器を学習するようにする。そして、情報処理装置１は、判別対象の新たなデータについて、複数の復元器それぞれから出力されるデータおよび当該新たなデータに基づき選択される復元器に対応するＤＮＮを選択するようにする。
【００１８】
図１に戻って、情報処理装置１は、制御部１０および記憶部２０を有する。
【００１９】
制御部１０は、ＣＰＵ（Central  Processing  Unit）などの電子回路に対応する。そして、制御部１０は、各種の処理手順を規定したプログラムや制御データを格納するための内部メモリを有し、これらによって種々の処理を実行する。制御部１０は、復元器学習部１１、復元データ生成部１２、ＤＮＮ選択部１３、判別部１４および層決定部１５を有する。なお、復元器学習部１１は、復元器学習部の一例である。ＤＮＮ選択部１３は、ＤＮＮ選択部の一例である。
【００２０】
記憶部２０は、例えば、ＲＡＭ、フラッシュメモリ（Flash  Memory）などの半導体メモリ素子、または、ハードディスク、光ディスクなどの記憶装置である。記憶部２０は、データ群２１、復元データ２２および復元データ（新データ）２３を有する。
【００２１】
データ群２１は、復元器を学習するために用いられる一般の自然画像などの学習データの集合である。データ群２１は、各ＤＮＮの学習データと異なる学習データの集合である。
【００２２】
復元データ２２は、ＤＮＮに入力するデータを当該ＤＮＮの中間層から得られる特徴から復元する復元器を学習する際に、復元器から出力されるデータであり、複数のＤＮＮそれぞれについてのデータである。
【００２３】
復元データ（新データ）２３は、判別対象の新たなデータについて、複数の復元器それぞれから出力されるデータである。
【００２４】
復元器学習部１１は、複数のＤＮＮそれぞれについて、ＤＮＮに対応する復元器を学習する。ここでいう復元器は、ＤＮＮの中間層（深い層）から得られる特徴から当該ＤＮＮに入力するデータを復元する学習器のことをいう。復元器は、一般のデータを用いて学習するが、各ＤＮＮそれぞれの学習に用いたデータと異なるデータを用いて学習する。これは、ＤＮＮの学習に用いたデータと復元器の学習に用いるデータとの独立性を担保するためである。
【００２５】
例えば、復元器学習部１１は、データ群２１に含まれるデータを複数のＤＮＮに入力する。復元器学習部１１は、複数のＤＮＮの中間層から得られるそれぞれの特徴を抽出し、抽出したそれぞれの特徴を複数のＤＮＮに対応する復元器に入力する。復元器学習部１１は、それぞれの復元器から出力される復元データ２２と、それぞれのＤＮＮに入力されたデータとを比較し、誤差が小さくなるように、それぞれの復元器を学習する。なお、どの中間層から特徴を抽出するかは、後述する層決定部１５によって決定される。
【００２６】
復元データ生成部１２は、判別対象の新たなデータに対して、ＤＮＮ、復元器を通して復元データ２２を生成する。すなわち、復元データ生成部１２は、判別対象の新たなデータをＤＮＮに入力し、ＤＮＮの中間層から抽出される特徴を復元器に入力し、復元器から復元データ（新データ）２３を出力する。
【００２７】
ＤＮＮ選択部１３は、新たなデータについて複数の復元器それぞれから出力されるデータおよび新たなデータに基づき、誤差の最も小さい復元器を選択し、選択した復元器に対応するＤＮＮを選択する。誤差が最も小さければ、対応するＤＮＮの中間層が有効な特徴をより多く持っていることになるので、ＤＮＮ選択部１３は、当該ＤＮＮを新たなデータを判別するＤＮＮとして選択する。すなわち、ＤＮＮ選択部１３は、誤差によって新たなデータに対して各ＤＮＮが有効な特徴をどれだけ抽出できていたかを見積もる。これにより、確信度は、ＤＮＮに入力する未知のデータに対して高くなってしまうことがしばしばあるのに対して、誤差は、ＤＮＮに入力する未知のデータに対して大きくなることが期待できる。
【００２８】
判別部１４は、判別対象の新たなデータを、選択されたＤＮＮを用いて判別（分類）する。
【００２９】
ここで、復元器学習部１１による復元器学習の流れの一例を、図３を参照して説明する。図３は、実施例１に係る復元器学習の流れの一例を示す図である。図３には、複数のＤＮＮと複数のＤＮＮそれぞれに対応する復元器とが表わされている。複数のＤＮＮとして、犬の種類を判別するＤＮＮ−１、猫の種類を判別するＤＮＮ−２および鳥の種類を判別するＤＮＮ−３が挙げられている。ＤＮＮ−１に対応する復元器として、復元器−１が挙げられている。ＤＮＮ−２に対応する復元器として、復元器−２が挙げられている。ＤＮＮ−３に対応する復元器として、復元器−３が挙げられている。
【００３０】
このような状況の下、復元器学習部１１は、データ群２１に含まれるデータをＤＮＮ−１，ＤＤＮ−２およびＤＮＮ−３に入力する。復元器学習部１１は、ＤＮＮ−１の中間層から得られる特徴を抽出し、抽出した特徴を復元器−１に入力する。復元器学習部１１は、ＤＮＮ−２の中間層から得られる特徴を抽出し、抽出した特徴を復元器−２に入力する。復元器学習部１１は、ＤＮＮ−３の中間層から得られる特徴を抽出し、抽出した特徴を復元器−３に入力する。復元器学習部１１は、復元器−１から出力される復元データ２２−１と、ＤＮＮ−１に入力されたデータとを比較し、誤差が小さくなるように、復元器−１を学習する。復元器学習部１１は、復元器−２から出力される復元データ２２−２と、ＤＮＮ−２に入力されたデータとを比較し、誤差が小さくなるように、復元器−２を学習する。復元器学習部１１は、復元器−３から出力される復元データ２２−３と、ＤＮＮ−３に入力されたデータとを比較し、誤差が小さくなるように、復元器−３を学習する。
【００３１】
ここで、ＤＮＮ選択部１３によるＤＮＮ選択の流れの一例を、図４を参照して説明する。図４は、実施例１に係るＤＮＮ選択の流れの一例を示す図である。図４には、複数のＤＮＮと複数のＤＮＮそれぞれに対応する学習済みの復元器とが表わされている。複数のＤＮＮとして、犬の種類を判別するＤＮＮ−１、猫の種類を判別するＤＮＮ−２および鳥の種類を判別するＤＮＮ−３が挙げられている。ＤＮＮ−１に対応する復元器として、復元器−１が挙げられている。ＤＮＮ−２に対応する復元器として、復元器−２が挙げられている。ＤＮＮ−３に対応する復元器として、復元器−３が挙げられている。
【００３２】
このような状況の下、復元データ生成部１２は、判別対象の新たなデータをＤＮＮ−１，ＤＮＮ−２およびＤＮＮ−３に入力する。復元データ生成部１２は、ＤＮＮ−１の中間層から得られる特徴を抽出し、抽出した特徴を復元器−１に入力し、復元データ−１を出力する。復元データ生成部１２は、ＤＮＮ−２の中間層から得られる特徴を抽出し、抽出した特徴を復元器−２に入力し、復元データ−２を出力する。復元データ生成部１２は、ＤＮＮ−３の中間層から得られる特徴を抽出し、抽出した特徴を復元器−３に入力し、復元データ−３を出力する。ＤＮＮ選択部１３は、復元器−１から出力される復元データ−１と、新たなデータとを比較し、誤差を算出する。ＤＮＮ選択部１３は、復元器−２から出力される復元データ−２と、新たなデータとを比較し、誤差を算出する。ＤＮＮ選択部１３は、復元器−３から出力される復元データ−３と、新たなデータとを比較し、誤差を算出する。
【００３３】
そして、ＤＮＮ選択部１３は、誤差の最も小さい復元器を選択し、選択した復元器に対応するＤＮＮを選択する。ここでは、復元データ−１と新たなデータとの誤差は、０．５と算出される。復元データ−２と新たなデータとの誤差は、０．１と算出される。復元データ−３と新たなデータとの誤差は、１．２と算出される。そこで、ＤＮＮ選択部１３は、誤差の最も小さい復元データ−２を出力した復元器−２を選択し、選択した復元器−２に対応するＤＮＮ−２を選択する。
【００３４】
つまり、ＤＮＮ選択部１３は、判別対象の新たなデータに対して、ＤＮＮの中間層にどれだけ判別に必要な情報が残っているかによって、各ＤＮＮの選択が適当かどうかを見積もる。この結果、ＤＮＮ選択部１３は、判別対象の新たなデータに対して、判別するためにより適切なＤＮＮを選択することができる。
【００３５】
図１に戻って、層決定部１５は、ＤＮＮの特徴を抽出する中間層を決定する。
【００３６】
１つの例では、ＤＮＮが畳み込みＮＮ（Neural  Network）である場合には、層決定部１５は、全結合層の手前の層を、ＤＮＮの特徴を抽出する中間層として決定する。手前の層とは、一例として、１個前の層である。ここでいう畳み込みＮＮとは、畳み込み層、ぷーリング層の繰り返しの後、全結合層が続く構成のＤＮＮのことをいう。
【００３７】
ここで、層決定部１５による層決定の一例を、図５Ａを参照して説明する。図５Ａは、層決定の一例を示す図である。図５Ａには、畳み込みＮＮとしてＤＮＮ−１が表わされているとする。例えば、層決定部１５は、ＤＮＮ−１の全結合層の１つ手前の層を、ＤＮＮの特徴を抽出する中間層として決定する。
【００３８】
また、別の例では、ＤＮＮのそれぞれの層について復元器が構成される場合に、層決定部１５は、以下の処理を行う。すなわち、層決定部１５は、それぞれの復元器について、復元器の学習に用いたデータ群２１に対する復元誤差の分散が最大となる復元器に対する層を、ＤＮＮの特徴を抽出する中間層として決定する。
【００３９】
ここで、層決定部１５による層決定の別の例を、図５Ｂを参照して説明する。図５Ｂは、層決定の別の例を示す図である。図５Ｂには、ＤＮＮ−１とＤＮＮ−１のそれぞれの層について構成される復元器とが表わされている。例えば、層決定部１５は、それぞれの復元器について、復元器の学習に用いたデータ群２１に対する復元誤差の分散が最大となる復元器に対する層を、ＤＮＮの特徴を抽出する中間層として決定する。復元誤差の分散が最大となる復元器に対する層を中間層として決定するのは、以下の理由による。復元誤差の分散が大きければ、うまく復元できるデータとうまく復元できないデータとが存在することになる。したがって、復元に得意なクラスと不得意なクラスとで復元の良否に差があることとなり、ＤＮＮの選択に利用しやすいからである。
【００４０】
ここで、実施例１と従来技術とのＤＮＮ選択の動作の比較を、図６Ａおよび図６Ｂを参照して説明する。図６Ａおよび図６Ｂは、実施例１と従来技術とのＤＮＮ選択の動作の比較を示す図である。図６Ａは、従来技術のＤＮＮ選択の動作を示す図である。図６Ａには、犬の種類を判別するＤＮＮ−１、猫の種類を判別するＤＮＮ−２が表わされている。ここで、新たなデータとして猫の画像が各ＤＮＮに入力されたとする。
【００４１】
猫の画像がＤＮＮ−１によって判別された場合には、判別結果が、ＤＮＮ−１の特徴空間の中で、犬種ｃのクラスに写像されるが、犬種ａｂｃの各クラスの境界面から離れた場所であって既に学習された学習データからも離れた場所に写像される。これは、猫画像が犬の種類を判別するＤＮＮ−１にとって未知のデータであるので、既に学習された学習データとは離れた場所に写像されるためである。ところが、判別結果が、境界面から離れているので、ＤＮＮ−１は、高い確信度で犬種ｃと判定してしまう。
【００４２】
猫の画像がＤＮＮ−２によって判別された場合には、判別結果が、ＤＮＮ−２の特徴空間の中で、猫種ａのクラスに写像されるが、猫種ａｂｃの各クラスの境界面に近い場所であって既に学習された学習データと同じような場所に写像される。これは、猫の種類を判別するＤＮＮ−２が新たなデータである猫画像を見たことがあるので、既に学習された学習データと同じような場所に写像されるためである。ところが、判別結果が、境界面から近いので、ＤＮＮ−２は、低い確信度で猫種ａと判定してしまう。
【００４３】
したがって、従来技術のＤＮＮ選択では、新たなデータが猫の画像であるので、本来はＤＮＮ−２が選択されるべきであるが、より高い確信度を出力したＤＮＮ−１が選択されてしまう。
【００４４】
これに対して、図６Ｂは、実施例１のＤＮＮ選択の動作を示す図である。図６Ｂには、図６Ａと同様のＤＮＮ−１、ＤＮＮ−２が表わされている。さらに、ＤＮＮ−１に対応する復元器として、復元器−１が表されている。ＤＮＮ−２に対応する復元器として、復元器−２が表わされている。復元器−１，２は、復元器学習部１１によってＤＮＮ−１，２に入力されたデータと復元データとの誤差が小さくなるように既に学習されたものである。ここで、新たなデータとして猫の画像が各ＤＮＮに入力されたとする。
【００４５】
実施例１に係るＤＮＮ選択部１３は、ＤＮＮ−１の中間層から得られる特徴を抽出し、抽出した特徴を復元器−１に入力し、復元器−１から出力される復元画像と、新たなデータである猫の画像とを比較し、誤差を算出する。ここでは、ＤＮＮ−１は犬種を判別する学習しかしていないため、中間層には、猫についての特徴は残っていない。したがって、ＤＮＮ選択部１３は、誤差として大きい値を算出する。つまり、猫の画像がＤＮＮ−１によって判別された場合には、判別結果が、ＤＮＮ−１の特徴空間の中で、犬種ａｂｃの各クラスの境界面から離れた場所であって既に学習された学習データから離れた場所に写像される。従来技術では、未知の画像である猫の画像に対して犬種ｃの確信度が高くなるが、実施例１に係るＤＮＮ選択部１３では、未知の画像である猫の画像に対して復元誤差が大きくなる。
【００４６】
ＤＮＮ選択部１３は、ＤＮＮ−２の中間層から得られる特徴を抽出し、抽出した特徴を復元器−２に入力し、復元器−２から出力される復元画像と、新たなデータである猫の画像とを比較し、誤差を算出する。ここでは、ＤＮＮ−２は猫種を判別する学習をしているため、中間層には、猫についての特徴が残っている。したがって、ＤＮＮ選択部１３は、誤差として復元器―１の場合と比べて小さい値を算出する。つまり、猫の画像がＤＮＮ−１によって判別された場合には、判別結果が、猫種ａのクラスに写像されるが、猫種ａｂｃの各クラスの境界面に近い場所であって既に学習された学習データと同じような場所に写像される。従来技術では、境界面から近くに写像された猫の画像に対して猫種ａの確信度が低くなるが、実施例１に係るＤＮＮ選択部１３では、見分ける学習をした猫の画像に対して復元誤差が小さくなる。
【００４７】
したがって、実施例１に係るＤＮＮ選択部１３は、復元誤差を比較することで、より適切にＤＮＮ−２を選択できる。
【００４８】
［実施例１に係るＤＮＮ選択処理のフローチャート］
図７は、実施例１に係るＤＮＮ選択処理のフローチャートの一例を示す図である。
【００４９】
図７に示すように、層決定部１５および復元器学習部１１は、複数のＤＮＮの中から１つのＤＮＮを選択する（ステップＳ１１）。層決定部１５は、選択したＤＮＮのどの中間層から中間特徴量を取るかを決定する（ステップＳ１２）。
【００５０】
復元器学習部１１は、決定した層の中間特徴量を用いて、選択したＤＮＮに対応する復元器を一般データ（データ群２１）で学習する（ステップＳ１３）。例えば、復元器学習部１１は、データ群２１に含まれるデータを選択したＤＮＮに入力する。復元器学習部１１は、選択したＤＮＮの中間層から得られる中間特徴量を抽出し、抽出した中間特徴量を選択したＤＮＮに対応する復元器に入力する。復元器学習部１１は、復元器から出力される復元データ２２と、選択したＤＮＮに入力されたデータとを比較し、誤差が小さくなるように、復元器を学習する。
【００５１】
層決定部１５および復元器学習部１１は、全てのＤＮＮを選択したか否かを判定する（ステップＳ１４）。全てのＤＮＮを選択していないと判定した場合には（ステップＳ１４；Ｎｏ）、層決定部１５および復元器学習部１１は、次のＤＮＮを選択すべく、ステップＳ１１に移行する。
【００５２】
一方、全てのＤＮＮを選択したと判定した場合には（ステップＳ１４；Ｙｅｓ）、復元データ生成部１２は、複数のＤＮＮの中から１つのＤＮＮを選択する（ステップＳ１５）。
【００５３】
復元データ生成部１２は、選択したＤＮＮに判別対象の新たなデータを入力し、ＤＮＮ選択部１３は、復元誤差を計算する（ステップＳ１６）。例えば、復元データ生成部１２は、新たなデータを選択したＤＮＮに入力する。復元データ生成部１２は、選択したＤＮＮの中間層から得られる中間特徴量を抽出し、抽出した中間特徴量を選択したＤＮＮに対応する復元器に入力する。復元データ生成部１２は、復元器から復元データ２２を出力する。ＤＮＮ選択部１３は、復元器から出力された復元データ２２と、新たなデータとを比較し、復元誤差を計算する。
【００５４】
復元データ生成部１２は、全てのＤＮＮを選択したか否かを判定する（ステップＳ１７）。全てのＤＮＮを選択していないと判定した場合には（ステップＳ１７；Ｎｏ）、復元データ生成部１２は、次のＤＮＮを選択すべく、ステップＳ１５に移行する。
【００５５】
一方、全てのＤＮＮを選択したと判定した場合には（ステップＳ１７；Ｙｅｓ）、ＤＮＮ選択部１３は、復元誤差の最も小さい復元器に対応するＤＮＮを選択する（ステップＳ１８）。そして、判別部１４は、選択したＤＮＮに判別対象の新たなデータを入力し、判別結果を出力する（ステップＳ１９）。
【００５６】
［実施例１の効果］
このようにして、情報処理装置１は、複数のＤＮＮそれぞれについて、ＤＮＮに入力するデータを当該ＤＮＮの中間層から得られる特徴から復元する復元器を、複数のＤＮＮそれぞれの学習に用いたデータと異なるデータにより学習する。情報処理装置１は、新たなデータについて、複数の復元器それぞれから出力されるデータおよび新たなデータに基づき選択される復元器に対応するＤＮＮを選択する。かかる構成によれば、情報処理装置１は、ＤＮＮの中間層から得られる特徴から復元したデータと新たなデータをを用いることで、より適切なＤＮＮを選択することが可能になる。
【００５７】
また、情報処理装置１は、複数の復元器それぞれから出力されるデータと、新たなデータとの誤差を算出し、算出した誤差が最小となるデータの復元器に対応するＤＮＮを選択する。かかる構成によれば、情報処理装置１は、復元器から出力されるデータと新たなデータとの誤差を用いることで、より適切なＤＮＮを選択することができる。
【００５８】
また、情報処理装置１は、中間層として用いる層を、ＤＮＮが畳み込みＤＮＮである場合に、全結合層に近い層とする。かかる構成によれば、情報処理装置１は、ＤＮＮの特徴を得る中間層を全結合層に近い層とすることで、ＤＮＮが担当するタスクそのものの特徴の情報量を見積もることができる。
【００５９】
また、情報処理装置１は、中間層として用いる層を、ＤＮＮのそれぞれの層を用いた場合のそれぞれの復元器について、学習に用いたデータに対する復元誤差の分散が最大となる復元器に対する層とする。かかる構成によれば、情報処理装置１は、復元誤差の分散が大きければ、うまく復元できる場合とうまく復元できない場合とが存在することになるので、復元誤差を用いたＤＮＮの選択に利用することができる。
【実施例２】
【００６０】
ところで、実施例１では、情報処理装置１は、複数のＤＮＮや復元器の規模に差が無い場合に、判別対象の新たなデータに対してどのＤＮＮを適用するかを選択した。すなわち、情報処理装置１は、複数のＤＮＮそれぞれについて、ＤＮＮに入力するデータを当該ＤＮＮの中間層（深い層）から得られる特徴から復元する復元器を学習する。そして、情報処理装置１は、判別対象の新たなデータについて、複数の復元器それぞれから出力されるデータおよび当該新たなデータに基づき選択される復元器に対応するＤＮＮを選択すると説明した。しかしながら、情報処理装置１は、これに限定されず、複数のＤＮＮや復元器の規模に差が有る場合に、判別対象の新たなデータに対してどのＤＮＮを適用するかを選択するようにしても良い。ここでいうＤＮＮの規模とは、例えば、層の多少や層に属するユニットの多少のことをいう。
【００６１】
そこで、実施例２では、情報処理装置１は、複数のＤＮＮや復元器の規模に差が有る場合に、判別対象の新たなデータに対してどのＤＮＮを適用するかを選択する情報処理装置１について説明する。
【００６２】
［実施例２に係る情報処理装置の構成］
図８は、実施例２に係る情報処理装置の構成を示す機能ブロック図である。なお、図１に示す情報処理装置１と同一の構成については同一符号を示すことで、その重複する構成および動作の説明については省略する。実施例１と実施例２とが異なるところは、制御部１０に補助ＤＮＮ学習部３１、復元しやすさ計算部３２および確信度計算部３３を追加した点にある。また、記憶部２０のデータ群２１をデータ群２１Ａに変更した点にある。制御部１０のＤＮＮ選択部１３をＤＮＮ選択部１３Ａに変更した点にある。記憶部２０にクラス別復元しやすさ４１およびクラス別確信度４２を追加した点にある。
【００６３】
データ群２１Ａは、復元器および後述する補助ＤＮＮを学習するために用いられる一般の自然画像などの学習データの集合であり、ラベル（クラス）付きの学習データの集合である。データ群２１Ａは、各ＤＮＮの学習データと異なる学習データの集合である。なお、データ群２１Ａは、例えばＩｍａｇｅＮｅｔ（１５０ｋ  images，１０００classes）のような様々なデータを備え、クラス数も多いデータであることが望ましい。
【００６４】
クラス別復元しやすさ４１は、復元器のクラス毎の復元のしやすさを示す情報であり、復元器毎に存在する。１つのクラスの復元のしやすさは、例えばデータ群２１Ａに含まれる当該クラスの複数のデータについて、これらデータとこれらデータの復元器から出力される復元データとの復元誤差の平均値の逆数である。すなわち、復元誤差の平均値が小さければ、復元のしやすさは、大きくなる。復元誤差の平均値が大きければ、復元のしやすさは、小さくなる。クラス別復元しやすさ４１は、復元しやすさ計算部３２によって生成される。
【００６５】
クラス別確信度４２は、新たなデータについて、補助ＤＮＮによりクラスを判別させた際に出力されるクラス毎の確信度を示す情報である。ここでいう補助ＤＮＮとは、データのクラス（ラベルの種類）を判別する学習器のことをいう。補助ＤＮＮは、学習する際、復元器の学習に用いたデータ群２１Ａに含まれるデータと同じデータを用いて学習する。学習済みの補助ＤＮＮは、新たなデータに対して、クラス毎の確信度であるクラス別確信度４２を出力する。
【００６６】
補助ＤＮＮ学習部３１は、データのクラス（ラベルの種類）を判別する補助ＤＮＮを学習する。例えば、補助ＤＮＮ学習部３１は、復元器の学習に用いたデータ群２１に含まれるデータと同じデータにより学習する。
【００６７】
復元しやすさ計算部３２は、データ群２１Ａを用いて、複数の学習済みの復元器それぞれのクラス毎の復元のしやすさを計算する。例えば、復元しやすさ計算部３２は、データ群２１Ａに含まれる複数のデータを順次複数のＤＮＮに入力する。以下は、複数のＤＮＮの中の特定のＤＮＮおよび特定のＤＮＮに対応する復元器に着目して、処理の説明をする。復元しやすさ計算部３２は、入力したデータについて、特定のＤＮＮの中間層から得られる特徴を抽出し、抽出した特徴を当該ＤＮＮに対応する復元器に入力する。復元しやすさ計算部３２は、復元器から出力される復元データ２２と、特定のＤＮＮに入力されたデータとを比較し、復元誤差を算出する。復元しやすさ計算部３２は、特定のＤＮＮに入力されたデータのラベル（クラス）に対応付けて算出された復元誤差を保持する。復元しやすさ計算部３２は、複数のデータの他のデータに関しても、特定のＤＮＮについて、それぞれ特定のＤＮＮに入力されたデータのラベル（クラス）に対応付けて算出される復元誤差を保持する。そして、復元しやすさ計算部３２は、特定のＤＮＮに対応する復元器について、クラス毎に、復元誤差の平均値の逆数を算出して、クラス別復元しやすさ４１を計算する。復元しやすさ計算部３２は、複数のＤＮＮの中の他のＤＮＮに対応する復元器についても、同様に、クラス別復元しやすさ４１を計算する。
【００６８】
確信度計算部３３は、判別対象の新たなデータに対して、学習済みの補助ＤＮＮを通して、クラス別確信度４２を計算する。
【００６９】
ＤＮＮ選択部１３Ａは、新たなデータについて、複数の復元器それぞれのクラス別復元しやすさ４１とクラス別確信度４２とを比較し、最も傾向が類似するクラス別復元しやすさ４１の復元器を選択し、選択した復元器に対応するＤＮＮを選択する。なお、クラス別復元しやすさ４１とクラス別確信度４２との類似度は、例えばコサイン類似度を用いれば良い。クラス別復元しやすさ４１は、ＤＮＮおよび復元器における、データ群２１Ａに対する相対的な復元のしやすさの情報を意味する。したがって、ＤＮＮ選択部１３Ａは、複数のＤＮＮおよび復元器の規模に差が有る場合であっても、クラス別復元しやすさ４１を用いることで、判別対象の新たなデータに対してどのＤＮＮを適用するかを選択できる。
【００７０】
ここで、復元器学習部１１による復元器学習および補助ＤＮＮ学習部３１による補助ＤＮＮ学習の流れの一例を、図９を参照して説明する。図９は、実施例２に係る復元器学習および補助ＤＮＮ学習の流れの一例を示す図である。なお、復元器学習部１１による復元器学習の流れは、図３で説明したので、省略する。
【００７１】
図９で示される一般のデータは、データ群２１Ａの一例である。補助ＤＮＮ学習部３１は、復元器の学習に用いたデータ群２１Ａに含まれるそれぞれのラベル付きデータを補助ＤＮＮに入力する。そして、補助ＤＮＮ学習部３１は、入力したラベル付きデータのラベルの入力に応じて、入力されたデータのラベルの判別結果が、入力されたデータに付されたラベルに近づくように学習する。
【００７２】
ここで、ＤＮＮ選択部１３ＡによるＤＮＮ選択の流れの一例を、図１０を参照して説明する。図１０は、実施例２に係るＤＮＮ選択の流れの一例を示す図である。図１０には、複数のＤＮＮと複数のＤＮＮそれぞれに対応する学習済みの復元器と補助ＤＮＮとが表わされている。なお、図１０では、それぞれの学習済みの復元器のクラス別復元しやすさ４１−１，４１−２，４１−３が、復元しやすさ計算部３２によって計算されたものとする。
【００７３】
このような状況の下、確信度計算部３３は、判別対象の新たなデータに対して、学習済みの補助ＤＮＮを通して、クラス別確信度４２を計算する。そして、ＤＮＮ選択部１３Ａは、計算されたクラス別確信度４２と、復元器−１のクラス別復元しやすさ４１−１とを比較する。ＤＮＮ選択部１３Ａは、計算されたクラス別確信度４２と、復元器−２のクラス別復元しやすさ４１−２とを比較する。ＤＮＮ選択部１３Ａは、計算されたクラス別確信度４２と、復元器−３のクラス別復元しやすさ４１−３とを比較する。そして、ＤＮＮ選択部１３Ａは、比較の結果、最も傾向が類似するクラス別復元しやすさ４１の復元器を選択する。ここでは、復元器−２が選択される。この結果、ＤＮＮ選択部１３Ａは、選択した復元器−２に対応するＤＮＮ−２を選択する。すなわち、ＤＮＮ選択部１３Ａは、ＤＮＮ−２が復元しやすいクラスと新たなデータの確信度が高いクラスとが類似するので、ＤＮＮ−２を適用する。
【００７４】
これにより、ＤＮＮ選択部１３Ａは、複数のＤＮＮや復元器の規模に差が有る場合であっても、新たなデータに対してより適切なＤＮＮを選択することが可能となる。
【００７５】
［実施例２に係るＤＮＮ選択処理のフローチャート］
図１１は、実施例２に係るＤＮＮ選択処理のフローチャートの一例を示す図である。
【００７６】
図１１に示すように、層決定部１５および復元器学習部１１は、複数のＤＮＮの中から１つのＤＮＮを選択する（ステップＳ２１）。層決定部１５は、選択したＤＮＮのどの中間層から中間特徴量を取るかを決定する（ステップＳ２２）。
【００７７】
復元器学習部１１は、決定した層の中間特徴量を用いて、選択したＤＮＮに対応する復元器を一般データ（データ群２１Ａ）で学習する（ステップＳ２３）。例えば、復元器学習部１１は、データ群２１Ａに含まれるデータを選択したＤＮＮに入力する。復元器学習部１１は、選択したＤＮＮの中間層から得られる中間特徴量を抽出し、抽出した中間特徴量を選択したＤＮＮに対応する復元器に入力する。復元器学習部１１は、復元器から出力される復元データ２２と、選択したＤＮＮに入力されたデータとを比較し、誤差が小さくなるように、復元器を学習する。
【００７８】
層決定部１５および復元器学習部１１は、全てのＤＮＮを選択したか否かを判定する（ステップＳ２４）。全てのＤＮＮを選択していないと判定した場合には（ステップＳ２４；Ｎｏ）、層決定部１５および復元器学習部１１は、次のＤＮＮを選択すべく、ステップＳ２１に移行する。
【００７９】
一方、全てのＤＮＮを選択したと判定した場合には（ステップＳ２４；Ｙｅｓ）、補助ＤＮＮ学習部３１は、ラベル付きの一般データ（データ群２１Ａ）で補助ＤＮＮを学習する（ステップＳ２５）。
【００８０】
続いて、復元しやすさ計算部３２は、複数のＤＮＮの中から１つのＤＮＮを選択する（ステップＳ２６）。復元しやすさ計算部３２は、ラベル付きの一般データをＤＮＮと復元器とに通し、クラス毎の復元しやすさを計算する（ステップＳ２７）。例えば、復元しやすさ計算部３２は、選択したＤＮＮに対応する復元器について、クラス毎に、復元誤差の平均値の逆数を算出して、クラス別復元しやすさ４１を計算する。
【００８１】
復元しやすさ計算部３２は、全てのＤＮＮを選択したか否かを判定する（ステップＳ２８）。全てのＤＮＮを選択していないと判定した場合には（ステップＳ２８；Ｎｏ）、復元しやすさ計算部３２は、次のＤＮＮを選択すべく、ステップＳ２６に移行する。
【００８２】
一方、全てのＤＮＮを選択していたと判定した場合には（ステップＳ２８；Ｙｅｓ）、確信度計算部３３は、判別対象の新たなデータを補助ＤＮＮに入力し、クラス毎の確信度を計算する（ステップＳ２９）。例えば、確信度計算部３３は、判別対象の新たなデータに対して、学習済みの補助ＤＮＮを通して、クラス別確信度４２を計算する。
【００８３】
続いて、ＤＮＮ選択部１３Ａは、複数のＤＮＮの中から１つのＤＮＮを選択する（ステップＳ３０）。ＤＮＮ選択部１３Ａは、選択したＤＮＮのクラス毎の復元しやすさ（クラス別復元しやすさ４１）と、計算したクラス毎の確信度（クラス別確信度４２）との類似度を計算する（ステップＳ３１）。類似度は、例えば、コサイン類似度である。
【００８４】
ＤＮＮ選択部１３Ａは、全てのＤＮＮを選択したか否かを判定する（ステップＳ３２）。全てのＤＮＮを選択していないと判定した場合には（ステップＳ３２；Ｎｏ）、ＤＮＮ選択部１３Ａは、次のＤＮＮを選択すべく、ステップＳ３０に移行する。
【００８５】
一方、全てのＤＮＮを選択していたと判定した場合には（ステップＳ３２；Ｙｅｓ）、ＤＮＮ選択部１３Ａは、類似度の最も高いＤＮＮを選択する（ステップＳ３３）。例えば、ＤＮＮ選択部１３Ａは、最も傾向が類似するクラス別復元しやすさ４１の復元器を選択し、選択した復元器に対応するＤＮＮを選択する。そして、判別部１４は、選択したＤＮＮに判別対象の新たなデータを入力し、判別結果を出力する（ステップＳ３４）。
【００８６】
［実施例２の効果］
このようにして、情報処理装置１は、複数のＤＮＮそれぞれについて、ＤＮＮに入力するデータを当該ＤＮＮの中間層から得られる特徴から復元する復元器を、複数のＤＮＮそれぞれの学習に用いたデータと異なるデータにより学習する。情報処理装置１は、データのクラスを判別する補助ＤＮＮを復元器の学習に用いたデータと同じデータにより学習する。情報処理装置１は、複数の復元器それぞれのクラス毎の復元のしやすさを示す情報（クラス別復元しやすさ４１）と、新たなデータを補助ＤＮＮにより学習させた際に出力されるクラス毎の確信度（クラス別確信度４２）とを比較する。そして、情報処理装置１は、比較の結果、最も傾向が類似するクラス別復元しやすさ４１の復元器に対応するＤＮＮを選択する。かかる構成によれば、情報処理装置１は、複数のＤＮＮや復元器の規模に差が有る場合であっても、新たなデータに対してより適切なＤＮＮを選択することが可能となる。
【００８７】
［その他］
なお、図示した情報処理装置１の各構成要素は、必ずしも物理的に図示の如く構成されていることを要しない。すなわち、情報処理装置１の分散・統合の具体的態様は図示のものに限られず、その全部または一部を、各種の負荷や使用状況などに応じて、任意の単位で機能的または物理的に分散・統合して構成することができる。例えば、復元データ生成部１２とＤＮＮ選択部１３とを１つの部として統合しても良い。また、層決定部１５を、全結合層の手前の層を中間層として決定する第１の層決定部と、復元誤差の分散を用いて中間層を決定する第２の層決定部とに分離しても良い。また、記憶部２０を情報処理装置１の外部装置としてネットワーク経由で接続するようにしても良い。
【００８８】
また、上記実施例１，２で説明した各種の処理は、予め用意されたプログラムをパーソナルコンピュータやワークステーションなどのコンピュータで実行することによって実現することができる。そこで、以下では、図１に示した情報処理装置１と同様の機能を実現するＤＮＮ選択プログラムを実行するコンピュータの一例を説明する。図１２は、ＤＮＮ選択プログラムを実行するコンピュータの一例を示す図である。
【００８９】
図１２に示すように、コンピュータ２００は、各種演算処理を実行するＣＰＵ２０３と、ユーザからのデータの入力を受け付ける入力装置２１５と、表示装置２０９を制御する表示制御部２０７とを有する。また、コンピュータ２００は、記憶媒体からプログラムなどを読取るドライブ装置２１３と、ネットワークを介して他のコンピュータとの間でデータの授受を行う通信制御部２１７とを有する。また、コンピュータ２００は、各種情報を一時記憶するメモリ２０１と、ＨＤＤ（Hard  Disk  Drive）２０５を有する。そして、メモリ２０１、ＣＰＵ２０３、ＨＤＤ２０５、表示制御部２０７、ドライブ装置２１３、入力装置２１５、通信制御部２１７は、バス２１９で接続されている。
【００９０】
ドライブ装置２１３は、例えばリムーバブルディスク２１０用の装置である。ＨＤＤ２０５は、ＤＮＮ選択プログラム２０５ａおよびＤＮＮ選択処理関連情報２０５ｂを記憶する。
【００９１】
ＣＰＵ２０３は、ＤＮＮ選択プログラム２０５ａを読み出して、メモリ２０１に展開し、プロセスとして実行する。かかるプロセスは、情報処理装置１の各機能部に対応する。ＤＮＮ選択処理関連情報２０５ｂは、データ群２１、復元データ２２および復元データ（新データ）２３に対応する。そして、例えばリムーバブルディスク２１０が、ＤＮＮ選択プログラム２０５ａなどの各情報を記憶する。
【００９２】
なお、ＤＮＮ選択プログラム２０５ａについては、必ずしも最初からＨＤＤ２０５に記憶させておかなくても良い。例えば、コンピュータ２００に挿入されるフレキシブルディスク（ＦＤ）、ＣＤ−ＲＯＭ（Compact  Disk  Read  Only  Memory）、ＤＶＤ（Digital  Versatile  Disk）、光磁気ディスク、ＩＣ（Integrated  Circuit）カードなどの「可搬用の物理媒体」に当該プログラムを記憶させておく。そして、コンピュータ２００がこれらからＤＮＮ選択プログラム２０５ａを読み出して実行するようにしても良い。
【符号の説明】
【００９３】
１  情報処理装置
１０  制御部
１１  復元器学習部
１２  復元データ生成部
１３，１３Ａ  ＤＮＮ選択部
１４  判別部
１５  層決定部
３１  補助ＤＮＮ学習部
３２  復元しやすさ計算部
３３  確信度計算部
２０  記憶部
２１，２１Ａ  データ群
２２  復元データ
２３  復元データ（新データ）
４１  クラス別復元しやすさ
４２  クラス別確信度
【図１】
2020119048.tif 000003
【図２】
2020119048.tif 000004
【図３】
2020119048.tif 000005
【図４】
2020119048.tif 000006
【図５Ａ】
2020119048.tif 000007
【図５Ｂ】
2020119048.tif 000008
【図６Ａ】
2020119048.tif 000009
【図６Ｂ】
2020119048.tif 000010
【図７】
2020119048.tif 000011
【図８】
2020119048.tif 000012
【図９】
2020119048.tif 000013
【図１０】
2020119048.tif 000014
【図１１】
2020119048.tif 000015
【図１２】
2020119048.tif 000016