(57)【要約】小規模化の際におけるニューラルネットワークの性能の低下を抑制する。本開示のニューラルネットワーク処理装置１０は、複数の人工ニューロンが結合したニューラルネットワークＮ１に対して複数の入力データ４０を与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求める処理２２と、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理２３と、を実行するように構成されている。
2020054402.tif 000002
【特許請求の範囲】
【請求項１】
複数の人工ニューロンが結合したニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求める処理と、
前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理と、
を実行するように構成されているニューラルネットワーク処理装置。
【請求項２】
同一又は類似の振舞いをする複数の人工ニューロンは、前記ベクトルの類似度を示す指標に基づいて、選択される
請求項１に記載のニューラルネットワーク処理装置。
【請求項３】
前記指標は、複数の前記ベクトルに含まれる第１ベクトルと、複数の前記ベクトルに含まれる第２ベクトルへの前記第１ベクトルの射影と、の残差である
請求項２に記載のニューラルネットワーク処理装置。
【請求項４】
前記統合処理は、選択された複数の人工ニューロンの中から、前記残差に基づいて、統合先となる統合先ニューロンを決定する決定処理を含む
請求項３に記載のニューラルネットワーク処理装置。
【請求項５】
前記ニューラルネットワークは、それぞれが人工ニューロンを有する複数の層を有し、
前記統合処理では、同一又は類似の振舞いをする複数の人工ニューロンとして、異なる層に含まれる人工ニューロンを選択可能である
請求項１〜４のいずれか１項に記載のニューラルネットワーク処理装置。
【請求項６】
前記指標は、統合された人工ニューロンの出力が与えられる他層人工ニューロンにおいて、前記ベクトルから計算される前記他層人工ニューロンの内部活性度の誤差に基づく
請求項２に記載のニューラルネットワーク処理装置。
【請求項７】
前記指標は、統合により削除される前記ニューラルネットワークのパラメータの数に更に基づく
請求項１から６のいずれか１項に記載のニューラルネットワーク処理装置。
【請求項８】
前記指標は、統合により生じる前記誤差を、統合により削除されるパラメータの数によって除した値である
請求項６に記載のニューラルネットワーク処理装置。
【請求項９】
前記統合処理は、統合に伴い消去される人工ニューロンのためのウエイトを用いて、統合先ニューロンのためのウエイトを更新することを含む
請求項１から８のいずれか１項に記載のニューラルネットワーク処理装置。
【請求項１０】
前記統合処理では、統合に伴い消去される人工ニューロンの振舞いが、統合先ニューロンによって模擬される
請求項１から９のいずれか１項に記載のニューラルネットワーク処理装置。
【請求項１１】
前記統合処理では、統合に伴い消去される人工ニューロンの振舞いが、統合先ニューロンを含む二以上の人工ニューロンによって模擬される
請求項１から９のいずれか１項に記載のニューラルネットワーク処理装置。
【請求項１２】
前記統合処理では、統合に伴い消去される人工ニューロンのためのウエイトを用いて、前記統合先ニューロンを含む前記二以上の人工ニューロンのためのウエイトが更新される
請求項１１に記載のニューラルネットワーク処理装置。
【請求項１３】
複数の人工ニューロンが結合したニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求める処理と、
前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理と、
をコンピュータに実行させるためのコンピュータプログラム。
【請求項１４】
複数の人工ニューロンが結合した原ニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求め、
前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、
選択された複数の人工ニューロンを統合する
ことを含むニューラルネットワークの製造方法。
【請求項１５】
複数の人工ニューロンが結合した原ニューラルネットワークに対して、複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求め、
前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、
選択された複数の人工ニューロンを統合することで、前記原ニューラルネットワークよりも人工ニューロンの数が少ない統合ニューラルネットワークを生成し、
ニューラルネットワークエンジンを前記統合ニューラルネットワークとして機能させるためのニューラルネットワークデータを生成する
ことを含むニューラルネットワークデータの製造方法。
【請求項１６】
ニューラルネットワークとして機能するニューラルネットワーク利用装置であって、
前記ニューラルネットワークは、前記ニューラルネットワークよりも人工ニューロンの数が多い原ニューラルネットワークに入力が与えられたときに同一又は類似の出力をする人工ニューロン同士が統合されて構成されている
ニューラルネットワーク利用装置。
【請求項１７】
複数の人工ニューロンが結合したニューラルネットワークの小規模化のための指標を求めることを含むニューラルネットワーク小規模化方法であって、
前記指標は、前記ニューラルネットワークに対して複数の入力データが与えられたときに各人工ニューロンから出力される複数の出力に基づいて求められる
ニューラルネットワーク小規模化方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本開示は、ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法に関する。
【背景技術】
【０００２】
ディープニューラルネットワークのようなニューラルネットワークは、複数の人工ニューロン（以下、「ニューロン」ということがある）が結合した計算機構である。ニューラルネットワークへ大量のデータを与えて、ニューロンの各結合の重み係数等の最適化計算をすることを深層学習とよぶ。
【先行技術文献】
【非特許文献】
【０００３】
【非特許文献１】S. Srinivas and R. V. Babu.， Data-free parameter pruning for deep neural networks.， In Proceedings of the British Machine Vision Conference (BMVC), pages 31.1-31.12. BMVA Press, 2015.
【発明の概要】
【０００４】
ニューラルネットワークの学習の際及び学習済ニューラルネットワークを動作させる際には、膨大な計算が必要となる。すなわち、ニューラルネットワークは、一般に、ニューロンの数が多く、大規模であるため、膨大な計算が必要となる。膨大な計算を実行するため、グラフィックプロセッシングユニット（ＧＰＵ）のような大規模並列計算機構が用いられることが多い。
【０００５】
膨大な計算が必要であると、ニューラルネットワークの利用に制約が生じる。例えば、大規模な学習済ニューラルネットワークを、組み込み系システムにおける低消費電力のＣＰＵによって実行することは困難である。したがって、大規模なニューラルネットワークの性能をおおむね維持しつつ、小規模化することが望まれる。
【０００６】
ここで、非特許文献１は、ニューラルネットワークの小規模化のため、ニューロンの結合の重みベクトル（重み集合）の同一・類似性に着目することを開示している。非特許文献１では、２つの重みベクトル（重み集合）が同一・類似であれば、一方の重みベクトルが削除され、残った重みベクトルに統合される。
【０００７】
しかし、非特許文献１に開示では、小規模化の際に、元の大規模なニューラルネットワークの性能が低下し易いことを本発明者らは見出した。したがって、小規模化の際におけるニューラルネットワークの性能の低下を抑制できる新たな技術が望まれる。
【０００８】
本開示の一の態様は、ニューラルネットワーク処理装置である。ニューラルネットワーク処理装置は、複数の人工ニューロンが結合したニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求める処理と、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理と、を実行するように構成されている。
【０００９】
本開示の他の態様は、コンピュータプログラムである。コンピュータプログラムは、複数の人工ニューロンが結合したニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求める処理と、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理と、をコンピュータに実行させる。
【００１０】
本開示の他の態様は、ニューラルネットワークの製造方法である。ニューラルネットワークの製造方法は、複数の人工ニューロンが結合した原ニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求め、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合することを含む。
【００１１】
本開示の他の態様は、ニューラルネットワークデータの製造方法である。ニューラルネットワークデータの製造方法は、複数の人工ニューロンが結合した原ニューラルネットワークに対して、複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求め、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合することで、前記原ニューラルネットワークよりも人工ニューロンの数が少ない統合ニューラルネットワークを生成し、ニューラルネットワークエンジンを前記統合ニューラルネットワークとして機能させるためのニューラルネットワークデータを生成することを含む。
【００１２】
本開示の他の態様は、ニューラルネットワーク利用装置である。ニューラルネットワーク利用装置は、ニューラルネットワークとして機能し、前記ニューラルネットワークは、前記ニューラルネットワークよりも人工ニューロンの数が多い原ニューラルネットワークに入力が与えられたときに同一又は類似の出力をする人工ニューロン同士が統合されて 構成されている。
【００１３】
更なる詳細は、後述の実施形態として説明される。
【図面の簡単な説明】
【００１４】
【図１】図１は、ニューラルネットワーク処理装置及びニューラルネットワーク利用装置の構成図である。
【図２】図２は、小規模化処理のフローチャートである。
【図３】図３は、ニューロン振舞いベクトルの説明図である。
【図４】図４は、ニューロン出力の説明図である。
【図５】図５は、ニューロン振舞いベクトル行列等の説明図である。
【図６】図６は、ウエイト行列及びウエイトベクトルの説明図である。
【図７】図７Ａは、同一のニューロン振舞いベクトルを示す図である。図７Ｂは、２つのニューロンを有する層から出力されるニューロン振舞いベクトルとウエイトベクトルとの説明図である。図７Ｃは、統合後のニューラルネットワークを示す図である。
【図８】図８Ａは、大きさが異なる２つのニューロン振舞いベクトルを示す図である。図８Ｂは、２つのニューロンを有する層から出力されるニューロン振舞いベクトルとウエイトベクトルとの説明図である。図８Ｃは、統合後のニューラルネットワークを示す図である。
【図９】図９Ａは、大きさと向きが異なるニューロン振舞いベクトルを示す図であり、図９Ｂは、統合後のニューラルネットワークを示す図である。
【図１０】図１０は、３つのニューロン振舞いベクトルを示す図である。
【図１１】図１１は、統合の連鎖の説明図である。
【図１２】図１２は、統合の非対称性を示す図である。
【図１３】図１３（ａ）は、層内統合を示す図である。図１３（ｂ）は、層間統合を示す図である。
【図１４】図１４Ａは、第１モデルについての実験結果を示す図である。図１４Ｂは、第２モデルについての実験結果を示す図である。
【図１５】図１５は、非特許文献１の手法との比較実験結果である。
【図１６】図１６は、第１実施形態における射影残差と統合の第１基準の説明図である。
【図１７】図１７は、第２実施形態における統合の第２基準の説明図である。
【図１８】図１８は、ディープニューラルネットワークの構成図である。
【図１９】図１９は、第１実施形態と第２実施形態の比較実験結果を示すグラフである。
【図２０】図２０は、第３実施形態における誤差の説明図である。
【図２１】図２１は、第２実施形態と第３実施形態の比較実験結果を示すグラフである。
【図２２】図２２は、第４実施形態に係るニューロン統合処理を示すフローチャートである。
【図２３】図２３は、第４実施形態に係るニューロン統合処理の説明図である。
【図２４】図２４は、第４実施形態におけるニューロン振舞いベクトルの説明図である。
【図２５】図２５は、第４実施形態に係るニューロン統合処理の実験結果である。
【発明を実施するための形態】
【００１５】
＜１．ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置の概要＞
【００１６】
（１）実施形態に係るニューラルネットワーク処理装置は、複数の人工ニューロンが結合したニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求める処理を実行するよう構成されている。ニューラルネットワークに実際に入力データを与えることで、各人工ニューロンの出力を求めることができる。各人工ニューロンの出力は、各人工ニューロンの振舞いを示す。すなわち、出力のベクトルを求めることで、入力データが与えられたときの人工ニューロンの振舞いを把握することができる。
【００１７】
実施形態に係るニューラルネットワーク処理装置は、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理を実行するよう構成されている。統合により、ニューラルネットワークを小規模化することができる。実施形態においては、人工ニューロンの振舞いを示すベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを統合するため、適切な統合が可能となり、小規模化の際におけるニューラルネットワークの性能低下を抑制できる。すなわち、ニューラルネットワークの性能は人工ニューロンの結合の重みだけで決まるのではなく、各人工ニューロンの活性化関数やバイアスによっても影響を受ける。したがって、非特許文献１のように、重みベクトル（重み集合）が同一・類似であっても、実際に入力データが与えられたときの各人工ニューロンの振舞いが同一・類似であるとは限らない。これに対して、本実施形態では、入力データが与えられたときの各ニューロンの振舞いを示すベクトルの同一・類似性に着目しているため、適切な統合が可能となる。
【００１８】
なお、ニューロンの統合は、一つのニューラルネットワークの中だけで行われてもよいし、複数のニューラルネットワークに跨っておこなわれてもよい。
【００１９】
（２）同一又は類似の振舞いをする複数の人工ニューロンは、ベクトルの類似度を示す指標に基づいて、選択することができる。すなわち、ベクトルが同一又は類似していれば、同一又は類似の振舞いをすると判定することができる。ベクトルの類似度を示す指標としては、公知の様々な指標を採用することができる。ベクトルが類似しているか否かは、例えば、ベクトルの類似度を示す指標を所定の閾値と比較することで判定することができる。
【００２０】
（３）前記指標は、複数の前記ベクトルに含まれる第１ベクトルと、複数の前記ベクトルに含まれる第２ベクトルへの前記第１ベクトルの射影と、の残差であるのが好ましい。この残差を用いると、統合処理の際に、複数の人工ニューロンのうちのどれをどれに統合するか（例えば、第１ベクトルを出力する第１人工ニューロンを、第２ベクトルを出力する第２人工ニューロンに統合するのか、それとも第２人工ニューロンを第１ニューロンに統合するのか）を選択することが可能となる。
【００２１】
（４）前記統合処理は、選択された複数の人工ニューロンの中から、前記残差に基づいて、統合先となる統合先ニューロンを決定する決定処理を含むことができる。前述のように、統合すべき複数のベクトルの大きさと向きが異なる場合、前記残差は、複数のベクトルの組み合わせの数だけ求めることができる。複数の残差は、統合されるべき複数の人工ニューロンのうちのどれをどれに統合するかの指標になるため、統合の仕方を適切に選択することが可能となる。
【００２２】
（５）前記ニューラルネットワークは、それぞれが人工ニューロンを有する複数の層を有し、前記統合処理では、同一又は類似の振舞いをする複数の人工ニューロンとして、異なる層に含まれる人工ニューロンを選択可能であるのが好ましい。これにより、異なる層に含まれる人工ニューロンを統合する層間統合が行える。
【００２３】
（６）前記指標は、統合された人工ニューロンの出力が与えられる他層人工ニューロンにおいて、前記ベクトルから計算される前記他層人工ニューロンの内部活性度の誤差に基づくことができる。前記指標が、内部活性度の誤差に基づくことで、人工ニューロンの統合に伴う精度低下を防止できる。ここで、「内部活性度の誤差に基づく」とは、前記指標が、内部活性度の誤差に基づいていれば、内部活性度の誤差以外の値（例えば、統合に伴い削除されるパラメータ数）にも基づいてもよいことを意味する。また、「内部活性度の誤差に基づく」とは、前記指標が、「内部活性度の誤差」に基づいて計算される派生値（例えば、活性化関数により計算される値）であってもよいことを意味する。
【００２４】
（７）前記指標は、統合により削除される前記ニューラルネットワークのパラメータの数に更に基づくのが好ましい。この場合、パラメータ数を効率的に削除することができる。
【００２５】
（８）前記指標は、統合により生じる前記誤差を、統合により削除されるパラメータの数によって除した値であるのが好ましい。また、前記指標は、複数の前記人工ニューロンに含まれる第１人工ニューロンから出力される前記ベクトルである第１ベクトルと、複数の前記人工ニューロンに含まれる第２人工ニューロンから出力される前記ベクトルである第２ベクトルへの前記第１ベクトルの射影と、の残差と、前記第１人工ニューロンを前記第２人工ニューロンに統合したときの第２人工ニューロンから他層への結合のウエイトと、に基づくことができる。
【００２６】
（９）前記統合処理は、統合に伴い消去される人工ニューロンのためのウエイトを用いて、統合先ニューロンのためのウエイトを更新することを含むことができる。
【００２７】
（１０）前記統合処理では、統合に伴い消去される人工ニューロンの振舞いが、統合先ニューロンによって模擬される。
【００２８】
（１１）前記統合処理では、統合に伴い消去される人工ニューロンの振舞いが、統合先ニューロンを含む二以上の人工ニューロンによって模擬されてもよい。
【００２９】
（１２）前記統合処理では、統合に伴い消去される人工ニューロンのためのウエイトを用いて、前記統合先ニューロンを含む前記二以上の人工ニューロンのためのウエイトが更新されるのが好ましい。
【００３０】
（１３）実施形態に係るコンピュータプログラムは、複数の人工ニューロンが結合したニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求める処理と、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理と、をコンピュータに実行させる。
【００３１】
（１４）実施形態に係るニューラルネットワークの製造方法は、複数の人工ニューロンが結合した原ニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求め、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合することを含む。実施形態に係るニューラルネットワークの製造方法によれば、原ニューラルネットワークを小規模化したニューラルネットワークを製造することができ、しかも、製造されたニューラルネットワークの性能低下を抑制できる。
【００３２】
（１５）実施形態に係るニューラルネットワークデータの製造方法は、複数の人工ニューロンが結合した原ニューラルネットワークに対して、複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求め、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合することで、前記原ニューラルネットワークよりも人工ニューロンの数が少ない統合ニューラルネットワークを生成し、ニューラルネットワークエンジンを前記統合ニューラルネットワークとして機能させるためのニューラルネットワークデータを生成することを含む。実施形態に係るニューラルネットワークデータの製造方法によれば、小規模化されたニューラルネットワークデータを製造することができる。製造されたニューラルネットワークデータは、小規模であるため、計算能力が比較的低いニューラルネットワークエンジンにおいても実行可能である。ここで、ニューラルネットワークエンジンは、例えば、ＣＰＵ，ＧＰＵ，ＦＰＧＡ，又はＡＳＣＩなどの演算装置によって構成される。実施形態の製造方法によって製造されたニューラルネットワークデータは、小規模であるため、組み込み系システムにおける低消費電力のＣＰＵなど計算能力が比較的低い演算装置であっても、実行することができる。
【００３３】
（１６）実施形態に係るニューラルネットワーク利用装置は、ニューラルネットワークとして機能する装置であり、前記ニューラルネットワークは、前記ニューラルネットワークよりも人工ニューロンの数が多い原ニューラルネットワークに入力が与えられたときに同一又は類似の出力をする人工ニューロン同士の統合により構成されている。
【００３４】
（１７）実施形態に係るニューラルネットワーク小規模化方法は、複数の人工ニューロンが結合したニューラルネットワークの小規模化のための指標を求めることを含むニューラルネットワーク小規模化方法であって、前記指標は、前記ニューラルネットワークに対して複数の入力データが与えられたときに各人工ニューロンから出力される複数の出力に基づいて求められる。
【００３５】
＜２．ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置の例（第１実施形態）＞
【００３６】
図１は、実施形態に係るニューラルネットワーク処理装置（以下、「処理装置」という）１０とニューラルネットワーク利用装置（以下、「利用装置」という）１００とを示している。実施形態に係る処理装置１０は、ニューラルネットワークＮ１を小規模化するための小規模化処理２１を実行する。小規模化処理２１を実行することにより実施される方法は、小規模化されたニューラルネットワークの製造方法又は小規模化されたニューラルネットワークデータの製造方法でもある。
【００３７】
以下では、小規模化処理の対象となるニューラルネットワークＮ１を、「原ニューラルネットワーク」といい、小規模化されたニューラルネットワークＮ２を「統合ニューラルネットワーク」という。なお、実施形態に係る処理装置１０は、原ニューラルネットワークＮ１の機械学習（深層学習）のための処理も実行可能である。処理装置１０は、学習済の原ニューラルネットワークＮ１を小規模化する。
【００３８】
処理装置１０は、１又は複数のプロセッサ２０及び記憶装置３０を有するコンピュータによって構成されている。１又は複数のプロセッサ２０は、例えば、グラフィックプロセッシングユニット（ＧＰＵ）を含む。１又は複数のプロセッサ２０は、さらにＣＰＵを含んでもよい。ＧＰＵのような大規模並列計算機構は、大規模なニューラルネットワークに関する処理を実行するための大量の計算に適している。
【００３９】
記憶装置３０は、プロセッサ２０によって実行されるコンピュータプログラム３１を記憶している。プロセッサ２０は、コンピュータプログラム３１を実行することで、小規模化処理２１を行う。小規模化処理２１は、後述のように、ニューロコーディング（Neuro Coding）処理２２と、ニューロン統合（Neuro Unification）処理２３と、を含む。これらの処理２２，２３については後述する。
【００４０】
記憶装置３０は、小規模化処理２１に用いられる複数の入力データ４０を記憶している。入力データは、ニューロコーディング処理２２において、ニューロンの振舞いを把握するため、原ニューラルネットワークＮ１に入力として与えられる。入力データ４０は、ニューラルネットワークが扱うデータであれば特に限定されず、例えば、画像データ又は音声データである。
【００４１】
記憶装置３０は、小規模化処理２１によって製造された統合ニューラルネットワークＮ２を表すデータ（統合ニューラルネットワークデータ）Ｎ２０を記憶することができる。統合ニューラルネットワークデータＮ２０は、統合ニューラルネットワークＮ２を表現する各種のパラメータ（重み、結合関係など）からなるデータである。統合ニューラルネットワークデータＮ２０は、ニューラルネットワークエンジンに読み込まれることで、そのニューラルネットワークエンジンを統合ニューラルネットワークＮ２として機能させる。
【００４２】
利用装置１００は、小規模化されたニューラルネットワークデータＮ２０を読み込んで、統合ニューラルネットワークＮ２として機能するニューラルネットワークエンジンを有する。ニューラルネットワークエンジンは、例えば、プロセッサ２００と記憶装置３００とを備える。プロセッサ２００は、例えば、組み込み系システムにおける低消費電力のＣＰＵでよい。ニューラルネットワークデータＮ２０は、原ニューラルネットワークＮ１のデータに比べて、サイズが小さいため、低消費電力のＣＰＵによる処理が可能である。
【００４３】
組み込み系システムは、汎用的なコンピュータシステムではなく、特定の用途に向けられたコンピュータシステムであり、例えば、スマートフォン・家電などの家庭用機器、産業用ロボットなどの産業用機器、各種の医療用機器、自動車・ドローンなどのビークル、及びその他の機器におけるコンピュータシステムである。組み込み系システムでは、プロセッサとして、低消費電力のＣＰＵが使われることが多いが、ニューラルネットワークデータＮ２０は、データサイズが小さいため、実行が容易である。
【００４４】
統合ニューラルネットワークＮ２は、例えば、画像・音声の変換、セグメンテーション、識別などの用途に用いられる。より具体的には、例えば、店舗等の客数計測、男女・年齢層分析、車両計数、車種分析など、対象物の画像から必要な情報を抽出するために用いることができる。原ニューラルネットワークＮ１は大規模であり、計算コストが大きいため、組み込み系システムでの実行が困難であるが、統合ニューラルネットワークＮ２は、小規模化されているため、組み込み系システムでの実行が容易である。
【００４５】
図２は、原ニューラルネットワークＮ１から小規模化された統合ニューラルネットワークＮ２を製造する工程（小規模化処理２１）を示している。小規模化の対象となる原ニューラルネットワークＮ１は、例えば、ディープニューラルネットワークであり、より具体的には、例えば、畳み込みニューラルネットワーク（ＣＮＮ）である。原ニューラルネットワークＮ１は、層状に並べられた人工ニューロンが層間で結合されている全結合層を有する。実施形態の小規模化処理２１は、一例として、全結合層を小規模化する。なお、ここでの原ニューラルネットワークＮ１は深層学習済みのモデルであるものとする。
【００４６】
小規模化処理２１では、まず、ニューロコーディング処理２２が行われる。ニューロコーディング処理は、原ニューラルネットワークＮ１に対して複数の入力データ（コーディング用データ）４０を与えて、原ニューラルネットワークＮ１に含まれる各人工ニューロンの振舞いを、ニューロン振舞いベクトルとして検出する処理である。
【００４７】
図３は、複数の層を有する原ニューラルネットワークＮ１を示している。図３では、３つの層（ｌ−１層，ｌ層，ｌ＋１層）を代表的に示している。各層中における丸印が人工ニューロンである。以下では、ｌ層のｉ番目のニューロンをＺilで示し、ｌ＋１層のｊ番目のニューロンをＺjl+1のように示す。
【００４８】
ニューラルネットワークＮ１に対して入力データが与えられると、ニューロンＺjl+1の出力ｘjl+1は、図４の式（１）（２）によって表される。式（１）（２）は、ニューラルネットワークにおける順伝搬（forward propagation）を示す一般的な表記である。ここで、式（１）中のｗijlは、ｌ層の複数（ｒｌ個：ｌ層に含まれるニューロンの数）のニューロンＺilから、ｌ＋１層のニューロンＺjl+1へ向かう結合の重み（ウエイト）を示す。ｂjl+1はニューロンＺjl+1におけるバイアスを示す。ｕjl+1は内部活性度を示す。式（２）中のｆは、活性化関数を示す。
【００４９】
続いて、ウエイト行列Ｗｌを用いて、ｌ＋１層における内部活性度行列を図４の式（３）のように定義する。式（３）の内部活性度行列は、一つの入力データがニューラルネットワークＮ１に与えられたときにおける、ｌ＋１層のｒｌ＋１個のニューロンの内部活性度を示す。
【００５０】
さて、本実施形態では、ニューラルネットワークＮ１に複数（ｄ個）の入力データ（コーディング用データ）が与えられたときのニューロンの振舞いを示す指標として、「ニューロン振舞いベクトル（Neuron Behavioral Vector）:ＮＢＶ」という概念を導入する。ニューラルネットワークＮ１に複数（ｄ個）の入力データが与えられたときにおける、ニューロンＺilの振舞いベクトルは、図３中の式のように、ｄ個の出力ｘによって表される。ニューロコーディング処理２２では、複数の入力データが与えられることで、ニューラルネットワークＮ１に含まれる全ニューロンそれぞれのニューロン振舞いベクトル（ＮＢＶ）が求められる。
【００５１】
ニューロン振舞いベクトル（ＮＢＶ）を用いると、ニューロンの出力は、スカラーではなく、ベクトルとなる。ｌ層における複数（ｒｌ個）のニューロン振舞いベクトルからなる行列（ＮＢＶ行列）を図５の式（４）のように表す。
【００５２】
さらに、ｌ層からｌ＋１層へのウエイト行列を図６の式（５）のように表す。式（５）のウエイト行列は、ｌ層からｌ＋１層への複数（ｒｌ個）のウエイトベクトルを要素として有する。ウエイトベクトルは、ｌ層の各ニューロンからｌ＋１層へ向かう重み（ウエイト）のベクトルである。
【００５３】
したがって、ｌ＋１層におけるＮＢＶ行列は、ｌ層におけるＮＢＶ行列と、ｌ層からｌ＋１層へのウエイト行列と、バイアス行列と、を用いて、図６の式（６）（７）によって表される。なお、バイアス行列は、図６の式（８）のように表される。
【００５４】
図５の式（４）及び図６の式（５）を用いると、図５の式（６）は、図５の式（９）のように書き換えられる。ここで、式（９）の右辺中のウエイトベクトルｗilとニューロン振舞いベクトルｘilは、ニューロンｚilに関する変数である。したがって、式（９）の右辺中のバイアス行列を除く各項の行列ｗilｘilＴは、ニューロンｚilから伝播したＵｌ＋１の要素であると考えることができる。
【００５５】
図２に戻り、ニューロコーディング処理２２に続いて、ニューロン統合処理２３が実行される。ニューロン統合処理２３では、ニューロン振舞いベクトル（ＮＢＶ）に基づいて、ニューラルネットワークＮ１の全ニューロンの中から同一又は類似の振舞いをする複数の人工ニューロンを選択する。統合処理２３では、さらに、選択された複数の人工ニューロンを統合することで、ニューラルネットワークＮ１を小規模化する。統合により消去された人工ニューロンの振舞いは、統合により残った人工ニューロンに承継される。振舞いの承継により、小規模化しても、原ニューラルネットワークＮ１の性能低下を抑制することができる。
【００５６】
以下では、まず、より簡単な例として、同一の振舞いをするニューロン同士の統合を説明し、続いて、類似の振舞いをするニューロン同士の統合を説明する。図７Ａ，７Ｂ，７Ｃは、同一振舞いの場合のニューロン統合を示している。ここでは、ニューラルネットワークＮ１のｌ層には、２つのニューロン（第１ニューロンＺil及び第２ニューロンＺjl）だけが存在するものとする。図７Ａに示すように、第１ニューロンＺilの振舞いベクトルと第２ニューロンＺjlの振舞いベクトルとは同じであるものとする。この場合、図５の式（９）は、図７Ｂの式（１０）のようになる。２つのニューロンＺil，Ｚjlは、同じ入力データに対して常に同じ出力を生成するため、２つのニューロンＺil，Ｚjlの存在は、明らかに冗長である。
【００５７】
したがって、振舞いベクトルが同じである複数のニューロンＺil，Ｚjlは、統合の対象として選択される。選択された複数のニューロンＺil，Ｚjlは、一つに統合される。振舞いベクトルが同じである場合、第１ニューロンＺilを第２ニューロンＺjlに統合してもよいし、第２ニューロンＺjlを第１ニューロンＺilに統合してもよい。いずれの統合でも、統合後の性能は等価である。ここでは、第１ニューロンＺilを第２ニューロンＺjlに統合し、第１ニューロンＺilは消去されるものとする。そして、第１ニューロンＺilのための第１ウエイトベクトルを第２ニューロンＺjlのための第２ベクトルに統合し、第１ウエイトベクトルは消去されるものとする。統合後の第２ウエイトベクトルを図７Ｃ中に示す。また、図７Ｃの式（１１）は、図７Ｂの式（１０）を統合後の形式に書き直したものである。２つの振舞いベクトルが同じである場合、式（１０）の右辺と式（１１）の右辺は明らかに等価である。したがって、図７Ｂに示す統合前のニューラルネットワークの性能と、図７Ｃに示す統合後のニューラルネットワーク性能とは等価であり、統合による性能劣化は生じない。
【００５８】
図８Ａ，８Ｂ，８Ｃは、類似振舞いの場合のニューロン統合の第１例を示している。ここでも、ニューラルネットワークＮ１のｌ層には、２つのニューロン（第１ニューロンＺil及び第２ニューロンＺjl）だけが存在するものとする。また、図８Ａに示すように、第１ニューロンＺilの振舞いベクトル（第１ＮＢＶ）は、第２ニューロンＺjlの振舞いベクトル（第２ＮＢＶ）のｋ倍（ｋはゼロより大きい自然数）であるものとする。この場合、第１ニューロン振舞いベクトルと第２ニューロン振舞いベクトルとは線形従属の関係にあり、一方のベクトルによって他方のベクトルを表すことができる。このような関係にある複数のニューロンＺil，Ｚjlも、統合の対象として選択される。
【００５９】
したがって、図８Ｂに示す統合前のニューラルネットワークにおいて、第１ニューロンＺilを第２ニューロンＺjlに統合し、第１ニューロンＺilを消去し、第１ニューロンＺilのための第１ウエイトベクトルを第２ニューロンＺjlのための第２ベクトルに統合し、第１ウエイトベクトル消去することができる。統合後の第２ウエイトベクトルを図８Ｃ中に示す。統合後の第２ウエイトベクトルは、第１ウエイトベクトルをｋ倍したものと統合前の第２ウエイトベクトルとの和となる。
【００６０】
図９Ａ，９Ｂは、類似振舞いの場合のニューロン統合の第２例を示している。先の第１例では、ベクトルの大きさが異なり向きは同じであったが、第２例では、第１ニューロンの振舞いベクトル（第１ＮＢＶ）と第２ニューロンの振舞いベクトル（第２ＮＢＶ）とは、大きさだけでなく、向きも多少異なる。ここで、図９Ａの式（１２）に示すように、第２ＮＢＶへの第１ＮＢＶの射影をｐとし、第１ＮＢＶとｐとの残差をｅとする。この場合、第１ＮＢＶの射影ｐと第２ＮＢＶとは、図８Ａに示す関係と同様である。したがって、図９Ｂに示すように、図８Ｃと同様の統合が行える。すなわち、統合後の第２ウエイトベクトルは、第１ウエイトベクトルをｋ倍したものと統合前の第２ウエイトベクトルとの和となる。ｋは、射影ｐと第２ＮＢＶとから求まる値であり、図９Ｂの式（１３）に示される。
【００６１】
第１ＮＢＶにおける残差ｅは、第２ＮＢＶに直交する。したがって、第１ニューロンを第２ニューロンに統合した場合、第１ＮＢＶにおける残差ｅの成分は、統合された第２ニューロンが承継することができない。したがって、残差ｅが十分に小さくなる（例えば、残差ｅが所定の閾値以下になる）関係にあるベクトルを出力できる複数のニューロンを、類似する振舞いをするニューロンであるとみなし、統合の対象として選択することができる。これにより、統合によるニューラルネットワーク性能への影響を抑制できる。
【００６２】
本実施形態では、統合の際の残差による影響を管理するため、図１０の式（１４）に示す目的関数ｅtotalを導入する。式（１４）において、Ｃは、ニューラルネットワークにおいて、統合されたニューロンのニューロン振舞いベクトル（ＮＢＶ）の集合を示す。統合の対象となるニューロンを選択し、統合する際には、ｅtotalの増加ができるだけ抑制されるように行えばよい。
【００６３】
以下では、統合の連鎖（chained unification）における残差ｅの取り扱いについて説明する。ここでは、統合を繰り返すことで、２以上のニューロンが一つのニューロンに統合される場合を考える。図１０に示すようなニューロン振舞いベクトルを持つ第１ニューロンＺilが、第２ニューロンＺjlに統合された場合、ｅtotalは、図１０の式（１５）に示すようになる。
【００６４】
そして、図１１に示すように、統合された第２ニューロンＺjlが、さらに第３ニューロンＺklに統合されるものとする。この場合、第１ニューロンＺilの役割を承継していた第２ニューロンＺjlは、もはや第１ニューロンＺilの役割を果たせなくなる。したがって、第３ニューロンＺklは、第２ニューロンＺjlだけでなく、第１ニューロンＺilの役割をも果たす必要がある。すなわち、統合された第２ニューロンＺjlが、さらに第３ニューロンＺklに統合されると、３ニューロンＺklのための第３ウエイトベクトルは、図１１の式（１６）に示すように更新される。そして、ｅtotalは、図１１の式（１７）に示すように再計算される。
【００６５】
式（１７）において、式（１５）の右辺の項（第１ＮＢＶと第２ＮＢＶとの残差）は存在しない。これは、第３ニューロンＺklへの統合により、第１ニューロンＺilも第２ニューロンＺjlも消去されるためである。このように、統合の連鎖が生じる場合、ｅtotalは再計算される必要がある。ｅtotalの再計算のため、処理装置１０は、統合処理２３中において、既に消去されたニューロンのためのウエイトベクトルを保持し続ける。その結果、式（１７）に示す第１残差のように、既に消去された第１ニューロンとの間の残差を再計算することができる。
【００６６】
実施形態では、残差ｅは、統合対象として選択された複数のニューロンのうちのどれをどれに統合するか、すなわち、統合先ニューロンを決定する決定処理に用いられる。統合先ニューロンの決定は、統合の非対称性を考慮したものである。統合の非対称性のため、どのニューロンをどのニューロンに統合するかによって、残差ｅの大きさ（ノルム）が異なることになる。したがって、ｅtotalをできるだけ小さくするには、残差ｅが小さくなる統合先ニューロンを決定すべきである。
【００６７】
図１２の式（１８）は、ニューロンＺilをニューロンＺjlに統合したときの残差のノルムを示し、同じく式（１９）は、逆に、ニューロンＺjlをニューロンＺilに統合したときの残差のノルムを示す。式（１８）及び式（１９）において、θは２つのニューロン振舞いベクトルの間の角度である。２つのニューロン振舞いベクトルのノルムが等しくなる例外的な場合以外は、式（１８）及び式（１９）に示す残差のノルムは、異なるものとなる。したがって、統合先ニューロンの決定処理においては、式（１８）及び式（１９）に示すように、複数の統合対象のベクトル間で、残差のノルムをそれぞれ計算し、残差が最も小さくなるように統合先を決定する。
【００６８】
ニューロン統合処理２３では、統合対象として選択された複数のニューロンのうち、決定処理により決定された統合先ニューロンへ、残りのニューロンが統合される。統合対象の選択は、ニューロン振舞いベクトルの同一・類似性に基づくが、同一・類似であるかは、同一の層内だけで判定される必要はなく、複数の層を跨いで判定されてもよい。したがって、実施形態においては、異なる層に属するニューロンが、同一又は類似のニューロン振舞いベクトルを持つ場合、異なる層に属するニューロン同士が統合対象として選択されることがある。
【００６９】
図１３（ａ）は、同一層内での統合（層内統合）を示している。図１３(ａ)では、ニューロンＺilが、同一層内に属する他のニューロンＺjlに統合される。そして、ニューロンＺilのためのウェイトベクトル（点線で示される結合に相当）が削除され、他のニューロンＺjlのためのウェイトベクトル（実線で示される結合に相当）に統合（更新）される。図１３（ｂ）は、異なる層間での統合（層間統合）を示している。図１３（ｂ）では、ｌ層に属するニューロンＺilが、他の層であるｍ層に属するニューロンＺjmに統合される。この場合、ニューロンＺilが削除されるため、ニューロンＺilのためのウエイトベクトルの代替として、ニューロンＺjmから層を１つ飛び越えて結合する新たな結合（スキップコネクション）が生成され、新たな結合のためのウエイトベクトルｗskipが生成される。
【００７０】
図２に戻り、以上のニューロン統合処理２３を整理すると、まず、原ニューラルネットワークＮ１に含まれる全ニューロンの組み合わせについて、ニューロン振舞いベクトル（ＮＢＶ）に基づき、残差ｅを算出する処理２３１を行う。そして、残差ｅが所定の閾値以下となる２以上のニューロンの組み合わせを統合対象として選択する処理２３２を行う。そして、選択された統合対象の中から、一つの統合先ニューロンの決定処理２３４を行い、その統合先ニューロンへ統合する処理２３３を行う。統合に伴い、ウエイトベクトルも更新される。
【００７１】
ニューロン統合処理２３によって、原ニューラルネットワークＮ１の性能をほぼ維持しつつ、小規模化された統合ニューラルネットワークＮ２が製造される。処理装置１０は、統合ニューラルネットワークＮ２における重み（ウエイト）などのパラメータを、統合ニューラルネットワークデータＮ２０として生成（製造）し、記憶装置３０に保存する。処理装置１０は、データＮ２０を、外部へ出力する処理２４を行うことができる。出力処理２４は、記録媒体への出力でもよいし、処理装置１０から図示しないネットワークを介して、データＮ２０を利用装置１００へ送信することであってもよい。利用装置１００は、処理装置１０から受信したデータＮ２０を記憶装置３００に保存する。利用装置１００は、データＮ２０を読み取って、統合ニューラルネットワークＮ２として機能する。
【００７２】
＜３．実験結果＞
【００７３】
手書き数字文字データベースＭＮＩＳＴの６０００字の学習用文字（学習用データ）を用いて学習し、１０００文字のテスト用文字を用いてテストを行った。実験では、６０００字の学習用文字を、ニューロン振舞いベクトルを求めるための入力データとしても用いた。
【００７４】
実験に用いたモデル（第１モデル）は、３層の全結合層（入力層、隠れ層、出力層）からなるニューラルネットワーク（原ニューラルネットワークＮ１）である。入力層は、７８４ニューロンを有する。隠れ層は、２０００ニューロンを有し、各ニューロンは、ＲｅＬＵ関数を有する。出力層は、１０ニューロンを有し、各ニューロンは、ソフトマックス関数を有する。このモデルを、ＭＩＮＳＴの６０００文字の学習用文字で学習させた。エポック数は１００とした。このモデル（原ニューラルネットワークＮ１）による推定精度は、０．９７９５（エラー率：０．０２０５）であった。
【００７５】
実験では、さらに、学習済ＶＧＧ１６モデル（第２モデル）も準備した。ＶＧＧ１６モデル（第２モデル）は、１０００ニューロンの出力層を、３１ニューロンの新たな層に置き換え、全結合層をエポック数１００にて、ファインチューニング（再学習）した。このＶＧＧ１６モデルによる推定精度は、０．８３８０であった。
【００７６】
実験では、小規模化処理２１の比較例として、エントロピー法による処理を行った。エントロピー法は、エントロピーインポータンス関数（T. He, Y. Fan, Y. Qian, T. Tan, K. Yu, Reshaping deep neural network for fast decoding by node-pruning, Proc. IEEE International Conference on Acoustics, Speech and Signal Processing, pp. 245-249, Florence, Italy, May2014）に基づいて、ニューロンの重要性を評価する手法である。重要でないニューロンは削除される。
【００７７】
実験では、ＭＩＮＳＴによって学習されたモデルに対して、実施形態の小規模化処理（ニューロコーディング２２及びニューロン統合２３）２１を適用した。また、エントロピー法も適用した。エントロピー法の適用は、再学習無しの場合と、１００ニューロンが削除されるごとに再学習する場合の２通りで行った。実験では、ニューロンの統合・削減の対象として、隠れ層の２０００ニューロンとした。
【００７８】
図１４Ａ及び図１４Ｂは、実験結果を示している。図１４Ａ、１４Ｂの横軸は、統合又は削減後の隠れ層のニューロンの数であり、縦軸は、推定エラー率である。図１４Ａ，１４Ｂにおいて、「Neuro-Unification」は、実施形態の小規模化処理２１を適用した結果を示し、「Entropy」は、エントロピー法の再学習無を適用した結果を示し、「Entropy-retraining」は、エントロピー法の再学習有を適用した結果を示す。
【００７９】
図１４Ａは、第１モデルを用いた結果を示す。この場合、エントロピー法の再学習無では、ニューロン数が１５００よりも減少するとエラー率が大きく上昇するのに対して、実施形態の小規模化処理２１によると、当初の２０００個のニューロンが８５％近く減少しても、エラー率は１％程度しか上昇しなかった。驚くべきことに、実施形態の小規模化処理２１では、再学習を行っていないのに、エントロピー法の再学習有よりも良好な結果が得られた。
【００８０】
図１４Ｂは、第２モデルを用いた結果を示す。なお、ここでは、エントロピー法の再学習は、５００ニューロンが削除される毎に行った。また、ここでは、ニューロンの統合・削減の対象として、２つの隠れ全結合層のニューロンとした。２つの隠れ全結合層のニューロン数は、それぞれ４０９６個である。図１４Ｂに示すように、実施形態の小規模化処理２１は、エントロピー法の再学習無よりも良好な結果を示した。また、実施形態の小規模化処理２１では、再学習を行わないにもかかわらず、ニューロンが半分近く減少するまでは、エントロピー法の再学習有と同程度の結果が得られた。
【００８１】
図１５は、実施形態の小規模化処理２１と、非特許文献１の手法との比較実験結果を示している。ここでの実験は、非特許文献１中のＭＮＩＳＴの実験と同じモデル・データを使用した。図１５において「Neuro-Unification」は、実施形態の小規模化処理２１を適用した結果を示し、「DPP」は、非特許文献１記載の手法（Data-free Parameter Pruning (DPP)）を適用した結果を示す。
【００８２】
図１５に示すように、実施形態の小規模化処理２１では、ニューロンの統合が進んでニューロンの数が少なくなっても、DPPに比べて、エラー率の上昇が抑えられている。したがって、実施形態の小規模化処理２１は、非特許文献１のDPPに比べて、性能の低下を抑制できており、優れていることがわかる。
【００８３】
＜４．内部活性度２乗誤差最小化手法（第２実施形態）＞
【００８４】
以下では、ニューロン統合処理２３の変形例（第２実施形態）を説明する。第２実施形態において、特に説明しない点については、第１実施形態と同様である。
【００８５】
第２実施形態においては、統合されるニューロンの選択基準が、第１実施形態とは異なる。第１実施形態においては、統合されるニューロンの選択基準は、ニューロンの統合により生じるニューロン振舞いベクトル（ＮＢＶ）の誤差を最小化する、という観点での基準である。これに対して、第２実施形態においては、統合されるニューロンの選択基準は、統合されたニューロンが存在する層の次の層（統合されたニューロンの出力が与えられる層）におけるニューロンの内部活性度の誤差（２乗誤差）を最小化する、という観点での基準である。
【００８６】
理解の容易のため、第１実施形態における、統合されるニューロンの選択基準を再度説明する。第１実施形態では、複数の異なる入力データ（コーディング用データ）がニューラルネットワークに与えられたときの、複数のニューロン振舞いベクトル（ＮＢＶ）間の射影残差ｒが最も小さくなるように、統合されるニューロンのペアが選択される。そして、射影残差ｒが小さくなるように削除されるニューロンと、残されるニューロン（統合先ニューロン）と、が決定される。例えば、ニューロン振舞いベクトルｘiとｘjとが、図１６に示す関係にあり、これらのニューロン振舞いベクトルを出力するニューロンが統合される場合を考える。この場合、図１６の式（２０）に示す射影残差ｒ（ｘi,ｘj）のノルムが小さくなるように統合先ニューロンが決定される。具体的には、ｘiを出力するニューロンが削除され、ｘjを出力するニューロンが、統合先ニューロンとなり、ｘiを出力するニューロンの働きを代替する。
【００８７】
ここで、ニューラルネットワークにおける全ニューロンについてのニューロン振舞いベクトルＮＢＶの集合をＸとすると、第１実施形態におけるニューロンの統合の第１基準は、図１６の式（２１）のように表される。式（２１）において、ｘ*removeは、削除されるニューロンの振舞いベクトルであり、ｘ*remainは、残されるニューロンの振舞いベクトルである。なお、argminは、||ｒ（ｘi,ｘj）||を最小化する（ｘi,ｘj）の集合を求める関数である。
【００８８】
図１６の式（２１）に示す第１基準は、ニューロンの統合により生じるニューロン振舞いベクトル（ＮＢＶ）の誤差（射影残差ｒ）を最小化するためのものである。これに対して、第２実施形態においては、第２基準が用いられる。第２基準は、統合されたニューロンが存在する層の次の層（統合されたニューロンの出力が与えられる層）におけるニューロンの内部活性度の誤差（２乗誤差）を最小化する、という観点から得られる基準である。第2実施形態では、内部活性度に関する誤差を指標として、統合されるニューロンが選択される。
【００８９】
ここで、図１７に示すように、ｌ層のニューロンが、ｎｌ個存在し、ｌ層の次の層であるｌ＋１層のニューロンが、ｎｌ＋１個存在するものとする。ｌ層のi番目のニューロンから次のｌ＋１層のｋ番目のニューロンへの結合係数（ウエイト）を、wikと表す。このとき、全入力データ（全コーディング用データ）によって発生するｌ＋１層のｋ番目のニューロンの内部活性度の和Ａｋは、ニューロン振舞いベクトルxi及びウエイトwikに基づいて計算され、図１７の式（２２）のように表される。
【００９０】
そして、ｌ層のｍ番目のニューロンをｎ番目のニューロンに統合することにより生じるｌ＋１層のｋ番目のニューロンでの内部活性度の総和の誤差ΔＡｋは、図１７の式（２３）のように表される。
【００９１】
統合後のｌ層の次の層（ｌ＋１層）の全てのニューロンでの2乗誤差ΔＡｋ2の和rIAは、図１７の式（２４−１）のように表される。式（２４−１）を変形することにより、式（２４−２）及び式（２４−３）が得られる。式（２４−３）を最小化するように、統合されるニューロンｍ,nを決めれば、次の層（ｌ＋１層）におけるニューロン（他層人工ニューロン）の内部活性度の誤差が最も小さくなる。すなわち、図１７の式（２５−１）が統合の第２基準である。
【００９２】
図１７の式（２５−１）を変形すると式（２５−２）が得られる。式（２５−２）に示す第２基準は、図１７に示す「第１基準との違いＤ」の部分が、第１基準である図１６の式（２１）に掛けられたものとなっている。第１基準との違いＤは、ｌ層のi番目のニューロンから次のｌ＋１層へ向かう全ての結合のウエイトwikの二乗和の平方根である。つまり、第２基準は、第１基準で扱われる誤差ｒ（射影偏差）だけでなく、ニューロンの出力側のウエイトをも考慮した基準になっている。
【００９３】
このように、第２基準では、ニューロン振舞いベクトルの誤差を考慮するだけでなく、統合されたニューロンが存在するｌ層の出力が与えられる他層（次のｌ＋１層）における内部活性度に対する統合の影響を少なくするように、統合されるニューロンが選択される。
【００９４】
図１８は、第１実施形態（第１基準：ＮＢＶ誤差最小化手法）と第２実施形態（第２基準：内部活性度二乗誤差最小化手法）との比較のために用いたＶＧＧ１６を示し、図１９は、比較実験結果を示している。実験に用いたＶＧＧ１６は、画像識別用ＤＮＮ（ディープニューラルネットワーク）であり、図１８に示すように、畳み込みネットワーク（convolutional Networks）と全結合ネットワーク（fully connected Networks）とを備えている。図１８の畳み込みネットワーク（畳み込み層）は、第１層ＦＣ１と、第２層ＦＣ２と、を備える。
【００９５】
実験では、ニューロコーディングの後、ニューロン統合を行った。ニューロン統合では、第１基準（ＮＢＶ誤差最小化手法）を用いた統合、及び、第２基準（内部活性度二乗誤差最小化手法）を用いた統合のそれぞれを行った。統合に際しては、まず、第２層ＦＣ２を２５％削減し、続いて、第１層ＦＣ１を削減した。なお、実験では、ファインチューニングは行っていない。
【００９６】
図１９は、テストデータに対する誤り率を示している。図１９の横軸は、ニューロンの結合係数（パラメータ）の数を示し、縦軸は誤り率を示している。図１９に示すように、第２基準（内部活性度二乗誤差最小化手法）を用いて統合すると、第１基準（ＮＢＶ誤差最小化手法）よりも、誤識別率が低く抑えられており、良好な特性を持つ統合ニューラルネットワークが得られていることがわかる。このように、第２基準は、第１基準よりも統合ニューラルネットワークの精度低下を抑えることができる。
【００９７】
＜５．パラメータ数圧縮手法（第３実施形態）＞
【００９８】
図２０及び図２１は、ニューロン統合処理２３の変形例（第３実施形態）を示している。第３実施形態において、特に説明しない点については、第１実施形態及び第２実施形態と同様である。
【００９９】
第２実施形態（第２基準）においては、内部活性度に関する誤差ｒIAを最小化するように統合されるニューロンが選択されるが、第３実施形態では、rparam（図２０の式（２７）参照）を最小化するように統合されるニューロンのペアが選択される。rparamは、誤差ｒIAを、param(zil)（図２０の式（２６）参照）で除したものである。
【０１００】
param(zil)は、ニューロンziｌの削除に伴って、ニューラルネットワークから削除されるパラメータの数を示す。ここでのパラメータは、ニューロン間の結合の重み（ウエイト）ｗと、ニューロンのバイアスｂと、を含む。ニューラルネットワークでは、層毎に、ニューロンの数が異なる場合が多い。ある層のニューロンに結合するウエイトｗの数は、隣接する層に存在するニューロンの数に応じてきまる。全結合層の場合、ｌ層におけるi番目のニューロンzilに関するパラメータ数param(zil)は、図２０の式（２６）によって定義される。ここで、ｎｌ−１は、ｌ−１層に存在するニューロンの数であり、ｎｌ＋１は、ｌ＋１層に存在するニューロンの数である。ニューロンの数が層毎に異なる場合、一つのニューロンを削除した場合に削除されるパラメータの数は、層毎に異なる。ニューラルネットワークの規模は、パラメータの数によって決まるため、ニューラルネットワークの小規模化のためには、１回の統合によって、より多くのパラメータが削除される方が好ましい。
【０１０１】
仮に、ある層の第１ニューロンを削除したときの誤差rIAと、別の層の第２ニューロンを削除したときの誤差rIAとが、同じであったとしても、第１ニューロンの削除に伴って削除されるパラメータの数の方が、第２ニューロンの削除に伴って削除されるパラメータの数よりも多ければ、第１ニューロンを削除する統合を行った方が、小規模化には有利である。
【０１０２】
そこで、第３実施形態では、ニューロン統合に伴い削除されるパラメータ１個あたりの誤差を最小化する。削除されるパラメータ１個あたりの内部活性度に関する誤差rparamは、図２０の式（２７）に示すように、内部活性度に関する誤差rIAを、ニューロン統合に伴い削除されるパラメータ数paramによって除することによって求められる。このように、統合されるニューロンを選択する際に、誤差rIAだけでなく、ニューロン統合に伴い削除されるパラメータ数paramをも考慮することで、ニューラルネットワークの精度低下を防止しつつ、効率的にパラメータ数を削減することができる。なお、rparamは、誤差rIAを、パラメータ数paramを除したものに限られず、パラメータ数paramが多いほど、値が小さくなるように算出されるものであってもよい。
【０１０３】
図２１は、第２実施形態（内部活性度二乗誤差最小化手法）と第３実施形態（パラメータ数圧縮手法）の比較実験結果を示している。実験では、図１８に示すＶＧＧ１６モデルに対してニューロコーディングを行い、その後の全結合層においてニューロン統合を行った。ニューロン統合は、第１層ＦＣ１と第２層ＦＣ２の中間層２層を対象として行った。ニューロコーディング用のデータとして、Imagenet(ILSVRC2012)datasetの1000クラスの学習データの中から、各クラス10個ずつランダムに抜き出し、合計10000個のデータを使用した。第２実施形態・第３実施形態の手法それぞれで、統合512回毎にテストを行い、精度を比較した。
【０１０４】
図２１に示す比較実験結果において、縦軸はテストエラーを示し、横軸はパラメータ数を示している。図２１に示すように、第３実施形態（パラメータ数圧縮手法）では、第２実施形態（内部活性度二乗誤差最小化手法）よりも、高い精度を維持しつつ、パラメータ数を削減できていることがわかる。
【０１０５】
＜６．消去されるニューロンの振舞いを複数のニューロンにより模擬（第４実施形態）＞
【０１０６】
ニューロン統合では、統合に伴い消去されるニューロンの振舞いは、他のニューロンによって模擬（emulate）される。消去されるニューロンの振舞いを模擬するニューロンの数は、一つでもよいし、二以上でもよい。第４実施形態では、二以上のニューロンにより、消去されるニューロンの振舞いを模擬する場合について説明する。
【０１０７】
図２２は、第４実施形態に係るニューロン統合処理２３を示している。図２２に示すニューロン統合処理２３は、図２に示すニューロン統合処理２３と同様に、残差を算出する処理２３１と、統合対象となるニューロンを選択する処理２３２と、選択されたニューロンを統合する処理２３３と、を含む。統合する処理２３３では、統合先ニューロンが決定され、選択されたニューロンのうち統合先ニューロン以外のニューロンが削除され、統合先ニューロンのためのウエイトベクトルが更新される。
【０１０８】
例えば、図２３に示すように、ニューロンＺiを統合先ニューロンＺjに統合する場合、ニューロンＺiが消去され、統合先ニューロンＺjのためのウエイト（統合先ニューロンＺjから次層（ｌ＋１）の各ニューロンへの接続のウエイト）が、ニューロンＺiのためのウエイトを用いて更新される（図９Ｂ参照）。したがって、図９Ｂに示す例では、消去されるニューロンＺiの振舞いは、一つの統合先ニューロンＺjにより模擬される。
【０１０９】
図２３中の式（２８）は、統合先ニューロンＺjから次層（ｌ＋１）のニューロンＺn’への接続のウエイトｗjnの更新式を示している。処理２３３におけるウエイト更新は式（２８）に従って行われる。式（２８）は、図９Ｂ中の式（１３）と等価である。式（２８）中の係数ａik*は、射影ｐと、ＮＢＶであるｘjから求まる値であり、式（１３）中のｋと等価である。
【０１１０】
図２４に示すように、ニューロンＺiを統合先ニューロンＺjに統合する場合、ニューロンＺiの振舞いベクトルＮＢＶ（第１ＮＢＶ）であるｘjは、ニューロンＺjの振舞いベクトルＮＢＶ（第２ＮＢＶ）であるｘjよって近似される。この近似による残差ｒiは、図２４中の式（２９）によって表される。なお、残差ｒiは、図９Ａ中の残差ｅと等価である。残差ｒiは、次層（ｌ＋１）への誤差を生じさせため、小さい方が好ましい。
【０１１１】
第４実施形態では、残差ｒiを小さくするため、ニューロンＺi，Ｚj以外のニューロンＺkによって、ニューロンＺiの振舞いを模擬させる。つまり、ニューロンＺiの振舞いは、二以上のニューロンによって模擬される。このため、第４実施形態に係るニューロン統合処理２３では、ニューロンＺiの振舞いを模擬させるためのニューロンＺkの選択処理２３５が行われる（図２２参照）。選択処理２３５では、消去されずに残っているニューロンの中から、残差ｒiを最もよく近似できるニューロンＺkが選択される。選択処理２３５において、ニューロンＺkの選択は、図２４中の式（３０）に従って行われる。図２４に示すβik*ｘkは、ニューロンＺkの振舞いベクトルＮＢＶであるｘkによる残差ｒiの近似を示している。
【０１１２】
そして、選択されたニューロンＺkのためのウエイト（ウエイトベクトル）の更新処理２３６が実行される。ニューロンＺkのためのウエイトの更新は、近似βik*ｘkに含まれる係数βik*を用いて行われる。図２３及び図２４中の式（３１）は、ニューロンＺkから次層（ｌ＋１）のニューロンＺn’への接続のウエイトｗknの更新式を示している。
【０１１３】
このように、図２３では、ニューロンＺiの消去に伴い、二つのニューロンＺi，Ｚkのためのウエイトが更新される。これにより、消去されたニューロンＺiの振舞い（挙動）は、二つのニューロンＺi，Ｚkによって再現される。
【０１１４】
第４実施形態に係るニューロン統合処理２３では、残差ｒiと、ｘkによる残差ｒiの近似βik*ｘkと、の残差（残差ベクトル）を、新たな残差ｒiとして求める残差更新処理２３７が実行される。新たな残差ｒiによって、処理２３５及び処理２３６が繰り返される。処理２３５及び処理２３６の繰り返しは、必要な回数行われる。繰り返しにより、ｘiの残差ｒiは、より小さくなる。これにより、次層（ｌ＋１）のニューロンの内部活性度の誤差は減少する。
【０１１５】
第４実施形態に係るニューロン統合処理２３によれば、ＮＢＶの類似度が比較的低い（すなわち、残差が大きくなる）ニューロン同士を統合しても、残差を複数のニューロンによって小さくできる。第４実施形態の処理２３５，２３６，２３７の負荷は小さいため、大きな計算資源がなくても、残差を小さくすることができる。
【０１１６】
図２５は、第４実施形態に係るニューロン統合処理２３の実験結果を示している。実験では、図１８に示すＶＧＧ１６モデルに対して、ニューロコーディングを行い、全結合層ＦＣ１，ＦＣ２において第４実施形態に係るニューロン統合処理２３を行った。ニューロコーディング用のデータとして、Imagenet(ILSVRC2012)datasetの中から、ランダムに選択した5000個のデータを使用した。ニューロン統合は、パラメータ数が１／２になるまで（図２５の「×１／２」）と、パラメータ数が１／３になるまで（図２５の「×１／３」）と、について行った。
【０１１７】
図２５に示す実験結果は、図２２の処理２３５，２３６の繰り返しが０回である場合（図２５のＮＵ（０））、同じく繰り返しが１回である場合（図２５のＮＵ（１））、同じく繰り返しが１０回である場合（図２５のＮＵ（１０））について示している。
【０１１８】
図２５中の数値は、統合ニューラルネットワークＮ２の精度(Accuracy)を示している。図２５に示すように、処理２３５，２３６の繰り返しが０回である場合に比べて、処理２３５，２３６の繰り返しがあるほうが、精度が向上している。また、繰り返し回数が多くなるほど、精度が向上する。
【０１１９】
＜６．付記＞
本発明は、上記実施形態に限定されるものではなく、様々な変形が可能である。
【符号の説明】
【０１２０】
１０            ：処理装置
２０            ：プロセッサ
２１            ：小規模化処理
２２            ：ニューロコーディング処理
２３            ：ニューロン統合処理
２４            ：出力処理
３０            ：記憶装置
３１            ：コンピュータプログラム
４０            ：入力データ
１００          ：ニューラルネットワーク利用装置
２００          ：プロセッサ
２３１          ：残差算出処理
２３２          ：選択処理
２３３          ：統合処理
２３４          ：決定処理
２３５          ：選択処理
２３６          ：更新処理
２３７          ：残差更新処理
３００          ：記憶装置
Ｎ１            ：原ニューラルネットワーク
Ｎ２            ：統合ニューラルネットワーク
Ｎ２０          ：統合ニューラルネットワークデータ
ＦＣ１          ：第１層
ＦＣ２          ：第２層
【図１】
2020054402.tif 000003
【図２】
2020054402.tif 000004
【図３】
2020054402.tif 000005
【図４】
2020054402.tif 000006
【図５】
2020054402.tif 000007
【図６】
2020054402.tif 000008
【図７】
2020054402.tif 000009
【図８】
2020054402.tif 000010
【図９】
2020054402.tif 000011
【図１０】
2020054402.tif 000012
【図１１】
2020054402.tif 000013
【図１２】
2020054402.tif 000014
【図１３】
2020054402.tif 000015
【図１４】
2020054402.tif 000016
【図１５】
2020054402.tif 000017
【図１６】
2020054402.tif 000018
【図１７】
2020054402.tif 000019
【図１８】
2020054402.tif 000020
【図１９】
2020054402.tif 000021
【図２０】
2020054402.tif 000022
【図２１】
2020054402.tif 000023
【図２２】
2020054402.tif 000024
【図２３】
2020054402.tif 000025
【図２４】
2020054402.tif 000026
【図２５】
2020054402.tif 000027
【手続補正書】
【提出日】令和3年1月12日(2021.1.12)
【手続補正１】
【補正対象書類名】特許請求の範囲
【補正対象項目名】全文
【補正方法】変更
【補正の内容】
【特許請求の範囲】
【請求項１】
複数の人工ニューロンが結合したニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求めることで、複数の前記ベクトルを得る処理と、
指標に基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理と、
を実行するように構成されて、
前記指標は、前記複数の前記ベクトルに含まれる第１ベクトルと、前記複数の前記ベクトルに含まれる第２ベクトルへの前記第１ベクトルの射影と、の残差に基づく
ニューラルネットワーク処理装置。
【請求項２】
前記統合処理は、選択された複数の人工ニューロンの中から、前記残差に基づいて、統合先となる統合先ニューロンを決定する決定処理を含む
請求項１に記載のニューラルネットワーク処理装置。
【請求項３】
前記ニューラルネットワークは、それぞれが人工ニューロンを有する複数の層を有し、
前記統合処理では、同一又は類似の振舞いをする複数の人工ニューロンとして、異なる層に含まれる人工ニューロンを選択可能である
請求項１又は２に記載のニューラルネットワーク処理装置。
【請求項４】
前記指標は、統合された人工ニューロンの出力が与えられる他層人工ニューロンにおいて、前記残差から計算される前記他層人工ニューロンの内部活性度の誤差に基づく
請求項１から３のいずれか１項に記載のニューラルネットワーク処理装置。
【請求項５】
前記指標は、統合により削除される前記ニューラルネットワークのパラメータの数に更に基づく
請求項１から４のいずれか１項に記載のニューラルネットワーク処理装置。
【請求項６】
前記指標は、統合により生じる前記誤差を、統合により削除されるパラメータの数によって除した値である
請求項４に記載のニューラルネットワーク処理装置。
【請求項７】
前記統合処理は、統合に伴い消去される人工ニューロンのためのウエイトを用いて、統合先ニューロンのためのウエイトを更新することを含む
請求項１から６のいずれか１項に記載のニューラルネットワーク処理装置。
【請求項８】
前記統合処理では、統合に伴い消去される人工ニューロンの振舞いが、統合先ニューロンによって模擬される
請求項１から７のいずれか１項に記載のニューラルネットワーク処理装置。
【請求項９】
前記統合処理では、統合に伴い消去される人工ニューロンの振舞いが、統合先ニューロンを含む二以上の人工ニューロンによって模擬される
請求項１から７のいずれか１項に記載のニューラルネットワーク処理装置。
【請求項１０】
前記統合処理では、統合に伴い消去される人工ニューロンのためのウエイトを用いて、前記統合先ニューロンを含む前記二以上の人工ニューロンのためのウエイトが更新される
請求項９に記載のニューラルネットワーク処理装置。
【請求項１１】
複数の人工ニューロンが結合したニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求めることで、複数の前記ベクトルを得る処理と、
指標に基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理と、
をコンピュータに実行させるためのコンピュータプログラムであって、
前記指標は、前記複数の前記ベクトルに含まれる第１ベクトルと、前記複数の前記ベクトルに含まれる第２ベクトルへの前記第１ベクトルの射影と、の残差に基づく
コンピュータプログラム。
【請求項１２】
複数の人工ニューロンが結合した原ニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求めることで、複数の前記ベクトルを得て、
指標に基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、
選択された複数の人工ニューロンを統合する
ことを含み、
前記指標は、前記複数の前記ベクトルに含まれる第１ベクトルと、前記複数の前記ベクトルに含まれる第２ベクトルへの前記第１ベクトルの射影と、の残差に基づく
ニューラルネットワークの製造方法。
【請求項１３】
複数の人工ニューロンが結合した原ニューラルネットワークに対して、複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求めることで、複数の前記ベクトルを得て、
指標に基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、
選択された複数の人工ニューロンを統合することで、前記原ニューラルネットワークよりも人工ニューロンの数が少ない統合ニューラルネットワークを生成し、
ニューラルネットワークエンジンを前記統合ニューラルネットワークとして機能させるためのニューラルネットワークデータを生成する
ことを含み、
前記指標は、前記複数の前記ベクトルに含まれる第１ベクトルと、前記複数の前記ベクトルに含まれる第２ベクトルへの前記第１ベクトルの射影と、の残差に基づく
ニューラルネットワークデータの製造方法。
【請求項１４】
ニューラルネットワークとして機能するニューラルネットワーク利用装置であって、
前記ニューラルネットワークは、前記ニューラルネットワークよりも人工ニューロンの数が多い原ニューラルネットワークに入力が与えられたときに同一又は類似の出力をする複数の人工ニューロン同士が統合されて構成されており、
同一又は類似の出力をする前記複数の人工ニューロンは、指標に基づいて選択されており、
前記指標は、複数のベクトルに含まれる第１ベクトルと、前記複数の前記ベクトルに含まれる第２ベクトルへの前記第１ベクトルの射影と、の残差に基づき、
前記複数の前記ベクトルは、前記ニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求めることで得られる
ニューラルネットワーク利用装置。
【請求項１５】
複数の人工ニューロンが結合したニューラルネットワークの小規模化のための指標を求めることを含むニューラルネットワーク小規模化方法であって、
前記指標は、複数のベクトルに含まれる第１ベクトルと、前記複数の前記ベクトルに含まれる第２ベクトルへの前記第１ベクトルの射影と、の残差に基づき、
前記複数の前記ベクトルは、前記ニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求めることで得られる
ニューラルネットワーク小規模化方法。
【国際調査報告】
2020054402.tif 000028
2020054402.tif 000029