SlideShare a Scribd company logo
7. 予測・判断(時系列データ,
リカレントニューラルネット
ワーク,LSTM)
1
金子邦彦
(ディープラーニング,Python を使用)
(全15回)
https://www.kkaneko.jp/cc/ae/index.html
2
太陽の黒点数の変化
1848年~1999年のデータを用いて,2000年以降を予測
(ディープニューラルネットワークによる予測)
予測
データサイエンス
• データの正しい取り扱いと活用
• 統計,数学を基礎とする
3
機械学習
• 学習による上達の能力
• 訓練データを使用して,学習を行う
4
ニューラルネットワークの原理
ニューラルネットワークのユニットは,数理により
動く
① 入力は複数
② 入力を重みづけし合計をとる
③ その合計から出力値を得る
5
0.3 × 0.1 ⇒ 0.03
-0.5 × 0.8 ⇒ -0.4
0.2 × -0.5 ⇒ -0.1
合計
-0.47
合計に
応じた出力値
0.3846
ニューラルネットワーク
機械学習の能力を持つ.コンピュータで動作.
次を特徴とする.
① 入力は複数
② 入力を重みづけし合計をとる
③ その合計から出力値を得る
6
入力
1 2 3
4 5 6
7 8 9
1 1
2 1
3 1
4 0
5 1
6 1
7 0
8 0
9 1
白黒の画像
(画素は 0 または 1)
重み w1 ~ w9
ユニット
w1
w2
w3
w4
w5
w6
w7
w8
w9
合計
・合計に,バイアスという値を
足し引きしたあと,活性化関数
が適用され出力値が得られる.
・活性化関数はさまざまな種類
シグモイド
ReLU
(2011年発表)
0.9
0.8
0.7
0.6
0.5
0.4
0.3
0.2
0.1
0
-2.0 -1.5 -1.0 -0.5 0.0 0.5 1.0 1.5 2.0
合計は,
1 × w1 + 1 × w2 + 1 × w3 +
0 × w4 + 1 × w5 + 1 × w6 +
0 × w7 + 0 × w8 + 1 × w9
ニューラルネットワークの仕組み
7
入力層
中間層
出力層
〇 はユニット,線は結合
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
〇
全結合のときは,
次層の全ユニッ
トと結合する 全結合のときは,
次層の全ユニッ
トと結合する
• 前の層から結果を受けとって,次の層へ結果を
渡す
(他の結合は書
いていない) (他の結合は書
いていない)
アウトライン
8
番号 項目
7-1 時系列データ
7-2 リカレントニューラルネットワーク
7-3 LSTM
7-4 演習
各自,資料を読み返したり,課題に取り組んだりも行う
全体まとめ
• 時系列データは,時間とともに,値が変化するデー
タ
• 時系列データから,周期性やトレンドなどを読み取
ることができる
• リカレントニューラルネットワーク
• 回帰により,過去の情報を保持
• 時系列データなどデータの並びを扱う能力を持つ
予測,手書き文字認識,音声認識,言葉の理解,
翻訳,テキスト生成,プログラム生成 など
• 長期に及ぶ過去の情報の保持のため,LSTM が考案され
た
9
7-1. 時系列データ
10
11
過去の量から,周期性を分析し活用
12
過去の量から,トレンドを分析し活用
時系列データ
時系列データは,
昨日の気温は15度
今日の気温が13度
のように,時間とともに,値が変化するデータ
13
時系列データの例
14
太陽の黒点数の変化
時系列データの特性
• 周期性: 週単位,月単位,年単位
• イベント: 正月,クリスマス,4月頭
• 長期的な傾向: 増加傾向,一定,減少傾向
• 誤差や,突発的な変化・変動
15
Facebook イベント数の分析例
16
Taylor SJ, Letham B. 2017. Forecasting at scale. PeerJ Preprints 5:e3190v2
https://doi.org/10.7287/peerj.preprints.3190v2
曜日で色を変えてプロット ⇒ 曜日単の周期性を読み取る
Facebook イベント数の分析例
17
Taylor SJ, Letham B. 2017. Forecasting at scale. PeerJ Preprints 5:e3190v2
https://doi.org/10.7287/peerj.preprints.3190v2
周期性の分析
トレンドの分析
土日は少ない
年末年始は少ない
2015年からは増加
元データをProphet で処理した結果
元データをProphet で処理した結果
まとめ
• 時系列データは,時間とともに,値が変化する
データ
• 時系列データから,周期性やトレンドなどを読み
取ることができる
18
7-2. リカレント
ニューラルネットワーク
19
リカレントニューラルネットワーク
20
リカレントニューラルネットワークは
回帰により過去の情報を保持する
ニューラルネットワーク
回帰
前回の実行時での結果を,
次の実行に反映
リカレントニューラルネットワーク
• 回帰により,過去の情報を保持.前回の実行時で
の結果の一部が,次の実行に反映される
• 時系列データなど,データの並びを扱う能力を持
つ
21
フィードフォワードとリカレントニューラルネッ
トワーク
22
フィードフォワード
ネットワーク
ある層の出力を,次の層が受
け取る
リカレントニューラルネッ
トワーク
回帰により,前回の実行時での
結果の一部が,次の実行に反映
される.
回帰
リカレントニューラルネットワークの動作イメー
ジ ①
23
デ
ー
タ
の
並
び
保持
使用
リカレントニューラルネットワークの動作イメー
ジ ②
24
デ
ー
タ
の
並
び
保持
使用
前回の実行時での
結果も使用
リカレントニューラルネットワークの動作イメー
ジ ③
25
デ
ー
タ
の
並
び
保持
使用
前回の実行時での
結果も使用
リカレントニューラルネットワークの応用
• 時系列データを用いた予測
データの並びを扱う
• 手書き文字認識
筆記の動きを扱う
• 音声認識
音の並びを扱う
• 「言葉」の理解,翻訳,テキスト生成,プログラ
ム生成
単語の並びを扱う
26
リカレントニューラルネットワークのニュース
数学に関する教科書を人工知能が学習.数学論文の
偽物等を生成する能力を獲得
27
Andrej Karpathy のブログ記事
The Unreasonable Effectiveness of Recurrent Neural Networks. 2015.
http://karpathy.github.io/2015/05/21/rnn-effectiveness/
人工知能が生成した数学レポート 人工知能が生成した C言語プログラム
リカレントニューラルネットワークの特質
• 単純なフィードフォワードのニューラルネット
ワークより,高い能力を持つ
• その分,多くの訓練データを必要とする
• 長期に及ぶ過去の情報の保持が困難 (1991年,
1994年に理論的根拠が示された) ⇒ LSTM など,
改良が生まれた
28
7-3. LSTM
29
LSTM の応用
• 単純なリカレントニューラルネットワークでは困
難な,長期に及ぶ過去の情報を扱うディープラー
ニング
30
LSTM 誕生の背景
• リカレントニューラルネットワークでは,長期に
及ぶ過去の情報の保持が困難 (1991年, 1994年に
理論的根拠が示された)
• 長期に及ぶ過去の情報を保持しようとすると,問
題が発生(勾配消失や勾配爆発により,学習がう
まくいかなくなる)
31
Y Bengio 1, P Simard, P Frasconi,
Learning long-term dependencies with gradient descent is difficult,
IEEE Trans Neural Netw, 1994;5(2):157-66, doi: 10.1109/72.279181, 1994.
LSTM の仕組み
32
回帰
入力 出力
状態
状態を受け取る
状態は「メモリセル」に記憶されている
ユニットの動作のたびに
状態が変化する
LSTM は,リカレント
ニューラルネットワークの一種
2つの機能
・記憶の持続 (constant error carousel)
1997年発表
・記憶の忘却 (forget gate)
1999 年発表
LSTM の特徴
• LSTMは,リカレントニューラルネットワークの
一種
• メモリセルは,状態として,同じ値の長期の記憶
の保持を可能とする
• リカレントニューラルネットワークの弱点ともい
われる「長期に及ぶ過去の情報の保持が困難」で
あることを解決
• 1997, 1999年発表の技術.その後,手書き文字認
識,音声認識,自動翻訳など数多くの応用
33
全体まとめ
• 時系列データは,時間とともに,値が変化するデー
タ
• 時系列データから,周期性やトレンドなどを読み取
ることができる
• リカレントニューラルネットワーク
• 回帰により,過去の情報を保持
• 時系列データなどデータの並びを扱う能力を持つ
予測,手書き文字認識,音声認識,言葉の理解,
翻訳,テキスト生成,プログラム生成 など
• 長期に及ぶ過去の情報の保持のため,LSTM が考案され
た
34
7-4. 演習
35
Google Colaboratory の使い方概要 ①
36
Google Colaboratory ノートブック
コードセルの再実行や変更には,
Google アカウントでのログインが必要
実行
コードセル
テキストセル
コードセル
コードセル
• WEBブラウザでアクセス
• コードセルは
Python プログラム.
各自の Google アカウント
でログインすれば,
変更,再実行可能
Google Colaboratory の使い方概要 ②
37
実行
一番上のコードセルから順々に実行
実行
① LSTM による予測
1. 使用するページ:
https://colab.research.google.com/drive/1qxh5l0iEP
Um-QRTuEBSqBLd3V9KvqItK?usp=sharing
2. 必要な事前知識
LSTM もニューラルネットワークの一種であり,学
習のさせ方などは,ふつうのニューラルネットワー
クと同じであること
3. 各自で実行すること
実際に実行し、予測を試す.
38
39
太陽の黒点数の変化
1848年~1999年のデータを用いて,2000年以降を予測
(ディープニューラルネットワークによる予測)
予測
予測では,過去の観測値から「次の日(つまり一日
分)の予測」を行うことを繰り返している.
① 10日分のデータから
11日後を予測
② 100日分のデータから
101日後を予測
③ 1000日分のデータから
1001日後を予測
40
① 10日分のデータから
11日後を予測
② 100日分のデータから
101日後を予測
③ 1000日分のデータから
1001日後を予測
41
訓練データの量が
1/10 になる
訓練データの量が
1/100 になる
「①より②,③が良い」と思い込まないこと
(①がベスト,ということもあり得る)
みどころ
10日分のデータから
11日後を予測
42
これを
上手く使って
1848年~1999年のデータを用いて,2000年
以降を予測
太陽の黒点
数の変化
予測
LSTM も教師あり学習である
43
コンピュータ
プログラム
データ
(入力)
予測結果
10日分のデータと,
予測結果の正解(11日後のデータ)
訓練データ
10日分のデータ
①
LSTM での学習の繰り返し
44
LSTM
10日分のデータと,
予測結果の正解(11日後のデータ)
訓練データ
1848年~1999年のデータ 2000年以降のデータ
最初の11日分を切り出して使用
②
LSTM での学習の繰り返し
45
LSTM
10日分のデータと,
予測結果の正解(11日後のデータ)
訓練データ
1848年~1999年のデータ 2000年以降のデータ
少しずらして,
11日分を切り出して使用
過去の情報が
保持される
③
LSTM での学習の繰り返し
46
LSTM
10日分のデータと,
予測結果の正解(11日後のデータ)
訓練データ
1848年~1999年のデータ 2000年以降のデータ
過去の情報が
保持される
最後まで使い切って
学習を終了
④
LSTMによる予測
47
LSTM
1848年~1999年のデータ 2000年以降のデータ
過去の情報が
保持される
予測したい部分に進んでい
く(10日分切り出し)
予測結果が
得られる
⑤
LSTMによる予測
48
LSTM
1848年~1999年のデータ 2000年以降のデータ
過去の情報が
保持される
予測したい部分の最後まで
続ける(10日分切り出し
を続ける)
予測結果が
得られる

