Upload
others
View
8
Download
0
Embed Size (px)
Citation preview
1© 2018 The MathWorks, Inc.
LSTMによる系列データの予測と分類
MathWorks Japan
テクニカルコンサルティング部 シニア テクニカル コンサルタント
太田 英司
2
LSTMLong Short Term Memory
3
ニューラルネットワークとは?
神経細胞(ニューロン)の数学的なモデル化に起源を持つ学習器
神経細胞(ニューロン)
➢ 軸索によりネットワークを構成➢ 電気的な興奮状態を伝え合う
画像提供: 独立行政法人 理化学研究所様
4
ニューラルネットワークとは?
𝑦 = 𝑓
𝑘=1
𝑛
𝑤𝑘 ∙ 𝑥𝑘 + 𝑏
0
1
Weight
𝑥1
𝑥2
𝑥𝑛
Σ 𝑓
𝑤1
𝑤2
𝑤𝑛
𝑦
1
𝑏
Transfer Function
Bias
0
1
-1
Logistic Sigmoid Tangent Sigmoid
Rectified Linear Unit
5
ニューラルネットワークとは?
Σ 𝑓1
Σ 𝑓1
Σ 𝑓1
𝑥1
𝑥2
𝑥3
𝑥4
1
1
1
Σ 𝑓2
Σ 𝑓2
Σ 𝑓2
1
1
1
𝐼𝑊
Layer 1 Layer 2
𝐿𝑊
𝑦1
𝑦2
𝑦3
6
Recurrent Neural Network とは?
入力 (Input) 出力 (Output)
時刻 t
過去のデータを現時点の予測にどう活かすか?
𝑼 𝑽
気温 風速 風向 日射量 電流 電圧
7
Recurrent Neural Network とは?
入力 (Input) 出力 (Output)
時刻 t
1ステップ前の隠れ層
1ステップ前の隠れ層の情報現時刻の入力の情報 + 過去情報も含む予測
現在の隠れ層𝑼 𝑽
𝑾
8
Recurrent Neural Network とは?
1ステップ前の隠れ層の状態をフィードバックさせることで過去の情報を予測に活かせるようにしたネットワーク
エルマン型 RNN
LSTMLong Short Term Memory
■ 進化版RNN(ゲート付きRNN)■ メモリセルにより長期の情報を保持できる■ 時間的に離れた依存関係のモデル化も得意
進化!
長期間の依存関係を
モデル化するのが不得意
9
Recurrent Neural Network とは?
行列等を使って簡素化して表現すると、右のようになる
𝒙𝒕 𝒚𝒕𝑼 𝑽
エルマン型 RNN
𝒉𝒕 = 𝒕𝒂𝒏𝒉 𝑾 𝒉𝒕−𝟏 + 𝐔 𝒙𝒕
隠れ層の更新式
𝒚𝒕 = 𝑽 ∙ 𝒉𝒕
出力の演算式
入力 出力
𝑾
10
Recurrent Neural Network とは?
𝑼
𝑾
𝒙𝒕
𝒚𝒕
隠れ状態(時刻 t-1)
隠れ状態(時刻 t)
入力(時刻 t)
出力(時刻 t)
𝒕𝒂𝒏𝒉
𝑽
𝒉𝒕−𝟏 𝒉𝒕
隠れ層の時間推移がわかり易いように表現すると、次のようになる
1
-1
𝒕𝒂𝒏𝒉
11
LSTM(Long Short Term Memory) とは?
𝒉𝒕−𝟏
𝑼
𝑾
𝒙𝒕
隠れ状態(時刻 t-1)
入力(時刻 t)
𝑪
𝒚𝒕
隠れ状態(時刻 t)
出力(時刻 t)
𝒉𝒕𝒕𝒂𝒏𝒉𝒕𝒂𝒏𝒉
メモリセル
出力ゲート入力ゲート
忘却ゲート
通常の RNN に「メモリセル」を導入し、入力・忘却・出力を3つのゲートで制御するようにしたもの
𝑽
※ 各ゲートでは、0~1の定数倍を行う
12
LSTM(Long Short Term Memory)とは?
𝒉𝒕−𝟏
𝑼
𝑾
𝒙𝒕
隠れ状態(時刻 t-1)
入力(時刻 t)
𝑪
𝒚𝒕
隠れ状態(時刻 t)
出力(時刻 t)
𝒉𝒕𝒕𝒂𝒏𝒉𝒕𝒂𝒏𝒉
メモリセル
出力ゲート入力ゲート
忘却ゲート
𝒙𝒕 𝒉𝒕−𝟏
𝒙𝒕 𝒉𝒕−𝟏
𝒙𝒕 𝒉𝒕−𝟏
通常の RNN に「メモリセル」を導入し、入力・忘却・出力を3つのゲートで制御するようにしたもの
𝑽
13
LSTM(Long Short Term Memory) とは?
入力(時刻 t)
𝒉𝒕−𝟏
𝑼
𝑾
𝒙𝒕
隠れ状態(時刻 t-1)
𝑪
𝝈 𝒚𝒕
隠れ状態(時刻 t)
出力(時刻 t)
𝒉𝒕𝒕𝒂𝒏𝒉𝒕𝒂𝒏𝒉
𝝈
𝒂𝒕
𝒇𝒕
𝒊𝒕 𝒐𝒕
𝒄𝒕 = 𝒇𝒕 ⨀ 𝒄𝒕−𝟏+ 𝒊𝒕 ⨀𝒂𝒕
メモリセル
セルの更新式:
𝝈𝑽
𝑾𝒊𝑼𝒊
𝒙𝒕 𝒉𝒕−𝟏 𝒙𝒕 𝒉𝒕−𝟏 𝒙𝒕 𝒉𝒕−𝟏
𝑼𝒇 𝑾𝒇 𝑼𝒐 𝑾𝒐
14
LSTM(Long Short Term Memory) とは?
入力(時刻 t)
LSTMBlock
(時刻 t)
𝒉𝒕−𝟏
𝒙𝒕
隠れ状態(時刻 t-1)
𝒚𝒕
隠れ状態(時刻 t)
出力(時刻 t)
𝒉𝒕
15
LSTM(Long Short Term Memory) とは?
入力
LSTMBlock
(時刻 t+2)
𝒙𝒕+𝟐
𝒚𝒕+𝟐 出力
入力
LSTMBlock
(時刻 t+1)
𝒙𝒕+𝟏
𝒚𝒕+𝟏 出力
入力
LSTMBlock
(時刻 t)
𝒙𝒕
𝒚𝒕 出力
入力
LSTMBlock
(時刻 t+3)
𝒙𝒕+𝟑
𝒚𝒕+𝟑 出力
𝒉𝒕−𝟏 𝒉𝒕 𝒉𝒕+𝟏 𝒉𝒕+𝟐 𝒉𝒕+𝟑
16
系列データの予測
17
【例題】 水疱瘡の発生件数の予測
学習区間 予測区間
水疱瘡患者の月間報告数(New York city, 1931 - 1972)
http://www-personal.buseco.monash.edu.au/~hyndman/TSDL/Hyndman, R.J. (n.d.) Time Series Data Library. Accessed on July 20, 2009.
18
系列データの予測させるには?
学習)1ステップ先のデータを予測するようにLSTMを学習をさせる
LSTMBlock
𝒙𝒕+𝟏
LSTMBlock
𝒙𝒕
𝒚𝒕 𝒚𝒕+𝟏
𝒙𝒕+𝟏 𝒙𝒕+𝟐 Target
LSTMBlock
𝒙𝒕+𝟐
𝒚𝒕+𝟐
𝒙𝒕+𝟑
LSTMBlock
𝒙𝒕+𝟑
𝒚𝒕+𝟑
𝒙𝒕+𝟒
19
系列データの予測させるには?
予測)1ステップ先の予測を次のステップの入力にすれば、次々に先のステップの予測が可能になる
LSTMBlock
LSTMBlock
𝒙𝒕
LSTMBlock
LSTMBlock
20
【例題】 水疱瘡の発生件数の予測
21
LSTM(Long Short Term Memory)
layers = [ ...
sequenceInputLayer(1)
lstmLayer(200, ‘OutputMode’, ‘sequence’)
fullyConnectedLayer(1)
regressionLayer];
opts = trainingOptions(‘adam', 'MaxEpochs’, 150);
net = trainNetwork(XTrain, YTrain, layers, opts);
入力層・LSTM層・全結合層などの
層を積み上げて定義
学習率や最大反復数などを定義して
学習の関数を呼び出す
時系列のデータで回帰を行う際のネットワーク構築の例
22
系列データの予測させるには?
各ステップで予測値の代わりに観測値を入力することで、精度を向上させることもできる
LSTMBlock
𝒙𝒕+𝟏
LSTMBlock
𝒙𝒕
LSTMBlock
𝒙𝒕+𝟐
LSTMBlock
𝒙𝒕+𝟑 観測情報
23
【例題】 水疱瘡の発生件数の予測
24
LSTM のさまざまなタイプ
観測情報の入力が各ステップで行われる場合と行われない場合がある
LSTMBlock
LSTMBlock
LSTMBlock
LSTMBlock
LSTMBlock
LSTMBlock
One to Many Many to Many
最初のステップにのみ観測情報の入力がある場合 各ステップで観測情報の入力がある場合
25
系列データの分類
26
【例題】 人の活動状態の識別歩行
階段-上り
階段-下り
着席
直立
寝る
Dataset courtesy of:Davide Anguita, Alessandro Ghio, Luca Oneto, Xavier Parra and Jorge L. Reyes-Ortiz. Human Activity Recognition on Smartphones using a Multiclass Hardware-Friendly Support Vector Machine. International Workshop of Ambient Assisted Living (IWAAL 2012). Vitoria-Gasteiz, Spain. Dec 2012http://archive.ics.uci.edu/ml/datasets/Human+Activity+Recognition+Using+Smartphones
Classification
27
【例題】 人の活動状態の識別
歩行? 直立?階段?
3軸の加速度センサーの情報を使って、人の活動状態を識別したい
28
【例題】 人の活動状態の識別
29
【例題】 人の活動状態の識別
30
【例題】 人の活動状態の識別
x
y
z
部分時系列(128 * 3 次元)
128 sample
31
系列データを分類するには?
学習)系列データの最後の出力が Target に一致するように学習させる
LSTMBlock
𝒙𝟐
LSTMBlock
𝒙𝟏
𝒚𝟏 𝒚𝟐
LSTMBlock
𝒙𝒕+𝑵
𝒚𝒕+𝑵
Output
歩行
階段-上り
階段-下り
着席
直立
寝る
1 0 0 0 0 0
0 1 0 0 0 0
0 0 1 0 0 0
0 0 0 1 0 0
0 0 0 0 1 0
0 0 0 0 0 1
最後の出力に対してだけ Target が存在
32
系列データを分類するには?
予測)系列データの最後の出力が系列データの分類結果とする
LSTMBlock
𝒙𝒕+𝑵
𝒚𝒕+𝑵
歩行
階段-上り
階段-下り
着席
直立
寝る
最後の出力が分類結果となる
LSTMBlock
𝒙𝟐
LSTMBlock
𝒙𝟏
𝒚𝟏 𝒚𝟐
Output
33
LSTM(Long Short Term Memory)
layers = [ ...
sequenceInputLayer(3)
lstmLayer(50)
lstmLayer(50, 'OutputMode', 'last')
fullyConnectedLayer(6)
softmaxLayer
classificationLayer];
opts = trainingOptions('sgdm', 'MaxEpochs’, 150);
net = trainNetwork(XTrain, TTrain, layers, opts);
入力層・LSTM層・全結合層などの
層を積み上げて定義
学習率や最大反復数などを定義して
学習の関数を呼び出す
3軸の加速度センサーのデータで信号分類する際のネットワーク構築の例
34
系列データを分類するには?
LSTM Block を複数段重ねて使うこともある
LSTMBlock
𝒙𝒕+𝑵
𝒚𝒕+𝑵
Output
LSTMBlock
LSTMBlock
𝒙𝟐
𝒚𝟐
LSTMBlock
LSTMBlock
𝒙𝟏
𝒚𝟏
LSTMBlock
LSTMBlock
𝒙𝟑
𝒚𝟑
LSTMBlock
LSTMBlock
𝒙𝟒
𝒚𝟒
LSTMBlock
35
【例題】 人の活動状態の識別
ax ay az s t
部分時系列(X軸)
部分時系列(Y軸)
部分時系列(Z軸)
被験者番号 動作番号
128 sample 128 sample 128 sample
加速度センサーの情報は一定の窓幅で部分時系列としてテーブルに格納されている
36
【例題】 人の活動状態の識別
37
LSTM のさまざまなタイプ
系列全体に対して Target がひとつだけ設定される場合と各ステップに設定される場合がある
LSTMBlock
LSTMBlock
LSTMBlock
Many to One Many to Many
系列全体に対して Target がひとつだけ設定される場合 各ステップの出力に対して Target が設定される場合
LSTMBlock
LSTMBlock
LSTMBlock
38
研究事例:動画分類(神奈川工科大学)
39
【事例】 手話動画の分類(神奈川工科大学 田中研究室様)
頭痛 鼻水? ?
手話指導&撮影協力:株式会社 ケイ・シー・シー(https://www.kcc.co.jp/)
40
【事例】 手話動画の分類(神奈川工科大学 田中研究室様)
CNN
LSTM
頭痛? 鼻水?
CNN特徴量(4096 次元)
動画のフレーム(227 x 227 ピクセル)
手話動画
AlexNet の pool5 層の活性を取得する
41
【事例】 手話動画の分類(神奈川工科大学 田中研究室様)
色抽出後の動画
現在は、元の動画から色抽出を行った動画に対して、分類を実行している
Kazuki Sakamoto, Eiji Ota, Tatsunori Ozawa, Hiromitsu Nishimura, and Hiroshi Tanaka : Feasibility Study on Deep Learning Scheme for Sign Language Motion Recognition, Proceedings of the 12th International Conference on Complex, Intelligent, and Software Intensive Systems (CISIS-2018)
42
ディープラーニングのための構成
43
深層学習に必要な Toolbox と Hardware
MATLAB ®
Image Processing Toolbox™
Computer Vision SystemToolbox™
Statistics andMachine Learning Toolbox™
Parallel Computing Toolbox™
Neural Network Toolbox™
R2018a以降のMATLABを推奨
GPUを使う場合
一部の例題等で使う可能性
R-CNN, Fast R-CNN, Faster R-CNNSemantic Segmentation 等で必須
必須
NVIDIA® のチップを搭載したGPU(Compute Capability 3.0以降)
44
© 2018 The MathWorks, Inc. MATLAB and Simulink are registered trademarks of The MathWorks, Inc. See www.mathworks.com/trademarks for a list of additional trademarks. Other product or brand names may be trademarks or registered trademarks of their respective holders.