(57)【要約】【課題】ゼロパディングを含む畳み込みニューラルネットワークの学習をより効率化する。【解決手段】畳み込みニューラルネットワーク装置１０は、プロセッサ１２及びメモリ１４を備える。メモリ１４は、畳み込みニューラルネットワークを格納する。畳み込みニューラルネットワークにおいては、各層において、それぞれが２次元配列されたニューロン３０からなるチャネル３２ａ〜ｃを有するニューロン群３２に対して、それぞれが２次元配列された複数の要素３６を有する複数のフィルタチャネル３４ａ〜ｃを有するフィルタ３４が適用される。各要素３６には重みが設定されている。フィルタ３４の要素位置毎に、各フィルタチャネル３４ａ〜ｃに含まれる各要素３６の重みの和が０となるような制約を課し、この制約条件の下で学習を行い、重みベクトルを最適化する。【選択図】図１
2019087021.tif 000002
【特許請求の範囲】
【請求項１】
それぞれに重みが設定され配列された複数の要素からなる同サイズのチャネルを複数含むフィルタの要素位置毎に、各チャネルに含まれる各要素の重みが線形制約を満たす、
ことを特徴とする畳み込みニューラルネットワーク装置。
【請求項２】
前記フィルタの要素位置毎に、各チャネルに含まれる各要素の重みの和が０である、
ことを特徴とする請求項１に記載の畳み込みニューラルネットワーク装置。
【請求項３】
畳み込みニューラルネットワークの製造方法であって、
それぞれに重みが設定され配列された複数の要素からなる同サイズのチャネルを複数含むフィルタの要素位置毎に、各チャネルに含まれる各要素の重みに線形制約を課して学習する、
ことを特徴とする畳み込みニューラルネットワークの製造方法。
【請求項４】
前記フィルタの要素位置毎に、各チャネルに含まれる各要素の重みの和が０であるという制約を課して前記フィルタを学習する、
ことを特徴とする請求項３に記載の畳み込みニューラルネットワークの製造方法。
【発明の詳細な説明】
【技術分野】
【０００１】
本発明は、畳み込みニューラルネットワーク装置及びその製造方法に関する。
【背景技術】
【０００２】
従来、ディープニューラルネットワーク（多層ニューラルネットワーク）の開発が進められている。
【０００３】
非特許文献１には、ディープニューラルネットワークの学習に関して記載されている。非特許文献１に記載された学習方法においては、まず、学習に使用するサンプルデータセットについて、Ｌ＋１層目の活性化関数への入力
ｚＬ＋１＝ＷＬａＬ
の値を計算し、ｚＬ＋１の平均と分散を求める。
【０００４】
次に、求めた平均と分散を用いて、ｚＬ＋１を正規化する。正規化されたｚＬ＋１（これをｚｎＬ＋１とする）に線形演算を施したもの
α＊ｚｎＬ＋１＋β（α、βは新たなパラメータ）
を、新たにＬ＋１層目の活性化関数への入力とする。これらの処理を全て、あるいは一部の層に対して実行する。
【０００５】
非特許文献２には、ディープニューラルネットワークの重みベクトルを再パラメータ化することで学習速度を速めることが記載されている。
【０００６】
また、従来、畳み込みニューラルネットワークが提案されている。畳み込みニューラルネットワークは、種々の利用方法が提案されているが、一般的に、画像認識に応用されている（特に、画像内に含まれる特定の特徴を抽出する処理）。
【０００７】
畳み込みニューラルネットワークは、一般的に、複数の層を含んで構成される。畳み込みニューラルネットワークの各層は、配列された（本明細書においては２次元配列とする）ニューロン群から構成される。また、畳み込みニューラルネットワークにおいては、ニューロン群と同様に２次元配列された複数の要素を含むフィルタが用いられる。フィルタは各層に応じて設けられ、通常、フィルタのサイズ（配列された要素の数）は、それが適用されるニューロン群のサイズ（配列されたニューロンの数）よりも小さくなっている。フィルタの各要素には、重みが設定されている。
【０００８】
各層のニューロン群に対してフィルタが適用される。概念的には、ニューロン群の一部に対してフィルタが重ね合わされる。フィルタの各要素に設定された各重みと、フィルタが重なる複数のニューロン（ニューロン群の一部）の活性との積和が計算される。すなわち、フィルタの各要素に設定された重みをベクトルの要素として持つ重みベクトルと、複数のニューロンの活性をベクトルの要素として持つ活性ベクトルとの内積が計算される。当該内積が当該層の出力の１つの活性となる。
【０００９】
フィルタは、ニューロン群上を縦横方向に１つ（１ニューロン）ずつ、あるいは、数ニューロンずつずらしながら適用されていく。これにより、当該層の出力として、配列された活性群が出力される。当該活性群が次層のニューロン群の活性となる。
【００１０】
ちなみに、ニューロン群は、複数のチャネルから構成されていてもよい。例えば、畳み込みニューラルネットワークの入力データが画像である場合には、入力層のニューロン群は、入力データのＲ画素値に対応するＲチャネル、Ｇ画素値に対応するＧチャネル、Ｂ画素値に対応するＢチャネルを有していてもよい。その場合は、当該ニューロン群に適用されるフィルタも当該ニューロン群と同数のチャネルを含むものとなる。
【００１１】
通常複数個の要素からなるフィルタの重みベクトルと、複数のニューロンの活性ベクトルとの内積が、次層のニューロン群の１つのニューロンの活性となるため、層を経るごとに、ニューロン群のサイズが小さくなってしまうという問題が発生し得る。
【００１２】
この問題に対処するために、ゼロパディングが用いられている。ゼロパディングは、ニューロン群よりも外周に存在すると仮定される仮想ニューロンであり、その活性が常に０に定義されるものである。ゼロパディングを用いることにより、ニューロン群の端部において、端部に位置するニューロンとゼロパディングとの双方に跨る位置までフィルタを動かすことができ、これにより、次層のニューロン群のサイズが小さくなることが防止される。
【先行技術文献】
【非特許文献】
【００１３】
【非特許文献１】“Batch Normalization: Accelerating Deep Network Training by Reducing Internal Covariate Shift”, Sergey Ioffe, Christian Szegedy, ICML 2015
【非特許文献２】“Weight Normalization: A Simple Reparameterization to Accelerate Training of Deep Neural Networks”, Tim Salimans, Diederik P. Kingma, NIPS 2016
【発明の概要】
【発明が解決しようとする課題】
【００１４】
多層からなるディープニューラルネットワークにおいては、各ニューロンの学習（すなわち重み及びバイアスの調整）が困難となる。例えば、浅い層（入力に近い層）では重みを変化させたとしても、層を経る毎に発火のばらつきが無くなってしまうため、最終出力に変化が生じなくなってしまう（勾配がほぼゼロ）問題が生じる。また、深い層では、前層からその層に入力される発火パターンのばらつきがないため、同じ入力に対して異なるラベルを予想する状況となるので、そもそも学習が困難となる（重みを変化させても、全てのサンプルで同じように出力が変化するだけ）。
【００１５】
このような学習困難問題が生じる要因について説明する。
【００１６】
まず、変数ｗ、ａを以下のように定義する。
【数１】
2019087021.tif 000003
【数２】
2019087021.tif 000004
【００１７】
ここで、Ｕ（０，１）は、区間（０，１）の一様乱数である。
【００１８】
このとき、変数ｗが与えられたもとでの内積ｗＴａの分布は、ｗが１ｍ＝（１，１，・・・，１）となす角度θｗ及び||ｗ||により決定される。ここで、角度θｗにより生じる内積ｗＴａの分布の偏りを角度バイアス（angle bias）と定義する。
【００１９】
図９は、ニューラルネットワークを模式的に示す、ある層ｌと次の層ｌ＋１を例示したものである。
【００２０】
層ｌのニューロンとしてａ１ｌ，ａ２ｌ，・・・，ａｍｌがあり、層ｌに含まれるｍ番目のニューロンの活性は、ａｌｍで表される。したがって、層ｌの各ニューロンの活性は、活性ベクトルａｌ＝（ａ１ｌ，ａ２ｌ，・・・，ａｍｌ）Ｔで表される。各ニューロンは、非線形の活性化関数ｆ（例えばシグモイド関数）で活性化される。
【００２１】
層ｌ＋１のニューロンとしてａ１ｌ＋１，ａ２ｌ＋１，・・・，ａｍｌ＋１があり、層ｌ＋１の各ニューロンには重みベクトルｗｌが設定されている。各重みベクトルｗｌは、層ｌの各ニューロンに対応する重み要素を有している。なお、各重みベクトルを要素として持ち、
Ｗｌ＝［ｗ１ｌ，ｗ２ｌ，・・・，ｗｍｌ］Ｔ
【数３】
2019087021.tif 000005
で表される重み行列が定義される。
【００２２】
層ｌ＋１の各ニューロンの活性は、当該ニューロンに設定された重みベクトルｗｌと層ｌの活性ベクトルａｌとの内積を入力とした活性化関数ｆの出力値となる。すなわち、層ｌ＋１の各ニューロンの活性は、
ａ１ｌ＋１＝ｆ（（ｗ１ｌ）Ｔａｌ）
・
・
ａｍｌ＋１＝ｆ（（ｗｍｌ）Ｔａｌ）
で表される。通常、層ｌ＋１の各ニューロンには、重みベクトルｗｌのみならず、バイアス項が設定されているが、本例においては、バイアス項はゼロとして省略している。
【００２３】
ここで、層ｌの活性ベクトルａｌが一様分布に従うと仮定するならば、重みベクトルｗｌと活性ベクトルａｌとの間に、上述の角度バイアスの考え方を適用することができる。つまり、（ｗｉｌ）Ｔａｌに関する角度バイアスを考えることができる。したがって、重みベクトルｗｉｌが１ｍ＝（１，１，・・・、１）となす角度θｌｉに依存して、重みベクトルｗｌと活性ベクトルａｌと内積に偏りが生じる。このような角度バイアス生じさせる重みベクトルを有するディープニューラルネットワークでは、層を経る毎にニューロン毎の発火の偏りが大きくなっていく。これに起因して上述の学習困難問題が生じることとなる。
【００２４】
このような学習困難問題を解消するため、各ニューロンの重みベクトルに所定の制約を課すことで、角度バイアスの発生を抑制することが考えられる。以下、重みベクトルに課す所定の制約について説明する。
【００２５】
Ｒｍの部分空間ＷＬＣを次のように定義する。
【数４】
2019087021.tif 000006
【００２６】
ここで、
【数５】
2019087021.tif 000007
に関して、以下が成立する。但し、１ｍ＝（１，１，・・・，１）である。
【数６】
2019087021.tif 000008
【００２７】
そして、ディープニューラルネットワークにおいて、「各重みベクトルｗｉｌがＷＬＣに含まれる」という制約を課す。すなわち、
【数７】
2019087021.tif 000009
とする。このような制約を課すことで、任意のｌ，ｉについて、θｉｌ＝９０°であるため角度バイアスが抑制される。以下、このような重みベクトルを、線形制約重みベクトル（Linearly-Constrained Weight: ＬＣＷ）と称する。
【００２８】
上述のように、ディープニューラルネットワークにおいては、各ニューロンの学習困難問題が生じ得るが、ＬＣＷを適用することで当該学習困難問題が解消され得る。一方、畳み込みニューラルネットワークにおいても、ディープニューラルネットワークと同様の学習困難問題が生じ得る。
【００２９】
畳み込みニューラルネットワークにおける学習困難問題に対しても、ＬＣＷを適用することが考えられる。その最も直接的な方法として、フィルタの各要素に設定された重みの総和を０とする（以下、このような重みを「Filter-wise ＬＣＷ」と記載する）が考えられる。つまり、フィルタに関して以下の式で表される部分空間ＷｆＬＤを考え、畳み込みニューラルネットワークに対して、各フィルタがＷｆＬＤに含まれるという制約を課すことが考えられる。
【数８】
2019087021.tif 000010
ここで、Ｐはフィルタのチャネル数、Ｑはフィルタの行数、Ｒはフィルタの列数、ｐはフィルタのチャネル数を示す変数、ｑはフィルタの行数を示す変数、ｒはフィルタの列数を示す変数である。
【００３０】
しかしながら、Filter-wise ＬＣＷでは、畳み込みニューラルネットワークがゼロパディングを含む場合、出力される活性群において、周縁部での活性（内積）に偏りが生じてしまう。なぜならば、フィルタの各要素の重みの総和が０であるため、ゼロパディングによって、各重みと各活性値の積の一部が０に固定された場合、フィルタの重みベクトルと、複数のニューロン（ゼロパディング含む）の活性ベクトルとの内積が、正又は負のいずれかに偏り易くなってしまうためである。
【００３１】
図１０に、Filter-wise ＬＣＷを畳み込みニューラルネットワークに適用した場合に、ある層が出力した活性群において、周縁部の活性に偏りが生じた様子が示されている。図１０（ａ）〜（ｄ）に示される活性群は、画像認識用のデータセットに対して数エポック学習した、Filter-wise ＬＣＷを用いた畳み込みニューラルネットワークに対して、適当な４つの入力画像を入力データとして入力した場合の、所定の層の所定のフィルタに対する活性をヒートマップで示した図である。
【００３２】
４つのヒートマップのいずれにおいても、活性群の周縁部（左端及び右端列、並びに上端及び下端行）において、活性が極端となっている。例えば、左端の列の一部の活性が極端に大きくなっており、また、特にＩｎｐｕｔ１と３においては、右端の列の活性が極端に小さくなっている。つまり、これらの部分の活性は、本来の入力画像の特徴を表したものではなくなっているために不適切なものである。これらの偏りは、Filter-wise ＬＣＷとゼロパディングの併用によって生じたものである。
【００３３】
このように、ゼロパディングを含む畳み込みニューラルネットワークにおいては、ＬＣＷを単純に適用できない。
【００３４】
本発明の目的は、ゼロパディングを含む畳み込みニューラルネットワークの学習をより効率化することにある。
【課題を解決するための手段】
【００３５】
本発明は、それぞれに重みが設定され配列された複数の要素からなる同サイズのチャネルを複数含むフィルタの要素位置毎に、各チャネルに含まれる各要素の重みが線形制約を満たす、ことを特徴とする畳み込みニューラルネットワーク装置である。
【００３６】
本発明の１つの実施形態では、前記フィルタの要素位置毎に、各チャネルに含まれる各要素の重みの和が０である。
【００３７】
また、本発明は、畳み込みニューラルネットワークの製造方法であって、それぞれに重みが設定され配列された複数の要素からなる同サイズのチャネルを複数含むフィルタの要素位置毎に、各チャネルに含まれる各要素の重みに線形制約を課して学習する、ことを特徴とする畳み込みニューラルネットワークの製造方法である。
【００３８】
本発明の１つの実施形態では、前記フィルタの要素位置毎に、各チャネルに含まれる各要素の重みの和が０であるという制約を課して前記フィルタを学習する。
【発明の効果】
【００３９】
本発明によれば、ゼロパディングを含む畳み込みニューラルネットワークの学習をより効率化することができる。
【図面の簡単な説明】
【００４０】
【図１】本実施形態に係る畳み込みニューラルネットワーク装置の構成概略図である。
【図２】畳み込みニューラルネットワークのニューロン構造を示す図である。
【図３】フィルタの構造を示す図である。
【図４】層ｌのニューロン群に対してフィルタが適用される様子を示す図である。
【図５】ゼロパディングを示す図である。
【図６】各フィルタチャネルにおいて、同じ位置に対応する要素を示す図である。
【図７】実験に用いた畳み込みニューラルネットワークの構造を示す図である。
【図８】実験結果を示す図である。
【図９】ニューラルネットワークの模式図である。
【図１０】周縁部の活性に偏りが生じた例を示す図である。
【発明を実施するための形態】
【００４１】
以下、図面に基づき本発明の実施形態について説明する。
【００４２】
図１は、本実施形態における畳み込みニューラルネットワーク装置１０の概略構成図を示す。畳み込みニューラルネットワーク装置１０は、プロセッサ１２と、メモリ１４と、入出力インターフェイス（Ｉ／Ｆ）１６を備える。本実施形態では、畳み込みニューラルネットワーク装置１０には２次元画像である入力画像が入力データとして入力され、当該入力画像に対して処理が実行される。
【００４３】
メモリ１４は、例えばＲＡＭ（Random Access Memory）などの揮発性メモリ、あるいはＲＯＭ（Read Only Memory）などの不揮発性メモリで構成される。メモリ１４には、畳み込みニューラルネットワークが格納される。畳み込みニューラルネットワークの実体は、畳み込みニューラルネットワークに関する各種パラメータ（層構造、各層のニューロン構造、各層におけるフィルタ数、フィルタサイズ、ストライド幅、ゼロパディング幅、及び各フィルタの各要素の重みなど）、並びに、入力データに対して処理を行うための処理実行プログラムである。したがって、メモリ１４に畳み込みニューラルネットワークが格納されるとは、上記各種パラメータ及び処理実行プログラムがメモリ１４に格納されることを意味する。
【００４４】
プロセッサ１２は、例えば、ＧＰＵ（Graphics Processing Unit）あるいはＧＰＧＰＵ（General-purpose computing on graphics processing units; GPUによる汎用計算）などから構成される。プロセッサ１２は、メモリ１４に格納された畳み込みニューラルネットワークを用いて入力データを処理し、処理結果を出力データとして出力する。入力データは、入出力Ｉ／Ｆ１６を介してプロセッサ１２に供給され、出力データは、入出力Ｉ／Ｆ１６を介して外部に出力される。出力データは、外部コンピュータに供給されてもよく、あるいは通信回線（例えばインターネット等）を介して外部のサーバなどに供給されてもよい。
【００４５】
図２は、本実施形態に係る畳み込みニューラルネットワークの１つの層であるニューロン構造を示す図である。畳み込みニューラルネットワークの各層は、ニューロン３０が２次元配列されて構成されるニューロン群３２を含んで構成される。本実施形態に係る畳み込みニューラルネットワークにおいては、各層のニューロン群３２は、複数のチャネルを有する。それぞれのチャネルは、２次元配列された複数のニューロン３０から構成されている。
【００４６】
図２には、本実施形態における畳み込みニューラルネットワークの層ｌのニューロン構造が示されている。図２に示す通り、層ｌのニューロン構造は、チャネル３２ａ、チャネル３２ｂ、及びチャネル３２ｃの３つのチャネルを有している。各チャネルは、それぞれニューロン３０が６×６に配列された構造となっている。本明細書においては、層ｌの、第ｐチャネル、第ｑ行、第ｒ列に配置されたニューロンの活性を
【数９】
2019087021.tif 000011
と記載する。ニューロン群３２の各チャネルのサイズは同じになっている。また、本実施形態においては、ニューロン群３２の各チャネルの１行のニューロン数と１列のニューロン数は同じになっている。
【００４７】
なお、畳み込みニューラルネットワークは複数の層から構成されてよいが、各層におけるニューロン群３２のサイズあるいはチャネル数はそれぞれ異なっていてもよい。ちなみに、ある層のニューロン群３２のサイズは、前層のニューロン群に適用されたフィルタのサイズ及びストライド幅に応じて決定され、ある層のニューロン群のチャネル数は、前層のニューロン群に適用されたフィルタの数に応じて決定される。
【００４８】
図３は、本実施形態に係る畳み込みニューラルネットワークで用いられるフィルタ３４の構造を示す図である。フィルタ３４は、２次元配列された複数の要素３６を含んで構成される。フィルタ３４は、畳み込みニューラルネットワークの各層毎に設けられる。本実施形態では、入力データが画像となっているために、フィルタ３４が有する要素３６は画素（ピクセル）ということもできる。
【００４９】
フィルタ３４は、それが適用されるニューロン群３２と同じ数のチャネルを有する。図３に示されたフィルタ３４は、図２に示された層ｌのニューロン群３２に適用されるものであるため、当該フィルタ３４は、チャネル３２ａに対応するフィルタチャネル３４ａ、チャネル３２ｂに対応するフィルタチャネル３４ｂ、及び、チャネル３２ｃに対応するフィルタチャネル３４ｃの３つのチャネルを有している。このように、ニューロン群３２のチャネルと区別するために、フィルタ３４が有するチャネルをフィルタチャネルと記載する。
【００５０】
また、一般的に、フィルタ３４の各チャネルのサイズは、それが適用されるニューロン群３２のサイズよりも小さくなっている。本実施形態では、図２に示すように、ニューロン群３２の各チャネルのサイズは６×６となっており、図３に示すように、それに適用されるフィルタ３４の各フィルタチャネルのサイズは３×３となっている。なお、１つのフィルタ３４が有する各フィルタチャネルのサイズは同サイズになっている。また、本実施形態においては、各フィルタチャネルの１行の要素数と１列の要素数は同じになっている。
【００５１】
図３には１つのフィルタ３４のみが示されているが、１つの層のニューロン群３２に適用されるフィルタ３４が複数設けられてもよい。なお、フィルタ３４のチャネル数、サイズ、及びストライド幅などは、層毎に設定可能である。
【００５２】
フィルタ３４の各要素３６には、それぞれ重みが設定されている。この各要素３６に設定された重みが、畳み込みニューラルネットワークにおける学習対象となる。すなわち、畳み込みニューラルネットワークを学習するとは、フィルタ３４の各要素の重みを適宜変更することである。本明細書においては、層ｌ＋１の、第ｉ番目のフィルタ３４の、第ｐチャネル、第ｑ行、第ｒ列における重みを
【数１０】
2019087021.tif 000012
と記載する。
【００５３】
図４は、層ｌのニューロン群３２に対してフィルタ３４が適用される様子を示す図である。上述の通り、ニューロン群３２のチャネル３２ａにはフィルタチャネル３４ａが適用され、ニューロン群３２のチャネル３２ｂにはフィルタチャネル３４ｂが適用され、ニューロン群３２のチャネル３２ｃにはフィルタチャネル３４ｃが適用される。
【００５４】
図４に示すように、いずれのチャネルにおいても、フィルタ３４はニューロン群３２の一部である複数のニューロン３０の上に重なるように配置される。チャネル３２ａに着目すると、図４においては、チャネル３２ａの第１行第１列のニューロン３０と、フィルタチャネル３４ａの第１行第１列の要素３６とが重なるように配置されている。その状態において、フィルタチャネル３４ａの各要素３６に設定された重みと、フィルタチャネル３４ａが重なった複数のニューロンの活性との積和が算出される。すなわち、フィルタチャネル３４ａの重みベクトルと複数のニューロンの活性ベクトルとの内積が算出される。
【００５５】
引き続きチャネル３２ａに着目すると、図４のようにフィルタチャネル３４ａが配置された場合、ａｌ１，１，１×ｗｌ＋１１，１，１＋ａｌ１，１，２×ｗｌ＋１１，１，２＋・・・ａｌ１，３，３×ｗｌ＋１１，３，３が算出される。すなわち、
【数１１】
2019087021.tif 000013
が算出される。なお、上式において、Ｑはフィルタ３４の行数、Ｒはフィルタ３４の行数である。
【００５６】
チャネル３２ｂ及び３２ｃについても同様に、フィルタチャネル３４ｂあるいは３４ｃの重みベクトルと、それらが重なった複数のニューロンの活性ベクトルとの内積が算出される。
【００５７】
図４に示したフィルタ位置においてチャネル毎の内積が算出されると、算出された各内積が合計される。その合計値が、次層、すなわち層ｌ＋１層の１つのニューロン３０の活性となる。図４においては、内積の合計値が層ｌ＋１の第１行第１列のニューロンの活性となっている。すなわち、
【数１２】
2019087021.tif 000014
となっている。ここで、Ｐは層ｌ（及び層ｌ＋１のフィルタ３４）のチャネル数である。
【００５８】
さらに、各フィルタチャネル３４ａ〜ｃは、ニューロン群３２のチャネル３２ａ〜ｃ上において、縦又は横（ニューロンの配列方向）に１ニューロンずつ動かされる。例えば、各チャネルの第１行第２列のニューロン３０と、各フィルタチャネルの第１行第１列の要素３６とが重なるように、右側方向に１ニューロン移動される。その上で、上述の内積算出処理及び各内積加算処理が行われ、その合計値が層ｌ＋１の第１行第２列のニューロンの活性となる。
【００５９】
以後同様にして、各フィルタチャネルが動かされながら内積算出処理及び各内積加算処理が行われることで、層ｌ＋１のニューロン群３８の活性が計算される。なお、層ｌ＋１が複数のフィルタ３４を有する場合は、フィルタ毎に上述の処理が行われ、各フィルタに対応して、複数の（複数チャネルの）ニューロン群３８の活性が計算される。これにより、層ｌ＋１のニューロン群３８のチャネル数は、層ｌ＋１のフィルタ３４の数と同数となる。
【００６０】
なお、各フィルタチャネルは１ニューロンずつ動かされる必要はなく、例えば２ニューロンずつ動かすようにしてもよい。各フィルタチャネルを動かす幅がストライド幅であり、上述の通り、層毎に設定することができる。
【００６１】
図４に示す通り、第１行第１列のニューロン３０とフィルタチャネルの第１行第１列の要素３６とが重なる位置から、第６行第６列のニューロン３０とフィルタチャネルの第３行第３列の要素３６とが重なる位置まで、ストライド幅を１にして順に移動させたとしても、層ｌ＋１のニューロン群３８のサイズは４×４となる。すなわち、層ｌのニューロン群３２のサイズよりも、層ｌ＋１のニューロン群３８のサイズの方が小さくなってしまう。つまり、層を経るごとにニューロン群のサイズが小さくなってしまう。この問題に対処するために、本実施形態に係る畳み込みニューラルネットワークにおいては、ゼロパディングが用いられる。
【００６２】
図５は、ゼロパディング４０を示す図である。ゼロパディング４０は、ニューロン群３２よりも外周、いわば、第０行、第７行、第０列、あるいは第７列に位置すると定義できる仮想のニューロンである。ゼロパディング４０の活性は、常に０となっている。
【００６３】
ゼロパディング４０を定義することにより、図５に示すように、各フィルタチャネル３４ａ〜ｃを、各チャネル３２ａ〜ｃからはみ出す位置、すなわち、各チャネル３２ａ〜ｃが有するニューロン３０とゼロパディング４０との双方に跨る位置まで移動させることが可能になる。これにより、層ｌ＋１のニューロン群３８のサイズを６×６とすることができ、すなわち、層を経るごとにニューロン群のサイズが小さくなるという問題が解消される。
【００６４】
ゼロパディング４０を含む畳み込みニューラルネットワークに、単にＬＣＷを適用しても、学習を効率化させることができないのは上述の通りである。すなわち、フィルタ３４に含まれる各要素３６の重みの総和を０とするPixel-wise ＬＣＷによっては、畳み込みニューラルネットワークの学習を効率化することができない。
【００６５】
そこで、本実施形態では、フィルタ３４の要素位置毎に、各フィルタチャネルに含まれる各要素の重みに対して線形制約を課した上で、畳み込みニューラルネットワークの学習を行う。
【００６６】
図６は、層ｌ＋１のフィルタ３４の各フィルタチャネル３４ａ〜３４ｃが示されている。「フィルタ３４の要素位置毎に、各フィルタチャネルに含まれる各要素の重みに対して線形制約を課す」とは、例えば、第ｑ行第ｒ列に位置する各フィルタチャネル３４ａ〜３４ｃの各要素の重みに対して線形制約を課すということである。例えば、図６に示す通り、フィルタチャネル３４ａの第３行第３列の要素の重みｗ１，３，３と、フィルタチャネル３４ｂの同位置、すなわち第３行第３列の要素の重みｗ２，３，３と、フィルタチャネル３４ｃの同位置、すなわち第３行第３列の要素の重みｗ３，３，３と、に対して線形制約を課す、ということである。その他の要素位置においても同様に線形制約が課される。
【００６７】
より具体的には、フィルタ３４の要素位置毎に、各フィルタチャネルに含まれる各要素の重みの和が０である、という制約が課される。具体的には、畳み込みニューラルネットワークの各フィルタ３４が以下のＷＬＤｐｉｘに含まれるという制約を課す。このような制約が課された重みベクトルを本明細書ではPixel-wise ＬＣＷと称する。
【数１３】
2019087021.tif 000015
【００６８】
各フィルタチャネルが有する各要素３６の各重みに対してこのような制約を課すことによって、フィルタチャネルの重みベクトルと複数のニューロン３０の活性ベクトルとの内積の偏り、特に、フィルタチャネルがニューロン３０とゼロパディング４０とを跨ぐ位置にあるときにおける内積の偏りを防ぐことができる。
【００６９】
具体的には、各フィルタチャネルの第ｑ行第ｒ列に位置する各要素３６の重みを要素として有する重みベクトル（ｗ１，ｑ，ｒ，ｗ２，ｑ，ｒ，・・・ｗｐ，ｑ，ｒ）と、各フィルタチャネルの第ｑ行第ｒ列の要素が重ねられた各チャネルのニューロン３０の活性を要素として有する活性ベクトルとの内積についてみると、当該重みベクトルの各要素の和が０となっているから、当該重みベクトルと１ｍ＝（１，１，・・・，１）とのなす角度θｗが９０°となる。したがって、当該内積に関する角度バイアスが抑制され、当該内積の偏りが抑制される。その他の要素位置における内積の偏りも同様に抑制されるため、全体として、フィルタ３４の重みベクトルと複数のニューロン３０の活性ベクトルとの内積の偏りが抑制される。
【００７０】
ちなみに、フィルタ３４の要素位置毎に、各フィルタチャネルに含まれる各要素の重みの和を０とすることで、フィルタ３４に含まれる全てのチャネルの各要素３６の重みの総和は０となる。したがって、Pixel-wise ＬＣＷでは、Filter-wise ＬＣＷよりも厳しい制約が課せられていると言える。
【００７１】
以上説明した通り、本実施形態に係る畳み込みニューラルネットワークにおいては、Pixel-wise ＬＣＷを適用した上で畳み込みニューラルネットワーク（フィルタ３４の重み）を学習することで、より好適な学習を行うことができる。
【００７２】
＜実験結果＞
以下、Pixel-wise ＬＣＷを適用した畳み込みニューラルネットワークの学習に関する実験結果を記載する。
【００７３】
データセットとして、
ＣＩＦＡＲ１０（入力：３チャネル、サイズ３２×３２、出力：１０クラス）
学習用５０，０００サンプル及び評価用１０，０００サンプル
を用いた。
畳み込みニューラルネットワークの構造として、図７に示す構造を用いた。図７に示す通り、本構造は、全部で１６個の畳み込み層を含み、その全てでゼロパディング４０が使用されている。
学習の設定として、
学習アルゴリズム：stochastic gradient decent（ミニバッチサイズ１２８）
学習エポック数：１００
学習率：初期値０．１で、１エポック毎に０．９５倍とした。但し、０．００１より小さくしないという制約を設けた。
実験環境は、
ＯＳ：Ubuntu 16.04 LTS
ＧＰＵ：NVIDIA Tesla K80
開発フレームワーク：Pytorch (0.1.12), Python (3.5.2)
とした。
【００７４】
図８は、実験結果を示す図である。図８（ａ）の縦軸は学習用サンプルに対する的中率、図８（ｂ）の縦軸は評価用サンプルに対する的中率、図８（ｃ）の縦軸は累積計算時間を示す。それぞれの図において、横軸は学習エポック数を示す。図８（ａ）〜（ｃ）においては、比較のため、Pixel-wise ＬＣＷを適用した場合、Filter-wise ＬＣＷを適用した場合、フィルタ３４の重みに何の制約も課さなかった場合の３つの実験結果が示されている。
【００７５】
図８（ａ）及び（ｂ）からは、Pixel-wise ＬＣＷを適用した場合、Filter-wise ＬＣＷを適用した場合及びフィルタ３４の重みに何の制約も課さなかった場合に比してより効率的に学習できていることが読み取れる。特に、図８（ａ）からは、Pixel-wise ＬＣＷを適用した場合、フィルタ３４の重みに何の制約も課さなかった場合に比して、約半分の学習エポック数で学習用データの的中率が１００％近くまで上昇している。つまり、Pixel-wise ＬＣＷを適用した場合、フィルタ３４の重みに何の制約も課さなかった場合に比して、畳み込みニューラルネットワークの学習を約２倍に高速化できることが実験的に確認された。なお、Filter-wise ＬＣＷを適用した場合においては、ゼロパディング４０との併用の弊害により、学習がほとんど進んでいない。
【００７６】
図８（ｃ）からは、Pixel-wise ＬＣＷを適用しても、フィルタ３４の重みに何の制約も課さなかった場合に比して学習処理に要する時間はほぼ変わらないということが読み取れる。すなわち、Pixel-wise ＬＣＷの計算時間上のオーバーヘッドは非常に小さいということが言える。
【００７７】
以上、本発明の実施形態について説明したが、本発明はこれに限定されず、種々の変形例が可能である。
【符号の説明】
【００７８】
１０  畳み込みニューラルネットワーク装置、１２  プロセッサ、１４  メモリ、１６  入力Ｉ／Ｆ、３０  ニューロン、３２，３８  ニューロン群、３２ａ，３２ｂ，３２ｃ  チャネル、３４  フィルタ、３４ａ，３４ｂ，３４ｃ  フィルタチャネル、３６  要素、４０  ゼロパディング。
【図１】
2019087021.tif 000016
【図２】
2019087021.tif 000017
【図３】
2019087021.tif 000018
【図４】
2019087021.tif 000019
【図５】
2019087021.tif 000020
【図６】
2019087021.tif 000021
【図７】
2019087021.tif 000022
【図８】
2019087021.tif 000023
【図９】
2019087021.tif 000024
【図１０】
2019087021.tif 000025