DeepLearning輪読会
10.7-10.14
リクルートテクノロジーズ
坪坂 正志
本⽇の内容
• ⻑期のRNNにおける課題
• 10.7 The challenge of long-term dependencies
• 課題を克服するための⼿法について
• 10.8 Echo state networks
• 10.10 Leaky Units
• 10.9, 10.14 skip connection, multiple time scale
• 10.12,10.13 second-order optimization, clipping gradients,
regularizing to encourage information flow
• 10.11 LSTM and other gated RNNs
RNNの問題
• Recurrent networkは⼊⼒に対して同じ操作を繰り返していく
ため共通の重みを何回かかけてくと⾮常に値が⼤きくなるか0
に近づくかのいずれかとなる
• 例えば⼊⼒と⾮線形項を除いたRNNの隠れ層の式 ℎ(#)
= 𝑤ℎ(#'()
を考え
ると初期の⼊⼒によらず0か発散のいずれかになることがわかる
• 通常のdeep networkでは各レイヤーで異なる重みを使うためこ
ういう問題は発⽣しない
• これによりgradient-basedの学習⽅法を⽤いようとすると短期
の勾配の影響が⻑期の勾配に⽐べて⾮常に⼤きくうまく学習で
きないという問題が発⽣する
Echo state networks
• Echo state networkは⼊⼒から隠れ層
のマッピングや隠れ層間の遷移の重み
は固定する
• 隠れ層から出⼒への変換の部分だけ学
習する
• この場合学習は単なる線形回帰の問題
なので勾配の消失などの問題は⼀切発
⽣しない、また学習も速い
• U, Wは過去の情報が消失/発散しない
ように⼀定のスペクトル半径となるよ
うに設定する
この部分のパラ
メータは⼊⼒と
して与えられて
いる
隠れ層から出⼒への重
みだけ学習
Leaky units
• unitの値の更新の際に自分の過去の値をそのまま利用するself-
connectionを導入する
• 式で書くと 𝜇(#)
= 𝛼𝜇(#'()
+ (1 − 𝛼)𝑣(#)
となる
• Self-connectionについては最近画像のコンテストILSVRC 2015
で優勝したResNetでも使われているアイディア
• http://research.microsoft.com/en-
us/um/people/kahe/ilsvrc15/ilsvrc2015_deep_residual_learning_kai
minghe.pdf
Skip connection, Multiple time scale
• Skip Connection through time
• 時刻tからt+1のコネクション以外にもtからt+dのようなジャンプして
いるコネクションを追加する
• Multiple time scale
• Skip connectionではユニットは遠い過去の情報を⼊⼒として受け取る
が⼀個前の情報にも依存している
• Multiple time scaleの場合⼀個前ではなく2個,4個,8個と遠い距離の⼊
⼒のみを受け取るユニットを⽤意してネットワークを構成する
Second-order optimization
• ⼀次の勾配が0に近づくタイミングで⼆次の勾配も同様に0に近
づくことがわかっている
• この場合second-order optimizationを使うと
• 例えばニュートン法の更新が 𝑥 ← 	𝑥 −
=>
=>>
であることから⽐率は変わら
ないことからfirst-orderの⽅法と違ってvanishing gradient問題が回避
できる
• しかし、second-order optimizationの計算量の課題からこの⽅
法はあまり使われずSGD + LSTMが主流の⽅法となっている
• これは機械学習でよくある最適化が簡単なモデルを構築する法
が最適化を⼯夫するよりも簡単だという話となっている
Clipping gradients
• 勾配が⼤きくならないようにgradientの値を計算した後に値が
閾値を超えていたら修正する
• 修正の仕⽅は
• Element wise : 要素ごとに閾値で抑える
• Clip the norm : 勾配のノルムを計算して、ノルムが閾値以下になるよ
うに修正
• Clip the normの⽅が勾配の⽅向が変わらないという利点があるが⼆者
の性能については実験的にはあまり⼤差がない
Regularizing to encourage information flow
• Gradient clippingは勾配の発散には対処できるが消失には対応
できていない
• ⼀つのアイディアとして時刻tにおける損失関数の勾配の影響が
過去にも残るような正則化項をいれるという⽅法があり、以下
の正則化項が提案されている
Gated RNNs
• Leaky unitは過去の情報を蓄積するためのαという項を備えて
いた
• Gated RNNsではこの部分の過去の情報を蓄積するための項を
各ステップで変化させていく
• またGated RNNsでは過去の情報を忘却するための機構も備え
ている
LSTM
• ⼊⼒と出⼒の形式はRNNと同じ
• Stateの更新
• Stateの更新はLeaky Unit同様過去の値と現在の⼊⼒を
混ぜるという⽅針、ただしLeaky Unitと違い要素ごとに
⼊⼒に応じて係数を変更する
• 𝑠@
(#)
= 𝑓@
#
B 𝑠@
#'(
+ 𝑔@
#
B 𝑖@
(#)
• 𝑓@
(#)
= 𝜎(𝑏@
=
+ 𝑈@
=
𝑥 #
+ 𝑊@
=
ℎ(#'()
) forget gate
• 𝑔@
(#)
= 𝜎(𝑏@
I
+ 𝑈@
I
𝑥 #
+ 𝑊@
I
ℎ(#'()
) external input gate
• 𝑖@
(#)
= 𝜎(𝑏@ + 𝑈@ 𝑥 #
+ 𝑊@ℎ(#'()
) input
• 隠れ層の更新
• ℎ@
(#)
= tanh 𝑠@
#
𝑞@
(#)
• 𝑞@
(#)
= 𝜎(𝑏@
M
+ 𝑈@
M
𝑥 #
+ 𝑊@
M
ℎ #'(
) output gate
Other gated RNNs
• GRU
• ℎ@
(#)
= 𝑢@
(#)
ℎ@
(#'()
+ (1 − 𝑢@
#
)𝑖@
(#'()
• 𝑢@
(#)
= 𝜎(𝑏@
O
+ 𝑈@
O
𝑥 #
+ 𝑊@
O
ℎ(#'()
) update gate
• 𝑖@
(#)
= 𝜎(𝑏@ + 𝑈@ 𝑥 #
+ 𝑊@(𝑟⨂ℎ #'(
))
• 𝑟@
(#)
= 𝜎(𝑏@
R
+ 𝑈@
R
𝑥 #
+ 𝑊@
R
ℎ(#'()
) reset gate
• Update gateとreset gateという⼆つの部分で元の隠れ層の値を
残すかどうかをコントロールしている
• LSTMに⽐べgateが⼀つ減っている分学習するパラメータが少
なくなっている

Deeplearning輪読会

  • 1.
  • 2.
    本⽇の内容 • ⻑期のRNNにおける課題 • 10.7The challenge of long-term dependencies • 課題を克服するための⼿法について • 10.8 Echo state networks • 10.10 Leaky Units • 10.9, 10.14 skip connection, multiple time scale • 10.12,10.13 second-order optimization, clipping gradients, regularizing to encourage information flow • 10.11 LSTM and other gated RNNs
  • 3.
    RNNの問題 • Recurrent networkは⼊⼒に対して同じ操作を繰り返していく ため共通の重みを何回かかけてくと⾮常に値が⼤きくなるか0 に近づくかのいずれかとなる •例えば⼊⼒と⾮線形項を除いたRNNの隠れ層の式 ℎ(#) = 𝑤ℎ(#'() を考え ると初期の⼊⼒によらず0か発散のいずれかになることがわかる • 通常のdeep networkでは各レイヤーで異なる重みを使うためこ ういう問題は発⽣しない • これによりgradient-basedの学習⽅法を⽤いようとすると短期 の勾配の影響が⻑期の勾配に⽐べて⾮常に⼤きくうまく学習で きないという問題が発⽣する
  • 4.
    Echo state networks •Echo state networkは⼊⼒から隠れ層 のマッピングや隠れ層間の遷移の重み は固定する • 隠れ層から出⼒への変換の部分だけ学 習する • この場合学習は単なる線形回帰の問題 なので勾配の消失などの問題は⼀切発 ⽣しない、また学習も速い • U, Wは過去の情報が消失/発散しない ように⼀定のスペクトル半径となるよ うに設定する この部分のパラ メータは⼊⼒と して与えられて いる 隠れ層から出⼒への重 みだけ学習
  • 5.
    Leaky units • unitの値の更新の際に自分の過去の値をそのまま利用するself- connectionを導入する •式で書くと 𝜇(#) = 𝛼𝜇(#'() + (1 − 𝛼)𝑣(#) となる • Self-connectionについては最近画像のコンテストILSVRC 2015 で優勝したResNetでも使われているアイディア • http://research.microsoft.com/en- us/um/people/kahe/ilsvrc15/ilsvrc2015_deep_residual_learning_kai minghe.pdf
  • 6.
    Skip connection, Multipletime scale • Skip Connection through time • 時刻tからt+1のコネクション以外にもtからt+dのようなジャンプして いるコネクションを追加する • Multiple time scale • Skip connectionではユニットは遠い過去の情報を⼊⼒として受け取る が⼀個前の情報にも依存している • Multiple time scaleの場合⼀個前ではなく2個,4個,8個と遠い距離の⼊ ⼒のみを受け取るユニットを⽤意してネットワークを構成する
  • 7.
    Second-order optimization • ⼀次の勾配が0に近づくタイミングで⼆次の勾配も同様に0に近 づくことがわかっている •この場合second-order optimizationを使うと • 例えばニュートン法の更新が 𝑥 ← 𝑥 − => =>> であることから⽐率は変わら ないことからfirst-orderの⽅法と違ってvanishing gradient問題が回避 できる • しかし、second-order optimizationの計算量の課題からこの⽅ 法はあまり使われずSGD + LSTMが主流の⽅法となっている • これは機械学習でよくある最適化が簡単なモデルを構築する法 が最適化を⼯夫するよりも簡単だという話となっている
  • 8.
    Clipping gradients • 勾配が⼤きくならないようにgradientの値を計算した後に値が 閾値を超えていたら修正する •修正の仕⽅は • Element wise : 要素ごとに閾値で抑える • Clip the norm : 勾配のノルムを計算して、ノルムが閾値以下になるよ うに修正 • Clip the normの⽅が勾配の⽅向が変わらないという利点があるが⼆者 の性能については実験的にはあまり⼤差がない
  • 9.
    Regularizing to encourageinformation flow • Gradient clippingは勾配の発散には対処できるが消失には対応 できていない • ⼀つのアイディアとして時刻tにおける損失関数の勾配の影響が 過去にも残るような正則化項をいれるという⽅法があり、以下 の正則化項が提案されている
  • 10.
    Gated RNNs • Leakyunitは過去の情報を蓄積するためのαという項を備えて いた • Gated RNNsではこの部分の過去の情報を蓄積するための項を 各ステップで変化させていく • またGated RNNsでは過去の情報を忘却するための機構も備え ている
  • 11.
    LSTM • ⼊⼒と出⼒の形式はRNNと同じ • Stateの更新 •Stateの更新はLeaky Unit同様過去の値と現在の⼊⼒を 混ぜるという⽅針、ただしLeaky Unitと違い要素ごとに ⼊⼒に応じて係数を変更する • 𝑠@ (#) = 𝑓@ # B 𝑠@ #'( + 𝑔@ # B 𝑖@ (#) • 𝑓@ (#) = 𝜎(𝑏@ = + 𝑈@ = 𝑥 # + 𝑊@ = ℎ(#'() ) forget gate • 𝑔@ (#) = 𝜎(𝑏@ I + 𝑈@ I 𝑥 # + 𝑊@ I ℎ(#'() ) external input gate • 𝑖@ (#) = 𝜎(𝑏@ + 𝑈@ 𝑥 # + 𝑊@ℎ(#'() ) input • 隠れ層の更新 • ℎ@ (#) = tanh 𝑠@ # 𝑞@ (#) • 𝑞@ (#) = 𝜎(𝑏@ M + 𝑈@ M 𝑥 # + 𝑊@ M ℎ #'( ) output gate
  • 12.
    Other gated RNNs •GRU • ℎ@ (#) = 𝑢@ (#) ℎ@ (#'() + (1 − 𝑢@ # )𝑖@ (#'() • 𝑢@ (#) = 𝜎(𝑏@ O + 𝑈@ O 𝑥 # + 𝑊@ O ℎ(#'() ) update gate • 𝑖@ (#) = 𝜎(𝑏@ + 𝑈@ 𝑥 # + 𝑊@(𝑟⨂ℎ #'( )) • 𝑟@ (#) = 𝜎(𝑏@ R + 𝑈@ R 𝑥 # + 𝑊@ R ℎ(#'() ) reset gate • Update gateとreset gateという⼆つの部分で元の隠れ層の値を 残すかどうかをコントロールしている • LSTMに⽐べgateが⼀つ減っている分学習するパラメータが少 なくなっている