多層パーセプトロンにおける順伝播・誤差逆伝播計算の行列形式
宮本崇

2017/4/3

1 はじめに多層パーセプトロンにおける順伝播・逆伝播計算を，行列形式で定式化する．以下に，この文章で用いる記号の定義を表 1 にまとめる．

Symbols

Meaning

NbL(l)
Nu
xn = t {x1n , ..., xN (1) n }uyn = t {y1n , ..., yN (L) n }u
dn = t {d1n , ..., dN (L) n }uEnNb∑
E=En

ミニバッチサイズ
ニューラルネットワークにおける全層数

k=1(l)(l)(l)
vn = t {v1n , ..., v (l) }Nu n(l)(l)(l)
zn = t {z1n , ..., z (l) }Nu n(l)l 層のユニットサイズ
ミニバッチ内のサンプルの一つxn に対するシステムの出力
xn に対応する目標出力
xn に対する誤差関数
ミニバッチ全体に対する誤差関数

xn をシステムへの入力としたときの l 層への入力ベクトル
xn をシステムへの入力としたときの l 層からの出力ベクトル

ϕ (·)
(l−1)
(l)
(l)
W (l) = [wij ], i ≤ Nu , j ≤ Nu(l)(l)b(l) = t {b1 , ..., b (l) }
(l)

(l)

Nu
(l)

δn = t {δ1n , ..., δ

(l)

Nu n}

X = {x1 , ..., xNb }Y = {y1 , ..., yNb }D = {d1 , ..., dNb }(l)(l)
V (l) = {v1 , ..., vNb }(l)(l)
Z (l) = {z1 , ..., zNb }(l)(l)∆(l) = {δ1 , ..., δNb }∂E∂W (l) = [ (l) ]∂wij∂E(l)t ∂E∂b = { (l) , ..., (l) }∂b1∂b (l)

l 層における活性化関数
l-1 層-l 層間の線形変換における重みl-1 層-l 層間の線形変換におけるバイアス(l)l 層におけるデルタ δin を並べたベクトル
xn を列ベクトルに並べた行列
yn を列ベクトルに並べた行列
dn を列ベクトルに並べた行列(l)vn を列ベクトルに並べた行列(l)zn を列ベクトルに並べた行列(l)δn を列ベクトルに並べた行列(l)

重み wij に関する誤差関数 E の偏微分を成分 (i, j) に持つ行列(l)重み bi に関する誤差関数 E の偏微分を i 成分に持つベクトル

Nu

1N

1 をN個並べてできるベクトル
表 1 多層パーセプトロンに関する記号の定義

12 多層パーセプトロン
2.1 順伝播ミニバッチ内のあるサンプル xn について，順伝播の計算は以下のように書くことができる．

vn(l) = W (l) zn(l−1) + b(l) (l ≥ 2){xn(l = 1)
zn(l) =(l) (l)ϕ (vn ) (otherwise)(l)(1)(2)(l)

ここで，ϕ(l) (vn ) は，ベクトル vn の各要素に対して活性化関数 ϕ(·) を作用させる操作を意味するものとする．
式 (1) は前の層からの出力を線形変換したものが次の層への入力となることを，式 (2) は層への入力を活性化関数により非線形変換したものが出力となることを表している．システム全体の出力 yn は L 層の出力(L)znとなる．

式 (1) や式 (2) の全てのサンプルについての計算は，次の行列形式にまとめることができる．

V (l) = W (l) Z (l−1) + b(l) · t 1Nb (l ≥ 2)
{X(l = 1)(l)
Z =(l)(l)ϕ (V ) (otherwise)

(3)
(4)

2.2 逆伝播(l)

次に，ミニバッチ X に対する誤差関数 E について，システムのパラメタ wij に関する偏微分を以下のように求める．

∂E=(l)∂wij
ここで，∂En(l)∂vin

NbNbNb(l)1 ∑1 ∑
1 ∑∂En∂En ∂vin
(l)
(l−1)
=·=
δ ·z
N n=1 ∂w(l)N n=1 ∂v (l) ∂w(l)N n=1 in jnijin(5)ij(l)= δin とおいた．上式は，次の行列形式に表すことができる．
∂W (l) =1 (l) t (l−1)∆ · Z
N(6)(l)同様にして，パラメタ bi に関する偏微分も求めることができる．

∂E=(l)∂bi∴ ∂b(l) =NbNbNb(l)1 ∑1 ∑1 ∑∂En∂En ∂vin
(l)
=·=
δ ·1
N n=1 ∂b(l)N n=1 ∂v (l) ∂b(l)N n=1 in

(7)

1 (l)
∆ · 1NbN(8)iini(l)次に，∆(l) の各成分 δin は，次のように求めることができる．

∂En(l)=
δin =(l)∂vin

Nu(l+1)∑∂Enk=1

∂vkn

(l+1)

Nu(l+1)=∑∂vkn·(l+1)(l+1)(l)∂vin∑(l+1)(l)(l)∂ m (wkm · ϕ(l) (vmn ) + bm )δkn·(l+1)· wki(l)∂vink=1
Nu(l+1)

=

∑δkn

(l+1)

· ϕ′(l) (vin )
(l)

k=1

=ϕ′(l)

Nu(l+1)(l)(vin ) ·∑k=1

2(l+1)

wki

(l+1)

· δkn

(9)

(l+1)

式 (9) は，l+1 層の δin(l)から l 層の δin を逐次的に求めることができることを意味している．L 層における(L)δin のみ，定義に従って次のように計算する．
(L)

δin =

∂En=
(L)

∂vin

(L)

∂En

∂zin

∂zin

(L)
∂vin

·(L)

=

∂En(L)· ϕ′(L) (vin )∂yin(10)

この式の右辺の値は，問題に応じた En や ϕ(L) (·) の具体的な定義によって異なるが，回帰問題において標準的に用いられる 2 乗和誤差・恒等写像の組み合わせや，多クラス分類におけるクロスエントロピー誤差・ソフ(l)トマックス関数の組み合わせでは，いずれも yin − din となる．したがって，以上の δin に関する計算を行列形式に整理すると，以下のようになる．

∆(l){Y −D(l = L)=′
ϕ(l) (V (l) ) ◦ (t W (l+1) ∆(l+1) ) (otherwise)(11)

ここで，◦ は行列間，もしくはベクトル間の要素積 (アダマール積) を表すものとする．

2.3 計算のまとめ
以上より，多層パーセプトロンにおける順伝播・逆伝播の計算は次のようにまとめられる．
■順伝播

V (l) = W (l) Z (l−1) + b(l) · t 1Nb (l ≥ 2)
{X(l = 1)
Z (l) =ϕ(l) (V (l) ) (otherwise)(12)(13)■逆伝播{(l)∆=Y −D′
ϕ(l) (V (l) ) ◦ (t W (l+1) ∆(l+1) )1 (l) t (l−1)∆ · Z
N1∂b(l) = ∆(l) · 1NbN

∂W (l) =(l = L)(otherwise)(14)(15)(16)

このようにして求められた，層ごとのパラメタによる偏微分値 ∂W (l) を元に，勾配降下法などの更新則に基づいて W (l) を更新する．勾配降下法を例にとると，η を学習係数として，次のようにパラメタを更新する．

W (l) ← W (l) − η · ∂W (l)3(17)