(57)【要約】  ニューラルネットワークシステムが、学習時及び運用時共にデータを取得する主入力層と、前記学習時及び前記運用時のうち前記学習時にのみデータを取得する補助入力層と、前記主入力層及び前記補助入力層の両方からの出力を用いて学習を行った後、前記主入力層及び前記補助入力層のうち前記主入力層のみからの出力を用いて、前記主入力層及び前記補助入力層の両方からの出力を用いた場合と同じ演算結果を算出するように学習を行う第１部分ネットワークと、前記第１部分ネットワークからの出力を受けて学習及び運用時の演算を行う第２部分ネットワークと、を備える。
2019031305.tif 000002
【特許請求の範囲】
【請求項１】
学習時及び運用時共にデータを取得する主入力層と、
前記学習時及び前記運用時のうち前記学習時にのみデータを取得する補助入力層と、
前記主入力層及び前記補助入力層の両方からの出力を用いて学習を行った後、前記主入力層及び前記補助入力層のうち前記主入力層のみからの出力を用いて、前記主入力層及び前記補助入力層の両方からの出力を用いた場合と同じ演算結果を算出するように学習を行う第１部分ネットワークと、
前記第１部分ネットワークからの出力を受けて学習及び運用時の演算を行う第２部分ネットワークと、
を備えるニューラルネットワークシステム。
【請求項２】
前記補助入力層から前記第１部分ネットワークへの出力に、学習に対する影響度を調整するための係数である非浸透率を乗算するスイッチャー部を備える、請求項１に記載のニューラルネットワークシステム。
【請求項３】
前記スイッチャー部は、前記学習時に、前記補助入力層から前記第１部分ネットワークへの出力の、学習に対する影響度を徐々に小さくする、請求項２に記載のニューラルネットワークシステム。
【請求項４】
前記スイッチャー部は、前記学習時に、前記補助入力層から前記第１部分ネットワークへの出力の値を徐々に小さくする前記非浸透率を乗算する、
請求項３に記載のニューラルネットワークシステム。
【請求項５】
前記スイッチャー部は、前記学習時に、前記補助入力層から複数出力される信号に対して、前記第１部分ネットワークに入力される信号の数を徐々に減少させる前記非浸透率を乗算する
請求項３または請求項４に記載のニューラルネットワークシステム。
【請求項６】
前記第１部分ネットワークが、前記主入力層及び前記補助入力層のうち前記主入力層のみからの出力を用いて、前記主入力層及び前記補助入力層の両方からの出力を用いた場合と同じ演算結果を算出するように学習を行った後、さらに、前記第１部分ネットワークが、前記主入力層及び前記補助入力層のうち前記主入力層のみからの出力を受ける状態で、前記第２部分ネットワークが学習データにおける正解を算出するように、前記第１部分ネットワーク及び前記第２部分ネットワークが学習を行う、請求項１から５のいずれか１項に記載のニューラルネットワークシステム。
【請求項７】
学習時及び運用時共にデータを取得する主入力層と、
前記学習時及び前記運用時のうち前記学習時にのみデータを取得する補助入力層と、
第１部分ネットワークと、
前記第１部分ネットワークからの出力を受ける第２部分ネットワークと、
を備えるニューラルネットワークシステムに、
前記第１部分ネットワークが、前記主入力層及び前記補助入力層の両方からの出力を用いて学習を行う事前学習と、
前記事前学習の後、前記第１部分ネットワークが、前記主入力層及び前記補助入力層のうち前記主入力層のみからの出力を用いて、前記主入力層及び前記補助入力層の両方からの出力を用いた場合と同じ演算結果を算出するように学習を行う浸透学習と、
を実行させることを含む機械学習方法。
【請求項８】
コンピュータに、
学習時及び運用時共にデータを取得する主入力層と、
前記学習時及び前記運用時のうち前記学習時にのみデータを取得する補助入力層と、
第１部分ネットワークと、
前記第１部分ネットワークからの出力を受ける第２部分ネットワークと、
を備えるニューラルネットワークシステムにおける、
前記第１部分ネットワークが、前記主入力層及び前記補助入力層の両方からの出力を用いて学習を行う事前学習と、
前記事前学習の後、前記第１部分ネットワークが、前記主入力層及び前記補助入力層のうち前記主入力層のみからの出力を用いて、前記主入力層及び前記補助入力層の両方からの出力を用いた場合と同じ演算結果を算出するように学習を行う浸透学習と、
を実行させるためのプログラム。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、ニューラルネットワークシステム、機械学習方法及びプログラムに関する。
本願は、２０１７年８月８日に、日本国に出願された特願２０１７−１５３６１３号に基づき優先権を主張し、その内容をここに援用する。
【背景技術】
【０００２】
入力層、中間層、及び、出力層を有するニューラルネットワークに、学習用データを用いて誤差逆伝搬法（Error Backpropagation Method）にて学習を繰り返し行わせることで、運用データを比較的高精度に処理できることが知られている（非特許文献１参照）。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】David E. Rumelhart、他２名、”Learning representations by back-propagating errors”、 Nature 323 (6088)、p. 533-536、１９８６年
【発明の概要】
【発明が解決しようとする課題】
【０００４】
入力層、中間層、及び、出力層を有するニューラルネットワークで、学習時に得られるデータのうち一部のデータしか、運用時には得られない場合にも運用データをより高精度に処理できることが好ましい。【０００５】
本発明は、入力層、中間層、及び、出力層を有するニューラルネットワークで、学習時に得られるデータのうち一部のデータしか、運用時には得られない場合にも運用データをより高精度に処理できるニューラルネットワークシステム、機械学習方法及びプログラムを提供する。
【課題を解決するための手段】
【０００６】
本発明の第１の態様によれば、ニューラルネットワークシステムは、学習時及び運用時共にデータを取得する主入力層と、前記学習時及び前記運用時のうち前記学習時にのみデータを取得する補助入力層と、前記主入力層及び前記補助入力層の両方からの出力を用いて学習を行った後、前記主入力層及び前記補助入力層のうち前記主入力層のみからの出力を用いて、前記主入力層及び前記補助入力層の両方からの出力を用いた場合と同じ演算結果を算出するように学習を行う第１部分ネットワークと、前記第１部分ネットワークからの出力を受けて学習及び運用時の演算を行う第２部分ネットワークと、を備える。【０００７】
前記補助入力層から前記第１部分ネットワークへの出力に、学習に対する影響度を調整するための係数である非浸透率を乗算するスイッチャー部を備えるようにしてもよい。【０００８】
前記スイッチャー部は、前記学習時に、前記補助入力層から前記第１部分ネットワークへの出力の学習に対する影響度を徐々に小さくするようにしてもよい。【０００９】
前記スイッチャー部は、前記学習時に、前記補助入力層から前記第１部分ネットワークへの出力の値を徐々に小さくする前記非浸透率を乗算するようにしてもよい。【００１０】
前記スイッチャー部は、前記学習時に、前記補助入力層から複数出力される信号に対して、前記第１部分ネットワークに入力される信号の数を徐々に減少させる前記非浸透率を乗算するようにしてもよい。【００１１】
前記第１部分ネットワークが、前記主入力層及び前記補助入力層のうち前記主入力層のみからの出力を用いて、前記主入力層及び前記補助入力層の両方からの出力を用いた場合と同じ演算結果を算出するように学習を行った後、さらに、前記第１部分ネットワークが、前記主入力層及び前記補助入力層のうち前記主入力層のみからの出力を受ける状態で、前記第２部分ネットワークが学習データにおける正解を算出するように、前記第１部分ネットワーク及び前記第２部分ネットワークが学習を行うようにしてもよい。【００１２】
本発明の第２の態様によれば、機械学習方法は、学習時及び運用時共にデータを取得する主入力層と、前記学習時及び前記運用時のうち前記学習時にのみデータを取得する補助入力層と、第１部分ネットワークと、前記第１部分ネットワークからの出力を受ける第２部分ネットワークと、を備えるニューラルネットワークシステムに、前記第１部分ネットワークが、前記主入力層及び前記補助入力層の両方からの出力を用いて学習を行う事前学習と、前記事前学習の後、前記第１部分ネットワークが、前記主入力層及び前記補助入力層のうち前記主入力層のみからの出力を用いて、前記主入力層及び前記補助入力層の両方からの出力を用いた場合と同じ演算結果を算出するように学習を行う浸透学習と、を実行させることを含む。【００１３】
本発明の第３の態様によれば、プログラムは、コンピュータに、学習時及び運用時共にデータを取得する主入力層と、前記学習時及び前記運用時のうち前記学習時にのみデータを取得する補助入力層と、第１部分ネットワークと、前記第１部分ネットワークからの出力を受ける第２部分ネットワークと、を備えるニューラルネットワークシステムにおける、前記第１部分ネットワークが、前記主入力層及び前記補助入力層の両方からの出力を用いて学習を行う事前学習と、前記事前学習の後、前記第１部分ネットワークが、前記主入力層及び前記補助入力層のうち前記主入力層のみからの出力を用いて、前記主入力層及び前記補助入力層の両方からの出力を用いた場合と同じ演算結果を算出するように学習を行う浸透学習と、を実行させるためのプログラムである。
【発明の効果】
【００１４】
本発明によれば、入力層、中間層、及び、出力層を有するニューラルネットワークで、学習時に得られるデータのうち一部のデータしか、運用時には得られない場合にも運用データをより高精度に処理できる。
【図面の簡単な説明】
【００１５】
【図１】第１実施形態に係るニューラルネットワークシステムの機能構成を示す概略ブロック図である。
【図２】第１実施形態に係るニューラルネットワーク本体の構成例を示す図である。
【図３】第１実施形態に係る学習制御部の機能構成の例を示す概略ブロック図である。
【図４】第１実施形態に係るニューラルネットワークシステムの機能構成の例を示す図である。
【図５】第１実施形態で非浸透率が０の場合の、ニューラルネットワークシステムの機能構成の例を示す図である。
【図６】第１実施形態に係る実験における主データ及び補助データの例を示す図である。
【図７】第１実施形態に係る実験における画素値の入替の度合いの例を示す図である。
【図８】第１実施形態に係る実験での、運用時における主データ及び補助データの例を示す図である。
【図９】第１実施形態で、事前学習における入力データの例を示す図である。
【図１０】第１実施形態で、非浸透率の値が０の場合における入力データの例を示す図である。
【図１１】第１実施形態で、運用時における入力データの例を示す図である。
【図１２】第１実施形態に係る実験で全画素のうち７５％の画素の入替を行った場合における学習結果の例を示す図である。
【図１３】全画素のうち７５％の画素の入替を行った場合に、学習時に主データ及び補助データを用いて一般的な多層パーセプトロン及び一般的な誤差逆伝播法のみにて学習を行ったときの学習結果の例を示す図である。
【図１４】全画素のうち７５％の画素の入替を行った場合に、学習時に主データのみを用いて一般的な多層パーセプトロン及び一般的な誤差逆伝播法のみにて学習を行ったときの学習結果の例を示す図である。
【図１５】第１実施形態に係る実験で全画素のうち５０％の画素の入替を行った場合における学習結果の例を示す図である。
【図１６】全画素のうち５０％の画素の入替を行った場合に、学習時に主データ及び補助データを用いて一般的な多層パーセプトロン及び一般的な誤差逆伝播法のみにて学習を行ったときの学習結果の例を示す図である。
【図１７】全画素のうち５０％の画素の入替を行った場合に、学習時に主データのみを用いて一般的な多層パーセプトロン及び一般的な誤差逆伝播法のみにて学習を行ったときの学習結果の例を示す図である。
【図１８】第１実施形態で、学習時におけるニューラルネットワークシステム１の動作の例を示す図である。
【図１９】第１実施形態に係るニューラルネットワークシステムの変形例を示す図である。
【図２０】第２実施形態に係るニューラルネットワークシステムの機能構成の例を示す図である。
【図２１】少なくとも１つの実施形態に係るコンピュータの構成例を示す概略ブロック図である。
【発明を実施するための形態】
【００１６】
以下、本発明の実施形態を説明するが、以下の実施形態は請求の範囲にかかる発明を限定するものではない。また、実施形態の中で説明されている特徴の組み合わせの全てが発明の解決手段に必須であるとは限らない。
【００１７】
＜第１実施形態＞
図１は、第１実施形態に係るニューラルネットワークシステムの機能構成を示す概略ブロック図である。図１に示すように、ニューラルネットワークシステム１は、ニューラルネットワーク本体１００と、学習制御部２００とを備える。
【００１８】
ニューラルネットワーク本体１００は、教師あり学習による機械学習を行い、学習結果に基づいて運用時における演算を行う。以下では、機械学習を単に学習とも称する。
ニューラルネットワーク本体１００が運用時に得られるデータの種類は、学習時に得られるデータの種類の一部に限定される。運用時に得られるデータの種類が学習時に得られるデータの種類の一部に限定される例として、学習時に使用可能な機器のうち一部のみを運用時に使用可能である場合が挙げられる。
【００１９】
例えば、人の顔の表情をカメラで撮影して心理状態を判定する課題で、学習時には、カメラに加えてｆＭＲＩ(Functional Magnetic Resonance Imaging)又はＥＥＧ（Electroencephalogram）センサを用いることが考えられる。て脳の状態を測定することが考えられる。この場合、学習時には、ｆＭＲＩ又はＥＥＧセンサを用いて脳の状態を測定し、カメラ画像に加えて脳の状態の測定結果をニューラルネットワーク本体１００に入力することが考えられる。
一方、運用時にはｆＭＲＩ又はＥＥＧセンサを使用せず、カメラ画像のみをニューラルネットワーク本体１００に入力することが考えられる。
【００２０】
また、時系列予測問題においては、学習時に、過去のデータに加えて未来のデータもニューラルネットワーク本体１００に入力層側から入力する場合も、運用時に得られるデータの種類が学習時に得られるデータの種類の一部に限定される例として挙げられる。
学習時に、過去のある時点を基準時として設定すれば、学習用データとして、基準時から見て過去のデータに加えて、基準時から見て未来のデータをニューラルネットワーク本体１００の入力層側に入力することができる。一方、運用時には、現時点（ニューラルネットワーク本体１００に演算を行わせる時点）が基準時となることが考えられる。この場合、未来のデータをニューラルネットワーク本体１００に入力することはできない。
【００２１】
また、単一データ形式における分類問題で、学習時に、ニューラルネットワーク本体１００の入力層への入力データに正解のデータを含めるようにしてもよい。例えば、分類対象をクラスに分類する課題で、分類対象を示すデータに加えてクラス分けの正解を示すデータをニューラルネットワーク本体１００の入力層に入力するようにしてもよい。
一方、運用時には正解が未知であることが通常であり、正解のデータをニューラルネットワーク本体１００に入力することはできない。
【００２２】
また、画像を対象物の画像と背景画像とに分けるセグメンテーションの課題で、処理対象の画像に加えてセグメント（セグメンテーションの結果）を示すデータをニューラルネットワーク本体１００の入力層に入力するようにしてもよい。
一方、運用時には正解が未知であることが通常であり、正解のデータをニューラルネットワーク本体１００に入力することはできない。
以下では、学習時及び運用時共に得られる種類のデータを主データと称し、学習時及び運用時のうち学習時にのみ得られる種類のデータを補助データと称する。
【００２３】
運用時に得られるデータの種類が学習時に得られるデータの種類の一部に限定されることに対応するため、ニューラルネットワークシステム１は、学習に対する補助データの影響度を調整する仕組みを備え、主データ及び補助データの両方を用いて学習を行った後、学習に対する補助データの影響度を小さくして主データを用いた学習を行う。ニューラルネットワークシステム１は、後述する非浸透率を補助データに乗算することによって補助データの影響度を調整する。
【００２４】
図２は、ニューラルネットワーク本体１００の構成例を示す図である。図２に示すように、ニューラルネットワーク本体１００は、主入力層１１１及び補助入力層１１２を含む入力層１１０と、第１部分ネットワーク１２０と、第２部分ネットワーク１３０とを備える。
図１及び図２に示す構成にてニューラルネットワークシステム１は、主データ及び補助データの入力を受けて学習を行う。具体的には、主入力層１１１が主データの入力を受け、補助入力層１１２が補助データの入力を受ける。また、学習制御部２００は、学習に対する補助データの影響度を調整する。そして、第１部分ネットワーク１２０及び第２部分ネットワーク１３０は、主データと補助データとを統合して学習を行う。
【００２５】
ニューラルネットワークシステム１は、２段階の学習にて、主データ及び補助データのうち主データのみの入力を受けた場合に、主データ及び補助データの両方の入力を受けた場合と同じ結果を出力するように学習を行う。
第１段階の学習では、ニューラルネットワークシステム１は、主データ及び補助データの両方を用いて、学習用データが示す正解を算出するように学習を行う。
【００２６】
第２段階の学習では、ニューラルネットワークシステム１は、学習に対する補助データの影響度を小さくして、事前学習の場合と同じ演算結果を算出するための学習を行う。具体的には、ニューラルネットワークシステム１は、第１段階の学習における第１部分ネットワーク１２０の出力を記憶しておく。そして、ニューラルネットワークシステム１は、非浸透率（補助データの影響度を調整するための係数）の値を１から０に落としながら、第１部分ネットワーク１２０の出力と記憶している出力との誤差を最小化する学習を行う。
ニューラルネットワークシステム１は、学習にて、ニューラルネットワーク本体１００のノード間の重み（結合荷重）の調整を行う。
【００２７】
以下では、ニューラルネットワークシステム１が主データ及び補助データの両方を用いて行う、学習用データが示す正解を算出するための学習（上述した第１段階の学習）を事前学習（Pretraining）と称する。
また、ニューラルネットワークシステム１が、補助データの影響度を小さくした状態で、事前学習の場合と同じ演算結果を算出するために行う学習（上述した第２段階の学習）を浸透学習（Percolative Learning）と称する。
【００２８】
かかる学習を実行するために、ニューラルネットワーク本体１００の各部は以下の機能を有する。
入力層１１０は、多層パーセプトロンの入力層と同様に、ニューラルネットワークシステム１の外部からのデータの入力を受ける。主入力層１１１は、学習時及び運用時共に主データの入力を受ける。補助入力層１１２は、学習時及び運用時のうち学習時にのみ補助データの入力を受ける。
【００２９】
第１部分ネットワーク１２０は、入力層１１０からのデータを受けて学習及び運用時の演算を行う。上述したように、第１部分ネットワーク１２０は、主入力層１１１からの主データ及び補助入力層１１２からの補助データの両方を用いて事前学習を行う。事前学習の後、第１部分ネットワーク１２０は、補助入力層１１２からの補助データの影響度を小さくしつつ、主入力層１１１からの主データを用いて浸透学習を行う。
第２部分ネットワーク１３０は、第１部分ネットワーク１２０の演算結果の入力を受けて学習及び運用時の演算を行う。
【００３０】
第１部分ネットワーク１２０及び第２部分ネットワーク１３０のいずれも、従来的なニューラルネットワークの要素を用いて構成することができ、学習にてノード間の結合荷重を調整する。
ニューラルネットワーク本体１００全体で、後述するように補助入力層１１２から第１部分ネットワーク１２０への補助データの学習に対する影響度を調整する点以外は、従来的なニューラルネットワークと同様の構造を有する。第２部分ネットワーク１３０の最後層が、ニューラルネットワーク本体１００全体における出力層として機能する。ここでいう最後層は、順伝播時のデータの流れで最も後ろ（下流側）に位置する層である。また、順伝播時のデータの流れで最も前（上流側）に位置する層を最前層と称する。
第１部分ネットワーク１２０が有する層の数及びノードの数は、特定のものに限定されない。第２部分ネットワーク１３０が有する層の数及びノードの数も、特定のものに限定されない。
【００３１】
学習制御部２００は、ニューラルネットワーク本体１００における学習を制御する。特に、学習制御部２００は、事前学習と浸透学習との切替を行う。
図３は、学習制御部２００の機能構成の例を示す概略ブロック図である。図３に示すように、学習制御部２００は、浸透特徴記憶部２１０と、誤差演算部２２０と、結合荷重調整部２３０と、スイッチャー部２４０と、連結部２５０とを備える。
学習制御部２００は、ニューラルネットワーク本体１００における学習を制御する。学習制御部２００は、例えばパソコン（Personal Computer；ＰＣ）等のコンピュータを用いて構成される。
ニューラルネットワーク本体１００についても、コンピュータを用いて構成される。ただし、ニューラルネットワーク本体１００を専用のハードウェアで実現するなど、コンピュータを用いる方法以外の方法でニューラルネットワーク本体１００を構成するようにしてもよい。
【００３２】
浸透特徴記憶部２１０は、事前学習が十分に行われた状態で、事前学習にて第１部分ネットワーク１２０の最後層が出力するデータの値を、入力データ毎（主データと補助データとの組み合わせ毎）に記憶する。浸透特徴記憶部２１０は、学習制御部２００を構成するコンピュータが有する記憶デバイスを用いて構成される。
以下では、浸透特徴記憶部２１０が記憶するデータを浸透特徴（Percolative Feature）又は浸透データ（Percolative Data）と称する。
【００３３】
誤差演算部２２０は、学習時に、ニューラルネットワーク本体１００又はその一部における演算の結果と、正解として設定されているデータとの差分（誤差）を算出する。事前学習時には、誤差演算部２２０は、第２部分ネットワーク１３０の最後層の出力と、学習用データにて示される正解との誤差を算出する。浸透学習時には、誤差演算部２２０は、第１部分ネットワーク１２０の最後層の出力と、浸透特徴との誤差を算出する。
【００３４】
結合荷重調整部２３０は、誤差演算部２２０が算出する誤差に基づいて、ニューラルネットワーク本体１００のノード間の結合荷重を調整する。この結合荷重の調整が、ニューラルネットワーク本体１００における学習に該当する。
ニューラルネットワーク本体１００がノード間の結合荷重を調整する方法（すなわち、ニューラルネットワーク本体１００における学習法）として、誤差逆伝播法（Error Backpropagation Method）を用いることができる。事前学習では、ニューラルネットワーク本体１００全体に誤差逆伝播法を適用して学習を行うことができる。浸透学習では、第１部分ネットワーク１２０に誤差逆伝播法を適用して学習を行うことができる。
【００３５】
浸透学習では、結合荷重調整部２３０は、学習に対する補助データの影響度が小さくなった状態で、第１部分ネットワーク１２０の最後層が浸透特徴を出力するように、第１部分ネットワーク１２０におけるノード間の結合荷重を調整する。ここでいう第１部分ネットワーク１２０におけるノード間の結合荷重は、後段側のノードが第１部分ネットワーク１２０に含まれるノード間の結合荷重である。入力層１１０のノードと第１部分ネットワーク１２０のノードとの間の結合荷重も、第１部分ネットワーク１２０におけるノード間の結合荷重として扱う。
【００３６】
学習に対する補助データの影響度が小さくなった状態で、第１部分ネットワーク１２０の最後層が浸透特徴を出力することで、ニューラルネットワーク本体１００全体としても、主データ及び補助データの両方を用いた事前学習時と同じ演算結果を出力することが期待される。特に、浸透学習にて補助データの影響度が０になった状態でも、ニューラルネットワーク本体１００が、主データ及び補助データの両方を用いる場合と同じ演算結果を出力することが期待される。
このように、事前学習及び浸透学習によって、ニューラルネットワーク本体１００が、主データ及び補助データのうち主データのみを受けた場合に、主データ及び補助データの両方を受けた場合と同様の演算結果を出力することが期待される。
【００３７】
スイッチャー部２４０は、補助入力層１１２から第１部分ネットワーク１２０への補助データの学習に対する影響度を調整する。具体的には、スイッチャー部２４０は、補助入力層１１２の各ノードから第１部分ネットワーク１２０の最前層の各ノードへの出力値の各々に、同じ値の係数を乗算する。この係数は、補助データの学習への影響度を調整するための、値が可変な係数である。以下では、この係数を非浸透率（Non-permeability）と称する。
事前学習では、スイッチャー部２４０は、非浸透率の値を「１」に設定し、補助入力層１１２の各ノードから第１部分ネットワーク１２０の最前層の各ノードへの出力値に非浸透率の値「１」を乗算する。非浸透率の値「１」は、ニューラルネットワーク本体１００の学習に対する補助データの影響度を、主データの影響度と同じにすることを示す。
【００３８】
浸透学習では、スイッチャー部２４０は、非浸透率の値を１よりも小さい値に設定し、補助入力層１１２の各ノードから第１部分ネットワーク１２０の最前層の各ノードへの出力値に１よりも小さい非浸透率の値を乗算する。１より小さい非浸透率の値は、ニューラルネットワーク本体１００の学習に対する補助データの影響度を、主データの影響度よりも小さくすることを示す。
浸透学習で、スイッチャー部２４０は、非浸透率の値を最終的に０にする。これにより、ニューラルネットワーク本体１００は、主データ及び補助データのうち主データのみを用いて学習を行う。
【００３９】
スイッチャー部２４０が、事前学習から浸透学習に切り替わった後、非浸透率の値を徐々に小さくするようにしてもよい。ここでいう「徐々に」は、少なくとも１つの中間状態があることである。
具体的には、スイッチャー部２４０が、非浸透率の値を１から、少なくとも一旦、１と０との間の値にした後、０にするようにしてもよい。これにより、ニューラルネットワーク本体１００の最適化における探索空間が急変して事前学習の結果が浸透学習に十分に生かされないといった事態を回避することができる。
【００４０】
あるいは、スイッチャー部２４０が、事前学習から浸透学習への切り替わり時に、非浸透率の値を１から直ちに０に変更するようにしてもよい。すなわち、スイッチャー部２４０が、非浸透率の値を１、０で切り替えるようにしてもよい。
これにより、ニューラルネットワーク本体１００は、主データ及び補助データのうち主データのみを用いた学習を速やかに行う。この点で、ニューラルネットワーク本体１００の学習時間が短くて済むことが期待される。
【００４１】
あるいは、スイッチャー部２４０が、補助入力層１１２の各ノードから第１部分ネットワーク１２０の最前層の各ノードへの出力値毎に、非浸透率の値を変更可能であってもよい。そして、事前学習から浸透学習に切り替わった後、スイッチャー部２４０が、補助入力層１１２から複数出力される信号に対して、第１部分ネットワーク１２０に入力される信号の数を徐々に減少させる非浸透率を乗算するようにしてもよい。
【００４２】
具体的には、事前学習時にはスイッチャー部２４０は、補助入力層１１２の各ノードから第１部分ネットワーク１２０の最前層の各ノードへの全ての出力値について、非浸透率の値を１にしておく。浸透学習時には、スイッチャー部２４０は、補助入力層１１２の各ノードから第１部分ネットワーク１２０の最前層の各ノードへの出力値毎に設けられている非浸透率のうち一部の非浸透率のみ、値を１から０に変更する。スイッチャー部２４０は、この非浸透率の変更を複数回行うことで、全ての非浸透率の値を０に変化させる。
【００４３】
これによりスイッチャー部２４０は、事前学習時にはスイッチャー部２４０は、補助入力層１１２の各ノードから第１部分ネットワーク１２０の最前層の各ノードへの信号を徐々に間引いていく。
スイッチャー部２４０が、このように信号を徐々に間引くことで、非浸透率の値を徐々に小さくする場合と同様、ニューラルネットワーク本体１００の最適化における探索空間が急変して事前学習の結果が浸透学習に十分に生かされないといった事態を回避することができる。
【００４４】
スイッチャー部２４０が非浸透率を１から０に変化させる処理の実装方法は、特定の方法に限定されない。例えば、スイッチャー部２４０がスイッチング素子を備え、スイッチング素子のオン、オフの切替によって非浸透率を１から０に変化させる処理を実行するようにしてもよい。
【００４５】
連結部２５０は、主データと非浸透率乗算後の補助データとを連結する。ここでいうデータの連結は、複数のデータを１つのデータに纏めることである。後述する画像認識の例では、主データと補助データとがいずれも画像データであり、連結部２５０は、これら２つの画像データを結合する。２つの画像データの結合は、例えば、画像データとしてのデータ列をそのまま繋ぎ合わせることで行うことができる。
連結部２５０がデータの連結を行うことで、ニューラルネットワークシステム１は、主データ及び補助データの組合せを、１つのデータとして扱うことができる。
但し、連結部２５０は、後述する図４に示す位置にある必要は無い。例えば、主データ及び非浸透率乗算後の補助データが、連結部２５０を介さずにそのまま第１部分ネットワーク１２０に並列に入力されるようにして、その過程で得られる活性を連結するようにしてもよい。
【００４６】
誤差演算部２２０、結合荷重調整部２３０、スイッチャー部２４０及び連結部２５０は、学習制御部２００を構成するコンピュータが有するＣＰＵ（Central Processing Unit、中央処理装置）が、当該コンピュータが有する記憶デバイスからプログラムを読み出して実行することで構成される。
後述する第３実施形態の構成では、学習制御部２００は、後述する組み合わせ部２６０をさらに備える。組み合わせ部２６０も、学習制御部２００を構成するコンピュータが有するＣＰＵ（Central Processing Unit、中央処理装置）が、当該コンピュータが有する記憶デバイスからプログラムを読み出して実行することで構成される。
【００４７】
図４は、ニューラルネットワークシステム１の機能構成の例を示す図である。
学習時には入力層１１０は、主データ及び補助データを取得し、取得した主データ及び補助データを出力する。スイッチャー部２４０は、入力層１１０が出力した補助データに非浸透率を乗算する。
連結部２５０は、主データと非浸透率乗算後の補助データとを連結する。
【００４８】
連結されたデータは、第１部分ネットワーク１２０に入力される。事前学習では、第１部分ネットワーク１２０は、このデータを用いて学習を行い、浸透特徴を算出する。上述したように、浸透特徴は、事前学習が十分行われた状態における第１部分ネットワーク１２０の最後層の出力値である。
第２部分ネットワーク１３０は、浸透特徴の入力を受けて、第２部分ネットワーク１３０の最後層がクラスベクトルを出力するように学習を行う。ここでのクラスベクトルは、学習データから算出される正解の例に該当する。
上述したように、事前学習では、ニューラルネットワーク本体１００全体として入力データ及びクラスベクトルとに基づいて誤差逆伝播法を用いた学習を行うようにすることができる。
【００４９】
図５は、非浸透率が０の場合の、ニューラルネットワークシステム１の機能構成の例を示す図である。
図５と図４とを比較すると、図５では、補助データとスイッチャー部２４０とが示されていない。これにより図５の状態では、非浸透率が０となっていることでニューラルネットワークシステム１の学習において補助データが無視されることを示している。
【００５０】
浸透学習で非浸透率が０になった場合、連結部２５０は、主データを第１部分ネットワーク１２０へ出力する。後述する画像認識の例では、連結部２５０は、補助データの代わりに画素値０の画像データを主データと連結して第１部分ネットワーク１２０へ出力する。
浸透学習で非浸透率が０になった状態で、第１部分ネットワーク１２０は、主データと浸透特徴とに基づいて学習を行う。これにより、第１部分ネットワーク１２０は、主データ及び補助データのうち主データのみを得られる場合でも、主データ及び補助データの両方を得られる場合と同じ演算結果（浸透特徴）を出力するように学習を行う。
【００５１】
第１部分ネットワーク１２０の演算結果を受けて演算を行う第２部分ネットワーク１３０についても、第１部分ネットワーク１２０が主データ及び補助データのうち主データのみを得られる場合に、第１部分ネットワーク１２０が主データ及び補助データの両方を得られる場合と同じ演算結果を出力することが期待される。従って、ニューラルネットワーク本体１００が、主データ及び補助データのうち主データのみを得られる場合に、主データ及び補助データの両方を得られる場合と同じ演算結果を出力することが期待される。すなわち、ニューラルネットワークシステムが、運用時に主データに基づいて、あたかも主データ及び補助データの両方を得られているかのような精度の演算結果を出力することが期待される。
【００５２】
次に、ニューラルネットワークシステム１における学習の実験例について説明する。
実験では、ニューラルネットワークシステム１を動作させる環境をコンピュータ上に構成し、０から９までの手書き数字の画像データから、書かれている文字を推定する課題についてニューラルネットワークシステム１の学習を行った。実験では、手書き数字の画像データベースであるＭＮＩＳＴから取得した画像データを用いた。
実験では、ＭＮＩＳＴから得られた画像データの画素を入れ替える（シャッフルする）処理を全画素のうち一定の割合の画素に対して行って主データを生成した。なお、シャッフルされる画素の選択はデータ毎に異なる。また、ＭＮＩＳＴから得られた画像データを補助データとして用いた。
【００５３】
図６は、実験における主データ及び補助データの例を示す図である。図６では、図に向かって左側から順に、８、９、８、４、４の手書き数字に対する主データ及び補助データの例を示している。上記のように、補助データに示される画像データの画素値を入れ替える処理を全画素のうち一定の割合の画素に対して行うことで、主データを得られる。
【００５４】
図７は、画素値の入替の度合いの例を示す図である。図７では、図に向かって左側から順に５、０、４の手書き数字について、全画素のうち２５％、５０％、７５％、１００％の画素の入替を行った場合の画像の例を示している。
実験では、全画素のうち５０％の画素の入替を行った場合、７５％の画素の入替を行った場合のそれぞれについて学習を行った。
【００５５】
図８は、運用（試験）時における主データ及び補助データの例を示す図である。運用時には補助データを得られないため、補助データとして、画素値が全て０の画像データを用いる。これにより、補助データのニューラルネットワーク本体１００が行う演算における補助データの影響度を０とする。
図８では、図に向かって左側から順に手書き数字が５、１、０、０、１である場合の主データ及び補助データの例を示している。
【００５６】
なお、ここでいう試験とは、ニューラルネットワークシステム１を運用時と同じ条件で動作させて動作確認を行うことである。試験用データとして正解が既知のデータを用いるが、ニューラルネットワークシステム１には正解は提示されない。従って、ニューラルネットワークシステム１は、運用時と同じく正解が未知の状態で演算を行う。正解は、ニューラルネットワークシステム１による演算結果の精度（正解率）を算出するために用いられる。
【００５７】
図９は、事前学習における入力データの例を示す図である。
事前学習では、図６に例示される主データ及び補助データが主入力層１１１、補助入力層１１２の各々に入力され、ニューラルネットワーク本体１００は、主データ及び補助データを用いて学習を行う。
【００５８】
図１０は、非浸透率の値が０の場合における入力データの例を示す図である。
浸透学習で非浸透率の値が０になっている場合、主データは、事前学習の場合と同様、主入力層１１１から第１部分ネットワーク１２０に入力される。一方、非浸透率の値が０となっていることで、補助入力層１１２からの補助データは、第１部分ネットワーク１２０には入力されない。この場合、非浸透率の値が０であることで、補助データの全ての画素の画素値が０に変換される。これにより、図８を参照して説明した運用時の入力と同様、補助データに代えて画素値が全て０の画像データが第１部分ネットワーク１２０に入力される。これにより、ニューラルネットワーク本体１００は、主データ及び補助データのうち主データのみに基づいて学習を行う。
【００５９】
図１１は、運用時における入力データの例を示す図である。
運用時には補助データは補助入力層１１２に入力されない。この場合、図８を参照して説明したように、補助データに代えて画素値が全て０の画像データを第１部分ネットワーク１２０に入力する。これにより、ニューラルネットワーク本体１００は、主データ及び補助データのうち主データのみに基づいて演算を行う。
【００６０】
図１２は、全画素のうち７５％の画素の入替を行った場合における学習結果の例を示す図である。図１２のグラフの横軸は学習回数（エポック数）を示す。縦軸は、ニューラルネットワーク本体１００の演算結果の精度を示す。具体的には、縦軸は、ニューラルネットワーク本体１００による判定の正解率を示す。
線Ｌ１１１は、学習における演算結果の精度を示す。具体的には、線Ｌ１１１は、学習における演算結果が正解と一致している割合を示す。線Ｌ１１２は、試験における演算結果の精度を示す。実験では、ニューラルネットワーク本体１００が学習を行う毎に、試験データを入力して演算を行わせ、その時点での演算結果の精度を算出している。
以下では、学習における演算結果の精度を訓練精度と称する。試験における演算結果の精度を試験精度と称する。上記のように、ニューラルネットワークシステム１は、試験時において運用時と同じ条件で演算を行う。従って、試験精度は、運用時におけるニューラルネットワークシステム１ないしニューラルネットワーク本体１００の演算結果の精度を示す。
【００６１】
実験では、学習回数１０００回程度まで事前学習を行い、その後、非浸透率を徐々に小さくしながら浸透学習を行っている。
図１２の例で、試験精度（線Ｌ１１２参照）は、事前学習の開始直後に一旦上昇した後減少するが、浸透学習開始後に上昇し、その後はほぼ一定の値で推移している。また、訓練精度（線Ｌ１１１参照）は、ほぼ１００％まで上昇した後、事前学習時に一旦低下してからある程度回復し、ほぼ一定の値で推移している。図１２の例では、最終的な訓練精度は７３．０４％であり、最終的な試験精度は６４．０４％であった。
【００６２】
図１３は、全画素のうち７５％の画素の入替を行った場合に、学習時に主データ及び補助データを用いて一般的な多層パーセプトロン及び一般的な誤差逆伝播法のみにて学習を行ったときの学習結果の例を示す図である。図１３のグラフの横軸は学習回数（エポック数）を示す。縦軸は、ニューラルネットワーク本体１００の演算結果の精度を示す。具体的には、縦軸は、ニューラルネットワーク本体１００による判定の正解率を示す。
線Ｌ１２１は、訓練精度を示す。線Ｌ１２２は、試験精度を示す。
図１３の例でも、試験時には主データのみを用いている。
【００６３】
図１３に示す学習結果では、訓練精度（線Ｌ１２１参照）については高い精度を得られたが、試験精度（線Ｌ１２２参照）については、図１２に示す学習結果の場合よりも精度が低い。
図１３の例では、最終的な訓練精度が９９．９８％であり、最終的な試験精度は１２．１１％であった。
図１３の場合と図１２の場合とを比較すると、ニューラルネットワークシステム１では、浸透学習を行うことで、補助データを用いない運用時（試験時に）、一般的な多層パーセプトロン及び一般的な誤差逆伝播法のみによる学習よりも高い試験精度を達成できていることがわかる。この点で、ニューラルネットワークシステム１では、運用データをより高精度に処理できている。
【００６４】
図１４は、全画素のうち７５％の画素の入替を行った場合に、学習時に主データのみを用いて一般的な多層パーセプトロン及び一般的な誤差逆伝播法のみにて学習を行ったときの学習結果の例を示す図である。図１４のグラフの横軸は学習回数（エポック数）を示す。縦軸は、ニューラルネットワーク本体１００の演算結果の精度を示す。具体的には、縦軸は、ニューラルネットワーク本体１００による判定の正解率を示す。
線Ｌ１３１は、訓練精度を示す。線Ｌ１３２は、試験精度を示す。
図１４の例では、訓練時及び試験時共に主データのみを用いている。
【００６５】
図１４の例では、最終的な訓練精度が９９．６７％であり、最終的な試験精度が５３．１７％であった。
図１４の場合と図１２の場合とを比較すると、ニューラルネットワークシステム１では、浸透学習を行うことで、補助データを用いない運用時（試験時に）、補助データを用いずに学習を行う場合よりも、高い試験精度を達成できていることがわかる。この点で、ニューラルネットワークシステム１では、運用データをより高精度に処理できている。
【００６６】
図１５は、全画素のうち５０％の画素の入替を行った場合における学習結果の例を示す図である。図１５のグラフの横軸は学習回数（エポック数）を示す。縦軸は、ニューラルネットワーク本体１００の演算結果の精度を示す。具体的には、縦軸は、ニューラルネットワーク本体１００による判定の正解率を示す。
線Ｌ２１１は、訓練精度を示す。線Ｌ２１２は、試験精度を示す。
【００６７】
試験精度（線Ｌ２１２参照）は、事前学習の開始直後に一旦上昇した後減少するが、浸透学習開始後に上昇し、その後はほぼ一定の値で推移している。また、訓練精度（線Ｌ２１１参照）は、ほぼ１００％まで上昇した後、事前学習時に一旦低下してからある程度回復し、ほぼ一定の値で推移している。図１５の例では、最終的な訓練精度は９２．４３％であり、最終的な試験精度は８６．７５％であった。
【００６８】
図１６は、全画素のうち５０％の画素の入替を行った場合に、学習時に主データ及び補助データを用いて一般的な多層パーセプトロン及び一般的な誤差逆伝播法のみにて学習を行ったときの学習結果の例を示す図である。図１６のグラフの横軸は学習回数（エポック数）を示す。縦軸は、ニューラルネットワーク本体１００の演算結果の精度を示す。具体的には、縦軸は、ニューラルネットワーク本体１００による判定の正解率を示す。
線Ｌ２２１は、訓練精度を示す。線Ｌ２２２は、試験精度を示す。
図１６の例でも、試験時には主データのみを用いている。
【００６９】
図１６に示す学習結果では、訓練精度（線Ｌ２２１参照）については高い精度を得られたが、試験精度（線Ｌ２２２参照）については、図１５に示す学習結果の場合よりも精度が低い。
図１６の例では、最終的な訓練精度が９９．９７％であり、最終的な試験精度は１６．９７％であった。
図１６の場合と図１５の場合とを比較すると、ニューラルネットワークシステム１では、浸透学習を行うことで、補助データを用いない運用時（試験時に）、一般的な多層パーセプトロン及び一般的な誤差逆伝播法のみによる学習よりも高い試験精度を達成できていることがわかる。この点で、ニューラルネットワークシステム１では、運用データをより高精度に処理できている。
【００７０】
図１７は、全画素のうち５０％の画素の入替を行った場合に、学習時に主データのみを用いて一般的な多層パーセプトロン及び一般的な誤差逆伝播法のみにて学習を行ったときの学習結果の例を示す図である。図１７のグラフの横軸は学習回数（エポック数）を示す。縦軸は、ニューラルネットワーク本体１００の演算結果の精度を示す。具体的には、縦軸は、ニューラルネットワーク本体１００による判定の正解率を示す。
線Ｌ２３１は、訓練精度を示す。線Ｌ２３２は、試験精度を示す。
図１７の例でも、試験時には主データのみを用いている。
【００７１】
図１７の例では、最終的な訓練精度が９９．９７％であり、最終的な試験精度が８３．９０％であった。
図１７の場合と図１５の場合とを比較すると、ニューラルネットワークシステム１では、浸透学習を行うことで、補助データを用いない運用時（試験時）に、補助データを用いずに学習を行う場合よりも、高い試験精度を達成できていることがわかる。この点で、ニューラルネットワークシステム１では、運用データをより高精度に処理できている。
【００７２】
なお、事前学習及び浸透学習での学習状況によっては、ニューラルネットワークシステム１が、浸透学習に続けてさらに微調整の学習を行うようにしてもよい。微調整の学習では、非浸透率を０にしたままで、ニューラルネットワーク本体１００全体で誤差逆伝播法による学習を行う。この微調整の学習では、浸透特徴についても書き換えを行う。以下では、浸透学習の後の微調整の学習をファインチューニング（Fine Tuning）と称する。
【００７３】
ファインチューニングを行うか否かの判断基準として、浸透学習時に訓練精度が低下しているか否を用いることが考えられる。浸透学習時に訓練精度が低下している場合、浸透特徴が課題に十分フィットしていないことが要因として考えられる。そこで、ファインチューニングを行って浸透特徴をより課題にフィットさせることで、試験精度が上がることが期待される。
ただし、過学習などが原因で試験精度の上昇が必ずしも運用時（試験時）の精度を意味するとは限らない。そのような場合も含めて判断を行うために、浸透学習時の訓練精度の曲線形状に基づいてファインチューニングの有効性を判断するようにしてもよい。あるいは、事前に検証データを設定した上で検証精度から有効性を判断するようにしてもよい。
【００７４】
次に、図１８を参照して、ニューラルネットワークシステム１の動作について説明する。図１８は、学習時におけるニューラルネットワークシステム１の動作の例を示す図である。
図１８の例で、ニューラルネットワークシステム１は、事前学習を行う（ステップＳ１１１）。
【００７５】
具体的には、ニューラルネットワークシステム１は、学習用データに示される正解を用いて誤差逆伝播法による学習を行う。
ニューラルネットワークシステム１が全学習データを用いて事前学習を一通り行った後、学習制御部２００が、第２部分ネットワーク１３０の最後層の出力と学習用データに示される正解との差分（誤差）が所定の誤差以内か否かを判定する（ステップＳ１１２）。
所定の誤差以内ではないと学習制御部２００が判定した場合（ステップＳ１１２：ＮＯ）、処理がステップＳ１１１に戻る。
【００７６】
一方、所定の誤差以内であると学習制御部２００が判定した場合（ステップＳ１１２：ＹＥＳ）、浸透特徴記憶部２１０が浸透特徴を記憶しておき（ステップＳ１２１）、ニューラルネットワークシステム１は、浸透学習を行う（ステップＳ１２２）。
ニューラルネットワークシステム１が全学習データを用いて浸透学習を一通り行った後、学習制御部２００が、第１部分ネットワーク１２０の最後層の出力と浸透特徴との差分（誤差）が所定の誤差以内か否かを判定する（ステップＳ１２３）。
所定の誤差以内ではないと学習制御部２００が判定した場合（ステップＳ１２３：ＮＯ）、処理がステップＳ１２２に戻る。
【００７７】
一方、所定の誤差以内であると判定した場合（ステップＳ１２３：ＹＥＳ）、学習制御部２００は、ファインチューニングを行うか否かを判定する（ステップＳ１３１）。例えば、学習制御部２００は、浸透学習時に訓練精度が所定の基準よりも大きく低下している場合にファインチューニングを行うと判定する。あるいは、ユーザが、ニューラルネットワークシステム１にファインチューニングを行わせるか否かを、過学習しやすさを基準に決定し、ニューラルネットワークシステム１に対して指示を行うようにしてもよい。この場合、学習制御部２００は、ユーザの指示に従って、ファインチューニングを行うか否かを判定する。
ファインチューニングを行わないと学習制御部２００が判定した場合（ステップＳ１３１：ＮＯ）、ニューラルネットワークシステム１は、図１８の処理を終了する。
【００７８】
一方、ファインチューニングを行うと学習制御部２００が判定した場合（ステップＳ１３１：ＹＥＳ）、ニューラルネットワークシステム１は、ファインチューニングを行う（ステップＳ１４１）。ニューラルネットワークシステム１が、予め定められている回数だけファインチューニングを行うようにしてもよい。あるいは、ニューラルネットワークシステム１が、第２部分ネットワーク１３０の最後層の出力と学習用データに示される正解との差分（誤差）が所定の誤差以内になるまでファインチューニングを行うようにしてもよい。
ステップＳ１４１の後、ニューラルネットワークシステム１は、図１８の処理を終了する。
【００７９】
なお、実施形態に係るニューラルネットワークシステムの構成は、図４に示すものに限定されない。
図１９は、実施形態に係るニューラルネットワークシステムの変形例を示す図である。
図１９に示すニューラルネットワークシステム２は、図４に示されるニューラルネットワークシステム１の構成に加えて、第３部分ネットワーク１４０を備えている。それ以外は、ニューラルネットワークシステム２は、ニューラルネットワークシステム１と同様である。
【００８０】
第３部分ネットワーク１４０は、主データの入力を受けて学習及び運用時の演算を行い、演算結果を第２部分ネットワーク１３０へ出力する。
第３部分ネットワークの構造は、既存のニューラルネットワークと同様の構造であってもよい。あるいは、第３部分ネットワークがノードを持たず、主入力層１１１のノードから第２部分ネットワーク１３０のノードへの枝で構成されていてもよい。
【００８１】
＜第２実施形態＞
第２実施形態では、第１実施形態の場合よりもニューラルネットワーク本体１００の構成を一般化した例について説明する。
図２０は、第２実施形態に係るニューラルネットワークシステムの機能構成の例を示す図である。図２０に示す構成で、ニューラルネットワークシステム３は、入力層１１０と、スイッチャー部２４０と、連結部２５０と、組み合わせ部２６０と、第１部分ネットワーク群３２０と、第２部分ネットワーク群３３０と、第３部分ネットワーク群３４０とを備える。
【００８２】
入力層１１０は、主入力層１１１と、補助入力層１１２とを備える。第１部分ネットワーク群３２０は、ｋ個（ｋはｋ≧１の整数）の第１部分ネットワーク１２０を備える。図２０では、これらｋ個の第１部分ネットワーク１２０に、１２０−１から１２０−ｋの符号を付している。第２部分ネットワーク群３３０は、ｍ個（ｍはｍ≧１の整数）の第２部分ネットワーク１３０を備える。図２０では、これらｍ個の第２部分ネットワーク１３０に、１３０−１から１３０−ｍの符号を付している。第３部分ネットワーク群３４０は、ｎ個（ｎはｎ≧１の整数）の第３部分ネットワーク１４０を備える。図２０では、これらｎ個の第３部分ネットワーク１４０に、１４０−１から１４０−ｎの符号を付している。
【００８３】
入力層１１０、第１部分ネットワーク群３２０、第２部分ネットワーク群３３０、および、第３部分ネットワーク群３４０が、ニューラルネットワーク本体１００に構成されていてもよい。スイッチャー部２４０、連結部２５０、および、組み合わせ部２６０が、学習制御部２００に構成されていてもよい。
【００８４】
図１９に示すニューラルネットワークシステム２と、図２０に示すニューラルネットワークシステム３とでは、第１部分ネットワーク１２０、第２部分ネットワーク１３０および第３部分ネットワーク１４０の個数が異なる。図１９に示すニューラルネットワークシステム２は、第１部分ネットワーク、第２部分ネットワークおよび第３部分ネットワークを１つずつ備える。一方、図２０に示すニューラルネットワークシステム３は、」が第１部分ネットワーク、第２部分ネットワークおよび第３部分ネットワークの何れについても、複数備えていてもよい。
【００８５】
また、ニューラルネットワークシステム３では、主入力層のノードおよび補助入力層のノードが、それぞれグループ分けされている。連結部２５０は、事前の設定に基づいて、主データのグループ毎、および、非浸透率を乗算された補助データのグループ毎に、第１部分ネットワーク１２０−１から１２０−ｋのうち、事前設定で決められた第１部分ネットワーク１２０へ出力する。
【００８６】
組み合わせ部２６０は、事前の設定に基づいて、第１部分ネットワーク１２０の各々の出力、および、第３部分ネットワーク１４０の各々の出力を、第２部分ネットワーク１３０−１から１３０−ｍのうち、事前設定で決められた第２部分ネットワーク１３０へ出力する。
それ以外の点については、ニューラルネットワークシステム３は、ニューラルネットワークシステム２の場合と同様である。
【００８７】
ニューラルネットワークシステム３の構成によれば、相関性の低いデータの入力による学習精度の低下を排除できる。
例えば、ニューラルネットワークシステム３が、自動車からのセンシングデータの入力を受けて機械学習を行う場合について考える。この場合、タイヤの向きとハンドルの角度との間には相関関係がある。一方、タイヤの向きとアクセルの踏み込み度合いとの間には、通常、相関関係はない。第１部分ネットワークに全ての補助データを入力する場合、相関性の低い補助データの影響を受けて学習精度が低下してしまう可能性がある。
【００８８】
そこで、主データと補助データとの相関関係が予めわかっている場合、連結部２５０の設定により、補助データを選択的に第１部分ネットワークに入力する。また、組み合わせ部２６０の設定により、第１部分ネットワークによる浸透特徴を選択的に第２部分ネットワークに入力する。これにより、第１部分ネットワークの各々および第２部分ネットワークの各々への、相関性の低いデータの入力を除外することができ、この点で、ニューラルネットワークシステム３は精度よく機械学習を行うことができる。
【００８９】
第２実施形態のニューラルネットワークシステム３に対しても、第１実施形態の場合と同様のオプションを適用可能である。
第１実施形態の場合と同様、スイッチャー部２４０が、補助入力層１１２からの各出力に対して同じ値の非浸透率を乗算するようにしてもよいし、補助入力層１１２からの出力毎に非浸透率の値を変更可能であってもよい。事前学習から浸透学習に切り替わった後、スイッチャー部２４０が、補助入力層１１２から複数出力される信号に対して、第１部分ネットワーク１２０に入力される信号の数を徐々に減少させる非浸透率を乗算するようにしてもよい。
【００９０】
第３部分ネットワークの構造は、既存のニューラルネットワークと同様の構造であってもよい。あるいは、第３部分ネットワークがノードを持たず、主入力層１１１のノードから第２部分ネットワーク１３０のノードへの枝で構成されていてもよい。あるいは、ニューラルネットワークシステム１の構成と同様、ニューラルネットワークシステム３が第３部分ネットワーク１４０を含まない構成としてもよい。
【００９１】
第１実施形態に係るニューラルネットワークシステム１、２は、いずれも、ニューラルネットワークシステム３の例に該当する。
ニューラルネットワークシステム３が、第１部分ネットワークおよび第２部分ネットワークを１つずつ備え、かつ、第３部分ネットワークを備えない場合、ニューラルネットワークシステム１の構成となる。
この場合、主入力層のノード、補助入力層のノードの何れもグループ化は行われない。従って、主入力層のノードのグループの数、補助入力層のノードのグループの数は、何れも１である。また、組み合わせ部２６０は、第１部分ネットワーク１２０の最後層の全ノードの出力を、第２部分ネットワークの最前層の全ノードに入力する。
【００９２】
ニューラルネットワークシステム３が、第１部分ネットワーク、第２部分ネットワーク、および第３部分ネットワークを１つずつ備える場合、ニューラルネットワークシステム２の構成となる。
この場合も、主入力層のノード、補助入力層のノードの何れもグループ化は行われない。従って、主入力層のノードのグループの数、補助入力層のノードのグループの数は、何れも１である。また、組み合わせ部２６０は、第１部分ネットワーク１２０の最後層の全ノードの出力を、第２部分ネットワークの最前層の全ノードに入力する。
【００９３】
主データのノイズが比較的少ないなど、主データの状態が比較的良好である場合、補助データを用いない第３部分ネットワークおよび第２部分ネットワークの経路を学習および運用におけるメインの経路とし、補助データを用いる第１部分ネットワークを用いてメインの経路のデータを補正することが考えられる。
一方、主データのノイズが比較的多いなど、主データの状態が比較的悪い場合、第３部分ネットワークがない構成の方が良好な結果を得られる場合がある。
【００９４】
ニューラルネットワークシステム１、２、３の何れにおいても、部分ネットワークの層数および各層のノード数は、特定のものに限定されない。ここでいう部分ネットワークは、第１部分ネットワーク１２０、第２部分ネットワーク１３０、および、第３部分ネットワーク１４０の総称である。
例えば図３の学習制御部２００が、部分ネットワーク毎の層数および各層のノード数を、例えば遺伝的アルゴリズム（Genetic Algorithm；ＧＡ）等の進化計算法（Evolutionary Computation）を用いて決定するようにしてもよい。
【００９５】
以上のように、主入力層１１１は、学習時及び運用時共に主データを取得する。補助入力層１１２は、学習時及び運用時のうち学習時にのみ補助データを取得する。第１部分ネットワーク１２０は、主データ及び補助データの両方を用いて学習を行った後、主データ及び補助データのうち主データのみを用いて、主データ及び補助データの両方を用いた場合と同じ演算結果を算出するように学習を行う。第２部分ネットワーク１３０は、第１部分ネットワーク１２０からの出力を受けて学習及び運用時の演算を行う。
【００９６】
このように、主データ及び補助データのうち主データのみを用いる場合に、第１部分ネットワーク１２０が、主データ及び補助データの両方を用いた場合と同じ演算結果を算出するように学習を行うことで、ニューラルネットワーク本体１００全体としても、主データ及び補助データの両方を用いた場合と同じ演算結果を算出することが期待される。ニューラルネットワーク本体１００が、主データ及び補助データのうち主データのみが得られる場合に、主データ及び補助データの両方が得られる場合と同じ演算結果を出力することで、主データ及び補助データの両方が得られる場合と同じ精度で演算を行うことができる。ニューラルネットワークシステム１によれば、この点で、学習時に得られるデータのうち一部のデータしか、運用時には得られない場合にも運用データをより高精度に処理できる。
【００９７】
また、スイッチャー部２４０は、補助入力層１１２から第１部分ネットワーク１２０への出力（補助データ）に非浸透率を乗算する。この乗算により、スイッチャー部２４０は、学習に対する補助データの影響度を調整する。
非浸透率の値を０にすることで、ニューラルネットワークシステム１は、主データ及び補助データのうち主データのみを用いて浸透学習を行うことができる。
【００９８】
また、スイッチャー部２４０は、学習時に、補助入力層１１２から第１部分ネットワーク１２０への出力（補助データ）の、学習に対する影響度を徐々に小さくする。
これにより、ニューラルネットワーク本体１００の最適化における探索空間が急変して事前学習の結果が浸透学習に十分に生かされないといった事態を回避することができる。
【００９９】
また、スイッチャー部２４０は、学習時に、補助入力層１１２から第１部分ネットワーク１２０への出力の値を徐々に小さくする非浸透率を乗算する。
これにより、ニューラルネットワークシステム１は、非浸透率の値を徐々に小さくするという比較的簡単な処理で、ニューラルネットワーク本体１００の最適化における探索空間が急変して事前学習の結果が浸透学習に十分に生かされないといった事態を回避することができる。
【０１００】
また、スイッチャー部２４０は、学習時に、補助入力層から複数出力される信号に対して、第１部分ネットワーク１２０に入力される信号の数を徐々に減少させる非浸透率を乗算する。
これにより、ニューラルネットワークシステム１は、非浸透率の値を徐々に小さくする場合と同様、ニューラルネットワーク本体１００の最適化における探索空間が急変して事前学習の結果が浸透学習に十分に生かされないといった事態を回避することができる。
【０１０１】
また、第１部分ネットワーク１２０が、主データ及び補助データのうち主データのみを用いて、主データ及び補助データの両方を用いた場合と同じ演算結果を算出するように浸透学習を行った後、さらに、第１部分ネットワーク１２０が、主データ及び補助データのうち主データのみを受ける状態で、第２部分ネットワーク１３０が学習データにおける正解を算出するように、第１部分ネットワーク１２０及び第２部分ネットワーク１３０が学習を行うファインチューニングを行う。
これにより、浸透学習で得られた浸透特徴が課題に十分フィットしていない場合に、ファインチューニングにて浸透特徴を課題によりフィットさせることができ、運用時のニューラルネットワーク本体１００の演算結果の精度を高めることができる。
【０１０２】
図２１は、少なくとも１つの実施形態に係るコンピュータの構成例を示す概略ブロック図である。図２１の構成で、コンピュータ４００は、ＣＰＵ（Central Processing Unit、中央処理装置）４０１、主記憶装置４０２、補助記憶装置４０３及びインタフェース４０４を備える。
【０１０３】
ニューラルネットワーク本体１００、学習制御部２００は、いずれもコンピュータ４００を用いて構成される。
ニューラルネットワーク本体１００がコンピュータ４００に実装される場合、ニューラルネットワーク本体１００の各部の動作は、プログラムの形式で補助記憶装置に記憶されている。ＣＰＵ４０１は、プログラムを補助記憶装置４０３から読み出して主記憶装置４０２に展開し、このプログラムに従ってニューラルネットワーク本体１００の処理を実行する。
【０１０４】
学習制御部２００がコンピュータに実装される場合、学習制御部２００の各部の動作は、プログラムの形式で補助記憶装置に記憶されている。ＣＰＵ４０１は、プログラムを補助記憶装置４０３から読み出して主記憶装置４０２に展開し、このプログラムに従って学習制御部２００の処理を実行する。
ニューラルネットワークシステム１、２または３の全体が、１つのコンピュータ４００に実装される場合、ニューラルネットワークシステム１、２または３の各部の動作は、プログラムの形式で補助記憶装置に記憶されている。ＣＰＵ４０１は、プログラムを補助記憶装置４０３から読み出して主記憶装置４０２に展開し、このプログラムに従ってニューラルネットワークシステム１、２または３の処理を実行する。
【０１０５】
ニューラルネットワークシステム１が行う演算及び制御の全部または一部の機能を実現するためのプログラムをコンピュータ読み取り可能な記録媒体に記録して、この記録媒体に記録されたプログラムをコンピュータシステムに読み込ませ、実行することで各部の処理を行ってもよい。ここでいう「コンピュータシステム」とは、ＯＳや周辺機器等のハードウェアを含むものとする。
また、「コンピュータシステム」は、ＷＷＷシステムを利用している場合であれば、ホームページ提供環境（あるいは表示環境）も含むものとする。
また、「コンピュータ読み取り可能な記録媒体」とは、フレキシブルディスク、光磁気ディスク、ＲＯＭ、ＣＤ−ＲＯＭ等の可搬媒体、コンピュータシステムに内蔵されるハードディスク等の記憶装置のことをいう。また上記プログラムは、前述した機能の一部を実現するためのものであっても良く、さらに前述した機能をコンピュータシステムにすでに記録されているプログラムとの組み合わせで実現できるものであっても良い。
【０１０６】
以上、本発明の実施形態を図面を参照して詳述してきたが、具体的な構成はこの実施形態に限られるものではなく、この発明の要旨を逸脱しない範囲の設計変更等も含まれる。
【産業上の利用可能性】
【０１０７】
本発明の実施形態は、ニューラルネットワークシステム、機械学習方法及びプログラムに適用してもよい。
【符号の説明】
【０１０８】
１  ニューラルネットワークシステム
１００、１０１  ニューラルネットワーク本体
１１０  入力層
１１１  主入力層
１１２  補助入力層
１２０、１２０−１、１２０−２、・・・、１２０−ｌ  第１部分ネットワーク
１３０、１３０−１、１３０−２、・・・、１３０−ｍ  第２部分ネットワーク
１４０、１４０−１、１４０−２、・・・、１４０−ｎ  第３部分ネットワーク
２００  学習制御部
２１０  浸透特徴記憶部
２２０  誤差演算部
２３０  結合荷重調整部
２４０  スイッチャー部
２５０  連結部
２６０  組み合わせ部
【図１】
2019031305.tif 000003
【図２】
2019031305.tif 000004
【図３】
2019031305.tif 000005
【図４】
2019031305.tif 000006
【図５】
2019031305.tif 000007
【図６】
2019031305.tif 000008
【図７】
2019031305.tif 000009
【図８】
2019031305.tif 000010
【図９】
2019031305.tif 000011
【図１０】
2019031305.tif 000012
【図１１】
2019031305.tif 000013
【図１２】
2019031305.tif 000014
【図１３】
2019031305.tif 000015
【図１４】
2019031305.tif 000016
【図１５】
2019031305.tif 000017
【図１６】
2019031305.tif 000018
【図１７】
2019031305.tif 000019
【図１８】
2019031305.tif 000020
【図１９】
2019031305.tif 000021
【図２０】
2019031305.tif 000022
【図２１】
2019031305.tif 000023
【国際調査報告】
2019031305.tif 000024
2019031305.tif 000025