Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.
LSTMとは
RNNにおいて長い時系列データを処理する仕組み
LSTMとは?
 Long Short-Term Memory「長・短期記憶」のこと。
 そもそも単純なRNNでは長期にわたる記憶ができない。LSTMはこの問題
点を改善する1手法。
それってどういうこと?そもそもRNNってなんだっけ?
RNNってなんだったっけ・・・?
 Recurrent Neural Network(再帰型ニューラルネットワーク)の略。
 通常のDNNには時系列データを処理する仕組みがない。
 RNNは時系列データを処理できる。
RNNの順伝播における入力のしかた(1)
 画像 および を入力する場合
t=1, 2, 3
1 2 1
7 9 8
2 3 4
é
ë
ê
ê
ê
ù
û
ú
ú
ú
10 20 30
40 50 60
70 80 90
é
ë
ê
ê
ê...
RNNの順伝播における入力のしかた(2)
 画像 および を入力する場合
t=1, 2, 3
1 2 1
7 9 8
2 3 4
é
ë
ê
ê
ê
ù
û
ú
ú
ú
10 20 30
40 50 60
70 80 90
é
ë
ê
ê
ê...
1つのデータセットにおける誤差は
 n番目のデータセット における誤差 は
t=1
t=2
0
1
0
1
入力層 出力層中間層
an0
2
an0
1
an1
1
bn1
2
an1
2
bn0
2
bn0
1
bn1
1
yn0
1
yn...
ミニバッチの場合の誤差は・・・
 全N個のデータセットからm個のデータセットでミニバッチをつくる。
 このミニバッチを用いて確率的勾配降下法で学習する。
 まずn番目のデータセットの誤差 は
 これをm個データセットにわたり足す。
 ...
重みを更新するには何を求めればいい?
 RNNでは入力層 i 番目ノードから中間層 j 番目ノードへの t 時刻目にお
ける重み は
 ここで は と変形できます。
 そうすると、このδは などと出力側のδの関数として表さ
れます。
 ...
誤差逆伝播でδを求めてみる
 t=1における隠れ層ノード 0番目の はt=1の出力層からのδとt=2の
隠れ層からのδからなる
d0
1
= wk0
out,1
dk
out,1
+
k=0,1
å wj'0dj'
2
j'=0,1
å
æ
...
RNNの勾配消失問題とは
 tが多くなると、隠れ層ノードのδは何度も掛け算される。
t=1
t=2
j=0
j=1
k=0
k=1
d0
1
= wk0
out,1
dk
out,1
+
k=0,1
å wj'0dj'
2
j'=0,1
å
...
RNNの勾配消失問題とは
tが多くなると、隠れ層ノードのδにはwやf’(u)が何度も掛け算される
δは指数関数的に増加、もしくは減少する
勾配 も指数関数的に増加、もしくは減少する
¶E
¶w
=d
¶u
¶w
勾配消失問題を解決する
 Constant Error Carousel(CEC)で問題を解決する
入力層 出力層
uj
t
= wjixi
i
å
sj
t
= f uj
t
( )+sj
t-1
f uj
t
( ) zj
t
= f s...
CECの順伝播は
 CECの順伝播は中央のメモリセルユニットから次の時刻のメモリセル
ユニットへ伝播する
入力層 出力層
CECの誤差逆伝播はδが消失しない
 CECの逆伝播は中央のメモリセルユニットから前の時刻へ伝播する
d0
1
= wk0
out,1
dk
out,1
+
k=0,1
å w0 j'dj'
2
æ
è
çç
ö
ø
÷÷ f ' u0
1
...
CECへの入力を制御する
 Imput gateを設けてCECへの入力を制御する
 Imput gateは0から1の連続的な値をとり、0で入力を遮断し、1で入力
を全て通過させる
入力層 出力層
f
出力層へ流れる値も制御したい
f
0から...
CECからの出力を制御する
 Output gateを設けてCECからの出力を制御する
 Output gateは0から1の連続的な値をとり、0で出力を遮断し、1で出
力を全て通過させる
入力層 出力層
f
CECの値がなかなか更新されない...
CECの値をすぐ更新できるようにする
 Forget gateを設けてCECからの再帰出力を制御する
 Forget gateは0から1の連続的な値をとり、0で出力を遮断し、1で出
