(57)【要約】【課題】大量の教師付きデータを用いることなくネットワークを安定して学習する。【解決手段】実施形態のネットワーク学習装置は、入力信号を第１信号に変換する第１ネットワークを学習する第１学習部、第１信号を第２信号に変換する第２ネットワークを学習する第２学習部、第２信号を出力信号に変換する第３ネットワークを学習する第３学習部を備える。第１学習部は、訓練用入力信号を訓練用第１信号にエンコードして訓練用入力信号にデコードする第１オートエンコーダのエンコード部分として第１ネットワークを学習する。第２学習部は、訓練用第１信号に対応する訓練用第２信号を教師データとしてバックプロパゲーションにより第２ネットワークを学習する。訓練用第２信号は、訓練用第３信号を訓練用第２信号にエンコードして訓練用第３信号にデコードする第２オートエンコーダのエンコード部分により生成される。【選択図】図２
2018156451.tif 000002
【特許請求の範囲】
【請求項１】
ニューラルネットワークを学習するネットワーク学習装置であって、
前記ニューラルネットワークは、入力信号を第１信号に変換する第１ネットワークと、前記第１信号を第２信号に変換する第２ネットワークと、前記第２信号を出力信号に変換する第３ネットワークと、を含み、
前記第１ネットワークを学習する第１学習部と、
前記第２ネットワークを学習する第２学習部と、
前記第３ネットワークを学習する第３学習部と、を備え、
前記第１学習部は、訓練用入力信号を該訓練用入力信号よりも低次元の訓練用第１信号にエンコードした後に前記訓練用第１信号を前記訓練用入力信号にデコードする第１オートエンコーダのエンコード部分として前記第１ネットワークを学習し、
前記第２学習部は、前記訓練用第１信号に対応する訓練用第２信号を教師データとして、バックプロパゲーションにより前記第２ネットワークを学習し、
前記訓練用第２信号は、訓練用第３信号を該訓練用第３信号よりも低次元の前記訓練用第２信号にエンコードした後に前記訓練用第２信号を前記訓練用第３信号にデコードする第２オートエンコーダのエンコード部分により生成される
ネットワーク学習装置。
【請求項２】
前記訓練用第３信号は、訓練用出力信号であり、
前記第３学習部は、前記第２オートエンコーダのデコード部分として前記第３ネットワークを学習する
請求項１に記載のネットワーク学習装置。
【請求項３】
前記第１学習部により学習された前記第１ネットワークと、前記第２学習部により学習された前記第２ネットワークと、前記第３学習部により学習された前記第３ネットワークとを接続した前記ニューラルネットワーク全体をファインチューニングする第４学習部をさらに備える
請求項１または２に記載のネットワーク学習装置。
【請求項４】
前記第１ネットワークと前記第３ネットワークの少なくとも一方は、畳込みニューラルネットを含む
請求項１乃至３のいずれか一項に記載のネットワーク学習装置。
【請求項５】
前記第１ネットワークと前記第２ネットワークと前記第３ネットワークの少なくともいずれかについて、ネットワークの層の深さ、層のノード数、ネットワークが畳込みニューラルネットを含む場合のチャンネル数またはフィルタサイズのうちの少なくとも１つをユーザ操作に応じて変更するパラメータ変更部をさらに備える
請求項１乃至４のいずれか一項に記載のネットワーク学習装置。
【請求項６】
前記第１オートエンコーダの再現度と前記第２オートエンコーダの再現度の少なくとも一方を表示させる表示制御部をさらに備える
請求項１乃至５のいずれか一項に記載のネットワーク学習装置。
【請求項７】
複数の情報処理装置を用いてニューラルネットワークを学習するネットワーク学習システムであって、
前記ニューラルネットワークは、入力信号を第１信号に変換する第１ネットワークと、前記第１信号を第２信号に変換する第２ネットワークと、前記第２信号を出力信号に変換する第３ネットワークと、を含み、
前記第１ネットワークを学習する第１学習部と、
前記第２ネットワークを学習する第２学習部と、
前記第３ネットワークを学習する第３学習部と、を備え、
前記第１学習部は、訓練用入力信号を該訓練用入力信号よりも低次元の訓練用第１信号にエンコードした後に前記訓練用第１信号を前記訓練用入力信号にデコードする第１オートエンコーダのエンコード部分として前記第１ネットワークを学習し、
前記第２学習部は、前記訓練用第１信号に対応する訓練用第２信号を教師データとして、バックプロパゲーションにより前記第２ネットワークを学習し、
前記訓練用第２信号は、訓練用第３信号を該訓練用第３信号よりも低次元の前記訓練用第２信号にエンコードした後に前記訓練用第２信号を前記訓練用第３信号にデコードする第２オートエンコーダのエンコード部分により生成される
ネットワーク学習システム。
【請求項８】
ニューラルネットワークを学習するネットワーク学習方法であって、
前記ニューラルネットワークは、入力信号を第１信号に変換する第１ネットワークと、前記第１信号を第２信号に変換する第２ネットワークと、前記第２信号を出力信号に変換する第３ネットワークと、を含み、
前記第１ネットワークを学習するステップと、
前記第２ネットワークを学習するステップと、
前記第３ネットワークを学習するステップと、を含み、
前記第１ネットワークを学習するステップでは、訓練用入力信号を該訓練用入力信号よりも低次元の訓練用第１信号にエンコードした後に前記訓練用第１信号を前記訓練用入力信号にデコードする第１オートエンコーダのエンコード部分として前記第１ネットワークを学習し、
前記第２ネットワークを学習するステップでは、前記訓練用第１信号に対応する訓練用第２信号を教師データとして、バックプロパゲーションにより前記第２ネットワークを学習し、
前記訓練用第２信号は、訓練用第３信号を該訓練用第３信号よりも低次元の前記訓練用第２信号にエンコードした後に前記訓練用第２信号を前記訓練用第３信号にデコードする第２オートエンコーダのエンコード部分により生成される
ネットワーク学習方法。
【請求項９】
ニューラルネットワークを学習する機能をコンピュータに実現させるためのプログラムであって、
前記ニューラルネットワークは、入力信号を第１信号に変換する第１ネットワークと、前記第１信号を第２信号に変換する第２ネットワークと、前記第２信号を出力信号に変換する第３ネットワークと、を含み、
前記コンピュータに、
前記第１ネットワークを学習するステップと、
前記第２ネットワークを学習するステップと、
前記第３ネットワークを学習するステップと、を実行させ、
前記第１ネットワークを学習するステップでは、訓練用入力信号を該訓練用入力信号よりも低次元の訓練用第１信号にエンコードした後に前記訓練用第１信号を前記訓練用入力信号にデコードする第１オートエンコーダのエンコード部分として前記第１ネットワークを学習し、
前記第２ネットワークを学習するステップでは、前記訓練用第１信号に対応する訓練用第２信号を教師データとして、バックプロパゲーションにより前記第２ネットワークを学習し、
前記訓練用第２信号は、訓練用第３信号を該訓練用第３信号よりも低次元の前記訓練用第２信号にエンコードした後に前記訓練用第２信号を前記訓練用第３信号にデコードする第２オートエンコーダのエンコード部分により生成される
プログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明の実施形態は、ネットワーク学習装置、ネットワーク学習システム、ネットワーク学習方法およびプログラムに関する。
【背景技術】
【０００２】
ニューラルネットワークを用いて画像を解析する技術がある。例えば、画像を入力として、その画像に映る被写体の構造情報など、被写体に関する所望の信号を出力するディープニューラルネットワークが提案されている。このようなネットワークの学習には、一般に、大量の教師付きデータが必要とされる。つまり、大量の教師付きデータが得られる環境でないと、このようなネットワークを安定して学習することが難しい。このため、大量の教師付きデータを用いることなくネットワークを安定して学習できる新規な技術が求められている。ネットワークの学習とは、ネットワークパラメータ（ネットワークを構成する各ノードの重みやバイアス）を最適化する処理である。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】Girdhar,  Rohit,  et  al.  "Learning  a  Predictable  and  Generative  Vector  Representation  for  Objects."  European  Conference  on  Computer  Vision.  Springer  International  Publishing,  2016.
【発明の概要】
【発明が解決しようとする課題】
【０００４】
本発明が解決しようとする課題は、大量の教師付きデータを用いることなくネットワークを安定して学習できるネットワーク学習装置、ネットワーク学習システム、ネットワーク学習方法およびプログラムを提供することである。
【課題を解決するための手段】
【０００５】
実施形態のネットワーク学習装置は、ニューラルネットワークを学習するネットワーク学習装置である。前記ニューラルネットワークは、入力信号を第１信号に変換する第１ネットワークと、前記第１信号を第２信号に変換する第２ネットワークと、前記第２信号を出力信号に変換する第３ネットワークとを含む。実施形態のネットワーク学習装置は、第１学習部と、第２学習部と、第３学習部と、を備える。第１学習部は、前記第１ネットワークを学習する。第２学習部は、前記第２ネットワークを学習する。第３学習部は、前記第３ネットワークを学習する。前記第１学習部は、訓練用入力信号を該訓練用入力信号よりも低次元の訓練用第１信号にエンコードした後に前記訓練用第１信号を前記訓練用入力信号にデコードする第１オートエンコーダのエンコード部分として前記第１ネットワークを学習する。前記第２学習部は、前記訓練用第１信号に対応する訓練用第２信号を教師データとして、バックプロパゲーションにより前記第２ネットワークを学習する。前記訓練用第２信号は、訓練用第３信号を該訓練用第３信号よりも低次元の前記訓練用第２信号にエンコードした後に前記訓練用第２信号を前記訓練用第３信号にデコードする第２オートエンコーダのエンコード部分により生成される。
【図面の簡単な説明】
【０００６】
【図１】ニューラルネットワークの概要を示す図。
【図２】第１実施形態のネットワーク学習装置の機能的な構成例を示すブロック図。
【図３】第１オートエンコーダを説明する模式図。
【図４】第２オートエンコーダを説明する模式図。
【図５】第１実施形態のネットワーク学習装置の処理手順を示すフローチャート。
【図６】変形例１のネットワーク学習装置の機能的な構成例を示すブロック図。
【図７】変形例１のネットワーク学習装置の処理手順を示すフローチャート。
【図８】第２実施形態のネットワーク学習装置の機能的な構成例を示すブロック図。
【図９】ネットワーク学習装置のハードウェア構成例を示すブロック図。
【発明を実施するための形態】
【０００７】
以下、添付図面を参照しながら、実施形態のネットワーク学習装置、ネットワーク学習システム、ネットワーク学習方法およびプログラムについて詳細に説明する。なお、以下の説明において、同様の機能を持つ構成要素については同一の符号を付して、重複した説明を適宜省略する。
【０００８】
＜第１実施形態＞
図１は、本実施形態において学習の対象として想定するニューラルネットワークの概要を示す図である。本実施形態で想定するニューラルネットワークは、図１に示すように、第１ネットワークＮ１と、第２ネットワークＮ２と、第３ネットワークＮ３とを含む。
【０００９】
第１ネットワークＮ１は、入力信号Ｓｉｎを第１信号Ｓ１に変換するネットワークである。入力信号Ｓｉｎは、例えば、被写体として人の顔を撮影した２次元画像である。第１ネットワークＮ１は、この入力信号Ｓｉｎが入力されると第１信号Ｓ１を出力する。第１ネットワークＮ１は、好ましくは、２層以上のニューラルネットワークによって構成され、畳込みニューラルネット（ＣＮＮ：Convolutional  Neural  Network）を含む。畳込みニューラルネットは、画像の局所的な特徴を効率よく抽出できることが知られており、主に画像処理の分野で応用されている。
【００１０】
第２ネットワークＮ２は、第１信号Ｓ１を第２信号Ｓ２に変換するネットワークである。第１信号Ｓ１および第２信号Ｓ２は、入力信号Ｓｉｎよりも低次元の信号である。第２ネットワークＮ２は、第１ネットワークＮ１の出力である第１信号Ｓ１が入力されると第２信号Ｓ２を出力する。第２ネットワークＮ２は、１層以上のニューラルネットワークにより構成される。
【００１１】
第３ネットワークＮ３は、第２信号Ｓ２を出力信号Ｓｏｕｔに変換するネットワークである。出力信号Ｓｏｕｔは、例えば、入力信号Ｓｉｎとして第１ネットワークＮ１に入力された２次元画像に映る人の顔を表現した３次元点列の集合である。第３ネットワークＮ３は、第２ネットワークＮ２の出力である第２信号Ｓ２が入力されるとこの出力信号Ｓｏｕｔを出力する。第３ネットワークＮ３は、２層以上のニューラルネットワークにより構成される。上述の３次元点列の集合ではなく、画像信号を出力信号Ｓｏｕｔとして出力する場合は、第１ネットワークＮ１と同様に、畳込みニューラルネットを含むことが好ましい。
【００１２】
図１に示すニューラルネットワークは、例えば、人の顔が撮影された２次元画像から顔の３次元点列の集合を得るディープニューラルネットワークであり、人の顔から構造情報を推定する用途で利用される。本実施形態のネットワーク学習装置は、このようなニューラルネットワークを学習するために用いられる。なお、図１に示すニューラルネットワークは、人の顔以外を被写体として撮影した２次元画像を入力信号Ｓｉｎとする構成であってもよい。この場合も、本実施形態のネットワーク学習装置は、以下に示す方法により、このニューラルネットワークを安定して学習することができる。また、図１に示すニューラルネットワークは、２次元の動画像や、Ｘ線ＣＴで撮影されたボリュームデータなどの３次元画像を入力信号Ｓｉｎとする構成であってもよい。この場合も、本実施形態のネットワーク学習装置は、以下に示す方法により、このニューラルネットワークを安定して学習することができる。また、図１に示すニューラルネットワークは、３次元点列の集合に限らず、２次元の輪郭線や特徴点位置、対象物の位置姿勢情報、デプス情報などを出力信号Ｓｏｕｔとして出力する構成であってもよい。この場合も、本実施形態のネットワーク学習装置は、以下に示す方法により、このニューラルネットワークを安定して学習することができる。
【００１３】
図２は、本実施形態のネットワーク学習装置１０の機能的な構成例を示すブロック図である。本実施形態のネットワーク学習装置１０は、図２に示すように、第１学習部１１と、第２学習部１２と、第３学習部１３とを備える。
【００１４】
第１学習部１１は、図１に示すニューラルネットワークの第１ネットワークＮ１を学習する。第１学習部１１は、オートエンコーダを用いて第１ネットワークＮ１を学習する。オートエンコーダとは、出力が入力をできるだけ再現できるようにネットワークパラメータを最適化することで、効率よくデータの次元圧縮を行えるようなニューラルネットワークを学習する仕組みである。オートエンコーダは教師なし学習であるため、入力さえあれば学習が可能である。そのため、大量の教師付きデータを用意する必要がなく、学習が容易となる。
【００１５】
図３は、第１ネットワークＮ１の学習に用いるオートエンコーダ（以下、「第１オートエンコーダ」と呼ぶ）２１を説明する模式図である。第１オートエンコーダ２１は、図３に示すように、訓練用入力信号Ｓｉｎ＿ｔをこの訓練用入力信号Ｓｉｎ＿ｔよりも低次元の訓練用第１信号Ｓ１＿ｔにエンコードした後に、訓練用第１信号Ｓ１＿ｔを訓練用入力信号Ｓｉｎ＿ｔにデコードするネットワークである。第１オートエンコーダ２１は、訓練用入力信号Ｓｉｎ＿ｔを訓練用第１信号Ｓ１＿ｔに変換するエンコーダ２１ａと、訓練用第１信号Ｓ１＿ｔを訓練用入力信号Ｓｉｎ＿ｔに変換するデコーダ２１ｂとを有する。訓練用入力信号Ｓｉｎ＿ｔは、図１に示すニューラルネットワークの第１ネットワークＮ１に入力される入力信号Ｓｉｎと同じタイプの信号であり、第１オートエンコーダ２１の入力として用いられる。
【００１６】
第１学習部１１は、図３に示す第１オートエンコーダ２１のエンコーダ２１ａ（エンコード部分）として、図１に示すニューラルネットワークの第１ネットワークＮ１を学習する。例えば、第１ネットワークＮ１の全体を１つのエンコーダ２１ａとみなし、第１オートエンコーダ２１により第１ネットワークＮ１全体を学習する。学習済みの第１ネットワークＮ１は、入力信号Ｓｉｎを第１信号Ｓ１に変換するエンコーダであると解釈できる。なお、下記の参考文献に開示される方法により、第１ネットワークＮ１の１層ごとにオートエンコーダを構成して学習を行ってもよい。
（参考文献）Hinton,  Geoffrey  E.,  and  Ruslan  R.  Salakhutdinov.  "Reducing  the  dimensionality  of  data  with  neural  networks."  Science  313.5786  (2006):  504-507.
【００１７】
第３学習部１３は、図１に示すニューラルネットワークの第３ネットワークＮ３を学習する。第３学習部１３は、第１学習部１１と同様に、オートエンコーダを用いて第３ネットワークＮ３を学習する。
【００１８】
図４は、第３ネットワークＮ３の学習に用いるオートエンコーダ（以下、「第２オートエンコーダ」と呼ぶ）２２を説明する模式図である。第２オートエンコーダ２２は、図４に示すように、訓練用出力信号Ｓｏｕｔ＿ｔをこの訓練用入力信号Ｓｏｕｔ＿ｔよりも低次元の訓練用第２信号Ｓ２＿ｔにエンコードした後に、訓練用第２信号Ｓ２＿ｔを訓練用出力信号Ｓｏｕｔ＿ｔにデコードするネットワークである。第２オートエンコーダ２２は、訓練用出力信号Ｓｏｕｔ＿ｔを訓練用第２信号Ｓ２＿ｔに変換するエンコーダ２２ａと、訓練用第２信号Ｓ２＿ｔを訓練用出力信号Ｓｏｕｔ＿ｔに変換するデコーダ２２ｂとを有する。訓練用出力信号Ｓｏｕｔ＿ｔは、図１に示すニューラルネットワークの第３ネットワークＮ３が出力する出力信号Ｓｏｕｔと同じタイプの信号であり、第２オートエンコーダ２２の入力として用いられる。なお、第３ネットワークＮ３の学習に用いる訓練用出力信号Ｓｏｕｔ＿ｔは、第１ネットワークＮ１の学習に用いる訓練用入力信号Ｓｉｎ＿ｔと対になっている必要はない。例えば、訓練用出力信号Ｓｏｕｔ＿ｔとして３次元点列の集合を用いる場合、この３次元点列の集合は、３ＤＣＡＤや数値モデルなどでシミュレーションにより生成したデータでもよい。
【００１９】
第３学習部１３は、図４に示す第２オートエンコーダ２２のデコーダ２２ｂ（デコード部分）として、図１に示すニューラルネットワークの第３ネットワークＮ３を学習する。例えば、第３ネットワークＮ３の全体を１つのデコーダ２２ｂとみなし、第２オートエンコーダ２２により第３ネットワークＮ３全体を学習する。学習済みの第３ネットワークＮ３は、第２信号Ｓ２を出力信号Ｓｏｕｔに変換するデコーダであると解釈できる。なお、上記参考文献に開示される方法により、第３ネットワークＮ３の１層ごとにオートエンコーダを構成して学習を行ってもよい。
【００２０】
第２学習部１２は、図１に示すニューラルネットワークの第２ネットワークＮ２を学習する。第２学習部１２は、訓練用第１信号Ｓ１＿ｔに対応する訓練用第２信号Ｓ２＿ｔを教師データとして、バックプロパゲーション（誤差逆伝播法）により第２ネットワークＮ２を学習する。
【００２１】
第２ネットワークＮ２の学習に用いる訓練用第１信号Ｓ１＿ｔは、学習済みの第１ネットワークＮ１に対応する第１オートエンコーダ２１、つまり、ネットワークパラメータが最適化された第１オートエンコーダ２１に訓練用入力信号Ｓｉｎ＿ｔを入力したときのエンコーダ２１ａの出力である。また、第２ネットワークＮ２の学習に用いる教師データとしての訓練用第２信号Ｓ２＿ｔは、学習済みの第１ネットワークＮ１に入力した訓練用第１信号Ｓｉｎ＿ｔと対をなす訓練用出力信号Ｓｏｕｔ＿ｔを、学習済みの第３ネットワークＮ３に対応する第２オートエンコーダ２２、つまり、ネットワークパラメータが最適化された第２オートエンコーダ２２に入力したときのエンコーダ２２ａの出力である。すなわち、第２ネットワークＮ２の学習に用いる教師データとしての訓練用第２信号Ｓ２＿ｔは、第２オートエンコーダ２２のエンコーダ２２ａにより生成される。
【００２２】
第２学習部１２は、第２ネットワークＮ２に訓練用第１信号Ｓ１＿ｔを入力したときの出力が訓練用第２信号Ｓ２＿ｔに近づくように、バックプロパゲーションにより第２ネットワークＮ２のネットワークパラメータを最適化する。学習済みの第２ネットワークＮ２は、第１信号Ｓ１を第２信号Ｓ２に変換するトランスコーダであると解釈できる。
【００２３】
図５は、本実施形態のネットワーク学習装置１０の処理手順を示すフローチャートである。本実施形態のネットワーク学習装置１０は、図５に示すように、まず、第１学習部１１による第１ネットワークＮ１の学習（ステップＳ１０１）と、第３学習部１３による第３ネットワークＮ３の学習（ステップＳ１０２）とを行う。これら第１ネットワークＮ１の学習と第３ネットワークＮ３の学習は、それぞれ第１オートエンコーダ２１と第２オートエンコーダ２２を用いて互いに独立して行われ、順序の依存関係はない。そして、本実施形態のネットワーク学習装置１０は、第１ネットワークＮ１の学習と第３ネットワークＮ３の学習が終了した後に、第２学習部１２による第２ネットワークＮ２の学習を行う（ステップＳ１０３）。
【００２４】
以上説明したように、本実施形態のネットワーク学習装置１０は、オートエンコーダによる教師なし学習により第１ネットワークＮ１と第３ネットワークＮ３とを互いに独立して学習し、低次元化された第１信号Ｓ１を第２信号Ｓ２に変換する第２ネットワークＮ２のみを、バックプロパゲーションにより学習する構成である。したがって、本実施形態のネットワーク学習装置１０は、大量の教師付きデータを用いることなくネットワークを安定して学習することができる。
【００２５】
一般的にディープニューラルネットワークによって画像から構造情報を出力する場合、入力画像と、その画像から出力したい構造情報の教師データとを、ひとつの組にして用意する。それら画像と構造情報のセット群を学習データとしてEnd-to-Endでディープニューラルネットワークを学習する。そのため、新規に対象物を設定してディープニューラルネットワークを学習する場合、入力画像が十分集まるまではディープニューラルネットワークの学習が安定しない上に、大量の入力画像へ教師データを教示するのは手間がかかる。
【００２６】
これに対し、本実施形態のネットワーク学習装置１０は、第１ネットワークＮ１および第３ネットワークＮ３を学習するのに教師付きデータが不要になる。また、第１信号Ｓ１および第２信号Ｓ２はともに、オートエンコーダによって元の信号よりも低次元に変換された信号である。このため、これら第１信号Ｓ１を第２信号Ｓ２に変換する第２ネットワークＮ２は、比較的浅いニューラルネットワークで実現できる。これにより、第２ネットワークＮ２を安定して学習するのに必要な教師付きデータの数は、図１に示すネットワーク全体を初めからEnd-to-Endで学習する場合に比べて、大幅に少なくすることが可能となる。この結果、教師付きデータが少ない場合でも安定してディープニューラルネットワークを学習することができる。
【００２７】
非特許文献１には、入力信号を低次元の第１信号に変換する第１ネットワークと、第１信号を出力信号に変換する第２ネットワークを含むニューラルネットワークの学習方法として、第１ネットワークにＩｍａｇｅＮｅｔデータベースを用いてプレトレーニングされたネットワークを用い、第２ネットワークを、教師信号を低次元に変換するオートエンコーダによって学習する方法が提案されている。しかし、この方法では、プレトレーニングされたネットワークを使えない場合、例えば、ネットワーク構造を任意に変更したい場合や、３次元画像を扱いたい場合などには、大量の教師付きデータを用いて第１ネットワークを学習し直す必要がある。また、第１ネットワークを単体で学習する際の教師信号は、オートエンコーダによって学習された第２ネットワークのエンコード部分の出力である。そのため、第２ネットワークのオートエンコーダによる学習が終わってからでないと第１ネットワークを学習できず、学習時間が長くなる。
【００２８】
これに対し、本実施形態のネットワーク学習装置１０では、第１ネットワークＮ１と第３ネットワークＮ３の双方を独立してオートエンコーダにより学習するので、非特許文献１に開示される方法の問題点を解消し、大量の教師付きデータを用いることなくネットワークを安定して学習することができる。
【００２９】
（変形例１）
本実施形態のネットワーク学習装置１０は、第２ネットワークＮ２の学習が終了した後に、既に学習済みの第１ネットワークＮ１と第３ネットワークＮ３を第２ネットワークＮ２に接続し、ニューラルネットワーク全体をファインチューニングしてもよい。
【００３０】
図６は、本変形例のネットワーク学習装置１０の機能的な構成例を示すブロック図である。図２に示した構成との違いは、第４学習部１４が追加されている点である。第４学習部１４は、第１学習部１１により学習された第１ネットワークＮ１と、第２学習部１２により学習された第２ネットワークＮ２と、第３学習部１３により学習された第３ネットワークＮ３とを接続したニューラルネットワーク全体を、バックプロパゲーションによりファインチューニングする。
【００３１】
図７は、本変形例のネットワーク学習装置１０の処理手順を示すフローチャートである。図５に示した処理手順との違いは、ステップＳ１０３の処理の後にステップＳ１０４の処理が追加されている点である。本変形例のネットワーク学習装置１０は、ステップＳ１０３において第２学習部１２による第２ネットワークＮ２の学習が終了した後、ステップＳ１０１で学習済みの第１ネットワークＮ１と、ステップＳ１０３で学習済みの第２ネットワークＮ２と、ステップＳ１０２で学習済みの第３ネットワークＮ３とを接続する。そして、ステップＳ１０４において、このニューラルネットワーク全体に対して、第４学習部１４によるファインチューニングを行う。
【００３２】
以上のように、本変形例では、第１ネットワークＮ１と第２ネットワークＮ２と第３ネットワークＮ３とを個別に学習するだけでなく、これらを接続したニューラルネットワーク全体をファインチューニングするようにしているので、ニューラルネットワークのネットワークパラメータをさらに最適化して、ニューラルネットワークの精度向上を図ることができる。
【００３３】
なお、本変形例では、第２学習部１２により学習済みの第２ネットワークＮ２を含むニューラルネットワークをファインチューニングするが、ネットワークパラメータに任意の初期値を設定した第２ネットワークＮ２を含むニューラルネットワークをファインチューニングする構成であってもよい。すなわち、第４学習部１４によるニューラルネットワーク全体のファインチューニングにより、第２ネットワークＮ２のネットワークパラメータが最適化される構成であってもよい。
【００３４】
（変形例２）
本実施形態においては、出力信号Ｓｏｕｔとして３次元点列の集合を出力する第３ネットワークＮ３を含むニューラルネットワークを学習の対象として想定したが、第３ネットワークＮ３は、第２信号Ｓ２と同様に低次元の出力信号Ｓｏｕｔを出力するネットワークであってもよい。例えば、第３ネットワークＮ３は、第２ネットワークＮ２が出力する第２信号Ｓ２を、顔のパーツ（目や鼻）の位置を示す位置ベクトルや顔の向きを示す方向ベクトルなどの低次元の出力信号Ｓｏｕｔに変換する単純な全結合ニューラルネットワークであってもよい。
【００３５】
この場合、第３学習部１３は、図４に示す第２オートエンコーダ２２のデコーダ２２ｂ（デコード部分）として第３ネットワークＮ３を学習するのではなく、例えば、第２オートエンコーダ２２の入力に用いる３次元点列の集合（上述の訓練用出力信号Ｓｏｕｔ＿ｔ）から計算される上述の位置ベクトルや方向ベクトルなどを教師データとし、第２オートエンコーダ２２のエンコーダ２２ａにより生成される訓練用第２信号Ｓ２＿ｔを教師データに近づけるニューラルネットワークとして、バックプロパゲーションにより第３ネットワークＮ３を学習する。
【００３６】
なお、本変形例の場合も、第２学習部１２は、第２オートエンコーダ２２のエンコーダ２２ａにより生成される訓練用第２信号Ｓ２＿ｔを教師データとして用い、バックプロパゲーションにより第２ネットワークＮ２を学習すればよい。
【００３７】
＜第２実施形態＞
次に、第２実施形態について説明する。本実施形態のネットワーク学習装置１０は、上述の第１実施形態の機能に加えて、ニューラルネットワークの構造上のパラメータをユーザ操作に応じて変更する機能と、第１オートエンコーダ２１や第２オートエンコーダ２２の再現度を表示させる機能とをさらに備える。
【００３８】
図８は、本実施形態のネットワーク学習装置１０の機能的な構成例を示すブロック図である。本実施形態のネットワーク学習装置１０は、図８に示すように、図２に示した構成に加えて、パラメータ変更部１５と、表示制御部１６とをさらに備える。
【００３９】
パラメータ変更部１５は、ユーザ操作に応じて、図１に示すニューラルネットワークの構造上のパラメータを変更する。ニューラルネットワークの構造上のパラメータとしては、例えば、第１ネットワークＮ１、第２ネットワークＮ２、および第３ネットワークＮ３それぞれの層の深さ、層のノード数、第１ネットワークＮ１と第３ネットワークＮ３の少なくとも一方が畳込みニューラルネットを含む場合のチャンネル数またはフィルタサイズなどが挙げられる。パラメータ変更部１５は、ユーザが入力デバイスを用いてこれらのパラメータのいずれかを調整する操作を行うと、対象となるパラメータをそのユーザ操作に応じて変更する。
【００４０】
パラメータ変更部１５がユーザ操作に応じて上記のパラメータを変更することにより、図１に示すニューラルネットワークの構造を調整することができる。例えば、第１ネットワークＮ１の出力層のノード数と第２ネットワークＮ２の入力層のノード数を変更することにより、第１信号Ｓ１の次元数を調整できる。また、第２ネットワークＮ２の出力層のノード数と第３ネットワークの入力層のノード数を変更することにより、第２信号Ｓ２の次元数を調整できる。
【００４１】
表示制御部１６は、第１オートエンコーダ２１の再現度と第２オートエンコーダ２２の再現度の少なくとも一方を表示装置に表示させる。第１オートエンコーダ２１は、上述のように、訓練用入力信号Ｓｉｎ＿ｔをエンコーダ２１ａにより訓練用第１信号Ｓ１＿ｔにエンコードした後に、訓練用第１信号Ｓ１＿ｔをデコーダ２１ｂにより訓練用入力信号Ｓｉｎ＿ｔにデコードする。このとき、訓練用入力信号Ｓｉｎ＿ｔとして例えば人の顔を映した２次元画像を用いる場合、表示制御部１６は、エンコーダ２１ａに入力された２次元画像と、デコーダ２１ｂが出力する２次元画像とを並べて表示装置に表示させたり、これら２つの２次元画像の差分画像を表示装置に表示させたりすることにより、第１オートエンコーダ２１の再現度を表示させる。表示装置に表示された第１オートエンコーダ２１の再現度を参照することで、ユーザは、第１ネットワークＮ１が適切に学習されているかどうかを確認することができる。なお、ここでは第１オートエンコーダ２１の再現度を表示させる例として、画像を表示する例を挙げたが、第１オートエンコーダ２１の再現度を画像の輝度差の合計や平均値などで数値化して表示してもよい。
【００４２】
また、第２オートエンコーダ２２は、上述のように、訓練用出力信号Ｓｏｕｔ＿ｔをエンコーダ２２ａにより訓練用第２信号Ｓ２＿ｔにエンコードした後に、訓練用第２信号Ｓ２＿ｔをデコーダ２２ｂにより訓練用出力信号Ｓｏｕｔ＿ｔにデコードする。このとき、訓練用出力信号Ｓｏｕｔ＿ｔとして例えば３次元点列の集合を用いる場合、表示制御部１６は、エンコーダ２２ａに入力された３次元点列の集合と、デコーダ２２ｂが出力する３次元点列の集合とを並べて表示装置に表示させたり、点列のずれ量を表示装置に表示させたりすることにより、第２オートエンコーダ２２の再現度を表示させる。表示装置に表示された第２オートエンコーダ２２の再現度を参照することで、ユーザは、第３ネットワークＮ３が適切に学習されているかどうかを確認することができる。なお、ここでは第２オートエンコーダ２２の再現度を表示させる例として、画像や点列のずれ量を表示する例を挙げたが、第２オートエンコーダ２２の再現度を点列のずれ量の合計や平均値などで数値化して表示してもよい。
【００４３】
以上説明したように、本実施形態のネットワーク学習装置１０は、上述の第１実施形態のネットワーク学習装置１０の構成に加えて、学習の対象となるニューラルネットワークの構造上のパラメータをユーザ操作に応じて変更するパラメータ変更部１５と、第１オートエンコーダ２１の再現度と第２オートエンコーダ２２の再現度の少なくとも一方を表示装置に表示させる表示制御部１６とをさらに備える。したがって、上述の第１実施形態のネットワーク学習装置１０と同様に、大量の教師付きデータを用いることなくネットワークを安定して学習することができることに加え、第１オートエンコーダ２１や第２オートエンコーダ２２を用いた学習の成否や、ニューラルネットワークの構造上のパラメータの妥当性をユーザに確認させながらニューラルネットワークの学習を進めることができ、学習の安定性を向上させることができる。
【００４４】
＜補足説明＞
上述の各実施形態のネットワーク学習装置１０は、例えば、汎用のコンピュータ装置（情報処理装置）を基本ハードウェアとして用いることで実現することが可能である。すなわち、上述のネットワーク学習装置１０の各部の機能は、汎用のコンピュータ装置に搭載されたプロセッサにプログラムを実行させることにより実現することができる。このとき、ネットワーク学習装置１０は、上記のプログラムをコンピュータ装置にあらかじめインストールすることで実現してもよいし、ＣＤ−ＲＯＭなどの記憶媒体に記憶して、あるいはネットワークを介して上記のプログラムを配布して、このプログラムをコンピュータ装置に適宜インストールすることで実現してもよい。
【００４５】
図９は、実施形態のネットワーク学習装置１０のハードウェア構成例を示すブロック図である。ネットワーク学習装置１０は、例えば図９に示すように、ＣＰＵ（Central  Processing  Unit）などのプロセッサ１０１と、ＲＡＭ（Random  Access  Memory）やＲＯＭ（Read  Only  Memory）などのメモリ１０２と、ＨＤＤ（Hard  Disk  Drive）やＳＳＤ（Solid  State  Drive）などのストレージデバイス１０３と、液晶パネルなどの表示装置１０６やキーボード、マウス、タッチパネルなどの入力デバイス１０７といった機器を接続するための機器Ｉ／Ｆ１０４と、装置外部と通信を行う通信Ｉ／Ｆ１０５と、これら各部を接続するバス１０８とを備えた一般的なコンピュータとしてのハードウェア構成を有する。
【００４６】
ネットワーク学習装置１０が図９のようなハードウェア構成を有する場合、例えば、プロセッサ１０１がメモリ１０２を利用して、ストレージデバイス１０３などに格納されたプログラムを読み出して実行することにより、上述の各部（第１学習部１１、第２学習部１２、第３学習部１３、第４学習部１４、パラメータ変更部１５、および表示制御部１６）の機能を実現することができる。
【００４７】
なお、上述のネットワーク学習装置１０の各部の機能は、その一部または全部を、ＡＳＩＣ（Application  Specific  Integrated  Circuit）やＦＰＧＡ（Field-Programmable  Gate  Array）などの専用のハードウェア（汎用のプロセッサではなく専用のプロセッサ）により実現することもできる。また、複数のプロセッサを用いて上述した各部の機能を実現する構成であってもよい。
【００４８】
また、実施形態のネットワーク学習装置１０は、複数台のコンピュータ装置（情報処理装置）を用い、上述の各部の機能を複数台のコンピュータ装置に分散して実現したネットワーク学習システムとして構成してもよい。また、実施形態のネットワーク学習装置１０は、クラウドシステム上で動作する仮想マシンであってもよい。
【００４９】
以上、本発明の実施形態を説明したが、ここで説明した実施形態は、例として提示したものであり、発明の範囲を限定することは意図していない。ここで説明した新規な実施形態は、その他の様々な形態で実施されることが可能であり、発明の要旨を逸脱しない範囲で、種々の省略、置き換え、変更を行うことができる。ここで説明した実施形態やその変形は、発明の範囲や要旨に含まれるとともに、特許請求の範囲に記載された発明とその均等の範囲に含まれる。
【符号の説明】
【００５０】
１０  ネットワーク学習装置
１１  第１学習部
１２  第２学習部
１３  第３学習部
１４  第４学習部
１５  パラメータ変更部
１６  表示制御部
Ｎ１  第１ネットワーク
Ｎ２  第２ネットワーク
Ｎ３  第３ネットワーク
Ｓｉｎ  入力信号
Ｓｉｎ＿ｔ  訓練用入力信号
Ｓ１  第１信号
Ｓ１＿ｔ  訓練用第１信号
Ｓ２  第２信号
Ｓ２＿ｔ  訓練用第２信号
Ｓｏｕｔ  出力信号
Ｓｏｕｔ＿ｔ  訓練用出力信号
【図１】
2018156451.tif 000003
【図２】
2018156451.tif 000004
【図３】
2018156451.tif 000005
【図４】
2018156451.tif 000006
【図５】
2018156451.tif 000007
【図６】
2018156451.tif 000008
【図７】
2018156451.tif 000009
【図８】
2018156451.tif 000010
【図９】
2018156451.tif 000011