誤差逆伝播法 - 東京工業大学

誤差逆伝播法
渡辺澄夫
東京工業大学
教師あり学習
学習データ
X1, X2, …, Xn
q(x,y)
Y1, Y2, …, Yn
y=f(x,w)
=q(x)q(y|x)
テストデータ
情報源
X
Y
学習モデル
深層学習
深い階層のモデルを定義することは
間単にできる。
o1
o2
o1
oN
oi
oN
N
H2
oj
H1
ok
M
x1
xM
x2
x1
H2
H1
M
j=1
k=1
m=1
xm
xM
oi =σ( ∑wij σ( ∑ wjk σ( ∑ wkmxm+ θk) + θj) + θi)
階層ごとに別の記号を使うのがメンドウなので同じ記号を使うが別のもの。
二乗誤差
学習モデルの出力を (oi), 教師データを y= (yi) とする。
1 N
2
二乗誤差は E(w) = ― ∑(oi -yi )
2 i=1
(N : 出力の次元)
学習モデルの出力 (oi) はパラメータ (w, θ) の関数なので、
E(w)の w に関する微分 ∇ E(w) を計算することができる。
確率降下法
各時刻 t において学習データ (Xi,Yi) をランダムに選んで
Δw = w(t+1) - w(t) = ーη(t)∇{ (Yi-f(Xi,w(t)))2 }
とする(∇はパラメータに関する微分を表す)。
◎1個ずつデータを取ってくるだけで学習できる。
◎ η(t) は下記を満たすように定める。
η(t) → 0
η(0)+η(1)+・・・+η(t) → ∞
計算の手順
(3) 中間2→出力
H2
oi =σ(∑wijoj+θi)
j=1
(2) 中間1→中間2
H1
oj=σ(∑wjkok+θj)
k=1
(1) 入力→中間1
M
ok=σ(∑wkmxm+θk)
m=1
(4) 中間2→出力
δi = (oi -yi ) oi (1- oi )
Δwij = -η(t) δi oj
Δθi = -η(t) δi
(5) 中間1→中間2
δj = Σi δi wijoj(1-oj)
Δwjk = -η(t) δj ok
Δθj = -η(t) δj
(6) 入力→中間1
δk = Σj δj wjkok(1-ok)
Δwkm = -η(t) δkxm
Δθk = -η(t) δk
学習と汎化
学習誤差関数
n
E(w) = (1/n) Σ (Yi-f(Xi,w))2
i=1
汎化誤差関数
F(w) =
∫∫ (y-f(x,w))2
q(x,y) dxdy
学習誤差と汎化誤差
汎化誤差
学習誤差
構造発見
構造発見
学習回数
良好な学習結果を得るには途中で学習を停止する必要がある。
しかし、どこで停止させるのが最適であるかはわかっていない。