力を全て通過させる
入力層 出力層
f
各gateへの入力...
長期依存を可能とするLSTM
 CECの記憶そのものをgateの制御に使う
入力層 出力層
f
f
f
f
f
LSTMの順伝播の計算(1)メモリセル
 メモリセルからの出力は入力と同じく、忘却ゲートからの出力と入力
ゲートからの出力からなる。
 ここで は同時刻の入力層からの出力と、1時刻前の中間層からの
出力の和である。
入力層
出力層
xi
t...
LSTMの順伝播の計算(2)入力ゲート
 入力ゲートへの入力は、同時刻の入力層からの入力、1時刻前の中間
層からの出力、1時刻前のメモリユニットからの出力である。
 これらの入力をシグモイド関数などの活性化関数で処理したものを出
力する。
...
LSTMの順伝播の計算(3)忘却ゲート
 忘却ゲートへの入力は、同時刻の入力層からの入力、1時刻前の中間
層からの出力、1時刻前のメモリユニットからの出力である。
 これらの入力をシグモイド関数などの活性化関数で処理したものを出
力する。
...
LSTMの順伝播の計算(4)出力ゲート
 出力ゲートへの入力は、同時刻の入力層からの入力、1時刻前の中間
層からの出力、同時刻のメモリユニットからの出力である。
 これらの入力をシグモイド関数などの活性化関数で処理したものを出
力する。
...
LSTMの順伝播の計算(5)全体の出力
 メモリユニット全体からの出力は、メモリセルからの出力 を活性
化関数で処理したものに対し、出力ゲートを乗じたものとなる。
入力層
出力層
zj
t
= gj
O,t
f sj
t
( )
f sj
t...
LSTMの逆伝播の計算(1)出力ユニット
 下図出力ユニットからの出力は同時刻の出力層方向と1時刻後の中間
層方向へ順伝播する。よって、出力ユニットの は以下のように展
開できる。
入力層
t時刻の出力層へ
dj
O,t
=
¶E
¶uj
O...
¶uk
out,t
¶uj
O,t
=
¶ wkj
out
gj
O,t
f sj
t
( )( )
¶uj
O,t
= wkj
out
f sj
t
( )
¶gj
O,t
¶uj
O,t
= wkj
out
f sj
t
( ) f ' u...
LSTM逆伝播の計算(2)活性化ユニット
 下図活性化ユニットの出力は同時刻の出力層と1時刻後の中間層へ順
伝播する。よって、活性化ユニットの は と同様に以下のよう
にできる。
入力層
t時刻の出力層へ
dj
A,t
=
¶E
¶sj
t
...
LSTM逆伝播の計算(3)メモリセル
 メモリセルの は を入力し、 を出力する恒等写像である。
 メモリセルの出力先は、外部出力向け、メモリセル自身への帰還、入
力ゲート、出力ゲート、忘却ゲートの5つである。
 よって、それぞれの を ...
LSTM逆伝播の計算(4)入力側ユニット
 下図入力側ユニットの は を入力し、 を出力する。
 その後、入力ゲートを通過してメモリセルへと渡される。よって
は
入力層
dj
t
=
¶E
¶uj
t
=
¶E
¶sj
t
¶sj
t
¶u...
LSTM逆伝播の計算(5)忘却ユニット
 下図忘却ユニットの出力は忘却ゲートで と掛け合わさり、メモリ
セルへ順伝播する。よって、忘却ユニットの は以下のようにでき
る。
入力層
dj
F,t
=
¶E
¶uj
F,t
=
¶E
¶sj
t
...
LSTM逆伝播の計算(6)入力ユニット
 下図入力ユニットの出力は入力ゲートで と掛け合わさり、メ
モリセルへ順伝播する。よって、入力ユニットの は以下のように
できる。
入力層
dj
I,t
=
¶E
¶uj
I,t
=
¶E
¶sj
t
...
コンサルティング&開発業務に関するお問い合わせ
 アイフォーコム東京株式会社 (電気需要予測に関してこちら)
〒221-0835 横浜市神奈川区鶴屋町3-29-11 アイフォーコム横浜ビル
電話:045-412-3010(代表)
 Shan...