More Related Content

Similar to ae-7. 予測・判断(時系列データ,リカレントニューラルネットワーク,LSTM)

数学好きから見た量子コンピュータ~57を因数分解した話~
数学好きから見た量子コンピュータ~57を因数分解した話~数学好きから見た量子コンピュータ~57を因数分解した話~
数学好きから見た量子コンピュータ~57を因数分解した話~Satoyuki Tsukano
 
[DL輪読会]Measuring abstract reasoning in neural networks
[DL輪読会]Measuring abstract reasoning in neural networks[DL輪読会]Measuring abstract reasoning in neural networks
[DL輪読会]Measuring abstract reasoning in neural networksDeep Learning JP
 
[第2版]Python機械学習プログラミング 第12章
[第2版]Python機械学習プログラミング 第12章[第2版]Python機械学習プログラミング 第12章
[第2版]Python機械学習プログラミング 第12章Haruki Eguchi
 
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化marsee101
 
深層学習入門 スライド
深層学習入門 スライド  深層学習入門 スライド
深層学習入門 スライド swamp Sawa
 
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network ~本物のリアルタイムコンピューティングを目指して~LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network ~本物のリアルタイムコンピューティングを目指して~ryuz88
 
ICLR2020読み会 (neural-tangents)
ICLR2020読み会 (neural-tangents)ICLR2020読み会 (neural-tangents)
ICLR2020読み会 (neural-tangents)RyuichiKanoh
 

