74
Chapter 7: 再帰型ニューラルネット 機械学習プロフェッショナルシリーズ輪読会 ~深層学習編~ 佐野 正太郎

再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

Embed Size (px)

Citation preview

Page 1: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

Chapter 7: 再帰型ニューラルネット

機械学習プロフェッショナルシリーズ輪読会

~深層学習編~

佐野 正太郎

Page 2: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

前章までの流れ

順伝播型や自己符号化器では入出力次元数が固定

ニューラルネット

6.0

5.0

2.0

入力ベクトル 出力ベクトル

1.0

9.0

固定次元

固定次元

Page 3: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

本章で扱う問題

サンプル毎に系列長が違うデータをどう扱うか?

ニューラルネット

1.0

9.0

3.0

入力ベクトル系列 出力ベクトル系列

6.0

5.0

2.0

2.0

4.0

6.0

1.0

9.0

6.0

3.0

7.0

3.0

固定次元

固定次元

可変

入力と同じ系列長

Page 4: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

応用

自然言語処理

途中までの文章から次の単語を順次予測

音声認識

短時間フレーム毎の音素認識

We can get an idea of the quality of the leaned feature 1x 2x 3x 4x 5x 6x 7x 8x 9x 10x

11x11y

w ʌ n n n ʌ ʌ ʌ ʌ w w

Page 5: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

トピック

Recurrent Neural Network (RNN)

系列量が異なるサンプルの予測・学習

Long Short-Term Memory (LSTM)

より長い系列の予測・学習

Connectionist Temporal Classification (CTC)

時間フレーム単位のラベル付けが不要なRNN学習

Page 6: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

略語

FFNN

Feed Forward Neural Network

順伝播型ニューラルネットワーク

RNN

Recurrent Neural Network

再帰型ニューラルネットワーク

BP

Back Propagation

誤差逆伝播法

Page 7: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

Recurrent Neural Network (RNN)

Page 8: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

RNNの構造

3層FFNNに前時刻からのディレイ入力が付加

ネットワークの使い方が違う!

FFNNでは順伝播計算が1回だけ

再帰型では系列長だけ順伝播計算を繰り返す

tz1tz2

1

1

tz1

2

tztx1

tx2

ty1

ty2

tz1tz2

tx1

tx2

ty1

ty2

FFNN RNN

Page 9: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

RNNによる系列予測

tx 2x 1x

Page 10: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

RNNによる系列予測

tx 2x1x

0z

Page 11: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

RNNによる系列予測

tx 2x1y

1z

Page 12: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

RNNによる系列予測

tx 1y

2x

1z

1z

Page 13: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

RNNによる系列予測

tx 1y2y

2z

Page 14: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

RNNによる系列予測

tx 2y 1y

3x

2z

2z

Page 15: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

RNNによる系列予測

tx 2y 1y

Page 16: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

RNNによる系列予測

2y 1y

txty

1tz

Page 17: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

RNNの順伝播計算

現時刻の入力 と前時刻の中間層出力 から を計算

入力層 → 中間層

現時刻の入力 前時刻からの入力

tz1tz2

1

1

tz1

2

tztx1

tx2

ty1

ty2

1tztx

ty

Page 18: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

RNNの順伝播計算

中間層 → 出力層 (FFNNと同様)

tz1tz2

1

1

tz1

2

tztx1

tx2

ty1

ty2

Page 19: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

RNNの重み学習 (BPTT)

学習法: Back Propagation Through Time (BPTT)

RNN =「深さが系列長のFFNN」→ 展開してBPを適用

1

1x

1

2x

0

1z

0

2z

2

1x

2

2x

1

1z

1

2z

3

1x

3

2x

2

1z

2

2z

1

1y

1

2y

tx1

tx2

1

1

tz

1

2

tz

2

1

ty

2

2

ty

2

1y

2

2y

ty1

ty2

tz1

tz2

1

1

ty

