Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
再起型ニューラルネットワーク入門
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Ryota Nishi
November 25, 2019
Technology
390
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
再起型ニューラルネットワーク入門
Ryota Nishi
November 25, 2019
More Decks by Ryota Nishi
See All by Ryota Nishi
Python 言語の紹介 + 仮想環境に pipenv が便利だと思った話
ryota0312
0
68
Other Decks in Technology
See All in Technology
『SAR衛星データ解析入門』のご紹介とその応用
syuchimu
0
120
会社紹介資料 / Sansan Company Profile
sansan33
PRO
31
430k
DevelopersIO 2026 知識の地図を描く ─ オントロジーとは何か?
ishikawa_satoru
1
1.7k
フィンテック養成勉強会#68
finengine
0
150
Active Record Connection Adaptersにおける長年の課題に再び取り組む
yahonda
0
200
日本語に強いオープンな大規模言語モデル「LLM-jp」
odashi
5
1.2k
AIがコードを書く時代に、エンジニアは何で自分の価値を証明するのか / In an era where AI writes code how do engineers prove their value
carta_engineering
3
1.1k
How to Design Configuration for Rails Applications
willnet
1
830
会社説明資料
persolserverworks
0
9.8k
hackers_champloo_2026_tidb
makocchi
0
170
しろおびから始める!ログ活用の第一歩
shumei_ito
0
960
Conditional PED-ANOVA: Hyperparameter Importance in Hierarchical & Dynamic Search Spaces
pfn
PRO
0
140
Featured
See All Featured
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
2
410
Raft: Consensus for Rubyists
vanstee
142
7.8k
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
1.4k
More Than Pixels: Becoming A User Experience Designer
marktimemedia
3
570
Digital Ethics as a Driver of Design Innovation
axbom
PRO
1
460
Primal Persuasion: How to Engage the Brain for Learning That Lasts
tmiket
0
500
Testing 201, or: Great Expectations
jmmastey
46
8.3k
Mozcon NYC 2025: Stop Losing SEO Traffic
samtorres
1
580
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
360
31k
Utilizing Notion as your number one productivity tool
mfonobong
4
620
The Curious Case for Waylosing
cassininazir
1
570
Gemini Prompt Engineering: Practical Techniques for Tangible AI Outcomes
mfonobong
2
590
Transcript
第4回 Deep Learning 勉強会 再帰型ニューラルネットワーク 平成30年10月24日 乃村研究室 西 良太 No.
1
No. 2 概要 (1) 再帰型ニューラルネットワーク (RNN) (A) 時系列データ,自然言語などの連続的なデータを学習可能 (B) 本スライドでは,シンプルな
RNN と LSTM を解説 (2) LSTM の利用例として,2017年度コンテスト応募作品「Pigeon」の エネルギー使用量予測のモデルを紹介
No. 3 目次 (1) Simple RNN (Elman Network) (2) Long
short-term memory (LSTM) (3) Pigeon におけるエネルギー使用量予測
No. 4 Simple RNN (Elman Network) 入力層 出力層 中間層 −1
−1 −1 +1 +1 ⋯ ⋯ (2) t-1 の中間層の出力が t の中間層の入力になる − 1 + 1 1つ前のデータを扱うことで (理論上) 連続的な情報を学習可能 (1) 可変長のデータを扱うことができる
No. 5 RNN における誤差逆伝搬法の問題点 ・・・ 誤差伝搬 = 1 = 2
= 3 = ・・・ (1) 時間方向に展開したネットワークで時間を遡って誤差逆伝搬を行う (2) N が大きくなると重みが何度も掛けられ勾配の爆発・消失が発生 勾配消失により,長期依存を学習できなくなる
No. 6 目次 (1) Simple RNN (Elman Network) (2) Long
short-term memory (LSTM) (3) Pigeon におけるエネルギー使用量予測
No. 7 Long short-term memory (LSTM) LSTM Block 入力層 出力層
中間層 −1 (1) RNN の勾配消失問題に対処し,長期依存を学習可能 (2) 中間層を LSTM Block に置き換えることで実現
No. 8 LSTM Block (2) LSTM Block の構造には様々なバージョンが存在 (A) オリジナル(95,97年)[Hochreiter
& Schmidhuber, 95;97] (B) 忘却ゲートの導入(99年)[Gers & Schmidhuber, 99] (C) Peephole Connectionの導入(00年)[Gers & Schmidhuber, 00] (D) Full Gradientの導入(05年)[Graves & Schmidhuber, 05] (1) 入力ゲート,出力ゲート,忘却ゲートなどのゲートを持つ
第1世代 LSTM th + th × σ + + ×
σ + 出力層 LSTM Block 入力ゲート 出力ゲート −1 −1 −1 To recurrent input σ シグモイド関数 th tanh 関数 前の中間層から の信号 :入力層からの信号 :出力層,次の中間層への信号 −1:前の中間層からの信号 , , :にかかる重み , , :−1にかかる重み 入力ゲート: 前のユニットからの入力を調整 出力ゲート: 次のユニットへの出力を調整 Constant Error Carousel (CEC) No. 9
No. 10 Constant Error Carousel (CEC) (1) 前のユニットから情報を受け取り,過去の情報を溜め込む (2) これだけだと,記憶対象を選択できずノイズも溜め込んでしまう
+ th × + −1 CEC
No. 11 入力ゲートによる選択的記憶 (1) 前のユニットから情報を受け取り,過去の情報を溜め込む (対処) 必要な情報のみを選択的に記憶 (2) これだけだと,記憶対象を選択できずノイズも溜め込んでしまう +
th × + −1 CEC σ + 入力ゲート −1 入力ゲートの値により CEC へ送り込む量を調整
No. 12 出力ゲートによる選択的出力 (1) CEC の出力がすべて必要とは限らない (2) ある時点での予測とは関係ない出力はノイズとなってしまう th +
× CEC
No. 13 出力ゲートによる選択的出力 (1) CEC の出力がすべて必要とは限らない (対処) 必要な情報のみを選択的に出力 (2) ある時点での予測とは関係ない出力はノイズとなってしまう
th + × σ + 出力ゲート −1 CEC 出力ゲートの値により CEC からの出力を調整
忘却ゲートを導入した LSTM :入力層からの信号 :出力層,次の中間層への信号 −1:前の中間層からの信号 , , , : にかかる重み
, , , : −1にかかる重み th + th × σ + + × σ + 出力層 LSTM Block 入力ゲート 出力ゲート −1 −1 −1 To recurrent input σ シグモイド関数 th tanh 関数 前の中間層 からの信号 × σ + 忘却ゲート −1 入力ゲート: 前のユニットからの入力を調整 出力ゲート: 次のユニットへの出力を調整 忘却ゲート: 不要な記憶を忘れることを学習 No. 14
+ × σ + 忘却ゲート −1 No. 15 忘却ゲートによる記憶の消去 (1)
CEC を上書きするためには大きな入力を繰り返す必要がある (対処) 直前の状態を記憶する量を調整 ∴ 短期間に大きく記憶を更新したい場合に対処できない 忘却ゲートの値により CEC の記憶量を調整
No. 16 目次 (1) Simple RNN (Elman Network) (2) Long
short-term memory (LSTM) (3) Pigeon におけるエネルギー使用量予測
HEMS データの予測 (2) 未来のHEMSデータを予測 (1) 過去の HEMS データを学習 (3) 予測値から在宅確率を算出
2.5 2.0 1.5 1.0 0.5 0.0 電力使用量 (kWh) 高精度な予測を実現 <在宅確率の予測手順> HEMS データの予測結果 現在の HEMS データから,現在の在宅状況を推測可能 未来の HEMS データを予測し,未来の在宅確率を推測 No. 17 HEMS データ: 家庭のエネルギー使用量を管理するシステム
学習データ No. 18 (1) 利用する HEMS データは1時間ごとに電力,ガス,水道の3つの 使用量を記録 (2) 1週間分のデータをまとまりとして,傾向を学習
電力 ガス 水道 ・・・ ・・・ ・・・ 1週間分 電力 ガス 水道 ・・・ ・・・ ・・・ 電力 ガス 水道 ・・・ ・・・ ・・・ 電力 ガス 水道 ・・・ ・・・ ・・・ 電力 ガス 水道 ・・・ ・・・ ・・・ 電力 ガス 水道 ・・・ ・・・ ・・・ 電力 ガス 水道 ・・・ ・・・ ・・・ 24時間分
学習モデルの概要 No. 19 24 3 * CNN * ・・・ ・・・
・・・ LSTM 7 CNN (1) CNN と LSTM を組み合わせることで,短期的な周期と長期的な 周期を学習
No. 20 Keras による学習モデルの構築 * コード: https://github.com/nomlab/pigeon-cli/blob/master/model.py (1) 入力層: shape
= (7, 24, 3) (2) 畳み込み層×2 (A) 1×4 のフィルタ128個 (B) 1×2 のフィルタ128個 (3) プーリング層: 1×2 MaxPooling (4) ドロップアウト層 (20%) (5) 平滑化 (6) 全結合層 (1,536 → 256) (7) LSTM (8) 全結合層×2 (256 → 256) (9) ドロップアウト層 (20%) (10) 全結合層 (256 → 3) (11) プーリング層: GlobalAveragePooling
No. 21 Keras による学習モデルの構築 * コード: https://github.com/nomlab/pigeon-cli/blob/master/model.py (1) 入力層: shape
= (7, 24, 3) (2) 畳み込み層×2 (A) 1×4 のフィルタ128個 (B) 1×2 のフィルタ128個 (3) プーリング層: 1×2 MaxPooling (4) ドロップアウト層 (20%) (5) 平滑化 (6) 全結合層 (1,536 → 256) (7) LSTM (8) 全結合層×2 (9) ドロップアウト層 (20%) (10) 全結合層 (11) プーリング層: GlobalAveragePooling TimeDistributed レイヤラッパを用いて, 1日ごとにネットワークを構築 日ごとの短期的な周期を学習(?)
No. 22 Keras による学習モデルの構築 * コード: https://github.com/nomlab/pigeon-cli/blob/master/model.py (1) 入力層: shape
= (7, 24, 3) (2) 畳み込み層×2 (A) 1×4 のフィルタ128個 (B) 1×2 のフィルタ128個 (3) プーリング層: 1×2 MaxPooling (4) ドロップアウト層 (20%) (5) 平滑化 (6) 全結合層 (1,536 → 256) (7) LSTM (8) 全結合層×2 (256 → 256) (9) ドロップアウト層 (20%) (10) 全結合層 (256 → 3) (11) プーリング層: GlobalAveragePooling
No. 23 Keras による学習モデルの構築 * コード: https://github.com/nomlab/pigeon-cli/blob/master/model.py (1) 入力層: shape
= (7, 24, 3) (2) 畳み込み層×2 (A) 1×4 のフィルタ128個 (B) 1×2 のフィルタ128個 (3) プーリング層: 1×2 MaxPooling (4) ドロップアウト層 (20%) (5) 平滑化 (6) 全結合層 (1,536 → 256) (7) LSTM (8) 全結合層×2 (256 → 256) (9) ドロップアウト層 (20%) (10) 全結合層 (11) プーリング層: GlobalAveragePooling 1週間分の長期的な周期を学習
No. 24 Keras による学習モデルの構築 * コード: https://github.com/nomlab/pigeon-cli/blob/master/model.py (1) 入力層: shape
= (7, 24, 3) (2) 畳み込み層×2 (A) 1×4 のフィルタ128個 (B) 1×2 のフィルタ128個 (3) プーリング層: 1×2 MaxPooling (4) ドロップアウト層 (20%) (5) 平滑化 (6) 全結合層 (1,536 → 256) (7) LSTM (8) 全結合層×2 (256 → 256) (9) ドロップアウト層 (20%) (10) 全結合層 (256 → 3) (11) プーリング層: GlobalAveragePooling
No. 25 Keras による学習モデルの構築 * コード: https://github.com/nomlab/pigeon-cli/blob/master/model.py (1) 入力層: shape
= (7, 24, 3) (2) 畳み込み層×2 (A) 1×4 のフィルタ128個 (B) 1×2 のフィルタ128個 (3) プーリング層: 1×2 MaxPooling (4) ドロップアウト層 (20%) (5) 平滑化 (6) 全結合層 (1,536 → 256) (7) LSTM (8) 全結合層×2 (256 → 256) (9) ドロップアウト層 (20%) (10) 全結合層 (256 → 3) (11) プーリング層: GlobalAveragePooling
No. 26 Keras による学習モデルの構築 * コード: https://github.com/nomlab/pigeon-cli/blob/master/model.py (1) 入力層: shape
= (7, 24, 3) (2) 畳み込み層×2 (A) 1×4 のフィルタ128個 (B) 1×2 のフィルタ128個 (3) プーリング層: 1×2 MaxPooling (4) ドロップアウト層 (20%) (5) 平滑化 (6) 全結合層 (1,536 → 256) (7) LSTM (8) 全結合層×2 (256 → 256) (9) ドロップアウト層 (20%) (10) 全結合層 (256 → 3) (11) プーリング層: GlobalAveragePooling 1×7 電力 ガス 水道 各チャンネルの平均を算出
No. 27 参考 (1) Qiita: わかるLSTM ~ 最近の動向と共に https://qiita.com/t_Signull/items/21b82be280b46f467d1b (2)
SlideShare: Recurrent Neural Networks https://www.slideshare.net/beam2d/pfi-seminar-20141030rnn (3) 【Day-18】時系列のディープラーニング、RNNのまとめとKeras実装 http://www.procrasist.com/entry/18-rnn (4) Github: nomlab/pigeon-cli https://github.com/nomlab/pigeon-cli