LSTM (Long short-term memory) 概要

Preview:

Citation preview

時系列データ解析のためのLSTM概要発表者: 石黒研博士後期課程2年 浦井健次

紹介論文

[1] Gesture recognition using recurrent neural networks (1991) : RNNでジェスチャ認識

[2] Long short-term memory (1997) : オリジナルLSTM

[3] Learning to forget continual prediction with LSTM (2000) : 忘却ゲート付きLSTM

[4] Recurrent neural network regularization (2014):ドロップアウトで過学習を防ぐLSTM

[5] A neural conversational model (2015) : LSTMで対話データの生成

参考論文

[A] Building high-level features using large scale unsupervised learning (2013):DNNで猫認識

[B] A time-delay neural network architecture for isolated word recognition (1990):TDNNで音声認識

[C] Anticipating Visual Representations from Unlabeled Video (2016):DNNで人の行動予測

[D] Visually Indicated Sounds (2015):LSTMで映像から音声を予測

[E] Long-term recurrent convolutional networks for visual recognition and description (2015):LSTMで動画の特徴抽出

1/30

機械学習勉強会@大阪大学豊中キャンパス 資料

発表者: 石黒研博士後期課程2年 浦井健次

紹介論文

[1] Gesture recognition using recurrent neural networks (1991) : RNNでジェスチャ認識

[2] Long short-term memory (1997) : オリジナルLSTM

[3] Learning to forget continual prediction with LSTM (2000) : 忘却ゲート付きLSTM

[4] Recurrent neural network regularization (2014):ドロップアウトで過学習を防ぐLSTM

[5] A neural conversational model (2015) : LSTMで対話データの生成

参考論文

[A] Building high-level features using large scale unsupervised learning (2013):DNNで猫認識

[B] A time-delay neural network architecture for isolated word recognition (1990):TDNNで音声認識

[C] Anticipating Visual Representations from Unlabeled Video (2016):DNNで人の行動予測

[D] Visually Indicated Sounds (2015):LSTMで映像から音声を予測

[E] Long-term recurrent convolutional networks for visual recognition and description (2015):LSTMで動画の特徴抽出

1/30

近年話題(グーグルトレンドで調査2016.06.27)

時系列データ解析のためのLSTM概要

機械学習勉強会@大阪大学豊中キャンパス 資料

アウトライン

拡張LSTM(忘却ゲート・ドロップアウト)

RNN(時系列データに対するNNのモデルの一種)

LSTM(RNNの拡張モデル)

NN(ニューラルネットワーク)

準備:背景知識

アウトライン

RNN(時系列データに対するNNのモデルの一種)

LSTM(RNNの拡張モデル)

NN(ニューラルネットワーク)

拡張LSTM(忘却ゲート・ドロップアウト)

NN(Neural Network) とは?

人間の脳の神経回路の仕組みを模したモデル

入力

パタ

ーン

(文

字・画

像・・・)

出力

パタ

ーン

(予

測)

重みを学習

ノード

入力層中間層

(隠れ層)出力層

後方に誤差を伝播させる

→バックプロパゲーション(BP)

出力層の誤差

=(正解)ー(現在の出力値)

5/30

学習率:大

大きく重みを更新

X

Y

・・・

1

1

NNの例)XNORの学習 (pythonで実装)

XNOR

訓練,訓練,訓練・・・ネットワークの重みを学習未知データに対しての予測が可能

10.5

0

誤差大.誤差が小さくなるよう重みを更新…

0

00.98

0 0 1

0 1 0

1 0 0

1 1 1

線形分類できない問題

X Y

0.9

6/30

NNの例)XNORの学習 (pythonで実装)6/30

X

Y

・・・

1

1

XNOR

訓練,訓練,訓練・・・ネットワークの重みを学習未知データに対しての予測が可能

10.5

0

誤差大.誤差が小さくなるよう重みを更新…

0

00.98

0 0 1

0 1 0

1 0 0

1 1 1

線形分類できない問題

X Y

0.9

画像

猫です

適用例)パターン認識(手書き文字の認識etc),データマイニング(クラスタリングetc)

NNの問題点

問題点

認識は高精度(MLP:多層 DNN:深層)

しかしオリジナルのモデルでは

→時系列データの解析に不適当なモデル