Similar to ae-7. 予測・判断(時系列データ,リカレントニューラルネットワーク,LSTM) (8)

数学好きから見た量子コンピュータ~57を因数分解した話~
数学好きから見た量子コンピュータ~57を因数分解した話~数学好きから見た量子コンピュータ~57を因数分解した話~
数学好きから見た量子コンピュータ~57を因数分解した話~
 
[DL輪読会]Measuring abstract reasoning in neural networks
[DL輪読会]Measuring abstract reasoning in neural networks[DL輪読会]Measuring abstract reasoning in neural networks
[DL輪読会]Measuring abstract reasoning in neural networks
 
[第2版]Python機械学習プログラミング 第12章
[第2版]Python機械学習プログラミング 第12章[第2版]Python機械学習プログラミング 第12章
[第2版]Python機械学習プログラミング 第12章
 
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
「ゼロから作るDeep learning」の畳み込みニューラルネットワークのハードウェア化
 
深層学習入門 スライド
深層学習入門 スライド  深層学習入門 スライド
深層学習入門 スライド
 
cnnstudy
cnnstudycnnstudy
cnnstudy
 
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network ~本物のリアルタイムコンピューティングを目指して~LUT-Network ~本物のリアルタイムコンピューティングを目指して~
LUT-Network ~本物のリアルタイムコンピューティングを目指して~
 
