コンボリューション層の誤差逆伝搬法の図解:Back Propagation of CNN (Convolutional Neural Network)

かなり前に「コンボリューショナル・ニューラルネットワークの誤差逆伝播法」をアップしたが、数式ばかりで意味が分かりにくい向きもあるかと思い、図解で分かりやすく説明することにした。

逆伝播を説明するには順方向の伝播をきちんと理解する必要があるので、その説明から始める。図1は順方向のコンボリューション(畳み込み)処理を表している。

図1.順方向のコンボリューション処理1

\[\begin{eqnarray*}
{Y}_{ijk}^{p} &=& \sum _{ a=0 }^{ m-1 }{ \sum _{ b=0 }^{ m-1 }{ {w}_{abk} {X}_{ (i+a)(j+b) }^{p-1}} }\qquad(1)\\
\end{eqnarray*}\] 

\(p-1\)番目のニューラルネットワーク層は、出力\(X_{i,j}^{p-1}\)の2次元配列\((i,j)\)のユニットで構成されている。この層にサイズ\(m*m\)、結合荷重\(W_{abk}\)のカーネルによるコンボリューション処理の計算値\(Y_{i,j,k}^p\)(図1の中に計算式が表示されている)が\(p\)番目のニューラルネットワーク層のユニットへの入力値となることを示している。ここで、kはp層を構成するチャネル(特徴マップ)の番号を表しており、ある一つのコンボルーション層に着目した図であることを意味している。

\(p-1\)層の位置\((i,j)\)にある出力\(X_{i,j}^{p-1}\)は、コンボリューションの開始位置が\((i-m+1,j-m+1)\)と\((i,j)\)を左上と右下の角とする正方形にある場合にコンボリューション処理に取り込まれる。コンボリューションの開始位置が\((i-m+1,j-m+1)\)の場合の計算値\(Y_{i-m+1,j-m+1,k}^p\)はp層の位置\((i-m+1,j-m+1)\)に入力され、コンボリューションの開始位置が\((i,j)\)の場合の計算値\(Y_{i,j,k}^p\)はp層の位置\((i,j)\)に入力される。上記正方形以外の位置を開始位置とするコンボリューション処理には\(X_{i,j}^{p-1}\)は関係しない。この様子を分かりやすく表したのが図2である。

図2.順方向のコンボリューション処理2

p-1層の\(X_{i,j}^{p-1}\)を含むコンボリューションは図2のp-1層の中に記した橙色の正方形内にコンボリューションカーネルが存在する場合であり、この時の計算値はp層の位置\((i-m+1,j-m+1)\)と\((i,j)\)を左上と右下の角とする正方形に入力される。この正方形が図2のp層内に薄緑色で塗られた領域である。つまり、p-1層の位置\((i,j)\)にある\(X_{i,j}^{p-1}\)はコンボリューション処理によりp層の位置\((i-m+1,j-m+1)\)と\((i,j)\)を角とする正方形の領域に寄与しているのである。

この図式を念頭において、逆伝播を考えてみよう(「コンボリューショナル・ニューラルネットワークの誤差逆伝播法」の式9以下で示した数式がこの部分に相当する)。逆伝播ではp層からp-1層へ誤差を伝播させるが、p-1層の位置\((i,j)\)に影響を与えるp層の範囲は位置\((i-m+1,j-m+1)\)と\((i,j)\)を角とする正方形の領域のみである。この様子が図3に示されており、図3のp層の薄緑色の領域にカーネルサイズ\(m*m\)、結合荷重\(W_{abk}\)のコンボリューション処理をし、その結果をp-1層の位置\((i,j)\)に代入すれば得られる。これは次式で表される。
\[\begin{eqnarray*}
{X}_{ijk}^{p-1} &=& \sum _{ a=0 }^{ m-1 }{ \sum _{ b=0 }^{ m-1 }{ {w}_{abk} {Y}_{ (i-a)(j-b) }^{p}} }\qquad(2)\\
\end{eqnarray*}\] 

図3.逆方向のコンボリューション処理

順方向のコンボリューション処理を表す式(1)と逆方向のコンボリューション処理を表す式(2)の違いはコンボリューション処理を掛ける層の下付き添え字が\((i+a,j+b)\)となるか、\((i-a,j-b)\)となるかの違いであり、これはコンボリューション処理を掛ける層のユニット位置が+方向に進むか-方向に進むかの違いを表している(-方向に進む場合、コンボリューションカーネルの要素を上下左右に反転させた\(rot180°\)カーネルを用いると、+方向の通常のコンボリューション処理として表現できる)。言い換えると、順方向の信号伝播も逆方向の信号伝播もともにコンボリューション処理で表せるが、コンボリューション処理を進めるユニット位置の進行方向が逆になる、ということである。この点に留意すれば、両方向への信号伝播が単純なコンボリューション処理で済ませられる。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です