例)動画・音声データの認識,文法解析など

人は認識できても,この後どうなるかは理解できない・・・

[A] Le, Quoc V. "Building high-level features using large scale unsupervised learning." 2013 IEEE international conference on acoustics, speech and signal processing. IEEE, 2013.

[A]

7/30

NNの問題点

問題点

認識は高精度(MLP:多層 DNN:深層)

しかしオリジナルのモデルでは

→時系列データの解析に不適当なモデル

例)動画・音声データの認識,文法解析など

人は認識できても,この後どうなるかは理解できない・・・

[A] Le, Quoc V. “Building high-level features using large scale unsupervised learning.” 2013 IEEE international conference on acoustics, speech and signal processing. IEEE, 2013. [B] Lang, Kevin J., Alex H. Waibel, and Geoffrey E. Hinton. “A time-delay neural network architecture for isolated word recognition.” Neural networks 3.1 (1990): 23-43. [C] Vondrick, Carl, Hamed Pirsiavash, and Antonio Torralba. "Anticipating Visual Representations from Unlabeled Video."

[A]

7/30

※1)一定の幅を持たせた時系列データを入力することで,時系列データの予測を行うことが可能(TDNN: Time-Delay Neural Network)

例)音声認識 [B]

→DNNで1秒先の行動を43%の精度で予測

予測した結果と実際に未来のフレームを認識した結果の誤差を最小化するようにネットワークを最適化

※2)将来の入力との誤差を最小化することで,時系列データの予測行うことが可能例)人の行動予測 (DNN)[C]

魚がサメに見つかり追われる

NNの問題点

問題点

認識は高精度(MLP:多層 DNN:深層)

しかしオリジナルのモデルでは

→時系列データの解析に不適当なモデル

例)動画・音声データの認識,文法解析など

人は認識できても,この後どうなるかは理解できない・・・

[A] Le, Quoc V. "Building high-level features using large scale unsupervised learning." 2013 IEEE international conference on acoustics, speech and signal processing. IEEE, 2013.

[A]

7/30

アウトライン

RNN(時系列データに対するNNのモデルの一種)

LSTM(RNNの拡張モデル)

NN(ニューラルネットワーク)

拡張LSTM(忘却ゲート・ドロップアウト)

RNN(Recurrent Neural Network) とは?

→これまでの状態を保持しながら学習

※隠れ層に時間依存の情報(文脈など)が埋め込まれていくイメージ

時系列データを扱えるNNのモデル

t-2

t-3

入力層

隠れ層

出力層t

t-1

適用例)文章生成・音声/ジェスチャ認識など,時間的な順序が重要となるケース

今日

天気

・・・

・・・

・・・

RNNをシンプルに描くと・・・

9/30

実際には、文脈を入力する代わりに,直前の単語を処理した時の中間状態を入力

晴れ

2進数の加算ルールを学習(通常のNNでは学習不可)

RNNの例)2進数の加法の学習 (pythonで実装)

t-1

t-2

t-3

→RNNを用いることで繰上り情報を記憶してネットワークを学習できる

1

1

0

1

1

1

1

0

1

10/30

0

1

1

+

1

1input

output0

1

1

1

1

1

1

1

1

1

1

t

1 1

1

2進数の加算ルールを学習(通常のNNでは学習不可)

RNNの例)2進数の加法の学習 (pythonで実装)

t-1

t-2

t-3

→RNNを用いることで繰上り情報を記憶してネットワークを学習できる

1

1

0

1

1

1

1

0

1

10/30

0

1

1

+

1

1input

output0

1

1

1

1

1

1

1

1

1

1

t

1 1

1

RNNでジェスチャー認識 (Murakami et al, 1991)[1]

[1] Murakami, Kouichi, and Hitomi Taguchi. "Gesture recognition using recurrent neural networks." Proceedings of the SIGCHI conference on Human factors in computing systems. ACM, 1991.

11/30

入力はデータグローブの値:指の角度データや手のX,Y,Zのポジションデータなどを入力する

Gesture recognition using recurrent neural networks. (Murakami et al, 1991)

入力はデータグローブの値:指の角度データや手のX,Y,Zのポジションデータなどを入力する

RNNでジェスチャー認識 (Murakami et al, 1991)[1]

