(57)【要約】【課題】ニューラルネットワークの性能低下を抑えつつニューラルネットワークにおける層数を効率的に削減する。【解決手段】第１のニューラルネットワークに対して各々が並列に設けられた複数の第２のニューラルネットワークを生成するとともに、複数の第２のニューラルネットワークそれぞれに出力を行って出力分布を記録する第３のニューラルネットワークを生成する生成部と、少なくとも複数の第２のニューラルネットワークそれぞれの出力と、第１のニューラルネットワークの出力とに基づく差分に関する値が最小化されるように、第３のニューラルネットワークの訓練を行う学習部と、少なくとも１つ以上のデータに関する第３のニューラルネットワークの出力の統計量に基づいて複数の第２のニューラルネットワークから一のニューラルネットワークを決定する判定部と、を備える、情報処理装置が提供される。【選択図】図１
2020086738.tif 000002
【特許請求の範囲】
【請求項１】
複数の処理層を含んだ第１のニューラルネットワークを取得する入力部と、
前記第１のニューラルネットワークに対して各々が並列に設けられた複数の第２のニューラルネットワークを生成するとともに、前記複数の第２のニューラルネットワークそれぞれに出力を行って出力分布を記録する第３のニューラルネットワークを生成する生成部と、
少なくとも前記複数の第２のニューラルネットワークそれぞれの出力と、前記第１のニューラルネットワークの出力とに基づく差分に関する値が最小化されるように、前記第３のニューラルネットワークの訓練を行う学習部と、
少なくとも１つ以上のデータに関する前記第３のニューラルネットワークの出力の統計量に基づいて前記複数の第２のニューラルネットワークから一のニューラルネットワークを決定する判定部と、
前記複数の第２のニューラルネットワークおよび前記第３のニューラルネットワークから、前記一のニューラルネットワーク以外の前記複数の第２のニューラルネットワークを削除するとともに、前記第３のニューラルネットワークを削除する修正部と、
前記一のニューラルネットワークを出力する出力部と、
を備える、情報処理装置。
【請求項２】
前記第３のニューラルネットワークは、前記学習部による訓練によってパラメータが更新されると、更新後の前記パラメータに基づいて前記複数の第２のニューラルネットワークに出力を行う、
請求項１に記載の情報処理装置。
【請求項３】
前記出力分布は、確率分布である、
請求項１に記載の情報処理装置。
【請求項４】
前記第３のニューラルネットワークは、１つの要素が１であり他の要素が０であるベクトルを出力するセレクタ機能を有する、
請求項３に記載の情報処理装置。
【請求項５】
前記複数の第２のニューラルネットワークの層数は、前記第１のニューラルネットワークの層数よりも少ない、
請求項１に記載の情報処理装置。
【請求項６】
前記複数の第２のニューラルネットワークそれぞれは、前記第１のニューラルネットワークを構成する少なくとも１つ以上の中間層を含む、
請求項１に記載の情報処理装置。
【請求項７】
前記学習部は、前記第３のニューラルネットワークの出力および前記複数の第２のニューラルネットワークそれぞれの出力と、前記第１のニューラルネットワークの出力とに基づく差分に関する値が最小化されるように、前記訓練を行う、
請求項１に記載の情報処理装置。
【請求項８】
前記統計量は、最頻値である、
請求項１に記載の情報処理装置。
【請求項９】
複数の処理層を含んだ第１のニューラルネットワークを取得する入力部と、
前記第１のニューラルネットワークに対して各々が並列に設けられた複数の第２のニューラルネットワークを生成するとともに、前記複数の第２のニューラルネットワークそれぞれに出力を行って出力分布を記録する第３のニューラルネットワークを生成する生成部と、
少なくとも前記複数の第２のニューラルネットワークそれぞれの出力と、前記第１のニューラルネットワークの出力とに基づく差分に関する値が最小化されるように、前記第３のニューラルネットワークの訓練を行う学習部と、
少なくとも１つ以上のデータに関する前記第３のニューラルネットワークの出力の統計量に基づいて前記複数の第２のニューラルネットワークから一のニューラルネットワークを決定する判定部と、
を備える、情報処理装置。
【請求項１０】
複数の処理層を含んだ第１のニューラルネットワークを取得することと、
前記第１のニューラルネットワークに対して各々が並列に設けられた複数の第２のニューラルネットワークを生成するとともに、前記複数の第２のニューラルネットワークそれぞれに出力を行って出力分布を記録する第３のニューラルネットワークを生成することと、
少なくとも前記複数の第２のニューラルネットワークそれぞれの出力と、前記第１のニューラルネットワークの出力とに基づく差分に関する値が最小化されるように、前記第３のニューラルネットワークの訓練を行うことと、
少なくとも１つ以上のデータに関する前記第３のニューラルネットワークの出力の統計量に基づいて前記複数の第２のニューラルネットワークから一のニューラルネットワークを決定することと、
を含む、情報処理方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、情報処理装置および情報処理方法に関する。
【背景技術】
【０００２】
一般に、今日の画像認識用途などで高い性能を有する多層ニューラルネットワークは膨大な数のパラメータで構成されており、多層ニューラルネットワークを動作させるには高い演算能力と広いメモリ帯域幅を有するハードウェアが必要である。そこで、ネットワークを構成するパラメータの数を削減し、ネットワークの規模を縮小する技術が登場してきている。
【０００３】
例えば、蒸留（Ｋｎｏｗｌｏｄｇｅ  Ｄｉｓｔｉｌｌａｔｉｏｎ）と呼ばれる手法が提案されている（例えば、非特許文献１参照）。かかる手法は、訓練済みの大規模な多層ニューラルネットワーク（以下、「教師モデル」と言う。）の出力データ（以下、「ソフトターゲット」と言う。）を元に小規模な多層ニューラルネットワーク（以下、「生徒モデル」と言う。）を訓練する手法である。かかる手法は、認識などの精度劣化を防ぎつつパラメータ数を削減することに成功している。
【０００４】
また、上記した蒸留において適切な規模のネットワーク構造を作成する手法が開示されている（例えば、特許文献１参照）。具体的には、教師モデルに含まれる２つの中間層を取り出し、２つの中間層それぞれに新規の出力層を追加し、新規の出力層が各々に追加された２つの中間層を追加学習することによって得られる出力の類似度に基づいて、２つの中間層のいずれか一方を削除する処理を、教師モデルの全ての層に対して適用することによって、最適な規模のネットワーク構造を求める手法が開示されている。
【先行技術文献】
【特許文献】
【０００５】
【特許文献１】特開２０１７−１８２３１９号公報
【非特許文献】
【０００６】
【非特許文献１】Geoffrey Hinton、他2名、"Distilling the Knowledge in a Neural Network"、[online]、2015年3月9日、Cornell University Library、［平成30年11月14日検索］、インターネット＜https://arxiv.org/pdf/1503.02531.pdf＞
【非特許文献２】MatthieuCourbariaux、他4名、"BinarizedNeural Networks: Training Neural Networks withWeights and ActivationsConstrained to +1 or -1"、[online]、2016年3月17日、Cornell University Library、［平成30年11月14日検索］、インターネット＜https://arxiv.org/pdf/1602.02830.pdf＞
【発明の概要】
【発明が解決しようとする課題】
【０００７】
しかしながら、非特許文献１に開示された技術では、認識などの精度を維持しつつ最もパラメータ数を削減可能とする最適な規模のネットワーク構造を人手で設計する必要がある。
【０００８】
また、特許文献１に開示された技術では、追加学習と類似度の計算とが必要となるため、かかる技術をより大規模な多層ニューラルネットワークに適用しようとすると、計算コストが膨大になってしまう。例えば、中間層が１００層存在するネットワークに、かかる技術を適用しようとすると、隣接する層間でのみ削減判定を行うようにしても９９回の追加学習と類似度計算が必要となり効率的ではない。
【０００９】
そこで、ニューラルネットワークの性能低下を抑えつつニューラルネットワークにおける層数を効率的に削減するための情報を得る技術が提供されることが望まれる。
【課題を解決するための手段】
【００１０】
上記問題を解決するために、本発明のある観点によれば、複数の処理層を含んだ第１のニューラルネットワークを取得する入力部と、前記第１のニューラルネットワークに対して各々が並列に設けられた複数の第２のニューラルネットワークを生成するとともに、前記複数の第２のニューラルネットワークそれぞれに出力を行って出力分布を記録する第３のニューラルネットワークを生成する生成部と、少なくとも前記複数の第２のニューラルネットワークそれぞれの出力と、前記第１のニューラルネットワークの出力とに基づく差分に関する値が最小化されるように、前記第３のニューラルネットワークの訓練を行う学習部と、少なくとも１つ以上のデータに関する前記第３のニューラルネットワークの出力の統計量に基づいて前記複数の第２のニューラルネットワークから一のニューラルネットワークを決定する判定部と、前記複数の第２のニューラルネットワークおよび前記第３のニューラルネットワークから、前記一のニューラルネットワーク以外の前記複数の第２のニューラルネットワークを削除するとともに、前記第３のニューラルネットワークを削除する修正部と、前記一のニューラルネットワークを出力する出力部と、を備える、情報処理装置が提供される。
【００１１】
前記第３のニューラルネットワークは、前記学習部による訓練によってパラメータが更新されると、更新後の前記パラメータに基づいて前記複数の第２のニューラルネットワークに出力を行ってもよい。
【００１２】
前記出力分布は、確率分布であってよい。
【００１３】
前記第３のニューラルネットワークは、１つの要素が１であり他の要素が０であるベクトルを出力するセレクタ機能を有してもよい。
【００１４】
前記複数の第２のニューラルネットワークの層数は、前記第１のニューラルネットワークの層数よりも少なくてもよい。
【００１５】
前記複数の第２のニューラルネットワークそれぞれは、前記第１のニューラルネットワークを構成する少なくとも１つ以上の中間層を含んでもよい。
【００１６】
前記学習部は、前記第３のニューラルネットワークの出力および前記複数の第２のニューラルネットワークそれぞれの出力と、前記第１のニューラルネットワークの出力とに基づく差分に関する値が最小化されるように、前記訓練を行ってもよい。
【００１７】
前記統計量は、最頻値であってもよい。
【００１８】
また、本発明の別の観点によれば、複数の処理層を含んだ第１のニューラルネットワークを取得する入力部と、前記第１のニューラルネットワークに対して各々が並列に設けられた複数の第２のニューラルネットワークを生成するとともに、前記複数の第２のニューラルネットワークそれぞれに出力を行って出力分布を記録する第３のニューラルネットワークを生成する生成部と、少なくとも前記複数の第２のニューラルネットワークそれぞれの出力と、前記第１のニューラルネットワークの出力とに基づく差分に関する値が最小化されるように、前記第３のニューラルネットワークの訓練を行う学習部と、少なくとも１つ以上のデータに関する前記第３のニューラルネットワークの出力の統計量に基づいて前記複数の第２のニューラルネットワークから一のニューラルネットワークを決定する判定部と、を備える、情報処理装置が提供される。
【００１９】
また、本発明の別の観点によれば、複数の処理層を含んだ第１のニューラルネットワークを取得することと、前記第１のニューラルネットワークに対して各々が並列に設けられた複数の第２のニューラルネットワークを生成するとともに、前記複数の第２のニューラルネットワークそれぞれに出力を行って出力分布を記録する第３のニューラルネットワークを生成することと、少なくとも前記複数の第２のニューラルネットワークそれぞれの出力と、前記第１のニューラルネットワークの出力とに基づく差分に関する値が最小化されるように、前記第３のニューラルネットワークの訓練を行うことと、少なくとも１つ以上のデータに関する前記第３のニューラルネットワークの出力の統計量に基づいて前記複数の第２のニューラルネットワークから一のニューラルネットワークを決定することと、
を含む、情報処理方法が提供される。
【発明の効果】
【００２０】
以上説明したように本発明によれば、ニューラルネットワークの性能低下を抑えつつニューラルネットワークにおける層数を効率的に削減するための情報を得る技術が提供される。
【図面の簡単な説明】
【００２１】
【図１】本発明の第１の実施形態に係る情報処理装置の機能構成例を示すブロック図である。
【図２】生成部によって生成される生徒モデル訓練用のネットワークの構成例を示す図である。
【図３】訓練前の補助層の構成例を示す図である。
【図４】訓練の過程における補助層の構成例を示す図である。
【図５】再構成部の処理の例を示すフローチャートである。
【図６】生徒モデルが複数段に分割されて構成される場合の例を示す図である。
【図７】本発明の第２の実施形態に係る情報処理装置の機能構成例を示すブロック図である。
【図８】同実施形態に係る教師モデルの例を示す図である。
【図９】同実施形態に係る生徒モデル訓練用のネットワークの例を示す図である。
【図１０】同実施形態に係る生徒モデル訓練用のネットワークの例を示す図である。
【図１１】再構成部の処理の例を示すフローチャートである。
【図１２】本発明の実施形態に係る情報処理装置の例としてのコンピュータのハードウェア構成を示す図である。
【発明を実施するための形態】
【００２２】
以下に添付図面を参照しながら、本発明の好適な実施の形態について詳細に説明する。なお、本明細書及び図面において、実質的に同一の機能構成を有する構成要素については、同一の符号を付することにより重複説明を省略する。
【００２３】
また、本明細書および図面において、実質的に同一の機能構成を有する複数の構成要素を、同一の符号の後に異なる数字を付して区別する場合がある。ただし、実質的に同一の機能構成を有する複数の構成要素等の各々を特に区別する必要がない場合、同一符号のみを付する。また、異なる実施形態の類似する構成要素については、同一の符号の後に異なるアルファベットを付して区別する場合がある。ただし、異なる実施形態の類似する構成要素等の各々を特に区別する必要がない場合、同一符号のみを付する。
【００２４】
（１．第１の実施形態）
まず、本発明の第１の実施形態について説明する。
【００２５】
［構成の説明］
本発明の第１の実施形態に係る情報処理装置の構成例について説明する。以下では、軽量化の対象となる訓練済みのニューラルネットワークを「教師モデル」とも言う。また、教師モデルに基づいて教師モデルの代わりに出力され得る（教師モデルが近似される）ニューラルネットワークの各候補を「生徒モデル」とも言う。本発明の実施形態では、教師モデルからの性能低下を抑えつつ、教師モデルから層数が効率的に削減された生徒モデルを得る技術を主に提案する。
【００２６】
なお、本明細書において使用される「ニューラルネットワーク」は、入力層、中間層および出力層のすべてを有する処理層群だけを必ずしも意味しない。例えば、本明細書において使用される「ニューラルネットワーク」は、これらの処理層群から一部だけ（例えば、一部の中間層のみなど）が切り出された１または複数の処理層も意味し得る。
【００２７】
図１は、本発明の第１の実施形態に係る情報処理装置１０の機能構成例を示すブロック図である。ここで、情報処理装置１０は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）などの演算装置を含み、図示しないメモリにより記憶されているプログラムがＣＰＵによりＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）に展開されて実行されることにより、その機能が実現され得る。このとき、当該プログラムを記録した、コンピュータに読み取り可能な記録媒体も提供され得る。あるいは、情報処理装置１０は、専用のハードウェアにより構成されていてもよいし、複数のハードウェアの組み合わせにより構成されてもよい。
【００２８】
図１に示すように、情報処理装置１０は、入力部１００、生成部１０１、出力部１０５および再構成部１０６を備える。再構成部１０６は、学習部１０２、判定部１０３および修正部１０４を有する。ここでは、図１に示した各ブロックについて簡潔に説明し、各ブロックの詳細な説明は、「動作の説明」において行う。
【００２９】
入力部１００は、訓練済みの教師モデルを取得し、教師モデルを生成部１０１に出力する。生成部１０１は、入力部１００から入力された教師モデルに基づいて、複数の生徒モデル（以下、「生徒モデル群」とも言う。）を生成し、生成した生徒モデル群を学習部１０２に出力する。
【００３０】
学習部１０２は、生成部１０１から生徒モデル群が入力された場合、教師モデルの訓練に用いたデータ（または他のデータ）を利用し、誤差逆伝播法（バックプロパゲーション）などによって生徒モデル群および補助層それぞれのパラメータを更新する。学習部１０２は、パラメータが更新された生徒モデル群および補助層を判定部１０３に出力する。一方、学習部１０２は、修正部１０４から１つの生徒モデルが入力された場合には、生徒モデルのパラメータを更新し、パラメータが更新された生徒モデルを出力部１０５に出力する。
【００３１】
判定部１０３は、パラメータが更新された生徒モデル群および補助層に基づいて、生徒モデル群から１つの生徒モデルを得るために必要な情報を修正部１０４に出力する。修正部１０４は、判定部１０３から入力された情報に基づき、生徒モデル群から１つの生徒モデルを得るための修正を行い、当該１つの生徒モデルを学習部１０２に出力する。出力部１０５は、パラメータが更新された生徒モデルを出力する。
【００３２】
［動作の説明］
続いて、本発明の第１の実施形態に係る情報処理装置１０の動作例について説明する。まず、入力部１００は、任意の訓練用データを用いてあらかじめパラメータが最適化された訓練済みの教師モデルを取得する。訓練済みの教師モデルは、その構造情報とパラメータとを含む。パラメータは、ニューロンに設定される重みを含む。ここで、訓練済みの教師モデルは、複数の処理層を含んだ第１のニューラルネットワーク（多層ニューラルネットワーク）であってよく、その構造は特に限定されない。例えば、教師モデルは、全結合ニューラルネットワークであってもよいし、畳み込みニューラルネットワークであってもよい。
【００３３】
入力部１００は、取得した教師モデルを生成部１０１に出力する。そして、生成部１０１は、入力部１００から入力される教師モデルに基づいて、教師モデルと複数の第２のニューラルネットワークと第３のニューラルネットワークとを含んだ生徒モデル訓練用のネットワークを生成する。複数の第２のニューラルネットワークおよび第３のニューラルネットワークについては、後に説明する。
【００３４】
図２は、生成部１０１によって生成される生徒モデル訓練用のネットワークの構成例を示す図である。図２を参照すると、中間層２０１−１〜２０４−１が順に接続された教師モデルが示されている。中間層２０１−１〜２０４−１は、何らかの関数である。例えば、中間層２０１−１から出力される特徴データをｘとし、中間層２０２−１を関数ｆとした場合、中間層２０２−１から出力される特徴データｙは、ｙ＝ｆ（ｘ）と表現され得る。ここで、図２に示した例では、教師モデル（中間層２０１−１〜２０４−１）の層数が４層であるが、教師モデルの層数は限定されない。
【００３５】
図２を参照すると、生徒モデル訓練用のネットワークは、教師モデル（中間層２０１−１〜２０４−１）に対して並列に設けられた複数の第２のニューラルネットワークを含んでいる。ここで、複数の第２のニューラルネットワークそれぞれは、教師モデル（中間層２０１−１〜２０４−１）を構成する少なくとも１つ以上の中間層を含んでよい。ここで、中間層２０２−２は、教師モデルの中間層２０２−１と同じ構造かつ同じパラメータを有する。同様に、中間層２０３−２および中間層２０３−３それぞれは、教師モデルの中間層２０３−１と同じ構造かつ同じパラメータを有する。中間層２０４−２、中間層２０４−３および中間層２０４−４それぞれは、教師モデルの中間層２０４−１と同じ構造かつ同じパラメータを有する。
【００３６】
そして、第２のニューラルネットワークの１つ目は、中間層２０２−２、中間層２０３−２、中間層２０４−２が順に接続されたネットワークである。第２のニューラルネットワークの２つ目は、中間層２０３−３、中間層２０４−３が順に接続されたネットワークである。第２のニューラルネットワークの３つ目は、中間層２０４−４を含んだネットワークである。しかし、複数の第２のニューラルネットワークそれぞれの具体的な構成は限定されない。また、図２には、第２のニューラルネットワークの数は３つ（１つ目から３つ目まで）の場合が示されているが、第２のニューラルネットワークの数は限定されない。
【００３７】
ここでは、第２のニューラルネットワークの１つ目の層数は３層であり、第２のニューラルネットワークの２つ目の層数は２層であり、第２のニューラルネットワークの３つ目の層数は１層である。このように、第２のニューラルネットワークの層数が、教師モデル（中間層２０１−１〜２０４−１）の層数よりも少ないほうが、教師モデル（中間層２０１−１〜２０４−１）が軽量化された生徒モデルが出力される可能性が高まる。
【００３８】
また、生徒モデル訓練用のネットワークは、生徒モデルを構成し得る処理層２０６を含んでいる。処理層２０６の構造は特に限定されない。例えば、処理層２０６は、全結合ニューラルネットワークであってもよいし、畳み込みニューラルネットワークであってもよい。処理層２０６には、教師モデルの中間層２０１−１に入力される入力データ２００と同一のデータが入力される。処理層２０６は、第３のニューラルネットワークの例としての補助層２０７、中間層２０２−２、中間層２０３−３、中間層２０４−４、出力データ２０８それぞれに向けて同一の特徴データを出力する。
【００３９】
補助層２０７は、処理層２０６からの入力に基づいて各出力データを算出し、各出力データに基づいて、中間層２０２−２、中間層２０３−３、中間層２０４−４、出力データ２０８それぞれに向けた出力を行う。処理層２０６から出力される特徴データと異なり、補助層２０７から出力される特徴データは、出力先によって異なることが想定される。補助層２０７は、これらの出力を行うと、出力分布を記録する。以下では、図３および図４を参照しながら、補助層２０７の構成例について説明する。
【００４０】
図３は、訓練前の補助層２０７の構成例を示す図である。また、図４は、訓練の過程における補助層２０７の構成例を示す図である。補助層２０７の訓練は、後に説明するように、学習部１０２によって行われる。図３を参照すると、訓練前の補助層２０７の例としての補助層２０７Ａが示されている。図３に示すように、補助層２０７Ａは、第１層から第ｎ層（ｎは２以上の整数）までの全結合層からなる全結合ニューラルネットワークを含んでよい。また、第ｎ層を構成するニューロンの数は、補助層２０７Ａからの出力先の数と一致する。ここで、補助層２０７からの出力分布は、確率分布であってよい。確率分布は、全ての出力値の合計が１となる出力分布である。
【００４１】
図３に示した例では、補助層２０７が最大値抽出関数および非線形関数の例としての符号関数を有しており、最大値抽出関数を用いて、第ｎ層を構成するニューロンからの出力の最大値を抽出し、符号関数を用いて、最大値に対応して１を出力し、その他に対応して０を出力する例が示されている。これによって、補助層２０７は、１つの要素が１であり他の要素が０であるベクトル（以下、「Ｏｎｅ−ｈｏｔベクトル」とも言う。）を出力するセレクタとして機能し得る。
【００４２】
しかし、Ｏｎｅ−ｈｏｔベクトルを出力するための構成は、かかる例に限定されない。例えば、Ｇｕｍｂｅｌ−Ｓｏｆｔｍａｘ分布からのサンプリングによってもＯｎｅ−ｈｏｔベクトルを出力可能である。さらに、補助層２０７からの出力分布は、Ｏｎｅ−ｈｏｔベクトル以外の確率分布であってもよい。例えば、Ｓｏｆｔｍａｘ関数を用いれば、第ｎ層を構成するニューロンからの出力に対応して、補助層２０７からの出力分布を、確率分布とすることが可能である。
【００４３】
訓練前には、補助層２０７Ａ（図３）のパラメータが更新されていないため、補助層２０７Ａからの出力は、全ての出力先に対してほぼ均等になると考えられる。図２に戻って説明を続ける。補助層２０７から出力されたＯｎｅ−ｈｏｔベクトルの各要素は、処理層２０６から出力された特徴データに対して乗算され、中間層２０２−２、中間層２０３−３、中間層２０４−４、出力データ２０８それぞれに向けて出力される。中間層２０４−２、中間層２０４−３、中間層２０４−４、補助層２０７それぞれは、加算されて出力データ２０８となる。
【００４４】
生成部１０１によって生徒モデル訓練用のネットワーク（図２）が生成されると、再構成部１０６による処理が実行される。図５は、再構成部１０６の処理の例を示すフローチャートである。図５に示したように、学習部１０２は、生成部１０１から生徒モデル群および補助層２０７を取得する（Ｓ１００）。より具体的には、学習部１０２は、生成部１０１から生徒モデル訓練用のネットワーク（図２）を取得する。そして、学習部１０２は、生徒モデル訓練用のネットワーク（図２）に基づいて、生徒モデル（の処理層２０６）および補助層２０７を訓練することによって、生徒モデル（の処理層２０６）および補助層２０７のパラメータの更新を行う（Ｓ１０１）。
【００４５】
このとき、教師モデル（中間層２０１−１、中間層２０２−１、中間層２０３−１、中間層２０４−１）、処理層２０６と接続された中間層（中間層２０２−２、中間層２０３−２、中間層２０４−２、中間層２０３−３、中間層２０４−３、中間層２０４−４）の訓練は行われなくてよい。また、入力データ２００は、教師モデルの訓練に用いたデータと同一のデータであってもよいし、他のデータであってもよい。
【００４６】
より具体的に、学習部１０２は、少なくとも中間層２０４−２、中間層２０４−３、中間層２０４−４それぞれの出力（例えば、各出力の加算結果）と、教師モデルの中間層２０４−１の出力とに基づく差分に関する値（誤差）が最小化されるように、生徒モデル群および補助層２０７の訓練を行う。
【００４７】
さらに詳細には、学習部１０２は、補助層２０７の出力（補助層２０７の出力と処理層２０６の出力との乗算結果）および中間層２０４−２、中間層２０４−３、中間層２０４−４それぞれの出力（ここでは、加算結果である出力データ２０８）と、教師モデルの中間層２０４−１の出力（出力データ２０５）とに基づく差分に関する値（誤差）が最小化されるように、生徒モデル（の処理層２０６）および補助層２０７の訓練を行う。例えば、学習部１０２は、以下の式（１）に示すような目的関数Ｅ（ｘ）が最小化されるように生徒モデル（の処理層２０６）および補助層２０７の訓練を行う。
【００４８】
【数１】
2020086738.tif 000003
【００４９】
Ｌは教師モデルと接続する生徒モデルの最大層数を示し、訓練対象ではなく予め与えられる。例えば、図２に示した例では、処理層２０６、中間層２０２−２、中間層２０３−２、中間層２０４−２の４つの層を含んだ生徒モデルの層数が最も多いため、Ｌ＝４である。式（１）は、二乗誤差の形式を取っているが、二乗誤差の代わりに、絶対誤差などといったその他の評価尺度が用いられてもよい。式（１）からも把握されるように、補助層２０７から出力されたＯｎｅ−ｈｏｔベクトルの各要素が、各生徒モデルの出力との間で乗算されるため、実際に教師モデルの出力との間で誤差が算出されるのは、１つの生徒モデルからの出力のみとなる。
【００５０】
訓練の過程における補助層２０７について説明する。図４を参照すると、訓練の過程における補助層２０７の例としての補助層２０７Ｂが示されている。補助層２０７Ｂの訓練が進み、補助層２０７Ｂのパラメータが更新されると、補助層２０７は、更新後のパラメータに基づいて出力を行う。このとき、補助層２０７Ｂからの出力には、出力先によって偏りが生じてくる。図４に示した例では、左から３つ目のニューロンからの出力が他のニューロンよりも大きくなっている。そのため、図４に示した例では、左から３つ目の出力先への出力が大きくなっている（すなわち、図４に示した例では、補助層２０７Ｂの訓練が進むと、補助層２０７によって左から３つ目の出力先が選択されるようになる）。
【００５１】
なお、図４に示した補助層２０７は符号関数を含んでいるが、符号関数は微分可能でないのが一般的である。そこで、補助層２０７を訓練しようとしても、誤差逆伝播法を利用することができずに補助層２０７の訓練を行うことができなくなることが予想される。しかし、一例として、上記した非特許文献２に記載された技術を用いれば、微分不可能な符号関数を有する補助層２０７の訓練も可能になると考えられる。
【００５２】
図５に戻って説明を続ける。学習部１０２は、生徒モデル（の処理層２０６）および補助層２０７の訓練を進めながら、所定の収束条件が満たされない場合には（Ｓ１０２において「Ｎｏ」）、Ｓ１０１に動作を移行させる。一方、学習部１０２は、所定の収束条件が満たされた場合には（Ｓ１０２において「Ｙｅｓ」）、Ｓ１０３に動作を移行させる。収束条件はどのような条件であってもよい。一例として、収束条件は、誤差が閾値以下となったという条件であってもよい。
【００５３】
Ｓ１０３に動作が移行されると、判定部１０３は、少なくとも１つ以上のデータを生徒モデルの処理層２０６に入力し、当該データに関する補助層２０７の出力分布（例えば、Ｏｎｅ−ｈｏｔベクトル）から所定の統計量をスコアとして算出する（Ｓ１０３）。統計量は特に限定されないが、最頻値などの代表値であってもよい。判定部１０３は、算出したスコアに基づいて複数の生徒モデルから１つの生徒モデルを決定する。例えば、判定部１０３は、最頻値などの代表値が最も大きい出力先に対応する生徒モデルを１つの生徒モデルとして決定してもよい。
【００５４】
修正部１０４は、生徒モデルの処理層２０６から中間層２０４−２、中間層２０４−３、中間層２０４−４までのネットワークから、補助層２０７を除外（削除）する（Ｓ１０４）。これによって、生徒モデルの処理層２０６から、中間層２０２−２、中間層２０３−３、中間層２０４−４に出力に対して、補助層２０７からの出力が乗算されなくなる。また、修正部１０４は、接続関係の修正を行う（Ｓ１０５）。より具体的に、修正部１０４は、判定部１０３によって決定された１つの生徒モデル以外の生徒モデルを生徒モデル群から削除することによって、１つの生徒モデルを残す。
【００５５】
ここで、残される可能性のある生徒モデルとしては、１つ目の生徒モデル（処理層２０６、中間層２０２−２、中間層２０３−２、中間層２０４−２が順に接続された生徒モデル）、２つ目の生徒モデル（処理層２０６、中間層２０３−３、中間層２０４−３が順に接続された生徒モデル）、３つ目の生徒モデル（処理層２０６、中間層２０４−４が順に接続された生徒モデル）、４つ目の生徒モデル（処理層２０６からなる生徒モデル）が挙げられる。
【００５６】
これによって、生徒モデルの処理層２０６から１つの中間層（中間層２０２−２、中間層２０３−３、中間層２０４−４のいずれか）に対してのみ出力がなされるようになる。残された生徒モデルの層数（入力データ２００から出力データ２０８までの経路に存在する層数）は、場合によっては、教師モデルの層数（入力データ２００から出力データ２０５までの経路に存在する層数）よりも少なくなる。すなわち、教師モデルよりも層数が少ない生徒モデルが残されれば、教師モデルは、軽量化された生徒モデルに近似され得る。
【００５７】
学習部１０２は、残された生徒モデルを訓練することによって、残された生徒モデルのパラメータを更新する（Ｓ１０６）。このときに利用される入力データは、教師モデルの訓練に用いたデータと同一のデータであってもよいし、他のデータであってもよい。このときのパラメータの更新は、生徒モデルの処理層２０６に対してのみ行ってもよいが、処理層２０６だけではなく残された生徒モデル全体に対して行われるのが望ましい。
【００５８】
学習部１０２は、生徒モデルの訓練を進めながら、所定の収束条件が満たされない場合には（Ｓ１０７において「Ｎｏ」）、Ｓ１０６に動作を移行させる。一方、出力部１０５は、所定の収束条件が満たされた場合には（Ｓ１０７において「Ｙｅｓ」）、（パラメータが更新された）残された生徒モデルを出力する。収束条件はどのような条件であってもよい。一例として、収束条件は、Ｓ１０２と同様に、誤差が閾値以下となったという条件であってもよい。
【００５９】
なお、図２では、入力データ２００から出力データ２０５を生成する教師モデルに対応する生徒モデルを１段で構成する例を示した。しかし、生徒モデルは、複数段に分割されて構成されてもよい。図６は、生徒モデルが複数段に分割されて構成される場合の例を示す図である。図６を参照すると、教師モデルは、１０層の中間層（中間層２０１−１、２０２−１、・・・、２１４−１）によって構成されている。図６に示した例では、中間層２０１−１〜２０４−１を含む１段目のネットワーク３００と、中間層２０９−１〜２１２−１を含む２段目のネットワーク３０１と、中間層２１３−１〜２１４−１を含む３段目のネットワーク３０２とにネットワークが分割されている。
【００６０】
ネットワーク３００およびネットワーク３０１それぞれは、図２に示した生徒モデル訓練用のネットワークと同等のネットワークである。すなわち、図６に示した例では、図２に示した生徒モデル訓練用のネットワークと同等のネットワークが２段接続されている。１段目のネットワーク３００には、上記した処理層２０６と同等の処理層２１６が含まれ、上記した補助層２０７と同等の補助層２１７が含まれ、中間層２０２−１と同じ中間層２０２−２が含まれ、中間層２０３−１と同じ中間層２０３−２、２０３−３が含まれ、中間層２０４−１と同じ中間層２０４−２〜２０４−４が含まれている。
【００６１】
２段目のネットワーク３０１には、上記した処理層２０６と同等の処理層２１６が含まれ、上記した補助層２０７と同等の補助層２１７が含まれ、中間層２１０−１と同じ中間層２１０−２が含まれ、中間層２１１−１と同じ中間層２１１−２、２１１−３が含まれ、中間層２１２−１と同じ中間層２１２−２〜２１２−４が含まれている。２段目のネットワーク３０１の入力データとしては、１段目のネットワーク３００の出力データが用いられている。
【００６２】
３段目のネットワーク３０２には、中間層２１３−１と同じ中間層２１３−２が含まれ、中間層２１４−１と同じ中間層２１４−２が含まれている。３段目のネットワーク３０２の入力データとしては、２段目のネットワーク３０１の出力データが用いられている。この例では、１段目のネットワーク３００および２段目のネットワーク３０１それぞれに含まれる、処理層２１６および補助層２１７が訓練対象である。このとき、パラメータの更新は、１段ずつ実行されてもよいし、複数段のパラメータが一括で更新されてもよい。
【００６３】
複数段のパラメータが一括で更新される場合、複数段に対応する目的関数Ｅは、以下の式（２）に示すように表現されてもよい。そして、学習部１０２は、目的関数Ｅが最小化されるように訓練を行う。
【００６４】
【数２】
2020086738.tif 000004
【００６５】
［効果の説明］
以上に説明したように、本発明の第１の実施形態によれば、処理層２０６の出力は複数に分岐し、１つは補助層２０７に入力され、その他は教師モデルの中間層２０２−１〜２０４〜１に対応する生徒モデルの中間層２０２−２、２０３−３、２０４−４に入力され、あるいはそのまま出力データ２０８に向けて出力される。かかる構成において、生徒モデル群が訓練されれば、教師モデルを近似する生徒モデルとして、教師モデルの層数よりも少ない層数の生徒モデルが得られる可能性がある。
【００６６】
例えば、処理層２０６から中間層２０２−２のみへの接続が維持されれば、処理層２０６が中間層２０１−１を近似することになる。あるいは、処理層２０６から中間層２０４−４のみへの接続が維持されれば、処理層２０６が中間層２０１−１〜２０３−１を近似することになる。教師モデルの関数が冗長な変換を行っているほど、処理層２０６が多くの層を近似する可能性が高くなる。これによって、教師モデルを構成するパラメータ数を大幅に削減することが可能となる。これは、処理層２０６の出力する特徴データが教師モデルのどの層の入力に類似しているかの判定能力を、補助層２０７が訓練によって獲得できるためである。
【００６７】
また、判定部１０３は、最頻値などの統計量に基づいて教師モデルを近似できる層を決定する。その理由は、補助層２０７の出力が入力に依存して変化するためである。また、できる限り少ない層数の生徒モデルに教師モデルを近似させたい場合には、比較的層数が少ない生徒モデルに対応する誤差の補正パラメータを比較的大きな値に設定すればよい。
【００６８】
上記では、補助層の除外Ｓ１０４と接続関係の修正Ｓ１０５の後にパラメータ更新Ｓ１０６を行う例を示した。この処理には、生徒モデルの性能を高める効果がある。例えば、補助層２０７の出力の最頻値に基づいて接続関係を修正した場合、最頻値に対応する経路以外からの出力がなくなるため、そのような出力に関する性能が低下することが想定できる。しかし、パラメータ更新を行うことによって、１つの経路でも性能が出るように最適化されるため、その性能低下の影響を補償することができる。
【００６９】
また、学習部１０２は、生徒モデルのパラメータ更新Ｓ１０６において、生徒モデルの処理層２０６の出力先に中間層がある場合は、それらの中間層のパラメータも更新するとよい。これによって、モデルの表現能力が高まるため、より性能が向上することが期待できる。
【００７０】
図６に示したように、生徒モデルを含むネットワーク構造を多段構成にすることで、層数の覆い教師モデルに対しても２度の学習計算（図５におけるＳ１０１、Ｓ１０６）を行うことによって効率的に層数を削減した生徒モデルを訓練できる。
【００７１】
以上、本発明の第１の実施形態について説明した。
【００７２】
（２．第２の実施形態）
まず、本発明の第２の実施形態について説明する。
【００７３】
［構成の説明］
本発明の第２の実施形態に係る情報処理装置の構成例について説明する。図７は、本発明の第２の実施形態に係る情報処理装置４０の機能構成例を示すブロック図である。以下では、本発明の第２の実施形態に係る情報処理装置４０のうち、本発明の第１の実施形態に係る情報処理装置１０と共通する構成の詳細な説明は省略する。本発明の第１の実施形態に係る情報処理装置１０と異なる構成について主に説明する。
【００７４】
図７に示すように、情報処理装置４０は、入力部４００、出力部４０５および再構成部４０６を備える。再構成部４０６は、本発明の第１の実施形態に係る再構成部１０６と異なり、学習部４０２、判定部４０３および修正部４０４を有する他、生成部４０１を有する。ここでは、図７に示した各ブロックについて簡潔に説明し、各ブロックの詳細な説明は、「動作の説明」において行う。
【００７５】
入力部４００は、訓練済みの教師モデルを取得し、教師モデルを生成部４０１に出力する。生成部４０１は、入力部４００から入力された教師モデルに基づいて、生徒モデル群を生成し、生成した生徒モデル群を学習部４０２に出力する。しかし、生成部４０１は、学習部４０２から生徒モデルが入力された場合には、入力された生徒モデルと教師モデルとに基づいて、新たな生徒モデル群を生成し、生成した新たな生徒モデル群を学習部４０２に出力する。
【００７６】
学習部４０２は、生成部４０１から生徒モデル群が入力された場合、教師モデルの訓練に用いたデータ（または他のデータ）を利用し、誤差逆伝播法（バックプロパゲーション）などによって生徒モデル群および補助層それぞれのパラメータを更新する。一方、学習部４０２は、修正部１０４から１つの生徒モデルが入力された場合には、生徒モデルのパラメータを更新し、パラメータが更新された生徒モデルを修正部４０４または出力部４０５に出力する。
【００７７】
判定部４０３は、パラメータが更新された生徒モデル群および補助層に基づいて、生徒モデル群から１つの生徒モデルを得るために必要な情報を修正部４０４に出力する。修正部４０４は、判定部４０３から入力された情報に基づき、生徒モデル群から１つの生徒モデルを得るための修正を行い、当該１つの生徒モデルを学習部４０２に出力する。出力部４０５は、パラメータが更新された生徒モデルを出力する。
【００７８】
［動作の説明］
続いて、本発明の第２の実施形態に係る情報処理装置４０の動作例について説明する。まず、入力部４００は、本発明の第１の実施形態と同様に、訓練済みの教師モデルを取得する。そして、入力部４００は、取得した教師モデルを再構成部４０６（生成部４０１）に出力する。
【００７９】
図８は、本発明の第２の実施形態に係る教師モデルの例を示す図である。図８を参照すると、中間層５０１−１〜５１０−１が順に接続された教師モデルが示されている。ここで、図８に示した例では、教師モデルの層数が１０層であるが、教師モデルの層数は限定されない。また、図８には、教師モデルの入力データ５００と教師モデルの出力データ５１１とが示されている。図９および図１０は、本発明の第２の実施形態に係る生徒モデル訓練用のネットワークの例を示す図である。以下、再構成部４０６の処理の例について説明する。
【００８０】
図１１は、再構成部４０６の処理の例を示すフローチャートである。上記したように、本発明の第１の実施形態では、生徒モデルは、複数段に分割されて構成されてもよい。一方、本発明の第２の実施形態では、教師モデルの全体に対応する生徒モデルを一度に構成するのではなく、教師モデルの一部を処理対象として当該処理対象に対応する生徒モデルを構成し、教師モデルにおける処理対象の変更に伴って当該処理対象に対応する生徒モデルを新たに構成する。ここでは、一度に処理対象とされる層数が４つである場合を想定するが、一度に処理対象とされる層数は限定されない。
【００８１】
まず、生成部４０１は、入力部４００から入力される教師モデルに基づいて、教師モデルの一部と当該一部に対応する生徒モデル群と補助層とを含んだ生徒モデル訓練用のネットワークを生成する（Ｓ２００）。続いて、更新処理が実行される（Ｓ２０１）。更新処理Ｓ２０１は、図５に示した再構成部１０６の処理Ｓ１００〜Ｓ１０７と同様に実行される。更新処理Ｓ２０１が終わると、学習部４０２は、終了条件の判定を行う（Ｓ２０２）。終了条件は、教師モデルの全ての層に対する処理が終わったという条件であってよい。
【００８２】
学習部４０２は、終了条件が満たされていないと判定した場合（Ｓ２０２において「Ｎｏ」）、Ｓ２００に動作が移行され、生成部４０１は、教師モデルの中の処理対象を変更し、教師モデルの中の処理対象と当該処理対象に対応する生徒モデル群と補助層とを含んだ生徒モデル訓練用のネットワークを生成する。一方、学習部４０２は、終了条件が満たされたと判定した場合（Ｓ２０２において「Ｙｅｓ」）、動作を終了する。かかる処理対象の変更について詳細に説明する。
【００８３】
図９を参照すると、最初の更新処理Ｓ２０１が終わった段階における生徒モデル訓練用のネットワーク６０１が示されている。ここでは、教師モデルのうち中間層５０１−１〜５０４−１が処理対象とされ、中間層５０１−１〜５０３−１に対応する処理層５１６が残され（すなわち、中間層５０１−１〜５０３−１を近似する処理層５１６が残され）、処理対象の中の最終層である中間層５０４−１が近似されなかった例が示されている。このとき、図１０に示すように、生成部４０１は、近似されなかった中間層５０４−１を含んだ中間層５０４−１〜５０７−７に処理対象を変更する。生成部４０１は、新たな処理対象に対応する生徒モデル群および補助層５１７を含んだ生徒モデル訓練用のネットワーク６０３を生成する。
【００８４】
生徒モデル訓練用のネットワーク６０３には、上記した処理層２０６と同等の処理層５１６が含まれ、上記した補助層２０７と同等の補助層５１７が含まれ、中間層５０５−１と同じ中間層５０５−２が含まれ、中間層５０６−１と同じ中間層５０６−２、５０６−３が含まれ、中間層５０７−１と同じ中間層５０７−２〜５０７−４が含まれている。
【００８５】
そして、最初の更新処理Ｓ２０１が終わった段階における生徒モデル訓練用のネットワーク６０２（生徒モデル訓練用のネットワーク６０１と同じ）の後段に生徒モデル訓練用のネットワーク６０３を接続し、生徒モデル訓練用のネットワーク６０２と生徒モデル訓練用のネットワーク６０３とが接続されたネットワークを、学習部４０２に出力する。その後、更新処理Ｓ２０１が再度実行される。かかる更新処理Ｓ２０１において、生徒モデル訓練用のネットワーク６０２は、訓練対象に含められてもよいし、訓練対象に含められなくてもよい。
【００８６】
このように、再構成部４０６は、教師モデルの入力側から一部ずつを処理対象として当該処理対象に対応する生徒モデルを構成し、当該一部に近似する生徒モデルを徐々に連結させていくことによって、教師モデルを必要最低限の層数で近似する生徒モデルを得ることができる。
【００８７】
［効果の説明］
以上に説明したように、本発明の第２の実施形態によれば、必要最低限の層数で生徒モデルを構築することができ、教師モデルに対して精度劣化を抑えながらパラメータ数を大幅に削減した生徒モデルを得ることができる。本発明の第１の実施形態と異なり、本発明の第２の実施形態では、教師モデルの層を流用しないため（教師モデルの一部ごとに生徒モデルへの近似が行われるため）、パラメータの削減量は、本発明の第１の実施形態と比較して本発明の第２の実施形態のほうが多くなると考えられる。
【００８８】
（３．ハードウェア構成例）
続いて、本発明の実施形態に係る情報処理装置１０のハードウェア構成例について説明する。以下では、本発明の実施形態に係る情報処理装置１０のハードウェア構成例として、コンピュータ９００のハードウェア構成例について説明する。なお、以下に説明するコンピュータ９００のハードウェア構成例は、情報処理装置１０のハードウェア構成の一例に過ぎない。したがって、情報処理装置１０のハードウェア構成は、以下に説明するコンピュータ９００のハードウェア構成から不要な構成が削除されてもよいし、新たな構成が追加されてもよい。
【００８９】
図１２は、本発明の実施形態に係る情報処理装置１０の例としてのコンピュータ９００のハードウェア構成を示す図である。コンピュータ９００は、ＣＰＵ（Ｃｅｎｔｒａｌ  Ｐｒｏｃｅｓｓｉｎｇ  Ｕｎｉｔ）９０１と、ＲＯＭ（Ｒｅａｄ  Ｏｎｌｙ  Ｍｅｍｏｒｙ）９０２と、ＲＡＭ（Ｒａｎｄｏｍ  Ａｃｃｅｓｓ  Ｍｅｍｏｒｙ）９０３と、ホストバス９０４と、ブリッジ９０５と、外部バス９０６と、インタフェース９０７と、入力装置９０８と、出力装置９０９と、ストレージ装置９１０と、通信装置９１１と、を備える。
【００９０】
ＣＰＵ９０１は、演算処理装置および制御装置として機能し、各種プログラムに従ってコンピュータ９００内の動作全般を制御する。また、ＣＰＵ９０１は、マイクロプロセッサであってもよい。ＲＯＭ９０２は、ＣＰＵ９０１が使用するプログラムや演算パラメータ等を記憶する。ＲＡＭ９０３は、ＣＰＵ９０１の実行において使用するプログラムや、その実行において適宜変化するパラメータ等を一時記憶する。これらはＣＰＵバス等から構成されるホストバス９０４により相互に接続されている。
【００９１】
ホストバス９０４は、ブリッジ９０５を介して、ＰＣＩ（Ｐｅｒｉｐｈｅｒａｌ  Ｃｏｍｐｏｎｅｎｔ  Ｉｎｔｅｒｃｏｎｎｅｃｔ／Ｉｎｔｅｒｆａｃｅ）バス等の外部バス９０６に接続されている。なお、必ずしもホストバス９０４、ブリッジ９０５および外部バス９０６を分離構成する必要はなく、１つのバスにこれらの機能を実装してもよい。
【００９２】
入力装置９０８は、マウス、キーボード、タッチパネル、ボタン、マイクロフォン、スイッチおよびレバー等ユーザが情報を入力するための入力手段と、ユーザによる入力に基づいて入力信号を生成し、ＣＰＵ９０１に出力する入力制御回路等から構成されている。コンピュータ９００を操作するユーザは、この入力装置９０８を操作することにより、コンピュータ９００に対して各種のデータを入力したり処理動作を指示したりすることができる。
【００９３】
出力装置９０９は、例えば、ＣＲＴ（Ｃａｔｈｏｄｅ  Ｒａｙ  Ｔｕｂｅ）ディスプレイ装置、液晶ディスプレイ（ＬＣＤ）装置、ＯＬＥＤ（Ｏｒｇａｎｉｃ  Ｌｉｇｈｔ  Ｅｍｉｔｔｉｎｇ  Ｄｉｏｄｅ）装置、ランプ等の表示装置およびスピーカ等の音声出力装置を含む。
【００９４】
ストレージ装置９１０は、データ格納用の装置である。ストレージ装置９１０は、記憶媒体、記憶媒体にデータを記録する記録装置、記憶媒体からデータを読み出す読出し装置および記憶媒体に記録されたデータを削除する削除装置等を含んでもよい。ストレージ装置９１０は、例えば、ＨＤＤ（Ｈａｒｄ  Ｄｉｓｋ  Ｄｒｉｖｅ）で構成される。このストレージ装置９１０は、ハードディスクを駆動し、ＣＰＵ９０１が実行するプログラムや各種データを格納する。
【００９５】
通信装置９１１は、例えば、ネットワークに接続するための通信デバイス等で構成された通信インタフェースである。また、通信装置９１１は、無線通信または有線通信のどちらに対応してもよい。
【００９６】
以上、本発明の実施形態に係る情報処理装置１０のハードウェア構成例について説明した。
【００９７】
（４．まとめ）
以上に説明したように、本発明の実施形態によれば、入力部と生成部と学習部と判定部と修正部と出力部とを備える情報処理装置が提供される。ここで、入力部は、複数の処理層を含んだ第１のニューラルネットワークを取得する。生成部は、前記第１のニューラルネットワークに対して各々が並列に設けられた複数の第２のニューラルネットワークを生成するとともに、前記複数の第２のニューラルネットワークそれぞれに出力を行って出力分布を記録する第３のニューラルネットワークを生成する。
【００９８】
学習部は、少なくとも前記複数の第２のニューラルネットワークそれぞれの出力と、前記第１のニューラルネットワークの出力とに基づく差分に関する値が最小化されるように、前記第３のニューラルネットワークの訓練を行う。判定部は、少なくとも１つ以上のデータに関する前記第３のニューラルネットワークの出力の統計量に基づいて前記複数の第２のニューラルネットワークから一のニューラルネットワークを決定する。修正部は、前記複数の第２のニューラルネットワークおよび前記第３のニューラルネットワークから、前記一のニューラルネットワーク以外の前記複数の第２のニューラルネットワークを削除するとともに、前記第３のニューラルネットワークを削除する。出力部は、前記一のニューラルネットワークを出力する。
【００９９】
かかる構成によれば、ニューラルネットワークの性能低下を抑えつつニューラルネットワークにおける層数を効率的に削減するための情報を得る技術が提供される。
【０１００】
以上、添付図面を参照しながら本発明の好適な実施形態について詳細に説明したが、本発明はかかる例に限定されない。本発明の属する技術の分野における通常の知識を有する者であれば、特許請求の範囲に記載された技術的思想の範疇内において、各種の変更例または修正例に想到し得ることは明らかであり、これらについても、当然に本発明の技術的範囲に属するものと了解される。
【０１０１】
例えば、本発明の第１の実施形態および第２の実施形態では、補助層からの出力としてＯｎｅ−ｈｏｔベクトルを利用する場合を主に想定した。しかし、補助層からの出力として、Ｓｏｆｔｍａｘ関数などといった他の関数の出力が用いられてもよい。ここで、Ｓｏｆｔｍａｘ関数は、ニューロンの出力値の合計が１になるように正規化する関数である。Ｓｏｆｔｍａｘ関数の出力を用いた場合、生徒モデルの処理層２０６から複数の分岐に同時に接続されてしまう。しかし、例えば、Ｓｏｆｔｍａｘ関数の出力値の統計量（例えば、最頻値など）に基づいて、生徒モデルの処理層２０６からの接続先を１つの分岐に決定すれば、Ｓｏｆｔｍａｘ関数が用いられる場合にも、本発明の実施形態が適用され得る。
【符号の説明】
【０１０２】
１０    情報処理装置
１００  入力部
１０１  生成部
１０２  学習部
１０３  判定部
１０４  修正部
１０５  出力部
１０６  再構成部
２００  入力データ
２０１〜２０４  中間層
２０５  出力データ
２０６  処理層
２０７  補助層
２０８  出力データ
２０９〜２１４  中間層
２１６  処理層
２１７  補助層
３００〜３０２  ネットワーク
４０    情報処理装置
４００  入力部
４０１  生成部
４０２  学習部
４０３  判定部
４０４  修正部
４０５  出力部
４０６  再構成部
５００  入力データ
５０１〜５０７  中間層
５１１  出力データ
５１６  処理層
５１７  補助層
６０１〜６０３  ネットワーク
【図１】
2020086738.tif 000005
【図２】
2020086738.tif 000006
【図３】
2020086738.tif 000007
【図４】
2020086738.tif 000008
【図５】
2020086738.tif 000009
【図６】
2020086738.tif 000010
【図７】
2020086738.tif 000011
【図８】
2020086738.tif 000012
【図９】
2020086738.tif 000013
【図１０】
2020086738.tif 000014
【図１１】
2020086738.tif 000015
【図１２】
2020086738.tif 000016