1

2

ty

・・・

Page 20: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

復習:FFNNの重み学習 (BP)

サンプル毎に目的関数の勾配でパラメタを更新

Page 21: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

勾配の計算:連鎖規則で問題を分解

復習:FFNNの重み学習 (BP)

t

ju ft

jz

t 層目の第 j ユニット

定義から

微分可能

中間層の場合

直接微分できない

Page 22: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

復習:FFNNの重み学習 (BP)

更に連鎖規則を適用

定義から

微分可能

Page 23: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

復習:FFNNの重み学習 (BP)

δの漸化式が得られる

出力層のδは活性化関数の定義から微分可能

出力層から再帰的に δを計算

全ての δ が計算できれば全ての重み勾配も計算できる

Page 24: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

RNNの重み学習 (BPTT)

各層(時刻)で出力を持つのでδの漸化式が異なる

出力系列

1

1x

1

2x

0

1z

0

2z

2

1x

2

2x

1

1z

1

2z

3

1x

3

2x

2

1z

2

2z

1

1y

1

2y

tx1

tx2

1

1

tz

1

2

tz

2

1

ty

2

2

ty

2

1y

2

2y

ty1

ty2

tz1

tz2

1

1

ty

1

2

ty

・・・

Page 25: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

RNNの重み学習(BPTT法)

t

ku

1

1

tu

1

2

tu

tv1outf

tv2outf

・・・

・・・

2

1

tu

2

1

tu

・・・

ty1

ty2

・・・

が目的関数に

影響する範囲

f

f

f

f

f

Page 26: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

RNNの重み学習(BPTT法)

BPTTにおけるδの漸化式

次時刻への入力を

経由した微分連鎖

出力層への入力を

経由した微分連鎖

Page 27: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

RNNの重み学習(BPTT法)

BPTTにおけるδの漸化式

Page 28: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

RNNの重み学習(BPTT法)

BPTTにおけるδの漸化式

漸化式

定義から

微分可能

Page 29: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

RNNの重み学習(BPTT法)

BPTTにおけるδの漸化式

Page 30: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

RNNの重み学習 (BPTT)

・・・ T

1, Tout

1T

2, Tout

2T1 2

2,out1,out Tout,

Page 31: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

RNNの重み学習(BPTT法)

RNNをサンプル系列長のFFNNに展開

展開されたFFNNにBPを適用

普通のBPとの違い

δの漸化式に各時刻の出力が反映される

Page 32: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

Long Short-Term Memory (LSTM)

Page 33: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

復習:勾配消失問題

ネットワークが深すぎると

学習がうまくいかない!

Page 34: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

LSTM

RNNの問題点

BPTTで展開されるFFNNは入力系列長の深さを持つ

勾配消失問題により長い系列の学習が困難

LSTM

中間層に状態(長期記憶)を与えることで長い系列に対応

RNNの中間ユニットをメモリユニットに置きかえた構造

Page 35: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

LSTMにおける中間ユニット (メモリユニット)

ユニット は状態 を持つ (メモリセル)

中間ユニットが青枠内のモジュール群に置き換わる

活性化関数 (1回目)

入力ゲート

状態計算 (前状態との加算)

活性化関数 (2回目)

出力ゲート

メモリユニット

入力層 出力層

入力層

t

ju t

jzt

jsf f

tI

jg ,

tO

jg ,

f

f

t

jsj

中間層

(前時刻)

tI

jg , tF

jg , tO

jg ,

Page 36: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

各メモリユニットの状態計算

メモリユニット

前時刻の

状態

入力層の

加重和

忘却ゲート 入力ゲート

入力層 出力層

入力層

t

ju t

jzt

jsf f中間層

(前時刻)

tI

jg , tF

jg , tO

jg ,

Page 37: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

各メモリユニットからの出力計算

メモリユニット

現状態の

活性化値

出力ゲート

入力層 出力層

入力層

t