[1] Murakami, Kouichi, and Hitomi Taguchi. "Gesture recognition using recurrent neural networks." Proceedings of the SIGCHI conference on Human factors in computing systems. ACM, 1991.

11/30

Gesture recognition using recurrent neural networks. (Murakami et al, 1991)

RNNの問題点

問題点

過去データに対する重みが発散・消失してしまう・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

Back Propagation Through Time (BPTT)で学習

時間をさかのぼって学習しているように見える

深いネットワークと同様の問題

→何度も乗算し,重みが発散したり,消失したりするため,長期依存を学習できない

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

時刻t 時刻t

12/30

アウトライン

RNN(時系列データに対するNNのモデルの一種)

LSTM(RNNの拡張モデル)

NN(ニューラルネットワーク)

拡張LSTM(忘却ゲート・ドロップアウト)

13/30

Long short-term memory (Hochreiter & Schmidhuber ,1997 )[2]

RNNの拡張モデル

→RNNの中間層のユニットをLSTM Blockに置き換えたもの

長期依存を学習可能

[2] Hochreiter, Sepp, and Jürgen Schmidhuber. "Long short-term memory." Neural computation 9.8 (1997): 1735-1780.

t

t-1

t-2

LSTM Block

14/30

1.0

入力ゲート

出力ゲート

①データを重み1でループさせ記憶

②入出力ゲートの学習により,正しいデータのみを通過

学習によって誤差が発散・消失しない

(1000ステップ以上の過去を記憶)

Long short-term memory (Hochreiter & Schmidhuber ,1997 )

LSTMの振舞い・機能15/30

1.0

入力ゲート

出力ゲート

①選択的取り込み:入力ゲートが開いているときに入力データを記憶

1.0

入力ゲート

出力ゲート

1.0

入力ゲート

出力ゲート

②重み1のRNN(過去の全ての入力+今回の入力)

③選択的に出力:出力ゲートが開いているときデータを出力

Long short-term memory (Hochreiter & Schmidhuber ,1997 )

問題点:大きな状況の変化に対応できない

LSTMの問題点16/30

・データを忘れないため(重み1のループ)状況の変化に対応不可(外れ値やノイズもため込む)

・オリジナルのLSTMでは,状況に応じて手動で記憶をリセット

→実用的でない

1.0

入力ゲート

出力ゲート

Learning to Forget: Continual Prediction with LSTM (2000)

アウトライン

RNN(時系列データに対するNNのモデルの一種)

LSTM(RNNの拡張モデル)

NN(ニューラルネットワーク)

拡張LSTM(忘却ゲート・ドロップアウト)

Learning to Forget: Continual Prediction with LSTM (2000)[3]

[3] Gers, Felix A., Jürgen Schmidhuber, and Fred Cummins. "Learning to forget: Continual prediction with LSTM." Neural computation 12.10 (2000): pp. 2451-2471.

・LSTMを実装する際,今でも主流の手法として利用されている

(被引用数304うち111が2015年以降論文.ref.2016.6.24)

・本論文での提案手法:

→忘却機能付きのLSTM

・様々な時系列データの認識に利用

(文章/動画解析・音声認識)

→実装している研究例を最後に紹介

18/30

概要

Learning to Forget: Continual Prediction with LSTM (F. A. Gers et al., 2000)

Introduction

RNN

→ループを持つNNにより過去のデータを次回の入力に利用

→次時刻の状態の予測など,遷移の認識が可能

従来のRNNの課題

→誤差の消失・発散による学習の困難性

→学習する時系列の長さの限界(10ステップ程度が限界)

19/30

LSTM

→学習によって誤差が発散・消失しない(1000ステップ以上記憶可能)

従来のLSTMの課題

→大きな状況の変化に対応不可能([2]では手動で記憶をリセット)

[2] Hochreiter, Sepp, and Jürgen Schmidhuber. "Long short-term memory." Neural computation 9.8 (1997): 1735-1780.

Learning to Forget: Continual Prediction with LSTM (F. A. Gers et al., 2000)

Solution: Extended LSTM with Forget Gates

本論文での提案手法:忘却機能付きのLSTM

(a) Standard LSTM (b) Extended LSTM with Forget Gates

重み1を維持.正しいデータのみ通過 記憶セルを忘却ゲートの値に応じてリセット可能

