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