Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
慶應義塾大学 機械学習基礎08 再帰型ニューラルネット
Search
Semantic Machine Intelligence Lab., Keio Univ.
PRO
November 05, 2021
Technology
3
660
慶應義塾大学 機械学習基礎08 再帰型ニューラルネット
Semantic Machine Intelligence Lab., Keio Univ.
PRO
November 05, 2021
Tweet
Share
More Decks by Semantic Machine Intelligence Lab., Keio Univ.
See All by Semantic Machine Intelligence Lab., Keio Univ.
Will multimodal language processing change the world?
keio_smilab
PRO
3
350
[Journal club] MOKA: Open-Vocabulary Robotic Manipulation through Mark-Based Visual Prompting
keio_smilab
PRO
0
71
[Journal club] Seeing the Unseen: Visual Common Sense for Semantic Placement
keio_smilab
PRO
0
68
[Journal club] Language-Embedded Gaussian Splats (LEGS): Incrementally Building Room-Scale Representations with a Mobile Robot
keio_smilab
PRO
0
68
[Journal club] RAM: Retrieval-Based Affordance Transfer for Generalizable Zero-Shot Robotic Manipulation
keio_smilab
PRO
1
87
[Journal club] Simplified State Space Layers for Sequence Modeling
keio_smilab
PRO
0
68
[Journal club] Detecting and Preventing Hallucinations in Large Vision Language Models
keio_smilab
PRO
1
97
[IROS24] Object Segmentation from Open-Vocabulary Manipulation Instructions Based on Optimal Transport Polygon Matching with Multimodal Foundation Models
keio_smilab
PRO
0
68
[IROS24] Learning-To-Rank Approach for Identifying Everyday Objects Using a Physical-World Search Engine
keio_smilab
PRO
0
120
Other Decks in Technology
See All in Technology
日本版とグローバル版のモバイルアプリ統合の開発の裏側と今後の展望
miichan
1
140
KnowledgeBaseDocuments APIでベクトルインデックス管理を自動化する
iidaxs
1
270
Work as an App Engineer
lycorp_recruit_jp
0
300
Amazon VPC Lattice 最新アップデート紹介 - PrivateLink も似たようなアップデートあったけど違いとは
bigmuramura
0
200
10分で学ぶKubernetesコンテナセキュリティ/10min-k8s-container-sec
mochizuki875
3
370
開発生産性向上! 育成を「改善」と捉えるエンジニア育成戦略
shoota
2
420
Working as a Server-side Engineer at LY Corporation
lycorp_recruit_jp
0
310
DUSt3R, MASt3R, MASt3R-SfM にみる3D基盤モデル
spatial_ai_network
2
200
Oracle Cloud Infrastructure:2024年12月度サービス・アップデート
oracle4engineer
PRO
1
230
watsonx.ai Dojo #5 ファインチューニングとInstructLAB
oniak3ibm
PRO
0
190
re:Invent 2024 Innovation Talks(NET201)で語られた大切なこと
shotashiratori
0
320
[Ruby] Develop a Morse Code Learning Gem & Beep from Strings
oguressive
1
180
Featured
See All Featured
Being A Developer After 40
akosma
87
590k
[RailsConf 2023] Rails as a piece of cake
palkan
53
5k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
29
900
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
169
50k
Become a Pro
speakerdeck
PRO
26
5k
KATA
mclloyd
29
14k
Build The Right Thing And Hit Your Dates
maggiecrowley
33
2.4k
Building an army of robots
kneath
302
44k
How to train your dragon (web standard)
notwaldorf
88
5.7k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
26
1.9k
Speed Design
sergeychernyshev
25
670
Optimizing for Happiness
mojombo
376
70k
Transcript
情報工学科 教授 杉浦孔明
[email protected]
慶應義塾大学理工学部 機械学習基礎 第8回 再帰型ニューラルネット
本講義の到達目標と今回の授業の狙い - - 9 本講義の到達目標 ▪ DNNの基礎理論と実装の関係を理解する ▪ 種々のDNNをコーディングできる 今回の授業の狙い
▪ 再帰型ニューラルネットの基礎を習得する ▪ 出席確認: K-LMS上の機械学習基礎のMainページへアクセス
再帰型ニューラルネット - - 10
系列データとは ▪ 順序を持った要素の集まり:「列」 ▪ 例 ▪ 時系列 ▪ 音声・音楽 ▪
自然言語 ▪ 塩基配列 - - 11 日本語・英語など 人工言語でない言語
系列データとは ▪ 順序を持った要素の集まり:「列」 ▪ 長さ がサンプルごとに違う ▪ 説明の都合上、インデックスを時刻と呼ぶ ▪ 扱いたい問題の例
▪ を考慮して から を 予測する ▪ を集約し潜在表現を作る - - 12 https://imagen.research.google/ 赤いコートをまとい,本を 読みながらラウンジチェア に座り,大森林の中にいる ハリネズミの写真 例えば文は時間とは関係ないが、 便宜上、時刻と呼ぶ 潜在表現 例えば文の意味が数値化 されたと考えれば良い
順伝播型ニューラルネット(FFNN)で系列データを扱う と何が問題か? ▪ 過去の情報を保持できない ▪ を逐次入力とした場合, 出力 は入力 の関数となり 過去の入力
は考慮されないため ▪ 可変長の系列データを扱うことができない ▪ を一括入力とした場合, 長さ をサンプル間で共通とする必要があるため FFNN - - 13 ※いくつかの仮定を置けばFFNN (系列全体入力)でも可能
再帰型ニューラルネット (Recurrent neural networks; RNNs) ▪ 隠れ層(中間層)に再帰構造をも たせる ▪ 過去の情報の保持が可能
▪ 可変長の系列データを扱うこと が可能 RNN - - 14
順伝播計算 ▪ 隠れ層 ▪ 出力層 - - 15 LSTM(後述)ではこの部分が複雑 になっている
入力層から隠れ層への重み 隠れ層から隠れ層 〃 隠れ層から出力層 〃
RNNを時間方向に展開 ▪ 各時刻で重みを共有した深いFFNNとみなすことが可能 … - - 16 …
RNNを時間方向に展開 ▪ 各時刻で重みを共有した深いFFNNとみなすことが可能 ▪ 入力層から隠れ層への重み ▪ 隠れ層から隠れ層 〃 各時刻で共通 ▪
隠れ層から出力層 〃 … … - - 17
順伝播計算(各要素) ▪ 隠れ層 ▪ 出力層 - - 18
CNNとRNNの違い 畳み込みニューラルネット(CNN) ▪ 画像データの特性に応じてデザインされたネットワーク ▪ 畳み込み層・プーリング層 ▪ 誤差逆伝播(backpropagation)を用いた勾配降下法による学習 再帰型ニューラルネット(recurrent neural
network, RNN) ▪ 系列データの特性に応じてデザインされたネットワーク ▪ 再帰構造を有する隠れ層 ▪ 通時的誤差逆伝播(backpropagation through time: BPTT)を 用いた勾配降下法による学習 - - 19
自己回帰的な予測を行う場合の問題 ▪ テスト時: 予測結果 を入力 として用いる ▪ 訓練時 : 上記を行うと連鎖的に誤差増大
▪ 学習の不安定化 ▪ 収束の遅れ … … - - 20 自己回帰的(autoregressive) =時刻tにおける出力が時点t以前の 出力に依存
Teacher Forcing ▪ 訓練時: 正解データ を入力 として用いる方法 ▪ 前述の問題を解決(訓練・テスト時の分布が異なるという問題あり) …
… - - 21
勾配降下法に基づくRNNの学習 通時的誤差逆伝播法(backpropagation through time: BPTT) 時間方向に展開したRNNに対して誤差逆伝播法を適用 各時刻での誤差の合計 の勾配を考える
- - 22 … …
誤差の(隠れ層から出力層への重みに関する)偏微分 - - 23 BPTT (1/5) h_{t,j}以外は0 出力層の 活性 活性化
関数
- - 24 BPTT (2/5) 誤差の(隠れ層から隠れ層への重みに関する)偏微分
- - 25 BPTT (3/5) 誤差の(入力層から隠れ層への重みに関する)偏微分
BPTT (4/5) - - 26 出力層のデルタの計算 現時刻への影響のみを考慮
BPTT (5/5) - - 27 隠れ層のデルタの計算 現時刻と1時刻先への影響を考慮
BPTT (5/5) - - 28 隠れ層のデルタの計算 現時刻と1時刻先への影響を考慮
再帰型ニューラルネット(発展) - - 32
RNNの問題点 - - 33 ▪ 逆伝播計算において、何度も 重みと活性化関数の微分を掛け 合わせるため、勾配消失・爆発 が起こりやすい ▪
RNNは深いFFNNと見なせる ↑深いFFNNでは勾配消失・ 爆発が深刻 ▪ (各時刻で重みを共有してい るためFFNNより深刻)
RNNの問題点 - - 34 ▪ 逆伝播計算において、何度も 重みと活性化関数の微分を掛け 合わせるため、勾配消失・爆発 が起こりやすい ▪
RNNは深いFFNNと見なせる ↑深いFFNNでは勾配消失・ 爆発が深刻 ▪ (各時刻で重みを共有してい るためFFNNより深刻) 単純なRNNは長い系列を不得意と するため実用性が低い 代わりにLSTMやトランス フォーマ(今後紹介)が台頭 単純RNNには10時刻以上の 長期的な記憶(long-term memory)が難しい
RNN / GRU / LSTM - - 35 RNN
これまでに説明してきたモデル Gated recurrent unit (GRU) [Cho+ 2014] LSTMを単純化した構造 Long short-term memory (LSTM) [Hochreiter+ 1997] GRUより知名度が高いが複雑
LSTM (long short-term memory, 長・短期記憶) [Hochreiter+ 1997] - - 36
▪ DNN時代より前に提案され、DNN時代に再注目された ▪ 短期と長期の記憶のバランスを調整可能 RNNの弱点を克服 ▪ 構造の特徴 ▪ メモリーセル:RNNの中間層のユニットの代わり ▪ ゲート機構
LSTMの構成 - - 37 ①入力ゲート(input gate) ②忘却ゲート(forget gate) ③出力ゲート(output gate)
④入力ノード(input node) ⑤メモリーセル(memory cell) →長期情報を保持 ⑥隠れ状態 Input node
LSTM ①入力ゲート - - 38 ①入力ゲート ▪ はシグモイド関数なので、 の各次元は0から1の値 ▪
入力ゲートの隠れ状態の次元数 を問題に合わせて決める ▪ RNNとの違い この部分が複雑化されている 入力 隠れ状態 (1時刻前) バイアス
LSTM ①入力ゲート - - 39 ①入力ゲート ▪ はシグモイド関数なので、 の各次元は0から1の値 ▪
入力ゲートの隠れ状態の次元数 を問題に合わせて決める ▪ 入力ゲートは現状情報の影響を 制御(後述) ▪ 例 ▪ 入力:1次元、隠れ状態:2 次元の場合の要素表現 入力 隠れ状態 (1時刻前) バイアス
LSTM ②忘却ゲートと③出力ゲート - - 40 ①入力ゲート ②忘却ゲート ③出力ゲート ▪ 数式上は②③と①は似ている
▪ 例 ▪ 入力:1次元、隠れ状態:2 次元の場合の要素表現 忘却ゲートは、過去情報をどれだけ キープするかに影響
LSTM ①入力ゲート②忘却ゲート③出力ゲートの概略 - - 41 ①入力ゲート ②忘却ゲート ③出力ゲート ▪ 数式上は②③と①は似ている
LSTM ④入力ノード - - 42 ①入力ゲート ②忘却ゲート ③出力ゲート ④入力ノード(-1から1の値)
LSTM ⑤メモリーセル - - 43 ▪ ①入力ゲート②忘却ゲート③出 力ゲート④入力ノード ▪ ⑤メモリーセル
アダマール積(Hadamard product):要素ごとの積
LSTM ⑤メモリーセルの概略図 - - 44 ▪ ①入力ゲート②忘却ゲート③出 力ゲート④入力ノード ▪ ⑤メモリーセル
1時刻前の記憶を 少し忘却 現状情報を少し取り 込む Input node
LSTM ⑥隠れ状態 - - 45 ▪ ①入力ゲート②忘却ゲート③出 力ゲート④入力ノード ▪ ⑤メモリーセル
▪ ⑥隠れ状態 ▪ 隠れ状態は-1から1の値 ▪ 出力ゲートは0から1 ▪ tanhは-1から1
LSTM 全体の概略図 - - 46 ▪ ①入力ゲート②忘却ゲート③出 力ゲート④入力ノード ▪ ⑤メモリーセル
▪ ⑥隠れ状態 Input node
エンコーダ・デコーダモデル 異なるデータへの変換を学習 End-to-end 学習 入力 (変換元)を符号化することで特徴量(潜在表現) を抽出
特徴量 を復号化することで出力 (変換先)を生成 - - 47 入力 出力 FFNN / CNN / RNN FFNN / CNN / RNN 目標 誤差 エンコーダ (符号化器) デコーダ (復号化器) 特徴量 (潜在表現)
エンコーダ・デコーダモデル RNNエンコーダとRNNデコーダの組み合わせ Sequence-to-sequence(Seq2Seq)学習 CNNエンコーダとRNNデコーダの組み合わせ Image-to-sequence(Image2Seq)学習 - - 48
入力 出力 FFNN / CNN / RNN FFNN / CNN / RNN 目標 誤差 エンコーダ (符号化器) デコーダ (復号化器) 特徴量 (潜在表現)
Sequence-to-sequence(Seq2Seq)学習 [Sutskever+ 2014] - - 49 応用例 翻訳 /
文書要約 / 対話 / 質問応答 仕組み RNNエンコーダで翻訳元言語の文(例:英語)を読み込む RNNエンコーダの隠れ層の最終状態をRNNデコーダに入れる RNNデコーダで翻訳先言語の 文(例:フランス語)を 生成する
本講義全体の参考図書 - - 50 ▪ ★機械学習スタートアップシリーズ これならわかる深層学習入門 瀧雅人著 講談 社(本講義では、異なる表記を用いることがあるので注意)
▪ ★Dive into Deep Learning (https://d2l.ai/) ▪ 深層学習 改訂第2版 (機械学習プロフェッショナルシリーズ) 岡谷貴之著 講談社 ▪ ディープラーニングを支える技術 岡野原大輔著 技術評論社 ▪ 画像認識 (機械学習プロフェッショナルシリーズ) 原田達也著 講談社 ▪ 深層学習による自然言語処理 (機械学習プロフェッショナルシリーズ) 坪井祐太、 海野裕也、鈴木潤 著、講談社 ▪ 東京大学工学教程 情報工学 機械学習 中川 裕志著、東京大学工学教程編纂委員会 編 丸善出版 ▪ パターン認識と機械学習 上・下 C.M. ビショップ著 丸善出版
参考文献 - - 51 1. Hochreiter, S., & Schmidhuber, J.
(1997). Long short-term memory. Neural computation, 9(8), 1735-1780. 2. Cho, K., Van Merriënboer, B., Bahdanau, D., & Bengio, Y. (2014). On the properties of neural machine translation: Encoder-decoder approaches. arXiv preprint arXiv:1409.1259.
実習 - - 52
実習 - - 53 実習の目的 ▪ コーディングと基礎理論の関係を学ぶ 実習課題の場所 ▪ K-LMSから辿る
実習に関する質問 ▪ ChatGPTに説明させる ▪ 教科書で調べる・検索・周囲と相談(私語禁止ではありません) ▪ 上記で解消しなければ挙手→TAが対応
付録 - - 54
GRU [Cho+ 2014] - - 55 GRU(gated recurrent unit, ゲー
ト付き回帰型ユニット) ▪ 短期と長期の記憶のバランスを 調整可能 ▪ GRUの構成 ① Resetゲート ② Updateゲート ③ Candidate hidden state(隠れ 状態候補) ④ 隠れ状態(hidden state) ▪ RNNとの違い この部分が複雑化されている
GRU ①resetゲート - - 56 ①Resetゲート:短期的関係 ▪ はシグモイド関数なので、 の各次元は0から1の値 ▪
resetゲートの次元数=隠れ状態 の次元数 ▪ 開発者は隠れ状態の次元数を 決める ▪ RNNとの違い この部分が複雑化されている 入力 隠れ状態 (1時刻前) バイアス
GRU ①resetゲートの要素表現の例 - - 57 ①Resetゲート:短期的関係 ▪ はシグモイド関数なので、 の各次元は0から1の値 ▪
resetゲートの次元数=隠れ状態 の次元数 ▪ 開発者は隠れ状態の次元数を 決める ▪ 例 ▪ 入力:1次元、隠れ状態:2 次元の場合の要素表現 入力 隠れ状態 (1時刻前) バイアス
GRU ②Updateゲート - - 58 ①Resetゲート:短期的関係 ②Updateゲート:長期的関係 ▪ 数式上はresetゲートと似ている ▪
0から1の値をとる ▪ Updateゲートの次元数=隠れ状 態の次元数 ▪ 例 ▪ 入力:1次元、隠れ状態:2 次元の場合の要素表現
GRU ResetゲートとUpdateゲートの概略図 - - 59 ①Resetゲート:短期的関係 ②Updateゲート:長期的関係 ▪ 数式上はresetゲートと似ている ▪
0から1の値をとる ▪ Updateゲートの次元数=隠れ状 態の次元数 https://d2l.ai/chapter_recurrent-modern/gru.html
GRU ③Candidate hidden state - - 60 ①Resetゲート:短期的関係 ②Updateゲート:長期的関係 ③隠れ状態候補(-1から1の値)
アダマール積(Hadamard product):要素ごとの積 0なら は考慮されない
GRU ③Candidate hidden stateの概略図 - - 61 ①Resetゲート:短期的関係 ②Updateゲート:長期的関係 ③隠れ状態候補(-1から1の値)
アダマール積(Hadamard product):要素ごとの積
GRU ④隠れ状態 - - 62 ①Resetゲート:短期的関係 ②Updateゲート:長期的関係 ③隠れ状態候補 ④隠れ状態 ▪
Resetゲートとupdateゲートの バランスで隠れ状態を制御する ← の指数移動平均(忘却できる) 1なら は考慮されない
【復習】RMSprop 指数移動平均の利用 - - 63 ▪ RMSpropの更新則 状態変数を1つ導入 ▪ 指数移動平均(exponential
moving average) ↑ρ割をキープし、(1-ρ)割を新しい 値に ρ=0.99 ρ=0 ρ=0.9
GRU 全体の概略図 - - 64 ①Resetゲート:短期的関係 ②Updateゲート:長期的関係 ③隠れ状態候補 ④隠れ状態 ←
の指数移動平均(忘却できる)
単純なRNN ▪ FFNNの隠れ層(中間層)に再帰構造をもたせる ▪ 出力 は入力 の関数 ▪ 過去の情報の保持が可能 ▪
可変長の系列データを扱うことが可能 FFNN RNN - - 65