20/30

1.0

入力ゲート

出力ゲート

入力ゲート

出力ゲート

忘却ゲート

Learning to Forget: Continual Prediction with LSTM (F. A. Gers et al., 2000)

忘却機能付きのLSTMの機能と動作(1/2)

状況が大きく変化

t-2

t-3

t-4

t

t-1

21/30

Learning to Forget: Continual Prediction with LSTM (F. A. Gers et al., 2000)

ルールBルールA このまま学習進める?

過去のデータがノイズに・・・

22/30

Learning to Forget: Continual Prediction with LSTM (F. A. Gers et al., 2000)

忘却機能付きのLSTMの機能と動作(2/2)

→記憶を選択的にリセット

状況が大きく変化

t-2

t-3

t-4

t

t-1

ルールBルールA

過去のデータを忘却し,効率的に学習することが可能

入力ゲート

出力ゲート

忘却ゲート

忘却ゲートが学習しリセット

このまま学習進める?

過去のデータがノイズに・・・B

P

Experiments : 実験設定(2つのルールの基でスイッチする文字生成器)23/30

Learning to Forget: Continual Prediction with LSTM (F. A. Gers et al., 2000)

ERG問題:従来のRNNでは学習不可 CERG問題:ERGを区切りなく連続で配置

Reber Grammar

Experiments : 実験設定(2つのルールの基でスイッチする文字生成器)23/30

Learning to Forget: Continual Prediction with LSTM (F. A. Gers et al., 2000)

ERG問題:従来のRNNでは学習不可 CERG問題:ERGを区切りなく連続で配置

Reber Grammar

RG問題・文字列を入力した際の次の文字を予測例)入力:BTSSXX→出力:(T,V)

・従来のRNNでも学習可能

-最新の入力:P-次の候補は (V,T) or (S,X)

-Pの前がBであった場合: (V,T)-Pの前がVであった場合: (S,X)と確定可能

過去数個の履歴を記憶すれば予測可能

Experiments : 実験設定(2つのルールの基でスイッチする文字生成器)23/30

Learning to Forget: Continual Prediction with LSTM (F. A. Gers et al., 2000)

ERG問題:従来のRNNでは学習不可 CERG問題:ERGを区切りなく連続で配置

Reber Grammar

ERG問題(RGPより少し複雑)

従来のRNNでは学習不可

-遠い過去のデータを記憶する必要あり-「RGPを2つ持つ」というルールを用いて予測する例)入力:BTBTSSX, 出力(S,X)

※従来のRNNで学習不可の理由

①入力BT**********E?(T or P)②入力BP**********E?(T or P)

ルートを判断するためには二つ目の入力(T or P)を記憶しておく必要がある→長期間の記憶が必要

Experiments : 実験設定(2つのルールの基でスイッチする文字生成器)23/30

Learning to Forget: Continual Prediction with LSTM (F. A. Gers et al., 2000)

ERG問題:従来のRNNでは学習不可 CERG問題:ERGを区切りなく連続で配置

Reber Grammar

・前回ループ分の記憶は不要・1回のループ長は不定・「長期間記憶」+「適当なタイミングでの記憶の破棄」が効率的な学習には求められる問題設定となっている.

Experiments : ①ERG問題で評価

従来手法との比較

・ERG問題に対する必要記憶ステップ数を解析

・平均生成文字長:11.54文字(50文字:80000試行した際の最長文字列の平均)

→50ステップ以上の記憶を保持する必要がある

24/30

Learning to Forget: Continual Prediction with LSTM (F. A. Gers et al., 2000)

Experiments : ①ERG問題で評価

従来手法との比較

・ERG問題に対する必要記憶ステップ数を解析

・平均生成文字長:11.54文字(最長50字:80000試行中)

→50ステップ以上の記憶を保持する必要がある

24/30

Learning to Forget: Continual Prediction with LSTM (F. A. Gers et al., 2000)

比較対象:RTRL(Smith & Zipser, 1989), ELM;Elman net (Cleeremans

etal., 1989), RCC;Recurrent Cascade Correlation (Fahlman, 1991)

→LSTMでのみ学習が可能(学習回数も最も少ない)

Experiments : ②CERG問題で評価