ICLR2020読み会 (neural-tangents)
ICLR2020読み会 (neural-tangents)ICLR2020読み会 (neural-tangents)
ICLR2020読み会 (neural-tangents)
 

More from kunihikokaneko1

cs-8. 表計算ソフトウエアを用いたデータの扱い
cs-8. 表計算ソフトウエアを用いたデータの扱い cs-8. 表計算ソフトウエアを用いたデータの扱い
cs-8. 表計算ソフトウエアを用いたデータの扱い kunihikokaneko1
 
cs-7. 乱数,シミュレーション
cs-7. 乱数,シミュレーション  cs-7. 乱数,シミュレーション
cs-7. 乱数,シミュレーション kunihikokaneko1
 
cs-6. データベースとデータサイエンス
cs-6. データベースとデータサイエンスcs-6. データベースとデータサイエンス
cs-6. データベースとデータサイエンスkunihikokaneko1
 
cs-5. 人工知能の概要
cs-5. 人工知能の概要 cs-5. 人工知能の概要
cs-5. 人工知能の概要 kunihikokaneko1
 
cs-4. プログラミング入門
cs-4. プログラミング入門cs-4. プログラミング入門
cs-4. プログラミング入門kunihikokaneko1
 
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックス
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックスcs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックス
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックスkunihikokaneko1
 
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素 cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素 kunihikokaneko1
 
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタcs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタkunihikokaneko1
 
mi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョンmi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョンkunihikokaneko1
 
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線kunihikokaneko1
 