ju t

jzt

jsf f

tI

jg ,

中間層

(前時刻)

tF

jg , tO

jg ,

Page 38: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

メモリユニット:ゲートの計算

入力/忘却/出力ゲートもネットワーク構造を持つ

入力ゲート

忘却ゲート

出力ゲート

中間層ユニットへの入力と同じ計算

(異なる重みを学習)

Page 39: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

LSTM

Page 40: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

LSTM

入力層 中間層 出力層

入力

ゲート

忘却

ゲート

出力

ゲート

メモリ

セル

中間層

入力

Page 41: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

LSTMの学習

学習すべきパラメタ

① 中間層入力への重み

② 入力ゲートへの重み

③ 忘却ゲートへの重み

④ 出力ゲートへの重み

⑤ 出力層への重み

1 1

2 2

3 3

4 4

5 5

Page 42: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

LSTMの学習

更に2つのユニットがあると考える

状態から状態への恒等写像ユニット

状態に活性化関数を作用させるユニット

入力重みは常に1

t

jzt

ju ft

js ft

js id

fff

出力層

入力層

入力層

中間層

(前時刻)

tI

ju , tF

ju , tO

ju ,

Page 43: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

LSTMの学習

それぞれの ユニットについて δ を計算

i.e., 目的関数のユニット入力に関する微分

それぞれの出力先を経由した微分連鎖を計算(?)

out

OFI

cell ~

Page 44: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

LSTMの学習

Page 45: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

LSTMの学習

Tout,

TO,T~T

cell

T1, TO1~ T

TI ,TF ,~

1T

cell

1, Tout

・・・

RNNの学習同様に漸化式で全ての δ を計算

全ての δ がわかれば全ての重み勾配が計算可能

Page 46: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

Connectionist Temporal Classification (CTC)

Page 47: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

CTC

理想の訓練データ

現実の訓練データ

w ʌ n n n ʌ ʌ ʌ ʌ w w

ここからここまで ”wʌn”

Page 48: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

CTC

問題設定

入力:ベクトル系列

出力:ラベル系列

サンプル毎の目的関数

TxxX ,,1

