Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

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

1,200 views

Published on

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

Published in: Data & Analytics
  • Be the first to comment

深層学習による自然言語処理 第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.

×