学習:30000試行(CERG問題で延々と文字生成)(1試行:予測失敗or100000文字予測成功)

テスト:10回実施(1回につき100000文字生成)生成される文字を予測できた場合成功

結果:従来のLSTMでは学習失敗.忘却ゲート付きLSTMでは成功率が向上.

ルールが切り替わるたびに忘却ゲートの重みが変化し,セルが初期化されている.

25/30

Learning to Forget: Continual Prediction with LSTM (F. A. Gers et al., 2000)

6割以上の予測に成功! 忘却ゲート活動

中間層の状態

T,Pは2つの生成ルートの切り替わり

Conclusions

通常のRNN:近い過去のみしか記憶できなかったが・・・

・「忘却機能付きのLSTM」を提案(効率よく古い記憶を保持できる)

・CERG問題について60%の成功率(かつ安定)

※LSTMを実装する際の主流の手法となっている(今では,LSTM=忘却ゲートを持つ)

→近年の応用例(動画・音声解析[D]動画・画像解析[E])

26/30

[D] Owens, Andrew, et al. "Visually Indicated Sounds." arXiv preprint arXiv:1512.08512 (2015). [E] Donahue, Jeffrey, et al. "Long-term recurrent convolutional networks for visual recognition and description." Proceedings of the IEEE Conference on Computer Vision and Pattern Recognition. 2015.

動画の特徴から説明文を生成する[E]

Learning to Forget: Continual Prediction with LSTM (F. A. Gers et al., 2000)

無音映像からその映像に合った音を再現する[D]

Recurrent neural network regularization (2014)[4]

[4] Zaremba, Wojciech, Ilya Sutskever, and Oriol Vinyals. "Recurrent neural network regularization." arXiv preprint arXiv:1409.2329 (2014).

提案手法:「忘却ゲート付きLSTM」+「工夫したドロップアウト」で過学習を防ぐ

※ドロップアウト:ランダムに選んだノードを無視して(ないものとして)学習を進める

→一般にNNの汎化性能が向上する(アンサンブル効果)

27/30

Recurrent neural network regularization. (Zaremba et al., 2014)

工夫:non-recurrentな接続にのみドロップアウト操作を適用する

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

時刻t

:ドロップアウトにより無視するノード

Recurrent neural network regularization (2014)[4]

[4] Zaremba, Wojciech, Ilya Sutskever, and Oriol Vinyals. "Recurrent neural network regularization." arXiv preprint arXiv:1409.2329 (2014).

提案手法:「忘却ゲート付きLSTM」+「工夫したドロップアウト」で過学習を防ぐ

※ドロップアウト:ランダムに選んだノードを無視して(ないものとして)学習を進める

→一般にNNの汎化性能が向上する(アンサンブル効果)

28/30

Recurrent neural network regularization. (Zaremba et al., 2014)

工夫:non-recurrentな接続にのみドロップアウト操作を適用する

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

・・・

時刻t

:ドロップアウトにより無視するノード

汎化性能が向上した

A neural conversational model (2015)[5]

[5] Vinyals, Oriol, and Quoc Le. "A neural conversational model." arXiv preprint arXiv:1506.05869 (2015).

29/30

LSTMを利用した対話生成モデル:

A neural conversational model. (O. Vinyals & Q. Le , 2015)

sequence-to-sequence(seq2seq) framework (Sutskever et al., 2014)

→RNNに基づく時系列モデル(LSTMを利用)与えられた発話・発話履歴から次の発話を予測する.

ある200の質問に対する答え方をClever Botの返答と比較し人が評価を行った.好ましい返答だと評価された数:提案モデル 97/200, Clever Bot 60/200

A neural conversational model (2015)[5]

[5] Vinyals, Oriol, and Quoc Le. "A neural conversational model." arXiv preprint arXiv:1506.05869 (2015).

30/30

LSTMを利用した対話生成モデル:

A neural conversational model. (O. Vinyals & Q. Le , 2015)

sequence-to-sequence(seq2seq) framework (Sutskever et al., 2014)

→RNNに基づく時系列モデル(LSTMを利用)与えられた発話・発話履歴から次の発話を予測する.

ある200の質問に対する答え方をClever Botの返答と比較し人が評価を行った.好ましい返答だと評価された数:提案モデル 97/200, Clever Bot 60/200

Recommended