mi-6. 画像分類システム
mi-6. 画像分類システムmi-6. 画像分類システム
mi-6. 画像分類システムkunihikokaneko1
 
mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習kunihikokaneko1
 
mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例kunihikokaneko1
 
mi-1. 人工知能の概要
mi-1. 人工知能の概要mi-1. 人工知能の概要
mi-1. 人工知能の概要kunihikokaneko1
 
Coding Standards of C++ について
 Coding Standards of C++ について  Coding Standards of C++ について
Coding Standards of C++ について kunihikokaneko1
 
co-3. サブクラス、継承
co-3. サブクラス、継承co-3. サブクラス、継承
co-3. サブクラス、継承kunihikokaneko1
 
co-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出しco-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出しkunihikokaneko1
 
co-1. クラスとメソッド
 co-1. クラスとメソッド co-1. クラスとメソッド
co-1. クラスとメソッドkunihikokaneko1
 

More from kunihikokaneko1 (20)

cs-8. 表計算ソフトウエアを用いたデータの扱い
cs-8. 表計算ソフトウエアを用いたデータの扱い cs-8. 表計算ソフトウエアを用いたデータの扱い
cs-8. 表計算ソフトウエアを用いたデータの扱い
 
cs-7. 乱数,シミュレーション
cs-7. 乱数,シミュレーション  cs-7. 乱数,シミュレーション
cs-7. 乱数,シミュレーション
 
cs-6. データベースとデータサイエンス
cs-6. データベースとデータサイエンスcs-6. データベースとデータサイエンス
cs-6. データベースとデータサイエンス
 
cs-5. 人工知能の概要
cs-5. 人工知能の概要 cs-5. 人工知能の概要
cs-5. 人工知能の概要
 
cs-4. プログラミング入門
cs-4. プログラミング入門cs-4. プログラミング入門
cs-4. プログラミング入門
 
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックス
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックスcs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックス
cs-3. パノラマ画像,ストリートビュー,3次元コンピュータグラフィックス
 
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素 cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素
cs-2. コンピュータによる画像制作,人工知能でできること,情報のコード化,デジタル画像,画素
 
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタcs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
cs-1. 無料ソフトウエア,無料データ,エコシステム,Scratch プログラミング,Scratch のキャラクタ
 
mi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョンmi-8. 人工知能とコンピュータビジョン
mi-8. 人工知能とコンピュータビジョン
 
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
mi-7. 学習と検証, 学習不足, 過学習, 学習曲線
 
mi-6. 画像分類システム
mi-6. 画像分類システムmi-6. 画像分類システム
mi-6. 画像分類システム
 
mi-4. 機械学習
mi-4. 機械学習mi-4. 機械学習
mi-4. 機械学習
 
mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習mi-3. データサイエンス・AIの演習
mi-3. データサイエンス・AIの演習
 
mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例mi-2. データサイエンス・AIの事例
mi-2. データサイエンス・AIの事例
 
mi-1. 人工知能の概要
mi-1. 人工知能の概要mi-1. 人工知能の概要
mi-1. 人工知能の概要
 
kaneko202304.pptx
kaneko202304.pptxkaneko202304.pptx
kaneko202304.pptx
 
Coding Standards of C++ について
 Coding Standards of C++ について  Coding Standards of C++ について
Coding Standards of C++ について
 
co-3. サブクラス、継承
co-3. サブクラス、継承co-3. サブクラス、継承
co-3. サブクラス、継承
 
co-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出しco-2. メソッド定義と呼び出し
co-2. メソッド定義と呼び出し
 
co-1. クラスとメソッド
 co-1. クラスとメソッド co-1. クラスとメソッド
co-1. クラスとメソッド
 

ae-7. 予測・判断(時系列データ,リカレントニューラルネットワーク,LSTM)

Editor's Notes

  1. 良好な学習能力をもち,機械学習が脚光をあびるきっかけにも 機械学習を勉強するとき,ニューラルネットワークは良い手段と考える 機械学習では,ニューラルネットワークを使う場合もあれば,ニューラルネットワークではない他のものもある(あとで詳しく)