LONG SHORT-TERM
MEMORY
NEURAL COMUPATION 9(8):1735-1780, 1997
Sepp Hochreiter Fakultat fur Informatik Technische Universit at Munchen
80290 Munchen, Germany
Jurgen Schmidhuber IDSIA Corso Elvezia 36 6900 Lugano, Switzerland
時系列データの問題
時系列データ:𝑥", 𝑥$, 𝑥% … , 𝑥'
添字tはデータの種類によって異なる
時系列データの例:⽂章・対話の⽣成 tは単語を前から並べたときの番号
⾳声認識 tは⼀定の時間間隔(数ms)でのサンプル時間
映像認識 etc.
時系列データの問題例:
⽂章・対話の⽣成 今までの単語列を⼊⼒として、もっともらしい次の単語を予測する
1
背景
2
背景
sequential:	1	bit	at	a	time Gradient-based	RNNs1980s:	BPTT,	RTRL	- gradients	based	on	
“unfolding”	etc.	(Williams,	Werbos,	Robinson)
Recurrent networks(詳しくは後⽇説明します)
Recurrent networks:従来の⽅法
⼊⼒信号と教師信号の誤差を最⼩にするため、主に2つの⼿法が⽤いられた
“Back-Propagation Through Time”
(BPTT, e.g., Williams and Zipser 1992,)
“Real-Time Recurrent Learning”
(RTRL,Werbos 1988RTRL, e.g., Robinson and Fallside 1987)
これらのアルゴリズム特徴:誤差逆伝播の勾配法
⼤きな難点
逆伝搬された誤差の時間的進展は、重みのサイズに指数関数的に依存する
⾔い換えると、勾配は時間ステップに指数関数的に⽐例する
勾配消失問題(Hochreiter 1991)
⻑期にわたる誤差逆伝播では勾配の爆発・消失が⽣じる
3
背景
ex.)ステップtにおけるユニットuからqステップ前のユニットv
への誤差の逆伝播について考える
逆伝播の公式より
… ユニットjへの出⼒
… ユニットjの重み
… ユニットkの出⼒誤差(ykは出⼒値、tkは⽬標変数)
従って誤差は
𝜕𝑣*(𝑡 − 𝑞)
𝜕𝑣0(𝑡)
=
𝑓3
*
𝑛𝑒𝑡* 𝑡 − 1 𝑤0*																																													𝑞 = 1
𝑓3
*
𝑛𝑒𝑡* 𝑡 − 𝑞 9
𝜕𝑣* 𝑡 − 𝑞 + 1
𝜕𝑣0 𝑡
;
<="
𝑤<*								𝑞 > 1
4
背景
ex.)ステップtにおけるユニットuからqステップ前のユニットv
への誤差の逆伝播について考える
誤差は
𝜕𝑣*(𝑡 − 𝑞)
𝜕𝑣0(𝑡)
=
𝑓3
*
𝑛𝑒𝑡* 𝑡 − 1 𝑤0*																																														𝑞 = 1
𝑓3
*
𝑛𝑒𝑡* 𝑡 − 𝑞 9
𝜕𝑣* 𝑡 − 𝑞 + 1
𝜕𝑣0 𝑡
;
<="
𝑤<*									𝑞 > 1
𝑘@ = 𝑣, 𝑘A, = 𝑢を⽤いると、
𝜕𝑣*(𝑡 − 𝑞)
𝜕𝑣0(𝑡)
= 9 … 9 C 𝑓3
<D
𝑛𝑒𝑡<D
𝑡 − 𝑚 𝑤<D
@
F="
;
<GHI="
;
<I="
𝑘FJ"
|𝑓3
<D
𝑛𝑒𝑡<D
𝑡 − 𝑚 𝑤<D
𝑘FJ"| > 1.0			𝑓𝑜𝑟	𝑎𝑙𝑙	𝑚 発散(爆発)
𝑓3
<D
𝑛𝑒𝑡<D
𝑡 − 𝑚 𝑤<D
𝑘FJ" < 1.0			𝑓𝑜𝑟	𝑎𝑙𝑙	𝑚 収束(消失)
5
背景
勾配消失問題
LSTM(Long short-term memory)は、
RNN(Recurrent Neural Network)の拡張として、
時系列データ(sequential data)に対するモデル、
あるいは構造(architecture)の1種
その名は、Long term memory(⻑期記憶)とShort term memory(短期記憶)という
神経科学における⽤語から取られている
LSTMはRNNの中間層のユニットをLSTM blockと呼ばれるメモリと3つのゲートを持つ
ブロックに置き換えることで実現されている
従来のRNNでは1000ステップにわたる
⻑期の系列は学習困難であった
LSTMでは1000ステップにわたる
⻑期依存に加え、短期依存も可能!
6
LSTM(1990s〜)
LSTMには近年のLSTMに到るまでに様々な改良がされてきた
近年のLSTMまでに4つの代表的な世代がある
1) Original (95,97年)[Hochreiter & Schmidhuber, 95;97]
2) Forget Gateの導⼊ (99年)[Gers & Schmidhuber, 99]
3) Peephole Connectionの導⼊ (00年)[Gers & Schmidhuber, 00]
4) Full Gradientの導⼊ (05年)[Graves & Schmidhuber, 05]
7
LSTM(1990s〜)
Original LSTM
LSTMには⼊⼒値と2つのゲートがあり、
それぞれ「実際の⼊⼒値」「⼊⼒ゲート」
「出⼒ゲート」となっている
⼊⼒ゲートと出⼒ゲートは⼊⼒値と
内部のメモリセルの状態(state)制御に
使⽤される
⼊⼒層の出⼒xt及び中間層の1ステップ前
の出⼒yt-1は、それぞれ3か所に同時に
⼊⼒として供給される
各⼊⼒は重み⾏列wz,in,out ,Rz,in,out
によって重み付けされ、加算されのち
各ゲートの活性化関数を通る
CEC(Constant Error Carousel)とは
勾配消失問題に対応する機能を持ったアプローチ
8
第1世代LSTM(1995〜)
・
・
・
⼊⼒層の出⼒xt
1ステップ前のユニットの出⼒yt-1
出力ゲート
入力ゲート
実際の入力値
𝑓3
<D
𝑛𝑒𝑡<D
𝑡 − 𝑚 𝑤<D
𝑘FJ" = 1.0
Original LSTM
Input weight conflict
従来のRNNでは、重み更新に⽭盾があった
・以前の⼊⼒情報を記憶する(覚える)
・以前の⼊⼒が無関係な場合保護する
(読まない)
しかし、重み付けのみで表現することは
難しい…
⼊⼒したくないデータを⼊⼒ゲートで除去
⼊⼒ゲートで必要な誤差信号のみが伝搬
するように閉じたり開いたりする
記憶データとWinの内積で⼊⼒可否を判断
output weight conflict
Input weight conflictと同様に
・以前の⼊⼒情報を記憶する(覚える)
・以前の⼊⼒が無関係な場合保護する(書かない)
従来の重み付けのみの表現では⽭盾が⽣じる…
出⼒したくないデータを出⼒ゲートで除去
⼊⼒ゲートと同様に出⼒ゲートで必要な出⼒かどうか判断
記憶データとWoutの内積で出⼒可否を判断
9
第1世代LSTM(1995〜)
入力ゲート
出力ゲート
実際の入力値
LSTMには近年のLSTMに到るまでに様々な改良がされてきた
近年のLSTMまでに4つの代表的な世代がある
1) Original (95,97年)[Hochreiter & Schmidhuber, 95;97]
2) Forget Gateの導⼊ (99年)[Gers & Schmidhuber, 99]
3) Peephole Connectionの導⼊ (00年)[Gers & Schmidhuber, 00]
4) Full Gradientの導⼊ (05年)[Graves & Schmidhuber, 05]
10
LSTM(1990s〜)
11
第2世代LSTM(1999〜)
Forget Gate
Original LSTMで⻑期記憶可能となったことで、
遠くまで誤差を伝達できるようになった
強み 弱点
メモリセルの状態が飽和する
古くなった記憶情報をリセットしたい!
Forget Gateの導⼊
・
・
・ ⼊⼒層の出⼒xt
1ステップ前のユニットの出⼒yt-1
LSTMには近年のLSTMに到るまでに様々な改良がされてきた
近年のLSTMまでに4つの代表的な世代がある
1) Original (95,97年)[Hochreiter & Schmidhuber, 95;97]
2) Forget Gateの導⼊ (99年)[Gers & Schmidhuber, 99]
3) Peephole Connectionの導⼊ (00年)[Gers & Schmidhuber, 00]
4) Full Gradientの導⼊ (05年)[Graves & Schmidhuber, 05]
12
LSTM(1990s〜)
Peephole Connection
・⼊⼒ゲート
・出⼒ゲート
・忘却ゲート
の3つからなるゲートによって
LSTMは完成されたかと思われたが、
⼤きな問題がひとつあった
各ゲートは⼊⼒層とすべての出⼒の情報
を受け取るがCECからの情報はなかった
例えば、出⼒ゲートが閉じていた場合、CECの
情報はゼロとして扱われ、制御に利⽤できない!
Peephole Connectionの導⼊
13
第3世代LSTM(00〜)
14
補⾜
15
補⾜

[論文紹介] LSTM (LONG SHORT-TERM MEMORY)