Lstm shannonlab
Upcoming SlideShare
Loading in …5
×

Lstm shannonlab

7,920 views

Published on

RNNにおいて長い時系列データを処理する仕組み

Published in: Data & Analytics
  • Be the first to comment

  • Be the first to like this

Lstm shannonlab

  1. 1. LSTMとは RNNにおいて長い時系列データを処理する仕組み
  2. 2. LSTMとは?  Long Short-Term Memory「長・短期記憶」のこと。  そもそも単純なRNNでは長期にわたる記憶ができない。LSTMはこの問題 点を改善する1手法。 それってどういうこと?そもそもRNNってなんだっけ?
  3. 3. RNNってなんだったっけ・・・?  Recurrent Neural Network(再帰型ニューラルネットワーク)の略。  通常のDNNには時系列データを処理する仕組みがない。  RNNは時系列データを処理できる。
  4. 4. RNNの順伝播における入力のしかた(1)  画像 および を入力する場合 t=1, 2, 3 1 2 1 7 9 8 2 3 4 é ë ê ê ê ù û ú ú ú 10 20 30 40 50 60 70 80 90 é ë ê ê ê ù û ú ú ú 出力層 入力層中間層 1 2 1 7 9 8 2 3 4 t=1, 2, 3 0.1 0.2 0.2 0.6 0.2 0.7 0.3 0.6 0.1 1つ目の画像(データセット1) 画像1つが訓練データ1つに、縦のピクセルが入力層のノード番号に、 横のピクセルが入力順のt番目に、それぞれあたります。 入力順→ ノード番号1 2 3
  5. 5. RNNの順伝播における入力のしかた(2)  画像 および を入力する場合 t=1, 2, 3 1 2 1 7 9 8 2 3 4 é ë ê ê ê ù û ú ú ú 10 20 30 40 50 60 70 80 90 é ë ê ê ê ù û ú ú ú 出力層 入力層中間層 10 20 30 40 50 60 70 80 90 t=1, 2, 3 0.8 0.4 0.1 0.1 0.2 0.9 0.1 0.4 0.0 2つ目の画像(データセット2) 入力順→ ノード番号1 2 3
  6. 6. 1つのデータセットにおける誤差は  n番目のデータセット における誤差 は t=1 t=2 0 1 0 1 入力層 出力層中間層 an0 2 an0 1 an1 1 bn1 2 an1 2 bn0 2 bn0 1 bn1 1 yn0 1 yn1 1 yn1 2 yn0 1 0 1 0 1 0 1 0 1 目標値 出力値 誤差 入力値 bn0 1 bn0 2 bn1 1 bn1 2 é ë ê ê ù û ú ú En En = f ynk t ,ank t ( ) k å t å f:誤差関数
  7. 7. ミニバッチの場合の誤差は・・・  全N個のデータセットからm個のデータセットでミニバッチをつくる。  このミニバッチを用いて確率的勾配降下法で学習する。  まずn番目のデータセットの誤差 は  これをm個データセットにわたり足す。  例えば、誤差関数が交差エントロピー であれば En En = f ynk t ,ank t ( ) k å t=1,2 å である。 E = En n=1 m å = f ynk t ,ank t ( ) k å t=1,2 å n=1 m å f ynk t ,ank t ( )= ank t logynk t E = dnk t logynk t k å t=1,2 å n=1 m å となる。
  8. 8. 重みを更新するには何を求めればいい?  RNNでは入力層 i 番目ノードから中間層 j 番目ノードへの t 時刻目にお ける重み は  ここで は と変形できます。  そうすると、このδは などと出力側のδの関数として表さ れます。  よって、δは出力側から再帰的に次々と決まっていきます。  そこでまず、各δを再帰的に求め、その後δから重みwの更新量を求め ます。 wj t ( )¢ = wj t -e ¶E ¶wj t wj t として更新します。 ¶E ¶wj t = ¶E ¶uj t ¶uj t ¶wj t =dj t ¶uj t ¶wj t ¶E ¶wj t dj t = f dk t ( ) δを再帰的に求めれば、重みは求まる。これが誤差逆伝播法。
  9. 9. 誤差逆伝播でδを求めてみる  t=1における隠れ層ノード 0番目の はt=1の出力層からのδとt=2の 隠れ層からのδからなる d0 1 = wk0 out,1 dk out,1 + k=0,1 å wj'0dj' 2 j'=0,1 å æ è çç ö ø ÷÷ f ' u0 1 ( ) d0 1 t=1 t=2 0 入力層 i 出力層 k中間層 j ∵ dj t = ¶E ¶uj t æ è çç ö ø ÷÷ d0 1 d0 out,1 d1 out,1 d1 2 d0 2 11 1 0 0 u0 1
  10. 10. RNNの勾配消失問題とは  tが多くなると、隠れ層ノードのδは何度も掛け算される。 t=1 t=2 j=0 j=1 k=0 k=1 d0 1 = wk0 out,1 dk out,1 + k=0,1 å wj'0dj' 2 j'=0,1 å æ è çç ö ø ÷÷ f ' u0 1 ( ) t=3 d0 2 = wk0 out,2 dk out,2 + k=0,1 å wj'0dj' 3 j'=0,1 å æ è çç ö ø ÷÷ f ' u0 2 ( ) δが伝播するにつれてwやf’(u)が何度も かけ算される δは指数関数的に増加、もしくは減少
  11. 11. RNNの勾配消失問題とは tが多くなると、隠れ層ノードのδにはwやf’(u)が何度も掛け算される δは指数関数的に増加、もしくは減少する 勾配 も指数関数的に増加、もしくは減少する ¶E ¶w =d ¶u ¶w
  12. 12. 勾配消失問題を解決する  Constant Error Carousel(CEC)で問題を解決する 入力層 出力層 uj t = wjixi i å sj t = f uj t ( )+sj t-1 f uj t ( ) zj t = f sj t ( )sj t
  13. 13. CECの順伝播は  CECの順伝播は中央のメモリセルユニットから次の時刻のメモリセル ユニットへ伝播する 入力層 出力層
  14. 14. CECの誤差逆伝播はδが消失しない  CECの逆伝播は中央のメモリセルユニットから前の時刻へ伝播する d0 1 = wk0 out,1 dk out,1 + k=0,1 å w0 j'dj' 2 æ è çç ö ø ÷÷ f ' u0 1 ( ) d0 2 = wk0 out,2 dk out,2 + k=0,1 å w0 j'dj' 3 æ è çç ö ø ÷÷ f ' u0 2 ( ) , なので、δは増加や減少 が少ない 勾配消失が起きにくい f ' u( )=1 しかし全てのデータを記憶し続けるため、 外れ値やノイズも溜め込んでしまう w0 j =1
  15. 15. CECへの入力を制御する  Imput gateを設けてCECへの入力を制御する  Imput gateは0から1の連続的な値をとり、0で入力を遮断し、1で入力 を全て通過させる 入力層 出力層 f 出力層へ流れる値も制御したい f 0から1の連続的な値をとる f
  16. 16. CECからの出力を制御する  Output gateを設けてCECからの出力を制御する  Output gateは0から1の連続的な値をとり、0で出力を遮断し、1で出 力を全て通過させる 入力層 出力層 f CECの値がなかなか更新されない f f f
  17. 17. CECの値をすぐ更新できるようにする  Forget gateを設けてCECからの再帰出力を制御する  Forget gateは0から1の連続的な値をとり、0で出力を遮断し、1で出 力を全て通過させる 入力層 出力層 f 各gateへの入力は、現在の入力系列の 値と1時刻前の隠れ層からの出力である。 f f f f 後者はoutput gateで制御されるため、 隠れ状態が反映されない
  18. 18. 長期依存を可能とするLSTM  CECの記憶そのものをgateの制御に使う 入力層 出力層 f f f f f
  19. 19. LSTMの順伝播の計算(1)メモリセル  メモリセルからの出力は入力と同じく、忘却ゲートからの出力と入力 ゲートからの出力からなる。  ここで は同時刻の入力層からの出力と、1時刻前の中間層からの 出力の和である。 入力層 出力層 xi t ,zj' t-1 sj t = gj I,t f uj t ( )+ gj F,t sj t-1 uj t f f uj t ( ) gj I,t f uj t ( ) sj t gj F,t sj t-1 sj t-1 uj t uj t = wji in xi t + i å wjj'zj' t-1 j' å メモリセル
  20. 20. LSTMの順伝播の計算(2)入力ゲート  入力ゲートへの入力は、同時刻の入力層からの入力、1時刻前の中間 層からの出力、1時刻前のメモリユニットからの出力である。  これらの入力をシグモイド関数などの活性化関数で処理したものを出 力する。  出力値は0から1の間となり、0はゲートが完全に閉じた状態、1は ゲートが完全に開いた状態となる。 入力層 出力層 xi t ,zj' t-1 uj I,t f uj I,t ( ) sj t-1 gj I,t = f uj I,t ( )= f wji I,in xi t + i å wjj' I zj' t-1 j' å + sj t-1 æ è çç ö ø ÷÷ gj I,t 入力ゲート
  21. 21. LSTMの順伝播の計算(3)忘却ゲート  忘却ゲートへの入力は、同時刻の入力層からの入力、1時刻前の中間 層からの出力、1時刻前のメモリユニットからの出力である。  これらの入力をシグモイド関数などの活性化関数で処理したものを出 力する。  出力値は0から1の間となり、0はゲートが完全に閉じた状態、1は ゲートが完全に開いた状態となる。 入力層 出力層 xi t ,zj' t-1 f uj F,t ( ) sj t-1 gj F,t 忘却ゲート uj F,t gj F,t = f uj I,t ( )= f wji F,in xi t + i å wjj' F zj' t-1 j' å + sj t-1 æ è çç ö ø ÷÷
  22. 22. LSTMの順伝播の計算(4)出力ゲート  出力ゲートへの入力は、同時刻の入力層からの入力、1時刻前の中間 層からの出力、同時刻のメモリユニットからの出力である。  これらの入力をシグモイド関数などの活性化関数で処理したものを出 力する。  出力値は0から1の間となり、0はゲートが完全に閉じた状態、1は ゲートが完全に開いた状態となる。 入力層 出力層 f uj O,t ( ) sj t gj O,t 出力ゲート gj O,t = f uj O,t ( )= f wji O,in xi t + i å wjj' O zj' t-1 j' å + sj t-1 æ è çç ö ø ÷÷ uj O,t xi t ,zj' t-1
  23. 23. LSTMの順伝播の計算(5)全体の出力  メモリユニット全体からの出力は、メモリセルからの出力 を活性 化関数で処理したものに対し、出力ゲートを乗じたものとなる。 入力層 出力層 zj t = gj O,t f sj t ( ) f sj t ( )sj t sj t zj t
  24. 24. LSTMの逆伝播の計算(1)出力ユニット  下図出力ユニットからの出力は同時刻の出力層方向と1時刻後の中間 層方向へ順伝播する。よって、出力ユニットの は以下のように展 開できる。 入力層 t時刻の出力層へ dj O,t = ¶E ¶uj O,t = ¶E ¶uk out,t ¶uk out,t ¶uj O,t k å + ¶E ¶uj' t+1 ¶uj' t+1 ¶uj O,t j' å gj O,t = f uj O,t ( ) 出力ユニット uj O,t f sj t ( ) t+1時刻の中間層へ dj O,t t時刻の出力層分 t+1時刻の中間層分
  25. 25. ¶uk out,t ¶uj O,t = ¶ wkj out gj O,t f sj t ( )( ) ¶uj O,t = wkj out f sj t ( ) ¶gj O,t ¶uj O,t = wkj out f sj t ( ) f ' uj O,t ( ) LSTMの逆伝播の計算(1)出力ユニット  よって、 は、t時出力層の 、t+1時中間層の を用いて dj O,t = ¶E ¶uk out,t ¶uk out,t ¶uj O,t k å + ¶E ¶uj' t+1 ¶uj' t+1 ¶uj O,t j' å = dk out,t ¶uk out,t ¶uj O,t k å + dj' t+1 ¶uj' t+1 ¶uj O,t j' å dj O,t dk out,t dj' t+1 である。同様に も計算できるので、結局 は ¶uj' t+1 ¶uj O,t dj O,t = dk out,t wkj out k å + dj' t+1 wj' j j' å æ è çç ö ø ÷÷ f sj t ( ) f ' uj O,t ( ) dj O,t となる。ここで となる。
  26. 26. LSTM逆伝播の計算(2)活性化ユニット  下図活性化ユニットの出力は同時刻の出力層と1時刻後の中間層へ順 伝播する。よって、活性化ユニットの は と同様に以下のよう にできる。 入力層 t時刻の出力層へ dj A,t = ¶E ¶sj t = dk out,t wkj out k å + dj' t+1 wj' j j' å æ è çç ö ø ÷÷gj O,t f ' sj t ( ) 活性化ユニット f sj t ( ) t+1時刻の中間層へ dj A,t sj t gj O,t = f uj O,t ( ) dj O,t
  27. 27. LSTM逆伝播の計算(3)メモリセル  メモリセルの は を入力し、 を出力する恒等写像である。  メモリセルの出力先は、外部出力向け、メモリセル自身への帰還、入 力ゲート、出力ゲート、忘却ゲートの5つである。  よって、それぞれの を 、 、 、 、 とおくと 入力層 dj cell,t =dj A,t +gj F,t+1 dj cell,t+1 +dj I,t+1 +dj O,t +dj F,t+1 メモリセル f sj t ( ) dj cell,t sj t gj O,t = f uj O,t ( ) dj O,t sj t sj t sj t+1 sj t+1 sj t+1 sj t sj t dj cell,t+1 dj A,t d dj I,t+1 dj F,t+1
  28. 28. LSTM逆伝播の計算(4)入力側ユニット  下図入力側ユニットの は を入力し、 を出力する。  その後、入力ゲートを通過してメモリセルへと渡される。よって は 入力層 dj t = ¶E ¶uj t = ¶E ¶sj t ¶sj t ¶uj t =dj cell,t ¶sj t ¶uj t =dj cell,t ¶ gj I,t f uj t ( )( ) ¶uj t =dj cell,t gj I,t f ' uj t ( ) 入力側ユニット dj t uj t uj t f uj t ( ) gt I,t f uj t ( ) f uj t ( ) dj t となる。
  29. 29. LSTM逆伝播の計算(5)忘却ユニット  下図忘却ユニットの出力は忘却ゲートで と掛け合わさり、メモリ セルへ順伝播する。よって、忘却ユニットの は以下のようにでき る。 入力層 dj F,t = ¶E ¶uj F,t = ¶E ¶sj t ¶sj t ¶uj F,t =dj cell,t ¶sj t ¶uj F,t =dj cell,t ¶ sj t-1 f uj F,t ( )( ) ¶uj F,t =dj cell,t sj t-1 f ' uj F,t ( ) f sj t ( ) dj F,t sj t-1 gj F,t = f uj F,t ( ) 忘却ユニット uj F,t gj F,t
  30. 30. LSTM逆伝播の計算(6)入力ユニット  下図入力ユニットの出力は入力ゲートで と掛け合わさり、メ モリセルへ順伝播する。よって、入力ユニットの は以下のように できる。 入力層 dj I,t = ¶E ¶uj I,t = ¶E ¶sj t ¶sj t ¶uj I,t =dj cell,t ¶sj t ¶uj I,t =dj cell,t ¶ f uj t ( ) f uj I,t ( )( ) ¶uj I,t =dj cell,t f uj t ( ) f ' uj I,t ( ) dj I,t sj t 入力ユニット uj I,t f uj t ( ) gj I,t = f uj I,t ( ) sj t-1 f uj t ( )
  31. 31. コンサルティング&開発業務に関するお問い合わせ  アイフォーコム東京株式会社 (電気需要予測に関してこちら) 〒221-0835 横浜市神奈川区鶴屋町3-29-11 アイフォーコム横浜ビル 電話:045-412-3010(代表)  Shannon Lab株式会社 (機械学習に関してはこちら) 〒165-0026 東京都中野区新井5丁目29-1 西武信用金庫新井薬師ビル503 電話: 042-644-0013(代表) 本事業はアイフォーコム東京株式会社様の電気需要予測プロジェクトの一環 です。

×