19. 5.2 ネットワーク訓練
ニューラルネットワークのパラメータ決定問題を議論する
パラメータ決定問題の最も単純なアプローチは、二乗和誤差
関数の最小化
1 N
E (w ) y (x n , w ) t n
2
入力ベクトル{xn}
2 n 1 目標ベクトル{tn}
だが、はじめにネットワーク出力を確率的に解釈することで
ネットワークの訓練について一般的に議論することが出来る
(1.5.4節:推論と決定)
また、確率的解釈をする事によって、出力ユニットの非線形活
性化関数の選択や誤差関数の選択にさらに明確な理由付け
が可能になる
20. 5.2 ネットワーク訓練
回帰問題
目標変数はニューラルネットワークの出力で与えられる平均
を持つガウス分布に従うと仮定(より一般的な例は、5.6節)
p(t | x, w ) (t | y (x, w ), 1 ) 1つの目標変数:t
ガウスノイズの精度:β
尤度関数 N
p (t | x, w, ) p (t n | x n , w, ) 入力ベクトル{xn}
n 1 目標ベクトル{tn}
βN N N
ln p(t | x, w, ) { y (x n , w ) t n } lnβ ln( 2 )
2
π
2 n 1 2 2
負の対数尤度を取ると、誤差関数が得られる
21. 5.2 ネットワーク訓練
ここでは最尤推定アプローチのみを考える
(ベイズ理論アプローチは、5.7節)
ニューラルネットワークの文献では、誤差関数の最小化に
よってパラメータを求めることが多い
まずは、最尤推定解wMLを求める。wに関する二乗和誤差関
数の最小化は、定数部分を除けば尤度関数の最大化と等価
1 N
E (w ) y (x n , w ) t n
2
2 n 1
しかし、ネットワーク関数y (x n , w ) の非線形性のため誤差は非
凸。現実には極大点が求まる(5.2.1節)
22. 5.2 ネットワーク訓練
wMLが求まれば、 βは負の対数尤度の最小化により求まる
N
1
1
y (xn , w ML ) tn 2
βML N n 1 w ML
:wの最尤推定解
目標変数が複数の場合
x,wについての条件付き確率が独立で、ノイズ精度βが共通
であると仮定(wMLの導出は、演習5.2)
p(t | x, w ) (t | y (x, w ), 1I )
ノイズ精度は以下の式で与えられる
1 N
1
y (xn , w ML ) t n 2
βML NK n 1
K:目標変数tの次元
23. 5.2 ネットワーク訓練
誤差関数と出力ユニットの活性化関数には自然な組み
合わせがある(4.3.6節:正準連結関数)
Ex.回帰問題:二乗和誤差
活性化関数 誤差関数
恒等写像 出力と正解との「誤差」
E
y k ak yk t k
ak
24. 5.2 ネットワーク訓練
2クラス分類問題
クラスC1がt=1、クラスC2がt=0となる目標変数
活性化関数は、0 y(x, w) 1 となるようにする
4.3.6節より、活性化関数をロジスティックシグモイド関数とする
1
y (a)
1 exp( a )
目標変数の条件付き分布は、以下のベルヌーイ分布で表す
ことが出来る
p(t | x, w ) y (x, w )t {1 y (x, w )}1t
25. 5.2 ネットワーク訓練
訓練集合が独立な観測値である場合、負の対数尤度で与え
られる誤差関数は以下の式となる
N
E (w ) t n ln yn (1 t n ) ln(1 yn )
n 1
yn y (x n , w )
上式は、交差エントロピー誤差関数(cross-entropy error
function)である
今回のモデルでは、(ラベル付け誤差)=0を仮定(演習5.4)
K個の異なる2クラス分類問題(演習5.5)
K
p(t | x, w ) yk (x, w )tk {1 yk (x, w )}1tk
k 1
N K
E (w ) t nk ln ynk (1 t nk ) ln(1 ynk )
n 1 k 1
ynk yk (x n , w )
27. 5.2 ネットワーク訓練
標準的な多クラス分類問題
それぞれの入力がK個の排他的クラスの1つに割り当てられ
ている。目標変数 t k {0,1} は1-of-K表記で表す。
誤差関数
N K
E (w ) t nk ln yk (x n , w )
n 1 k 1
出力ユニットの活性化関数(4.3.4節に対応)
exp(ak (x, w))
yk (x, w)
ソフトマックス関数 exp(a j (x, w))
j
s.t.0 yk 1, k yk 1
28. 5.2 ネットワーク訓練
yk ( x, w ) はすべてのak ( x, w ) に定数を加えても不変
すべての ak ( x, w ) に対して同じ増分となるwの方向に対して、
誤差関数は定数となる
この退化を除くには、適当な正則化項を誤差関数に導入する
誤差関数の特定の出力ユニットの活性に関する微分
E
yk t k
ak
29. 5.2 ネットワーク訓練
まとめ
出力ユニットの活性化関数と対応する誤差関数は、問題の形
によって自然に選択される(4.3.6節:正準連結関数)
Ex.回帰問題:線形出力関数/二乗和誤差
1 N
E (w ) y (x n , w ) t n
2
2 n 1
Ex.2クラス分類問題:ロジスティックシグモイド関数/交差エントロ
ピー誤差関数 N
y (a)
1 E (w ) t n ln yn (1 t n ) ln(1 yn )
1 exp( a ) n 1
Ex.他クラス分類問題:ソフトマックス関数/多クラス交差エントロ
ピー誤差関数
30. 5.2.1 パラメータ最適化
選ばれた誤差関数 E (w )を最小化するwを見つけたい
w w E w T E (w )
ここでE (w ) は誤差関数が最も変化する方向で、E(w)はw
のなめらかで連続な関数なので、最小値は誤差関数の勾配
がゼロになる点にある⇒E (w) 0:停留点
誤差関数の重みパラメータとバイアスパラメータへの依存性
は高い非線形性があるため、停留点は重み空間内に多数存
在することが多い。(Ex. 5.1.1節:重み空間対称性)
M !2 M
32. 5.2.2 局所二次近似
誤差関数の局所二次近似を考える
~
重み空間内のある点 w の周りの誤差関数のテイラー展開
~ ) ( w w )T b 1 ( w w ) T H ( w w )
E (w ) E (w ~ ~ ~
2
勾配の局所近似(上式をwで微分)
b E |w w
~
E (w) b H(w w) ~
E
(H ) ij
~に近いwでは、このテイラー展開は wi w j ~
w w w
誤差関数とその勾配をよく近似している
33. 5.2.2 局所二次近似
誤差関数の極小点 w の周りでの局所二次近似
1
E ( w ) E ( w ) ( w w )T H ( w w )
2
幾何学的解釈
ヘッセ行列Hの固有方程式を考える(付録C.33)
Hu i λi u i s.t. uT u j ij
i
このとき、( w w を固有ベクトルの線形和に展開できる
)
(w w ) i u i
i
この変換は原点を w に平行移動し、各軸を固有ベクトルに
合わせるように回転する座標変換とみなせる(付録C.39)
34. 5.2.2 局所二次近似
誤差関数は以下の形で書ける
1
E (w ) E (w ) λiαi2
2 i
正定値
v v T Hv 0
v ci u i
i
v T Hv ci2u i
i
したがって、ヘッセ行列Hは、全ての固有値が正の時、またそ
の時に限り正定値となる
35. 5.2.2 局所二次近似
誤差関数Eの等高線は、先程の座標変換により原点を中心と
する楕円となる
v v T Hv 0 を満たすとき、極小点となる
36. 5.2.3 勾配情報の利用
誤差逆伝播法を用いれば、効率的に誤差関数の勾配を評価
出来る(5.3節)
~ ) ( w w )T b 1 ( w w ) T H ( w w )
E (w ) E (w ~ ~ ~
2
b E |w w
~
bとHには、W(W+3)/2個の独立な要素
W:wの次元 E
O (W 2 ) (H ) ij
したがって、解を求めるには wi w の独
j w w
~
立な要素の情報が必要
さらに、関数の評価に O(W ) ステップ必要
極小値を見つけるために必要な計算量は、このアプローチで
は、
O(W 2 ) O(W ) O(W 3 )
39. 5.2.4 勾配降下最適化
勾配降下法のオンライン版
独立に得られた観測値に対する最尤法に基づく誤差関数は、
各データ点を表す項の和
N
E ( w ) En ( w )
n 1
w ( 1) w ( ) En (w ( ) )
重みベクトルの更新を1回ごとに1つのデータ点に基づいて作
成する手法:逐次的勾配降下法/確率的勾配降下法
データの冗長度を効率的に扱うことが可能
局所的極小値を回避出来る可能性がある
42. 5.3.1 誤差関数微分の評価
多くの誤差関数は、訓練集合の各データに対応する誤差項
の和で表される N
E ( w ) En ( w )
n 1
上の誤差関数の1つの項に対する勾配 En (w )を評価する問
題を考える
バッチ手法の場合には、訓練集合全体についての和をとる
43. 5.3.1 誤差関数微分の評価
単純な線形モデル
yk wki xi {yk}: 出力
{xi}: 入力変数
i
誤差関数が以下の式で与えられる場合を考える
En ynk t nk
1 2 {tnk}:目標変数
ynk yk ( xn , w)
2 k
この時、誤差関数の重みパラメータwkiに関する勾配は以下の
式となる。
En
ynj t nj xni
w ji
この式は、出力側の「誤差信号」 y nj t nj
と入力側の「変数」 xni
の
積という局所的な計算と解釈出来る
44. 5.3.1 誤差関数微分の評価
ロジスティックシグモイド関数と交差エントロピー誤差関数/
ソフトマックス活性化関数と交差エントロピー誤差関数の場合
も類似の式が導出される(4.3.2節)
より複雑な多層フィードフォワードNNへ拡張
一般のフィードフォワードNNでは、それぞれのユニットは下の
形の入力の重み付き和を計算する
i:ユニットjへ入るユニット
a j w ji zi {zi} : ユニットjに結合があるユニットの出力
i {wji}: ユニットiからjへの結合重み
z j h(a j ) h(・) : 非線形活性化関数
バイアスは明示的に扱う必要はない(5.1節)
45. 5.3.1 誤差関数微分の評価
順向き伝播(forward propagation)
訓練集合に対し、先程のフィードフォワードNNを適用すること
でネットワークのすべてのユニットの出力を計算すること
誤差関数Enの重みwjiに関する微分の評価を考える
以下、添字nを省略する
En En a j
(偏微分の連鎖法則)
w ji a j w ji
En a j En
j (誤差) zi より、 j zi
a j w ji w ji
46. 5.3.1 誤差関数微分の評価
右式から、ある重みの出力側のユニットのδと、 En
j zi
入力側のユニットのzの値を掛け合わせると、 w ji
必要な微分が得られることが分かる
これは単純な線形モデルの場合と同様の結論(5.47)
各隠れユニット及び出力ユニットのδを評価する
5.2節より、正準連結関数を活性化関数に用いた出力ユニット
では、δの値は、右の式になる。 En
k yk t k
ak
隠れユニットのδは、下の式で評価出来る
E E a
j n n k
a j k a k a j
ユニットj→ユニットkの結合が存在する全てのkについて総和をとる
47. 5.3.1 誤差関数微分の評価
En ak
j
k a k a j
wkih(ai )
k i
k a j
h(a j ) wkj k (逆伝播公式)
k
逆向き伝播では、wkjの最初の添字について和を取ることに注意。
順向き伝播では、2番目の添字について和を取った。
出力ユニットのδの値は(5.54)からすでにわかっているので、再帰的に全てのδ
が評価出来る。
48. 5.3.1 誤差関数微分の評価
誤差逆伝播アルゴリズムの手順まとめ
1. 入力ベクトルxnをネットワークにいれ,下式を用いてネットワーク上
を順伝播させ,すべての隠れユニットと出力ユニットの出力を算出
a j w ji zi (5.48) z j h(a j ) (5.49)
i
2. (5.54)を用いてすべての出力ユニットのδkを評価
k yk t k (5.54)
3. (5.56)を用いてδを逆伝播させ,ネットワークの全ての隠れユニット
のδjを得る
j h' (a j ) wkj k (5.56)
k
4. (5.53)を用いて必要な微分を評価する
En
j zi (5.53)
w ji
49. 5.3.1 誤差関数微分の評価
バッチ手法については、全体の誤差Eの微分は誤差逆伝播の
ステップを訓練集合1つ1つについて繰り返し、総和を取るこ
とで得られる
E En
w ji n w ji
今回の誤差逆伝播の導出では、全てのユニットが同じ活性化
関数h(・)を持つことを暗に仮定していた。しかし、個々のユ
ニットが異なる活性化関数を持つ場合に拡張するのは簡単
50. 5.3.2 逆伝播手続きの簡単な例
2層ネットワーク
二乗和誤差関数
1 K
En ynk t nk
2
2 k 1
yk:特定の入力パターンxnに対する出力ユニットkの出力
tk:xnに対応する目標値
出力ユニットは線形活性化関数
y k ak
隠れユニットはシグモイド活性化関数
ea ea
h(a ) tanh(a) a a h(a) 1 h(a) 2
e e
51. 5.3.2 逆伝播手続きの簡単な例
訓練集合のそれぞれのパターンに順向き伝播を実行
D
a j w(ji1) xi (隠れユニット活性の算出)
i 0
z j tanh( a j ) (隠れユニットパラメータの算出)
M
yk wkj2 ) z j
(
(出力ユニットの出力の算出)
j 0
k yk t k (誤差δの算出)
52. 5.3.2 逆伝播手続きの簡単な例
誤差を逆伝播させる
j 1 z w
K
2
j kj k
k 1
各隠れユニットのδを得たら、重みの微分を評価する
E n
j xi
w ji
(1)
En
k z j
wkj
( 2)
53. 5.3.3 逆伝播の効率
ネットワークの重みとバイアスの総数Wに対する、誤差
関数の微分評価に必要な計算量を測ってみる
1入力パターンに対し、誤差関数の評価はO(W)必要
非常にスパースなネットワークの場合を除き、重み数がユニット数よ
りも遥かに多いのが一般的なため、順向き伝播の下式(各ユニット
の活性の評価)の計算がボトルネックとなる。 D
a w x j
i 0
ji i
逆伝播にAlternativeな手法として、有限幅の差分近似の利用
が考えられる。これはそれぞれの重みに摂動を加えて差を計
算することで、誤差関数の微分を近似する
En En ( w ji ) En ( w ji )
O( ) 1
w ji
54. 5.3.3 逆伝播の効率
εの値を小さくすること、中心差分を用いることで劇的に精度を
向上させることが出来る
En En ( w ji ) En ( w ji )
O( 2 )
w ji 2
数値微分手法では、重みがW個ある時にそれぞれ個別に摂
動を与える必要があるため、O(W)ステップ必要。全体として
は、O (W 2の計算量となる
)
実用上は、逆伝播の頑健性のチェックのために、中心差分の
手法が使用されることが多い。
65. 5.4.2 外積による近似
NNの回帰問題への応用
二乗和誤差関数を用いるのが一般的
1 N
E ( yn t n ) 2
2 n 1
この時、ヘッセ行列は以下の形で書ける
N N
H E yn (yn ) ( yn t n ) yn
T
n 1 n 1
二乗和誤差を最小化する最適な関数は、目標データの条件
付き平均(1.5.5節)
よって、( yn t n ) という値は平均ゼロの確率変数
y n と ( y n t n )が無相関ならば、上式の第二項がゼロに平均
化されることが期待できる(演習5.17)
66. 5.4.2 外積による近似
N N
H yn (yn ) b nbT
T (Levenberg-Marquardt近似)
n 1
n
n 1
(外積による近似)
ヘッセ行列の外積近似にはO(W)ステップで評価可能
この近似は適切に訓練されたネットワークに対してだけ成り
立つことに注意 yn E[t | xn ]
ロジスティックシグモイド関数(演習5.19)
N
H yn (1 yn )b nbT
n
n 1
ソフトマックス関数(演習5.20)
67. 5.4.3 ヘッセ行列の逆行列
外積による近似を用いると、ヘッセ行列の逆行列を近似する
ための計算上効率的な手続きを導出可能
ヘッセ行列は以下の式で近似出来る
N N
H N b nb w an ( w an )T
T
n
n 1 n 1
w a n :出力ユニットの出力勾配へのデータ点nからの寄与
逐次的にヘッセ行列の逆行列を構成する
L個のデータ点を用いて、ヘッセ行列の逆行列がえられている
と仮定する
H L 1 H L b L 1bT 1
L
68. 5.4.3 ヘッセ行列の逆行列
Woodbury恒等式(付録C.7)を利用すると、
H 11 H L b L1bT 1
L L
1
H 1
H 1
L b
b L1 T 1H 1
L L
1 bT 1H 1b L1
L
L L
L+1=Nとなるまで繰り返す
行列H0の初期値は、αを小さな定数としてαIに選ぶ N
その結果、このアルゴリズムは、 I H N I b nb n の逆行
T
n 1
列を求めることになる
ヘッセ行列は、準ニュートン非線形最適化アルゴリズムなどで
間接的に計算できることもある
69. 5.4.4 有限幅の差分による近似
有限幅の差分近似を用いて、誤差関数の2階微分を求めるこ
とも出来る
2E 1
2 E ( w ji , wlk ) E ( w ji , wlk )
w ji wlk 4
E ( w ji , wlk ) E ( w ji , wlk ) O ( 2 )
ヘッセ行列にはW^2個の要素が存在
要素評価には、O(W)の計算量が必要な順向き伝播が4回
3
したがって、このアプローチでのヘッセ行列評価は O (W )
実用上は、逆伝播法のソフトウェア実装のチェックにおいて、
非常に便利
72. 5.4.5 ヘッセ行列の厳密な評価
2層の重みを持つNNの場合
E 2 En i,i’:入力ユニット
k n M kk j,j’:隠れユニット
ak ak ak k,k’:出力ユニット
微分のチェーンルールを用いて、このネットワークのヘッセ行
列は以下のように考えることが出来る(5.3.1-2節の応用)
両方の重みが第二層
2 En En ak
( 2)
wkj wk j wkj k
( 2) ( 2) a w( 2)
k j
ak En
( 2)
a z j
wkj ak k
z j z j M kk
z j h( a j ) :ユニットjの出力
73. 5.4.5 ヘッセ行列の厳密な評価
両方の重みが第一層
以下のチェーンルールから、導くことが出来る
a j
(1)
w ji
(1)
w ji a j
z j ak
xi
a j k z j ak
xi h(a j ) wkj2 )
(
k ak
重みが1つの層に1つずつある場合も同様
バイアス項や層を飛び越えた結合を含めた場合も、上式の
チェーンルールの形を変化させるだけで容易に拡張可能
74. 5.4.6 ヘッセ行列の積の高速な計算
多くの場合、ヘッセ行列Hそのものではなく、あるベクトルvと
の積が知りたい
2
ヘッセ行列の評価には O (W )の計算量と記憶容量が必要
T
一方、直接v H O(W )
を で評価するアプローチが存在する
v T H v T(E ) R{E} v Tを R{}
と置く
E は順向き伝播/逆伝播の方程式から得られる(5.3.1節)
R{} の定義から、R{w} v
75. 5.4.6 ヘッセ行列の積の高速な計算
2層NN(線形出力ユニット/二乗和誤差関数)
順向き伝播方程式にR{・}を作用させる
a j w(ji1) xi R{a j } v ji xi
i i
z j h( a j ) R{z j } h(a j ) R{a j }
yk wkj2 ) z j
(
R{ yk } wkj2 ) R{z j } v jk z j
(
j j j
逆伝播の式にもR{・}を作用させる
k yk t k
j h' (a j ) wkj k
k
R{ k } R{ yk }
R{ j } R{h(a j )} wkj k h(a j ) R{wkj } k h(a j ) wkj R{ k }
k k k
h(a j ) R{a j } wkj k h(a j ) vkj k h(a j ) wkj R{ k }
k k k
76. 5.4.6 ヘッセ行列の積の高速な計算
最後に、誤差の1階微分の方程式にR{・}を作用させる
E E
k z j R ( 2) R{ k }z j k R{z j }
wkj
( 2)
wkj
E E
j xi R (1) R{ j }x i
w ji
(1)
w ji
隠れユニットの活性や出力・誤差、出力ユニットの出力や誤差
T
にR{・}を作用させた変数を導くことで、 v H を求めることが出
来る
v={0,0,...,1,...,0}のベクトルを用いてこのテクニックを使用すれ
ば、完全なヘッセ行列を評価することも出来る