Ce diaporama a bien été signalé.
Nous utilisons votre profil LinkedIn et vos données d’activité pour vous proposer des publicités personnalisées et pertinentes. Vous pouvez changer vos préférences de publicités à tout moment.

深層学習による自然言語処理 第2章 ニューラルネットの基礎

1 318 vues

Publié le

深層学習による自然言語処理 第2章 ニューラルネットの基礎
NLPaper Challenge 2019/01/19

Publié dans : Données & analyses
  • Soyez le premier à commenter

深層学習による自然言語処理 第2章 ニューラルネットの基礎

  1. 1. 深層学習による自然言語処理 第2章 ニューラルネットの基礎 東京大学大学院 情報理工学系研究科 M1 本田志温
  2. 2. 自己紹介 • 医学系の研究室でAI創薬をしています • NLP/CVを自主的に勉強中 • SFと神経科学が好き • 勉強したことを発信しています! • @shion_honda (#NowReadingで論文紹介) • @shionhonda (深層強化学習まとめなど) • @shionhonda (AlphaGoなど) • 趣味: 音楽鑑賞, 料理, 旅行, サッカー, 水泳など 2019/1/19 NLP/CV 本田志温 2
  3. 3. 概要 • ニューラルネットの共通知識 • RNN • RNN/双方向RNN • LSTM/GRU • Tree-RNN • 1D-CNN 2019/1/19 NLP/CV 本田志温 3
  4. 4. 教師あり学習 • 訓練データの予測と正解から求まる損失関数の 最小化 • 損失関数 • 交差エントロピー損失 𝑙 𝜃 𝒙 𝑛 , 𝑦 𝑛 = −log exp(𝑓𝜃 𝒙(𝑛), 𝑦(𝑛) ) 𝑦∈𝑌 exp(𝑓𝜃 𝒙(𝑛), 𝑦 ) • ソフトマックスで表された確率モデルの負の対数尤度 • ロジスティック回帰で用いられる • ヒンジ損失 𝑙 𝜃 𝒙 𝑛 , 𝑦 𝑛 = max(0, 1 − 𝑓𝜃 𝒙 𝑛 , 𝑦 𝑛 + max 𝑦∈𝑌∖𝑦 𝑛 𝑓𝜃 𝒙 𝑛 , 𝑦 ) • 正解𝑦 𝑛 と, それを除いてスコアを最大にする𝑦を利用 • SVMで用いられる • どちらも0-1損失関数の上界 2019/1/19 NLP/CV 本田志温 4
  5. 5. 各レイヤでの処理 • 順伝播型ニューラルネット 𝒉(𝑙) = 𝑎 𝑙 𝑾 𝑙 𝒉 𝑙−1 + 𝒃 𝑙 𝒉(0) = 𝒙 • 活性化関数𝑎 2019/1/19 NLP/CV 本田志温 5
  6. 6. 重みの更新 • ミニバッチ学習で損失関数𝐿 𝜃 を最小化 𝜃 ← 𝜃 − 𝜂𝜕𝐿 𝜃 𝜕𝐿 𝜃 = 1 |𝐵| 𝑚∈𝐵 𝜕𝑙 𝜃(𝒙 𝑚 , 𝑦(𝑚)) • バッチ学習 • 一度の更新に全データの損失を使う • データが大きいときに時間がかかる • 確率的勾配降下法 • ランダムに選んだデータで損失 を計算し重み更新 • 分散が大きいと収束しにくい • ミニバッチ学習はいいとこ取り 2019/1/19 NLP/CV 本田志温 6
  7. 7. 誤差逆伝播 • 各層で重みを更新するため勾配𝜕𝐿 𝜃 を入力層 に向かって伝搬させる必要がある • 誤差逆伝播 • 計算グラフに従って 勾配を後ろに伝えて いく →連鎖律を使う長い 式が不要! • 連鎖律を使った微分 は教科書を見てくだ さい • 層が深くなると勾配が大きく/小さくなりすぎて後 ろに伝わらなくなる(勾配爆発/消失問題) 2019/1/19 NLP/CV 本田志温 7
  8. 8. RNN • ループ構造を持ち, 可変長の系列入力に対応 • 入力: 前の層の出力と前の時刻の隠れ状態 • 誤差逆伝播は時間方向(BPTT) 2019/1/19 NLP/CV 本田志温 8 http://colah.github.io/posts/2015-08-Understanding-LSTMs/ 𝒉 𝑡 (𝑙) = 𝑎(𝑙) 𝑾(𝑙) 𝒉 𝑡 (𝑙−1) 𝒉 𝑡−1 (𝑙) + 𝒃(𝑙)
  9. 9. 双方向RNN • 入力: 前の層の出力と前後の時刻の隠れ状態 2019/1/19 NLP/CV 本田志温 9 2つ合わせて Bidirectional RNN 𝒉 𝑡 (𝑙) = 𝑎(𝑙) 𝑾(𝑙) 𝒉 𝑡 (𝑙−1) 𝒉 𝑡 (𝑙−1) 𝒉 𝑡−1 (𝑙) + 𝒃(𝑙)
  10. 10. 勾配消失・勾配爆発 • ResNet • 残差ブロックで勾配消失を防ぐ • 1000層以上の学習を実現! 𝒉(𝑙) = 𝑓(𝑙) 𝒉(𝑙−1) + 𝒉(𝑙−1) • ゲート付き • 残差ブロックの重み付き版 𝒉(𝑙) = 𝒈(𝑓)⨀𝑓(𝑙) 𝒉(𝑙−1) + 𝒈(ℎ) ⨀ 𝒉(𝑙−1) • 重み𝒈もNNで学習する 𝒈(𝒉) = 𝑎 𝑔 (𝑾(𝑔) 𝒉 + 𝒃(𝑔) ) 2019/1/19 NLP/CV 本田志温 10
  11. 11. LSTM • 隠れ状態と別に記憶セルを定義 • 様々なバリエーションがある • Peeky • Attention(第5章) 2019/1/19 NLP/CV 本田志温 11 記憶セルc 隠れ状態h input gate output gate forget gate
  12. 12. GRU • 記憶セルを使わない • reset gateで前時刻の隠れ状態を減衰 • update gateで隠れ状態の更新率を調整 • LSTMより計算量・メモリ使用量が小さい 2019/1/19 NLP/CV 本田志温 12 update gatereset gate
  13. 13. Tree-RNN • recursive neural network • 分岐数を固定した木構造 • 葉ノードからルートノードに向かって順に隠れ状態 を計算 • 文は構文解析により文法木構造に変換できる 2019/1/19 NLP/CV 本田志温 13
  14. 14. 1D-CNN • 1次元のフィルタを時間方向に畳み込むCNN • CNNと同様に定義できるもの • パディング(サイズ調整に必要) • ストライド • プーリング • 特徴マップ • RNNと違って並列化しやすい • WaveGANで使われている 2019/1/19 NLP/CV 本田志温 14
  15. 15. まとめ • RNNはループ構造を持ち, 可変長の系列入力を 扱うことができる • より長い系列に対応するため, LSTMやGRUな どのゲート付きRNNが考案されている • DeepなNLPではLSTMが使われることが多い • (しかし最近はTransformerが主流) 2019/1/19 NLP/CV 本田志温 15 2層のBiLSTM
  16. 16. 参考文献 2019/1/19 NLP/CV 本田志温 16 • 坪井 他, 深層学習による自然言語処理, 講談社, 2017. • http://colah.github.io/posts/2015-08-Understanding-LSTMs/ • 斎藤 他, ゼロから作るDeep Learning 2 自然言語処理編, O’Reilly, 2018. • Devlin et al., “BERT: Pre-training of Deep Bidirectional Transformers for Language Understanding”, arXiv, 2018.

×