(19)【発行国】日本国特許庁(JP)
(12)【公報種別】特許公報(B2)
(11)【特許番号】
(24)【登録日】2024-02-16
(45)【発行日】2024-02-27
(54)【発明の名称】ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法
(51)【国際特許分類】
G06N 3/082 20230101AFI20240219BHJP
【FI】
G06N3/082
(21)【出願番号】P 2020546831
(86)(22)【出願日】2019-08-28
(86)【国際出願番号】 JP2019033594
(87)【国際公開番号】W WO2020054402
(87)【国際公開日】2020-03-19
【審査請求日】2022-07-26
(31)【優先権主張番号】P 2018169412
(32)【優先日】2018-09-11
(33)【優先権主張国・地域又は機関】JP
(31)【優先権主張番号】P 2019059091
(32)【優先日】2019-03-26
(33)【優先権主張国・地域又は機関】JP
(73)【特許権者】
【識別番号】504145283
【氏名又は名称】国立大学法人 和歌山大学
(74)【代理人】
【識別番号】100111567
【氏名又は名称】坂本 寛
(72)【発明者】
【氏名】和田 俊和
(72)【発明者】
【氏名】菅間 幸司
(72)【発明者】
【氏名】磯田 雄基
【審査官】渡辺 一帆
(56)【参考文献】
【文献】特開2017-182319(JP,A)
【文献】米国特許出願公開第2017/0364799(US,A1)
【文献】増田 達也 ほか,"隠れユニットの合成による階層型ニューラルネットワークのコンパクト構造化",計測自動制御学会論文集,社団法人計測自動制御学会,1992年,第28巻, 第4号,pp. 519-527,ISSN 0453-4654
(58)【調査した分野】(Int.Cl.,DB名)
G06N 3/02-3/10
(57)【特許請求の範囲】
【請求項1】
複数の人工ニューロンが結合したニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求めることで、複数の前記ベクトルを得る処理と、
指標に基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理と、
を実行するように構成されて、
前記指標は、前記複数の前記ベクトルに含まれる第1ベクトルと、前記複数の前記ベクトルに含まれる第2ベクトルへの前記第1ベクトルの射影と、の残差に基づく
ニューラルネットワーク処理装置。
【請求項2】
前記統合処理は、選択された複数の人工ニューロンの中から、前記残差に基づいて、統合先となる統合先ニューロンを決定する決定処理を含む
請求項1に記載のニューラルネットワーク処理装置。
【請求項3】
前記ニューラルネットワークは、それぞれが人工ニューロンを有する複数の層を有し、
前記統合処理では、同一又は類似の振舞いをする複数の人工ニューロンとして、異なる層に含まれる人工ニューロンを選択可能である
請求項1又は2に記載のニューラルネットワーク処理装置。
【請求項4】
前記指標は、統合された人工ニューロンの出力が与えられる他層人工ニューロンにおいて、前記残差から計算される前記他層人工ニューロンの内部活性度の誤差に基づく
請求項1から3のいずれか1項に記載のニューラルネットワーク処理装置。
【請求項5】
前記指標は、統合により削除される前記ニューラルネットワークのパラメータの数に更に基づく
請求項1から4のいずれか1項に記載のニューラルネットワーク処理装置。
【請求項6】
前記指標は、統合により生じる前記誤差を、統合により削除されるパラメータの数によって除した値である
請求項4に記載のニューラルネットワーク処理装置。
【請求項7】
前記統合処理は、統合に伴い消去される人工ニューロンのためのウエイトを用いて、統合先ニューロンのためのウエイトを更新することを含む
請求項1から6のいずれか1項に記載のニューラルネットワーク処理装置。
【請求項8】
前記統合処理では、統合に伴い消去される人工ニューロンの振舞いが、統合先ニューロンによって模擬される
請求項1から7のいずれか1項に記載のニューラルネットワーク処理装置。
【請求項9】
前記統合処理では、統合に伴い消去される人工ニューロンの振舞いが、統合先ニューロンを含む二以上の人工ニューロンによって模擬される
請求項1から7のいずれか1項に記載のニューラルネットワーク処理装置。
【請求項10】
前記統合処理では、統合に伴い消去される人工ニューロンのためのウエイトを用いて、前記統合先ニューロンを含む前記二以上の人工ニューロンのためのウエイトが更新される
請求項9に記載のニューラルネットワーク処理装置。
【請求項11】
複数の人工ニューロンが結合したニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求めることで、複数の前記ベクトルを得る処理と、
指標に基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理と、
をコンピュータに実行させるためのコンピュータプログラムであって、
前記指標は、前記複数の前記ベクトルに含まれる第1ベクトルと、前記複数の前記ベクトルに含まれる第2ベクトルへの前記第1ベクトルの射影と、の残差に基づく
コンピュータプログラム。
【請求項12】
複数の人工ニューロンが結合した原ニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求めることで、複数の前記ベクトルを得て、
指標に基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、
選択された複数の人工ニューロンを統合する
ことを含み、
前記指標は、前記複数の前記ベクトルに含まれる第1ベクトルと、前記複数の前記ベクトルに含まれる第2ベクトルへの前記第1ベクトルの射影と、の残差に基づく
、
コンピュータによって実行されるニューラルネットワークの製造方法。
【請求項13】
複数の人工ニューロンが結合した原ニューラルネットワークに対して、複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求めることで、複数の前記ベクトルを得て、
指標に基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、
選択された複数の人工ニューロンを統合することで、前記原ニューラルネットワークよりも人工ニューロンの数が少ない統合ニューラルネットワークを生成し、
ニューラルネットワークエンジンを前記統合ニューラルネットワークとして機能させるためのニューラルネットワークデータを生成する
ことを含み、
前記指標は、前記複数の前記ベクトルに含まれる第1ベクトルと、前記複数の前記ベクトルに含まれる第2ベクトルへの前記第1ベクトルの射影と、の残差に基づく
、
コンピュータによって実行されるニューラルネットワークデータの製造方法。
【請求項14】
ニューラルネットワークとして機能するニューラルネットワーク利用装置であって、
前記ニューラルネットワークは、前記ニューラルネットワークよりも人工ニューロンの数が多い原ニューラルネットワークに入力が与えられたときに同一又は類似の出力をする複数の人工ニューロン同士が統合されて構成されており、
同一又は類似の出力をする前記複数の人工ニューロンは、指標に基づいて選択されており、
前記指標は、複数のベクトルに含まれる第1ベクトルと、前記複数の前記ベクトルに含まれる第2ベクトルへの前記第1ベクトルの射影と、の残差に基づき、
前記複数の前記ベクトルは、前記ニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求めることで得られる
ニューラルネットワーク利用装置。
【請求項15】
複数の人工ニューロンが結合したニューラルネットワークの小規模化のための指標を求めることを含む
、コンピュータによって実行されるニューラルネットワーク小規模化方法であって、
前記指標は、複数のベクトルに含まれる第1ベクトルと、前記複数の前記ベクトルに含まれる第2ベクトルへの前記第1ベクトルの射影と、の残差に基づき、
前記複数の前記ベクトルは、前記ニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求めることで得られる
ニューラルネットワーク小規模化方法。
【発明の詳細な説明】
【技術分野】
【0001】
本開示は、ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置、及びニューラルネットワーク小規模化方法に関する。
【背景技術】
【0002】
ディープニューラルネットワークのようなニューラルネットワークは、複数の人工ニューロン(以下、「ニューロン」ということがある)が結合した計算機構である。ニューラルネットワークへ大量のデータを与えて、ニューロンの各結合の重み係数等の最適化計算をすることを深層学習とよぶ。
【先行技術文献】
【非特許文献】
【0003】
【文献】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.
【発明の概要】
【0004】
ニューラルネットワークの学習の際及び学習済ニューラルネットワークを動作させる際には、膨大な計算が必要となる。すなわち、ニューラルネットワークは、一般に、ニューロンの数が多く、大規模であるため、膨大な計算が必要となる。膨大な計算を実行するため、グラフィックプロセッシングユニット(GPU)のような大規模並列計算機構が用いられることが多い。
【0005】
膨大な計算が必要であると、ニューラルネットワークの利用に制約が生じる。例えば、大規模な学習済ニューラルネットワークを、組み込み系システムにおける低消費電力のCPUによって実行することは困難である。したがって、大規模なニューラルネットワークの性能をおおむね維持しつつ、小規模化することが望まれる。
【0006】
ここで、非特許文献1は、ニューラルネットワークの小規模化のため、ニューロンの結合の重みベクトル(重み集合)の同一・類似性に着目することを開示している。非特許文献1では、2つの重みベクトル(重み集合)が同一・類似であれば、一方の重みベクトルが削除され、残った重みベクトルに統合される。
【0007】
しかし、非特許文献1に開示では、小規模化の際に、元の大規模なニューラルネットワークの性能が低下し易いことを本発明者らは見出した。したがって、小規模化の際におけるニューラルネットワークの性能の低下を抑制できる新たな技術が望まれる。
【0008】
本開示の一の態様は、ニューラルネットワーク処理装置である。ニューラルネットワーク処理装置は、複数の人工ニューロンが結合したニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求める処理と、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理と、を実行するように構成されている。
【0009】
本開示の他の態様は、コンピュータプログラムである。コンピュータプログラムは、複数の人工ニューロンが結合したニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求める処理と、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理と、をコンピュータに実行させる。
【0010】
本開示の他の態様は、ニューラルネットワークの製造方法である。ニューラルネットワークの製造方法は、複数の人工ニューロンが結合した原ニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求め、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合することを含む。
【0011】
本開示の他の態様は、ニューラルネットワークデータの製造方法である。ニューラルネットワークデータの製造方法は、複数の人工ニューロンが結合した原ニューラルネットワークに対して、複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求め、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合することで、前記原ニューラルネットワークよりも人工ニューロンの数が少ない統合ニューラルネットワークを生成し、ニューラルネットワークエンジンを前記統合ニューラルネットワークとして機能させるためのニューラルネットワークデータを生成することを含む。
【0012】
本開示の他の態様は、ニューラルネットワーク利用装置である。ニューラルネットワーク利用装置は、ニューラルネットワークとして機能し、前記ニューラルネットワークは、前記ニューラルネットワークよりも人工ニューロンの数が多い原ニューラルネットワークに入力が与えられたときに同一又は類似の出力をする人工ニューロン同士が統合されて 構成されている。
【0013】
更なる詳細は、後述の実施形態として説明される。
【図面の簡単な説明】
【0014】
【
図1】
図1は、ニューラルネットワーク処理装置及びニューラルネットワーク利用装置の構成図である。
【
図2】
図2は、小規模化処理のフローチャートである。
【
図3】
図3は、ニューロン振舞いベクトルの説明図である。
【
図5】
図5は、ニューロン振舞いベクトル行列等の説明図である。
【
図6】
図6は、ウエイト行列及びウエイトベクトルの説明図である。
【
図7】
図7Aは、同一のニューロン振舞いベクトルを示す図である。
図7Bは、2つのニューロンを有する層から出力されるニューロン振舞いベクトルとウエイトベクトルとの説明図である。
図7Cは、統合後のニューラルネットワークを示す図である。
【
図8】
図8Aは、大きさが異なる2つのニューロン振舞いベクトルを示す図である。
図8Bは、2つのニューロンを有する層から出力されるニューロン振舞いベクトルとウエイトベクトルとの説明図である。
図8Cは、統合後のニューラルネットワークを示す図である。
【
図9】
図9Aは、大きさと向きが異なるニューロン振舞いベクトルを示す図であり、
図9Bは、統合後のニューラルネットワークを示す図である。
【
図10】
図10は、3つのニューロン振舞いベクトルを示す図である。
【
図13】
図13(a)は、層内統合を示す図である。
図13(b)は、層間統合を示す図である。
【
図14】
図14Aは、第1モデルについての実験結果を示す図である。
図14Bは、第2モデルについての実験結果を示す図である。
【
図15】
図15は、非特許文献1の手法との比較実験結果である。
【
図16】
図16は、第1実施形態における射影残差と統合の第1基準の説明図である。
【
図17】
図17は、第2実施形態における統合の第2基準の説明図である。
【
図18】
図18は、ディープニューラルネットワークの構成図である。
【
図19】
図19は、第1実施形態と第2実施形態の比較実験結果を示すグラフである。
【
図20】
図20は、第3実施形態における誤差の説明図である。
【
図21】
図21は、第2実施形態と第3実施形態の比較実験結果を示すグラフである。
【
図22】
図22は、第4実施形態に係るニューロン統合処理を示すフローチャートである。
【
図23】
図23は、第4実施形態に係るニューロン統合処理の説明図である。
【
図24】
図24は、第4実施形態におけるニューロン振舞いベクトルの説明図である。
【
図25】
図25は、第4実施形態に係るニューロン統合処理の実験結果である。
【発明を実施するための形態】
【0015】
<1.ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置の概要>
【0016】
(1)実施形態に係るニューラルネットワーク処理装置は、複数の人工ニューロンが結合したニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求める処理を実行するよう構成されている。ニューラルネットワークに実際に入力データを与えることで、各人工ニューロンの出力を求めることができる。各人工ニューロンの出力は、各人工ニューロンの振舞いを示す。すなわち、出力のベクトルを求めることで、入力データが与えられたときの人工ニューロンの振舞いを把握することができる。
【0017】
実施形態に係るニューラルネットワーク処理装置は、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理を実行するよう構成されている。統合により、ニューラルネットワークを小規模化することができる。実施形態においては、人工ニューロンの振舞いを示すベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを統合するため、適切な統合が可能となり、小規模化の際におけるニューラルネットワークの性能低下を抑制できる。すなわち、ニューラルネットワークの性能は人工ニューロンの結合の重みだけで決まるのではなく、各人工ニューロンの活性化関数やバイアスによっても影響を受ける。したがって、非特許文献1のように、重みベクトル(重み集合)が同一・類似であっても、実際に入力データが与えられたときの各人工ニューロンの振舞いが同一・類似であるとは限らない。これに対して、本実施形態では、入力データが与えられたときの各ニューロンの振舞いを示すベクトルの同一・類似性に着目しているため、適切な統合が可能となる。
【0018】
なお、ニューロンの統合は、一つのニューラルネットワークの中だけで行われてもよいし、複数のニューラルネットワークに跨っておこなわれてもよい。
【0019】
(2)同一又は類似の振舞いをする複数の人工ニューロンは、ベクトルの類似度を示す指標に基づいて、選択することができる。すなわち、ベクトルが同一又は類似していれば、同一又は類似の振舞いをすると判定することができる。ベクトルの類似度を示す指標としては、公知の様々な指標を採用することができる。ベクトルが類似しているか否かは、例えば、ベクトルの類似度を示す指標を所定の閾値と比較することで判定することができる。
【0020】
(3)前記指標は、複数の前記ベクトルに含まれる第1ベクトルと、複数の前記ベクトルに含まれる第2ベクトルへの前記第1ベクトルの射影と、の残差であるのが好ましい。この残差を用いると、統合処理の際に、複数の人工ニューロンのうちのどれをどれに統合するか(例えば、第1ベクトルを出力する第1人工ニューロンを、第2ベクトルを出力する第2人工ニューロンに統合するのか、それとも第2人工ニューロンを第1ニューロンに統合するのか)を選択することが可能となる。
【0021】
(4)前記統合処理は、選択された複数の人工ニューロンの中から、前記残差に基づいて、統合先となる統合先ニューロンを決定する決定処理を含むことができる。前述のように、統合すべき複数のベクトルの大きさと向きが異なる場合、前記残差は、複数のベクトルの組み合わせの数だけ求めることができる。複数の残差は、統合されるべき複数の人工ニューロンのうちのどれをどれに統合するかの指標になるため、統合の仕方を適切に選択することが可能となる。
【0022】
(5)前記ニューラルネットワークは、それぞれが人工ニューロンを有する複数の層を有し、前記統合処理では、同一又は類似の振舞いをする複数の人工ニューロンとして、異なる層に含まれる人工ニューロンを選択可能であるのが好ましい。これにより、異なる層に含まれる人工ニューロンを統合する層間統合が行える。
【0023】
(6)前記指標は、統合された人工ニューロンの出力が与えられる他層人工ニューロンにおいて、前記ベクトルから計算される前記他層人工ニューロンの内部活性度の誤差に基づくことができる。前記指標が、内部活性度の誤差に基づくことで、人工ニューロンの統合に伴う精度低下を防止できる。ここで、「内部活性度の誤差に基づく」とは、前記指標が、内部活性度の誤差に基づいていれば、内部活性度の誤差以外の値(例えば、統合に伴い削除されるパラメータ数)にも基づいてもよいことを意味する。また、「内部活性度の誤差に基づく」とは、前記指標が、「内部活性度の誤差」に基づいて計算される派生値(例えば、活性化関数により計算される値)であってもよいことを意味する。
【0024】
(7)前記指標は、統合により削除される前記ニューラルネットワークのパラメータの数に更に基づくのが好ましい。この場合、パラメータ数を効率的に削除することができる。
【0025】
(8)前記指標は、統合により生じる前記誤差を、統合により削除されるパラメータの数によって除した値であるのが好ましい。また、前記指標は、複数の前記人工ニューロンに含まれる第1人工ニューロンから出力される前記ベクトルである第1ベクトルと、複数の前記人工ニューロンに含まれる第2人工ニューロンから出力される前記ベクトルである第2ベクトルへの前記第1ベクトルの射影と、の残差と、前記第1人工ニューロンを前記第2人工ニューロンに統合したときの第2人工ニューロンから他層への結合のウエイトと、に基づくことができる。
【0026】
(9)前記統合処理は、統合に伴い消去される人工ニューロンのためのウエイトを用いて、統合先ニューロンのためのウエイトを更新することを含むことができる。
【0027】
(10)前記統合処理では、統合に伴い消去される人工ニューロンの振舞いが、統合先ニューロンによって模擬される。
【0028】
(11)前記統合処理では、統合に伴い消去される人工ニューロンの振舞いが、統合先ニューロンを含む二以上の人工ニューロンによって模擬されてもよい。
【0029】
(12)前記統合処理では、統合に伴い消去される人工ニューロンのためのウエイトを用いて、前記統合先ニューロンを含む前記二以上の人工ニューロンのためのウエイトが更新されるのが好ましい。
【0030】
(13)実施形態に係るコンピュータプログラムは、複数の人工ニューロンが結合したニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求める処理と、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合する統合処理と、をコンピュータに実行させる。
【0031】
(14)実施形態に係るニューラルネットワークの製造方法は、複数の人工ニューロンが結合した原ニューラルネットワークに対して複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求め、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合することを含む。実施形態に係るニューラルネットワークの製造方法によれば、原ニューラルネットワークを小規模化したニューラルネットワークを製造することができ、しかも、製造されたニューラルネットワークの性能低下を抑制できる。
【0032】
(15)実施形態に係るニューラルネットワークデータの製造方法は、複数の人工ニューロンが結合した原ニューラルネットワークに対して、複数の入力データを与えて、前記人工ニューロンから出力される複数の出力からなるベクトルを、複数の前記人工ニューロンそれぞれについて求め、前記ベクトルに基づいて、同一又は類似の振舞いをする複数の人工ニューロンを選択し、選択された複数の人工ニューロンを統合することで、前記原ニューラルネットワークよりも人工ニューロンの数が少ない統合ニューラルネットワークを生成し、ニューラルネットワークエンジンを前記統合ニューラルネットワークとして機能させるためのニューラルネットワークデータを生成することを含む。実施形態に係るニューラルネットワークデータの製造方法によれば、小規模化されたニューラルネットワークデータを製造することができる。製造されたニューラルネットワークデータは、小規模であるため、計算能力が比較的低いニューラルネットワークエンジンにおいても実行可能である。ここで、ニューラルネットワークエンジンは、例えば、CPU,GPU,FPGA,又はASCIなどの演算装置によって構成される。実施形態の製造方法によって製造されたニューラルネットワークデータは、小規模であるため、組み込み系システムにおける低消費電力のCPUなど計算能力が比較的低い演算装置であっても、実行することができる。
【0033】
(16)実施形態に係るニューラルネットワーク利用装置は、ニューラルネットワークとして機能する装置であり、前記ニューラルネットワークは、前記ニューラルネットワークよりも人工ニューロンの数が多い原ニューラルネットワークに入力が与えられたときに同一又は類似の出力をする人工ニューロン同士の統合により構成されている。
【0034】
(17)実施形態に係るニューラルネットワーク小規模化方法は、複数の人工ニューロンが結合したニューラルネットワークの小規模化のための指標を求めることを含むニューラルネットワーク小規模化方法であって、前記指標は、前記ニューラルネットワークに対して複数の入力データが与えられたときに各人工ニューロンから出力される複数の出力に基づいて求められる。
【0035】
<2.ニューラルネットワーク処理装置、コンピュータプログラム、ニューラルネットワーク製造方法、ニューラルネットワークデータの製造方法、ニューラルネットワーク利用装置の例(第1実施形態)>
【0036】
図1は、実施形態に係るニューラルネットワーク処理装置(以下、「処理装置」という)10とニューラルネットワーク利用装置(以下、「利用装置」という)100とを示している。実施形態に係る処理装置10は、ニューラルネットワークN1を小規模化するための小規模化処理21を実行する。小規模化処理21を実行することにより実施される方法は、小規模化されたニューラルネットワークの製造方法又は小規模化されたニューラルネットワークデータの製造方法でもある。
【0037】
以下では、小規模化処理の対象となるニューラルネットワークN1を、「原ニューラルネットワーク」といい、小規模化されたニューラルネットワークN2を「統合ニューラルネットワーク」という。なお、実施形態に係る処理装置10は、原ニューラルネットワークN1の機械学習(深層学習)のための処理も実行可能である。処理装置10は、学習済の原ニューラルネットワークN1を小規模化する。
【0038】
処理装置10は、1又は複数のプロセッサ20及び記憶装置30を有するコンピュータによって構成されている。1又は複数のプロセッサ20は、例えば、グラフィックプロセッシングユニット(GPU)を含む。1又は複数のプロセッサ20は、さらにCPUを含んでもよい。GPUのような大規模並列計算機構は、大規模なニューラルネットワークに関する処理を実行するための大量の計算に適している。
【0039】
記憶装置30は、プロセッサ20によって実行されるコンピュータプログラム31を記憶している。プロセッサ20は、コンピュータプログラム31を実行することで、小規模化処理21を行う。小規模化処理21は、後述のように、ニューロコーディング(Neuro Coding)処理22と、ニューロン統合(Neuro Unification)処理23と、を含む。これらの処理22,23については後述する。
【0040】
記憶装置30は、小規模化処理21に用いられる複数の入力データ40を記憶している。入力データは、ニューロコーディング処理22において、ニューロンの振舞いを把握するため、原ニューラルネットワークN1に入力として与えられる。入力データ40は、ニューラルネットワークが扱うデータであれば特に限定されず、例えば、画像データ又は音声データである。
【0041】
記憶装置30は、小規模化処理21によって製造された統合ニューラルネットワークN2を表すデータ(統合ニューラルネットワークデータ)N20を記憶することができる。統合ニューラルネットワークデータN20は、統合ニューラルネットワークN2を表現する各種のパラメータ(重み、結合関係など)からなるデータである。統合ニューラルネットワークデータN20は、ニューラルネットワークエンジンに読み込まれることで、そのニューラルネットワークエンジンを統合ニューラルネットワークN2として機能させる。
【0042】
利用装置100は、小規模化されたニューラルネットワークデータN20を読み込んで、統合ニューラルネットワークN2として機能するニューラルネットワークエンジンを有する。ニューラルネットワークエンジンは、例えば、プロセッサ200と記憶装置300とを備える。プロセッサ200は、例えば、組み込み系システムにおける低消費電力のCPUでよい。ニューラルネットワークデータN20は、原ニューラルネットワークN1のデータに比べて、サイズが小さいため、低消費電力のCPUによる処理が可能である。
【0043】
組み込み系システムは、汎用的なコンピュータシステムではなく、特定の用途に向けられたコンピュータシステムであり、例えば、スマートフォン・家電などの家庭用機器、産業用ロボットなどの産業用機器、各種の医療用機器、自動車・ドローンなどのビークル、及びその他の機器におけるコンピュータシステムである。組み込み系システムでは、プロセッサとして、低消費電力のCPUが使われることが多いが、ニューラルネットワークデータN20は、データサイズが小さいため、実行が容易である。
【0044】
統合ニューラルネットワークN2は、例えば、画像・音声の変換、セグメンテーション、識別などの用途に用いられる。より具体的には、例えば、店舗等の客数計測、男女・年齢層分析、車両計数、車種分析など、対象物の画像から必要な情報を抽出するために用いることができる。原ニューラルネットワークN1は大規模であり、計算コストが大きいため、組み込み系システムでの実行が困難であるが、統合ニューラルネットワークN2は、小規模化されているため、組み込み系システムでの実行が容易である。
【0045】
図2は、原ニューラルネットワークN1から小規模化された統合ニューラルネットワークN2を製造する工程(小規模化処理21)を示している。小規模化の対象となる原ニューラルネットワークN1は、例えば、ディープニューラルネットワークであり、より具体的には、例えば、畳み込みニューラルネットワーク(CNN)である。原ニューラルネットワークN1は、層状に並べられた人工ニューロンが層間で結合されている全結合層を有する。実施形態の小規模化処理21は、一例として、全結合層を小規模化する。なお、ここでの原ニューラルネットワークN1は深層学習済みのモデルであるものとする。
【0046】
小規模化処理21では、まず、ニューロコーディング処理22が行われる。ニューロコーディング処理は、原ニューラルネットワークN1に対して複数の入力データ(コーディング用データ)40を与えて、原ニューラルネットワークN1に含まれる各人工ニューロンの振舞いを、ニューロン振舞いベクトルとして検出する処理である。
【0047】
図3は、複数の層を有する原ニューラルネットワークN1を示している。
図3では、3つの層(l-1層,l層,l+1層)を代表的に示している。各層中における丸印が人工ニューロンである。以下では、l層のi番目のニューロンをZ
i
lで示し、l+1層のj番目のニューロンをZ
j
l+1のように示す。
【0048】
ニューラルネットワークN1に対して入力データが与えられると、ニューロンZ
j
l+1の出力x
j
l+1は、
図4の式(1)(2)によって表される。式(1)(2)は、ニューラルネットワークにおける順伝搬(forward propagation)を示す一般的な表記である。ここで、式(1)中のw
ij
lは、l層の複数(rl個:l層に含まれるニューロンの数)のニューロンZ
i
lから、l+1層のニューロンZ
j
l+1へ向かう結合の重み(ウエイト)を示す。b
j
l+1はニューロンZ
j
l+1におけるバイアスを示す。u
j
l+1は内部活性度を示す。式(2)中のfは、活性化関数を示す。
【0049】
続いて、ウエイト行列W
lを用いて、l+1層における内部活性度行列を
図4の式(3)のように定義する。式(3)の内部活性度行列は、一つの入力データがニューラルネットワークN1に与えられたときにおける、l+1層のr
l+1個のニューロンの内部活性度を示す。
【0050】
さて、本実施形態では、ニューラルネットワークN1に複数(d個)の入力データ(コーディング用データ)が与えられたときのニューロンの振舞いを示す指標として、「ニューロン振舞いベクトル(Neuron Behavioral Vector):NBV」という概念を導入する。ニューラルネットワークN1に複数(d個)の入力データが与えられたときにおける、ニューロンZ
i
lの振舞いベクトルは、
図3中の式のように、d個の出力xによって表される。ニューロコーディング処理22では、複数の入力データが与えられることで、ニューラルネットワークN1に含まれる全ニューロンそれぞれのニューロン振舞いベクトル(NBV)が求められる。
【0051】
ニューロン振舞いベクトル(NBV)を用いると、ニューロンの出力は、スカラーではなく、ベクトルとなる。l層における複数(r
l個)のニューロン振舞いベクトルからなる行列(NBV行列)を
図5の式(4)のように表す。
【0052】
さらに、l層からl+1層へのウエイト行列を
図6の式(5)のように表す。式(5)のウエイト行列は、l層からl+1層への複数(r
l個)のウエイトベクトルを要素として有する。ウエイトベクトルは、l層の各ニューロンからl+1層へ向かう重み(ウエイト)のベクトルである。
【0053】
したがって、l+1層におけるNBV行列は、l層におけるNBV行列と、l層からl+1層へのウエイト行列と、バイアス行列と、を用いて、
図6の式(6)(7)によって表される。なお、バイアス行列は、
図6の式(8)のように表される。
【0054】
図5の式(4)及び
図6の式(5)を用いると、
図5の式(6)は、
図5の式(9)のように書き換えられる。ここで、式(9)の右辺中のウエイトベクトルw
i
lとニューロン振舞いベクトルx
i
lは、ニューロンz
i
lに関する変数である。したがって、式(9)の右辺中のバイアス行列を除く各項の行列w
i
lx
i
lTは、ニューロンz
i
lから伝播したU
l+1の要素であると考えることができる。
【0055】
図2に戻り、ニューロコーディング処理22に続いて、ニューロン統合処理23が実行される。ニューロン統合処理23では、ニューロン振舞いベクトル(NBV)に基づいて、ニューラルネットワークN1の全ニューロンの中から同一又は類似の振舞いをする複数の人工ニューロンを選択する。統合処理23では、さらに、選択された複数の人工ニューロンを統合することで、ニューラルネットワークN1を小規模化する。統合により消去された人工ニューロンの振舞いは、統合により残った人工ニューロンに承継される。振舞いの承継により、小規模化しても、原ニューラルネットワークN1の性能低下を抑制することができる。
【0056】
以下では、まず、より簡単な例として、同一の振舞いをするニューロン同士の統合を説明し、続いて、類似の振舞いをするニューロン同士の統合を説明する。
図7A,7B,7Cは、同一振舞いの場合のニューロン統合を示している。ここでは、ニューラルネットワークN1のl層には、2つのニューロン(第1ニューロンZ
i
l及び第2ニューロンZ
j
l)だけが存在するものとする。
図7Aに示すように、第1ニューロンZ
i
lの振舞いベクトルと第2ニューロンZ
j
lの振舞いベクトルとは同じであるものとする。この場合、
図5の式(9)は、
図7Bの式(10)のようになる。2つのニューロンZ
i
l,Z
j
lは、同じ入力データに対して常に同じ出力を生成するため、2つのニューロンZ
i
l,Z
j
lの存在は、明らかに冗長である。
【0057】
したがって、振舞いベクトルが同じである複数のニューロンZ
i
l,Z
j
lは、統合の対象として選択される。選択された複数のニューロンZ
i
l,Z
j
lは、一つに統合される。振舞いベクトルが同じである場合、第1ニューロンZ
i
lを第2ニューロンZ
j
lに統合してもよいし、第2ニューロンZ
j
lを第1ニューロンZ
i
lに統合してもよい。いずれの統合でも、統合後の性能は等価である。ここでは、第1ニューロンZ
i
lを第2ニューロンZ
j
lに統合し、第1ニューロンZ
i
lは消去されるものとする。そして、第1ニューロンZ
i
lのための第1ウエイトベクトルを第2ニューロンZ
j
lのための第2ベクトルに統合し、第1ウエイトベクトルは消去されるものとする。統合後の第2ウエイトベクトルを
図7C中に示す。また、
図7Cの式(11)は、
図7Bの式(10)を統合後の形式に書き直したものである。2つの振舞いベクトルが同じである場合、式(10)の右辺と式(11)の右辺は明らかに等価である。したがって、
図7Bに示す統合前のニューラルネットワークの性能と、
図7Cに示す統合後のニューラルネットワーク性能とは等価であり、統合による性能劣化は生じない。
【0058】
図8A,8B,8Cは、類似振舞いの場合のニューロン統合の第1例を示している。ここでも、ニューラルネットワークN1のl層には、2つのニューロン(第1ニューロンZ
i
l及び第2ニューロンZ
j
l)だけが存在するものとする。また、
図8Aに示すように、第1ニューロンZ
i
lの振舞いベクトル(第1NBV)は、第2ニューロンZ
j
lの振舞いベクトル(第2NBV)のk倍(kはゼロより大きい自然数)であるものとする。この場合、第1ニューロン振舞いベクトルと第2ニューロン振舞いベクトルとは線形従属の関係にあり、一方のベクトルによって他方のベクトルを表すことができる。このような関係にある複数のニューロンZ
i
l,Z
j
lも、統合の対象として選択される。
【0059】
したがって、
図8Bに示す統合前のニューラルネットワークにおいて、第1ニューロンZ
i
lを第2ニューロンZ
j
lに統合し、第1ニューロンZ
i
lを消去し、第1ニューロンZ
i
lのための第1ウエイトベクトルを第2ニューロンZ
j
lのための第2ベクトルに統合し、第1ウエイトベクトル消去することができる。統合後の第2ウエイトベクトルを
図8C中に示す。統合後の第2ウエイトベクトルは、第1ウエイトベクトルをk倍したものと統合前の第2ウエイトベクトルとの和となる。
【0060】
図9A,9Bは、類似振舞いの場合のニューロン統合の第2例を示している。先の第1例では、ベクトルの大きさが異なり向きは同じであったが、第2例では、第1ニューロンの振舞いベクトル(第1NBV)と第2ニューロンの振舞いベクトル(第2NBV)とは、大きさだけでなく、向きも多少異なる。ここで、
図9Aの式(12)に示すように、第2NBVへの第1NBVの射影をpとし、第1NBVとpとの残差をeとする。この場合、第1NBVの射影pと第2NBVとは、
図8Aに示す関係と同様である。したがって、
図9Bに示すように、
図8Cと同様の統合が行える。すなわち、統合後の第2ウエイトベクトルは、第1ウエイトベクトルをk倍したものと統合前の第2ウエイトベクトルとの和となる。kは、射影pと第2NBVとから求まる値であり、
図9Bの式(13)に示される。
【0061】
第1NBVにおける残差eは、第2NBVに直交する。したがって、第1ニューロンを第2ニューロンに統合した場合、第1NBVにおける残差eの成分は、統合された第2ニューロンが承継することができない。したがって、残差eが十分に小さくなる(例えば、残差eが所定の閾値以下になる)関係にあるベクトルを出力できる複数のニューロンを、類似する振舞いをするニューロンであるとみなし、統合の対象として選択することができる。これにより、統合によるニューラルネットワーク性能への影響を抑制できる。
【0062】
本実施形態では、統合の際の残差による影響を管理するため、
図10の式(14)に示す目的関数e
totalを導入する。式(14)において、Cは、ニューラルネットワークにおいて、統合されたニューロンのニューロン振舞いベクトル(NBV)の集合を示す。統合の対象となるニューロンを選択し、統合する際には、e
totalの増加ができるだけ抑制されるように行えばよい。
【0063】
以下では、統合の連鎖(chained unification)における残差eの取り扱いについて説明する。ここでは、統合を繰り返すことで、2以上のニューロンが一つのニューロンに統合される場合を考える。
図10に示すようなニューロン振舞いベクトルを持つ第1ニューロンZ
i
lが、第2ニューロンZ
j
lに統合された場合、e
totalは、
図10の式(15)に示すようになる。
【0064】
そして、
図11に示すように、統合された第2ニューロンZ
j
lが、さらに第3ニューロンZ
k
lに統合されるものとする。この場合、第1ニューロンZ
i
lの役割を承継していた第2ニューロンZ
j
lは、もはや第1ニューロンZ
i
lの役割を果たせなくなる。したがって、第3ニューロンZ
k
lは、第2ニューロンZ
j
lだけでなく、第1ニューロンZ
i
lの役割をも果たす必要がある。すなわち、統合された第2ニューロンZ
j
lが、さらに第3ニューロンZ
k
lに統合されると、3ニューロンZ
k
lのための第3ウエイトベクトルは、
図11の式(16)に示すように更新される。そして、e
totalは、
図11の式(17)に示すように再計算される。
【0065】
式(17)において、式(15)の右辺の項(第1NBVと第2NBVとの残差)は存在しない。これは、第3ニューロンZk
lへの統合により、第1ニューロンZi
lも第2ニューロンZj
lも消去されるためである。このように、統合の連鎖が生じる場合、etotalは再計算される必要がある。etotalの再計算のため、処理装置10は、統合処理23中において、既に消去されたニューロンのためのウエイトベクトルを保持し続ける。その結果、式(17)に示す第1残差のように、既に消去された第1ニューロンとの間の残差を再計算することができる。
【0066】
実施形態では、残差eは、統合対象として選択された複数のニューロンのうちのどれをどれに統合するか、すなわち、統合先ニューロンを決定する決定処理に用いられる。統合先ニューロンの決定は、統合の非対称性を考慮したものである。統合の非対称性のため、どのニューロンをどのニューロンに統合するかによって、残差eの大きさ(ノルム)が異なることになる。したがって、etotalをできるだけ小さくするには、残差eが小さくなる統合先ニューロンを決定すべきである。
【0067】
図12の式(18)は、ニューロンZ
i
lをニューロンZ
j
lに統合したときの残差のノルムを示し、同じく式(19)は、逆に、ニューロンZ
j
lをニューロンZ
i
lに統合したときの残差のノルムを示す。式(18)及び式(19)において、θは2つのニューロン振舞いベクトルの間の角度である。2つのニューロン振舞いベクトルのノルムが等しくなる例外的な場合以外は、式(18)及び式(19)に示す残差のノルムは、異なるものとなる。したがって、統合先ニューロンの決定処理においては、式(18)及び式(19)に示すように、複数の統合対象のベクトル間で、残差のノルムをそれぞれ計算し、残差が最も小さくなるように統合先を決定する。
【0068】
ニューロン統合処理23では、統合対象として選択された複数のニューロンのうち、決定処理により決定された統合先ニューロンへ、残りのニューロンが統合される。統合対象の選択は、ニューロン振舞いベクトルの同一・類似性に基づくが、同一・類似であるかは、同一の層内だけで判定される必要はなく、複数の層を跨いで判定されてもよい。したがって、実施形態においては、異なる層に属するニューロンが、同一又は類似のニューロン振舞いベクトルを持つ場合、異なる層に属するニューロン同士が統合対象として選択されることがある。
【0069】
図13(a)は、同一層内での統合(層内統合)を示している。
図13(a)では、ニューロンZ
ilが、同一層内に属する他のニューロンZ
j
lに統合される。そして、ニューロンZ
ilのためのウェイトベクトル(点線で示される結合に相当)が削除され、他のニューロンZ
j
lのためのウェイトベクトル(実線で示される結合に相当)に統合(更新)される。
図13(b)は、異なる層間での統合(層間統合)を示している。
図13(b)では、l層に属するニューロンZ
i
lが、他の層であるm層に属するニューロンZ
j
mに統合される。この場合、ニューロンZ
i
lが削除されるため、ニューロンZ
i
lのためのウエイトベクトルの代替として、ニューロンZ
j
mから層を1つ飛び越えて結合する新たな結合(スキップコネクション)が生成され、新たな結合のためのウエイトベクトルw
skipが生成される。
【0070】
図2に戻り、以上のニューロン統合処理23を整理すると、まず、原ニューラルネットワークN1に含まれる全ニューロンの組み合わせについて、ニューロン振舞いベクトル(NBV)に基づき、残差eを算出する処理231を行う。そして、残差eが所定の閾値以下となる2以上のニューロンの組み合わせを統合対象として選択する処理232を行う。そして、選択された統合対象の中から、一つの統合先ニューロンの決定処理234を行い、その統合先ニューロンへ統合する処理233を行う。統合に伴い、ウエイトベクトルも更新される。
【0071】
ニューロン統合処理23によって、原ニューラルネットワークN1の性能をほぼ維持しつつ、小規模化された統合ニューラルネットワークN2が製造される。処理装置10は、統合ニューラルネットワークN2における重み(ウエイト)などのパラメータを、統合ニューラルネットワークデータN20として生成(製造)し、記憶装置30に保存する。処理装置10は、データN20を、外部へ出力する処理24を行うことができる。出力処理24は、記録媒体への出力でもよいし、処理装置10から図示しないネットワークを介して、データN20を利用装置100へ送信することであってもよい。利用装置100は、処理装置10から受信したデータN20を記憶装置300に保存する。利用装置100は、データN20を読み取って、統合ニューラルネットワークN2として機能する。
【0072】
<3.実験結果>
【0073】
手書き数字文字データベースMNISTの6000字の学習用文字(学習用データ)を用いて学習し、1000文字のテスト用文字を用いてテストを行った。実験では、6000字の学習用文字を、ニューロン振舞いベクトルを求めるための入力データとしても用いた。
【0074】
実験に用いたモデル(第1モデル)は、3層の全結合層(入力層、隠れ層、出力層)からなるニューラルネットワーク(原ニューラルネットワークN1)である。入力層は、784ニューロンを有する。隠れ層は、2000ニューロンを有し、各ニューロンは、ReLU関数を有する。出力層は、10ニューロンを有し、各ニューロンは、ソフトマックス関数を有する。このモデルを、MINSTの6000文字の学習用文字で学習させた。エポック数は100とした。このモデル(原ニューラルネットワークN1)による推定精度は、0.9795(エラー率:0.0205)であった。
【0075】
実験では、さらに、学習済VGG16モデル(第2モデル)も準備した。VGG16モデル(第2モデル)は、1000ニューロンの出力層を、31ニューロンの新たな層に置き換え、全結合層をエポック数100にて、ファインチューニング(再学習)した。このVGG16モデルによる推定精度は、0.8380であった。
【0076】
実験では、小規模化処理21の比較例として、エントロピー法による処理を行った。エントロピー法は、エントロピーインポータンス関数(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)に基づいて、ニューロンの重要性を評価する手法である。重要でないニューロンは削除される。
【0077】
実験では、MINSTによって学習されたモデルに対して、実施形態の小規模化処理(ニューロコーディング22及びニューロン統合23)21を適用した。また、エントロピー法も適用した。エントロピー法の適用は、再学習無しの場合と、100ニューロンが削除されるごとに再学習する場合の2通りで行った。実験では、ニューロンの統合・削減の対象として、隠れ層の2000ニューロンとした。
【0078】
図14A及び
図14Bは、実験結果を示している。
図14A、14Bの横軸は、統合又は削減後の隠れ層のニューロンの数であり、縦軸は、推定エラー率である。
図14A,14Bにおいて、「Neuro-Unification」は、実施形態の小規模化処理21を適用した結果を示し、「Entropy」は、エントロピー法の再学習無を適用した結果を示し、「Entropy-retraining」は、エントロピー法の再学習有を適用した結果を示す。
【0079】
図14Aは、第1モデルを用いた結果を示す。この場合、エントロピー法の再学習無では、ニューロン数が1500よりも減少するとエラー率が大きく上昇するのに対して、実施形態の小規模化処理21によると、当初の2000個のニューロンが85%近く減少しても、エラー率は1%程度しか上昇しなかった。驚くべきことに、実施形態の小規模化処理21では、再学習を行っていないのに、エントロピー法の再学習有よりも良好な結果が得られた。
【0080】
図14Bは、第2モデルを用いた結果を示す。なお、ここでは、エントロピー法の再学習は、500ニューロンが削除される毎に行った。また、ここでは、ニューロンの統合・削減の対象として、2つの隠れ全結合層のニューロンとした。2つの隠れ全結合層のニューロン数は、それぞれ4096個である。
図14Bに示すように、実施形態の小規模化処理21は、エントロピー法の再学習無よりも良好な結果を示した。また、実施形態の小規模化処理21では、再学習を行わないにもかかわらず、ニューロンが半分近く減少するまでは、エントロピー法の再学習有と同程度の結果が得られた。
【0081】
図15は、実施形態の小規模化処理21と、非特許文献1の手法との比較実験結果を示している。ここでの実験は、非特許文献1中のMNISTの実験と同じモデル・データを使用した。
図15において「Neuro-Unification」は、実施形態の小規模化処理21を適用した結果を示し、「DPP」は、非特許文献1記載の手法(Data-free Parameter Pruning (DPP))を適用した結果を示す。
【0082】
図15に示すように、実施形態の小規模化処理21では、ニューロンの統合が進んでニューロンの数が少なくなっても、DPPに比べて、エラー率の上昇が抑えられている。したがって、実施形態の小規模化処理21は、非特許文献1のDPPに比べて、性能の低下を抑制できており、優れていることがわかる。
【0083】
<4.内部活性度2乗誤差最小化手法(第2実施形態)>
【0084】
以下では、ニューロン統合処理23の変形例(第2実施形態)を説明する。第2実施形態において、特に説明しない点については、第1実施形態と同様である。
【0085】
第2実施形態においては、統合されるニューロンの選択基準が、第1実施形態とは異なる。第1実施形態においては、統合されるニューロンの選択基準は、ニューロンの統合により生じるニューロン振舞いベクトル(NBV)の誤差を最小化する、という観点での基準である。これに対して、第2実施形態においては、統合されるニューロンの選択基準は、統合されたニューロンが存在する層の次の層(統合されたニューロンの出力が与えられる層)におけるニューロンの内部活性度の誤差(2乗誤差)を最小化する、という観点での基準である。
【0086】
理解の容易のため、第1実施形態における、統合されるニューロンの選択基準を再度説明する。第1実施形態では、複数の異なる入力データ(コーディング用データ)がニューラルネットワークに与えられたときの、複数のニューロン振舞いベクトル(NBV)間の射影残差rが最も小さくなるように、統合されるニューロンのペアが選択される。そして、射影残差rが小さくなるように削除されるニューロンと、残されるニューロン(統合先ニューロン)と、が決定される。例えば、ニューロン振舞いベクトルx
iとx
jとが、
図16に示す関係にあり、これらのニューロン振舞いベクトルを出力するニューロンが統合される場合を考える。この場合、
図16の式(20)に示す射影残差r(x
i,x
j)のノルムが小さくなるように統合先ニューロンが決定される。具体的には、x
iを出力するニューロンが削除され、x
jを出力するニューロンが、統合先ニューロンとなり、x
iを出力するニューロンの働きを代替する。
【0087】
ここで、ニューラルネットワークにおける全ニューロンについてのニューロン振舞いベクトルNBVの集合をXとすると、第1実施形態におけるニューロンの統合の第1基準は、
図16の式(21)のように表される。式(21)において、x
*
removeは、削除されるニューロンの振舞いベクトルであり、x
*
remainは、残されるニューロンの振舞いベクトルである。なお、argminは、||r(x
i,x
j)||を最小化する(x
i,x
j)の集合を求める関数である。
【0088】
図16の式(21)に示す第1基準は、ニューロンの統合により生じるニューロン振舞いベクトル(NBV)の誤差(射影残差r)を最小化するためのものである。これに対して、第2実施形態においては、第2基準が用いられる。第2基準は、統合されたニューロンが存在する層の次の層(統合されたニューロンの出力が与えられる層)におけるニューロンの内部活性度の誤差(2乗誤差)を最小化する、という観点から得られる基準である。第2実施形態では、内部活性度に関する誤差を指標として、統合されるニューロンが選択される。
【0089】
ここで、
図17に示すように、l層のニューロンが、n
l個存在し、l層の次の層であるl+1層のニューロンが、n
l+1個存在するものとする。l層のi番目のニューロンから次のl+1層のk番目のニューロンへの結合係数(ウエイト)を、w
ikと表す。このとき、全入力データ(全コーディング用データ)によって発生するl+1層のk番目のニューロンの内部活性度の和A
kは、ニューロン振舞いベクトルx
i及びウエイトw
ikに基づいて計算され、
図17の式(22)のように表される。
【0090】
そして、l層のm番目のニューロンをn番目のニューロンに統合することにより生じるl+1層のk番目のニューロンでの内部活性度の総和の誤差ΔA
kは、
図17の式(23)のように表される。
【0091】
統合後のl層の次の層(l+1層)の全てのニューロンでの2乗誤差ΔA
k
2の和r
IAは、
図17の式(24-1)のように表される。式(24-1)を変形することにより、式(24-2)及び式(24-3)が得られる。式(24-3)を最小化するように、統合されるニューロンm,nを決めれば、次の層(l+1層)におけるニューロン(他層人工ニューロン)の内部活性度の誤差が最も小さくなる。すなわち、
図17の式(25-1)が統合の第2基準である。
【0092】
図17の式(25-1)を変形すると式(25-2)が得られる。式(25-2)に示す第2基準は、
図17に示す「第1基準との違いD」の部分が、第1基準である
図16の式(21)に掛けられたものとなっている。第1基準との違いDは、l層のi番目のニューロンから次のl+1層へ向かう全ての結合のウエイトw
ikの二乗和の平方根である。つまり、第2基準は、第1基準で扱われる誤差r(射影偏差)だけでなく、ニューロンの出力側のウエイトをも考慮した基準になっている。
【0093】
このように、第2基準では、ニューロン振舞いベクトルの誤差を考慮するだけでなく、統合されたニューロンが存在するl層の出力が与えられる他層(次のl+1層)における内部活性度に対する統合の影響を少なくするように、統合されるニューロンが選択される。
【0094】
図18は、第1実施形態(第1基準:NBV誤差最小化手法)と第2実施形態(第2基準:内部活性度二乗誤差最小化手法)との比較のために用いたVGG16を示し、
図19は、比較実験結果を示している。実験に用いたVGG16は、画像識別用DNN(ディープニューラルネットワーク)であり、
図18に示すように、畳み込みネットワーク(convolutional Networks)と全結合ネットワーク(fully connected Networks)とを備えている。
図18の畳み込みネットワーク(畳み込み層)は、第1層FC1と、第2層FC2と、を備える。
【0095】
実験では、ニューロコーディングの後、ニューロン統合を行った。ニューロン統合では、第1基準(NBV誤差最小化手法)を用いた統合、及び、第2基準(内部活性度二乗誤差最小化手法)を用いた統合のそれぞれを行った。統合に際しては、まず、第2層FC2を25%削減し、続いて、第1層FC1を削減した。なお、実験では、ファインチューニングは行っていない。
【0096】
図19は、テストデータに対する誤り率を示している。
図19の横軸は、ニューロンの結合係数(パラメータ)の数を示し、縦軸は誤り率を示している。
図19に示すように、第2基準(内部活性度二乗誤差最小化手法)を用いて統合すると、第1基準(NBV誤差最小化手法)よりも、誤識別率が低く抑えられており、良好な特性を持つ統合ニューラルネットワークが得られていることがわかる。このように、第2基準は、第1基準よりも統合ニューラルネットワークの精度低下を抑えることができる。
【0097】
<5.パラメータ数圧縮手法(第3実施形態)>
【0098】
図20及び
図21は、ニューロン統合処理23の変形例(第3実施形態)を示している。第3実施形態において、特に説明しない点については、第1実施形態及び第2実施形態と同様である。
【0099】
第2実施形態(第2基準)においては、内部活性度に関する誤差r
IAを最小化するように統合されるニューロンが選択されるが、第3実施形態では、r
param(
図20の式(27)参照)を最小化するように統合されるニューロンのペアが選択される。r
paramは、誤差r
IAを、param(z
i
l)(
図20の式(26)参照)で除したものである。
【0100】
param(z
i
l)は、ニューロンz
i
lの削除に伴って、ニューラルネットワークから削除されるパラメータの数を示す。ここでのパラメータは、ニューロン間の結合の重み(ウエイト)wと、ニューロンのバイアスbと、を含む。ニューラルネットワークでは、層毎に、ニューロンの数が異なる場合が多い。ある層のニューロンに結合するウエイトwの数は、隣接する層に存在するニューロンの数に応じてきまる。全結合層の場合、l層におけるi番目のニューロンz
i
lに関するパラメータ数param(z
i
l)は、
図20の式(26)によって定義される。ここで、n
l-1は、l-1層に存在するニューロンの数であり、n
l+1は、l+1層に存在するニューロンの数である。ニューロンの数が層毎に異なる場合、一つのニューロンを削除した場合に削除されるパラメータの数は、層毎に異なる。ニューラルネットワークの規模は、パラメータの数によって決まるため、ニューラルネットワークの小規模化のためには、1回の統合によって、より多くのパラメータが削除される方が好ましい。
【0101】
仮に、ある層の第1ニューロンを削除したときの誤差rIAと、別の層の第2ニューロンを削除したときの誤差rIAとが、同じであったとしても、第1ニューロンの削除に伴って削除されるパラメータの数の方が、第2ニューロンの削除に伴って削除されるパラメータの数よりも多ければ、第1ニューロンを削除する統合を行った方が、小規模化には有利である。
【0102】
そこで、第3実施形態では、ニューロン統合に伴い削除されるパラメータ1個あたりの誤差を最小化する。削除されるパラメータ1個あたりの内部活性度に関する誤差r
paramは、
図20の式(27)に示すように、内部活性度に関する誤差r
IAを、ニューロン統合に伴い削除されるパラメータ数paramによって除することによって求められる。このように、統合されるニューロンを選択する際に、誤差r
IAだけでなく、ニューロン統合に伴い削除されるパラメータ数paramをも考慮することで、ニューラルネットワークの精度低下を防止しつつ、効率的にパラメータ数を削減することができる。なお、r
paramは、誤差r
IAを、パラメータ数paramを除したものに限られず、パラメータ数paramが多いほど、値が小さくなるように算出されるものであってもよい。
【0103】
図21は、第2実施形態(内部活性度二乗誤差最小化手法)と第3実施形態(パラメータ数圧縮手法)の比較実験結果を示している。実験では、
図18に示すVGG16モデルに対してニューロコーディングを行い、その後の全結合層においてニューロン統合を行った。ニューロン統合は、第1層FC1と第2層FC2の中間層2層を対象として行った。ニューロコーディング用のデータとして、Imagenet(ILSVRC2012)datasetの1000クラスの学習データの中から、各クラス10個ずつランダムに抜き出し、合計10000個のデータを使用した。第2実施形態・第3実施形態の手法それぞれで、統合512回毎にテストを行い、精度を比較した。
【0104】
図21に示す比較実験結果において、縦軸はテストエラーを示し、横軸はパラメータ数を示している。
図21に示すように、第3実施形態(パラメータ数圧縮手法)では、第2実施形態(内部活性度二乗誤差最小化手法)よりも、高い精度を維持しつつ、パラメータ数を削減できていることがわかる。
【0105】
<6.消去されるニューロンの振舞いを複数のニューロンにより模擬(第4実施形態)>
【0106】
ニューロン統合では、統合に伴い消去されるニューロンの振舞いは、他のニューロンによって模擬(emulate)される。消去されるニューロンの振舞いを模擬するニューロンの数は、一つでもよいし、二以上でもよい。第4実施形態では、二以上のニューロンにより、消去されるニューロンの振舞いを模擬する場合について説明する。
【0107】
図22は、第4実施形態に係るニューロン統合処理23を示している。
図22に示すニューロン統合処理23は、
図2に示すニューロン統合処理23と同様に、残差を算出する処理231と、統合対象となるニューロンを選択する処理232と、選択されたニューロンを統合する処理233と、を含む。統合する処理233では、統合先ニューロンが決定され、選択されたニューロンのうち統合先ニューロン以外のニューロンが削除され、統合先ニューロンのためのウエイトベクトルが更新される。
【0108】
例えば、
図23に示すように、ニューロンZ
iを統合先ニューロンZ
jに統合する場合、ニューロンZ
iが消去され、統合先ニューロンZ
jのためのウエイト(統合先ニューロンZ
jから次層(l+1)の各ニューロンへの接続のウエイト)が、ニューロンZ
iのためのウエイトを用いて更新される(
図9B参照)。したがって、
図9Bに示す例では、消去されるニューロンZ
iの振舞いは、一つの統合先ニューロンZ
jにより模擬される。
【0109】
図23中の式(28)は、統合先ニューロンZ
jから次層(l+1)のニューロンZ
n’への接続のウエイトw
jnの更新式を示している。処理233におけるウエイト更新は式(28)に従って行われる。式(28)は、
図9B中の式(13)と等価である。式(28)中の係数a
ik
*は、射影pと、NBVであるx
jから求まる値であり、式(13)中のkと等価である。
【0110】
図24に示すように、ニューロンZ
iを統合先ニューロンZ
jに統合する場合、ニューロンZ
iの振舞いベクトルNBV(第1NBV)であるx
jは、ニューロンZ
jの振舞いベクトルNBV(第2NBV)であるx
jよって近似される。この近似による残差r
iは、
図24中の式(29)によって表される。なお、残差r
iは、
図9A中の残差eと等価である。残差r
iは、次層(l+1)への誤差を生じさせため、小さい方が好ましい。
【0111】
第4実施形態では、残差r
iを小さくするため、ニューロンZ
i,Z
j以外のニューロンZ
kによって、ニューロンZ
iの振舞いを模擬させる。つまり、ニューロンZ
iの振舞いは、二以上のニューロンによって模擬される。このため、第4実施形態に係るニューロン統合処理23では、ニューロンZ
iの振舞いを模擬させるためのニューロンZ
kの選択処理235が行われる(
図22参照)。選択処理235では、消去されずに残っているニューロンの中から、残差r
iを最もよく近似できるニューロンZ
kが選択される。選択処理235において、ニューロンZ
kの選択は、
図24中の式(30)に従って行われる。
図24に示すβ
ik
*x
kは、ニューロンZ
kの振舞いベクトルNBVであるx
kによる残差r
iの近似を示している。
【0112】
そして、選択されたニューロンZ
kのためのウエイト(ウエイトベクトル)の更新処理236が実行される。ニューロンZ
kのためのウエイトの更新は、近似β
ik
*x
kに含まれる係数β
ik
*を用いて行われる。
図23及び
図24中の式(31)は、ニューロンZ
kから次層(l+1)のニューロンZ
n’への接続のウエイトw
knの更新式を示している。
【0113】
このように、
図23では、ニューロンZ
iの消去に伴い、二つのニューロンZ
i,Z
kのためのウエイトが更新される。これにより、消去されたニューロンZ
iの振舞い(挙動)は、二つのニューロンZ
i,Z
kによって再現される。
【0114】
第4実施形態に係るニューロン統合処理23では、残差riと、xkによる残差riの近似βik
*xkと、の残差(残差ベクトル)を、新たな残差riとして求める残差更新処理237が実行される。新たな残差riによって、処理235及び処理236が繰り返される。処理235及び処理236の繰り返しは、必要な回数行われる。繰り返しにより、xiの残差riは、より小さくなる。これにより、次層(l+1)のニューロンの内部活性度の誤差は減少する。
【0115】
第4実施形態に係るニューロン統合処理23によれば、NBVの類似度が比較的低い(すなわち、残差が大きくなる)ニューロン同士を統合しても、残差を複数のニューロンによって小さくできる。第4実施形態の処理235,236,237の負荷は小さいため、大きな計算資源がなくても、残差を小さくすることができる。
【0116】
図25は、第4実施形態に係るニューロン統合処理23の実験結果を示している。実験では、
図18に示すVGG16モデルに対して、ニューロコーディングを行い、全結合層FC1,FC2において第4実施形態に係るニューロン統合処理23を行った。ニューロコーディング用のデータとして、Imagenet(ILSVRC2012)datasetの中から、ランダムに選択した5000個のデータを使用した。ニューロン統合は、パラメータ数が1/2になるまで(
図25の「×1/2」)と、パラメータ数が1/3になるまで(
図25の「×1/3」)と、について行った。
【0117】
図25に示す実験結果は、
図22の処理235,236の繰り返しが0回である場合(
図25のNU(0))、同じく繰り返しが1回である場合(
図25のNU(1))、同じく繰り返しが10回である場合(
図25のNU(10))について示している。
【0118】
図25中の数値は、統合ニューラルネットワークN2の精度(Accuracy)を示している。
図25に示すように、処理235,236の繰り返しが0回である場合に比べて、処理235,236の繰り返しがあるほうが、精度が向上している。また、繰り返し回数が多くなるほど、精度が向上する。
【0119】
<6.付記>
本発明は、上記実施形態に限定されるものではなく、様々な変形が可能である。
【符号の説明】
【0120】
10 :処理装置
20 :プロセッサ
21 :小規模化処理
22 :ニューロコーディング処理
23 :ニューロン統合処理
24 :出力処理
30 :記憶装置
31 :コンピュータプログラム
40 :入力データ
100 :ニューラルネットワーク利用装置
200 :プロセッサ
231 :残差算出処理
232 :選択処理
233 :統合処理
234 :決定処理
235 :選択処理
236 :更新処理
237 :残差更新処理
300 :記憶装置
N1 :原ニューラルネットワーク
N2 :統合ニューラルネットワーク
N20 :統合ニューラルネットワークデータ
FC1 :第1層
FC2 :第2層