||1 ,, llll

)|(log XlpEn

入出力の系列長は

必ずしも一致しない

出力はソフトマックス層

Page 49: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

CTCによる学習

・・・ T1T2T1 2

out

厳密な出力系列は知らないけどBPTTを適用したい

各時刻・各出力ユニットの が計算できればOK!

1, Tout2, Tout2,out1,out Tout,

Page 50: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

CTCによる学習

どうやって

計算するか?

Page 51: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

p(l|X) の計算

出力層に空白ラベル_のユニットを追加

a b a b _

Page 52: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

p(l|X) の計算

入出力の系列長を揃えたい

空白ラベル_が存在すると仮定

各正解ラベルを(空白ラベルor同じラベル)の連続で埋める

""abl

__,_,_,,,ba

__,_,,,, baa

ba _,_,_,_,,

bbbaaa ,,,,,

系列長6の場合

RNNからの出力ラベルは

この中のどれか

(確率的にしか分からない)

Page 53: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

p(l|X) の計算

)|( Xabpl

)|__,_,_,,,(' Xbapl

)|__,_,,,,(' Xbaapl

)|_,_,_,_,,(' Xbapl

)|,,,,,(' Xbbbaaapl

全部足すと p(l|X)

6

_

5

_

4

_

3

_

21 yyyyyy ba

6

_

5

_

4

_

321 yyyyyy baa

65

_

4

_

3

_

2

_

1

ba yyyyyy

654321

bbbaaa yyyyyy

ソフトマックス層の

出力から計算可能

Page 54: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

p(l|X) の高速計算

どうやって

計算するか?

どうやって

もっと速く

計算するか?

Page 55: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

p(l|X) の高速計算

)|( Xabpl

)|__,_,_,,,(' Xbapl

)|__,_,,,,(' Xbaapl

)|_,_,_,_,,(' Xbapl

)|,,,,,(' Xbbbaaapl

全部足すと p(l|X)

6

_

5

_

4

_

3

_

21 yyyyyy ba

6

_

5

_

4

_

321 yyyyyy baa

65

_

4

_

3

_

2

_

1

ba yyyyyy

654321

bbbaaa yyyyyy

ソフトマックス層の

出力から計算可能

Page 56: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

1 2 3 4 5 6 時刻

状態

_

a

_

b

_

p(l|X) の高速計算

全パスの確率和)|( Xlp

2

_y

2

ay2

ay

2

by

2

_y

Page 57: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

1 2 3 4 5 6 時刻

状態

ある時刻に着目

_

a

_

b

_

Page 58: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

1 2 3 4 5 6 時刻

状態

この状態を通るパスと

_

a

_

b

_

Page 59: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

1 2 3 4 5 6 時刻

状態

この状態を通るパスと

_

a

_

b

_

Page 60: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

1 2 3 4 5 6 時刻

状態

この状態を通るパスと

_

a

_

b

_

Page 61: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

1 2 3 4 5 6 時刻

状態

この状態を通るパスと

_

a

_

b

_

Page 62: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

1 2 3 4 5 6 時刻

状態

この状態を通るパスと

_

a

_

b

_

Page 63: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

全部の確率和を足すと

1 2 3 4 5 6 時刻

状態

_

a

_

b

_

)|( Xlp

Page 64: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

… t … 時刻

状態

s

p(l|X) の高速計算

s

tstsXlp ),(),()|(

α(s, t) は

前半パスの

確率和

β(s, t) は

後半パスの

確率和

Page 65: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

p(l|X) の高速計算

)1,()1,1(),( )(')(' tsytsyts t

sl

t

sl

α(s, t) は

漸化式で

計算

状態

_

a

_

b

_

1 2 3 4 5 6 時刻

t

sly )('

)1,1( ts

)1,( ts

(sが空白の場合)

Page 66: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

p(l|X) の高速計算

)1,()1,1()1,2(),( )(')(')(' tsytsytsyts t

sl

t

sl

t

sl

α(s, t) は

漸化式で

計算

状態

_

a

_

b

_

1 2 3 4 5 6 時刻

)1,1( ts

)1,( ts

)1,2( ts

t

sly )('

(sが空白以外の場合)

Page 67: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

p(l|X) の高速計算

1

_)1,1( yt=1 の場合

状態

_

a

_

b

_

1 2 3 4 5 6 時刻

1

)(')1,2( sly

動的計画法でαの計算を高速化 (βも同様)

Page 68: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

… t … 時刻

状態

s

p(l|X) の高速計算

s

tstsXlp ),(),()|(

α(s, t) は

前半パスの

確率和

β(s, t) は

後半パスの

確率和

Page 69: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

p(l|X) の微分計算

どうやって

計算するか?

速くなった!

Page 70: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

p(l|X) の微分計算

p(l|X) の微分も α と β から計算可能

ラベル j に

対応する

状態の集合

Page 71: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

CTCによる学習

p(l|X)とp(l|X) の微分が分かった → が計算可能 out

Page 72: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

CTCによる学習

が計算可能 → BPTTが適用できる

・・・ T

1, Tout

1T

2, Tout

2T1 2

2,out1,out Tout,

out

Page 73: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

CTCによる予測

RNN出力から冗長でない系列へとデコードしたい

1.0

9.0

3.0

入力ベクトル系列 冗長なラベル系列

6.0

5.0

2.0

2.0

4.0

6.0

2.0

4.0

6.0

bba ,_,,

ab

本当に欲しい出力

Page 74: 再帰型ニューラルネット in 機械学習プロフェッショナルシリーズ輪読会

CTCによる予測

愚直な計算だと時間かかる

厳密解を速く計算する方法は知られていない