Contenu connexe
Similaire à 深層学習による自然言語処理 第2章 ニューラルネットの基礎 (6)
深層学習による自然言語処理 第2章 ニューラルネットの基礎
- 4. 教師あり学習
• 訓練データの予測と正解から求まる損失関数の
最小化
• 損失関数
• 交差エントロピー損失
𝑙 𝜃 𝒙 𝑛 , 𝑦 𝑛 = −log
exp(𝑓𝜃 𝒙(𝑛), 𝑦(𝑛) )
𝑦∈𝑌 exp(𝑓𝜃 𝒙(𝑛), 𝑦 )
• ソフトマックスで表された確率モデルの負の対数尤度
• ロジスティック回帰で用いられる
• ヒンジ損失
𝑙 𝜃 𝒙 𝑛 , 𝑦 𝑛 = max(0, 1 − 𝑓𝜃 𝒙 𝑛 , 𝑦 𝑛 + max
𝑦∈𝑌∖𝑦 𝑛
𝑓𝜃 𝒙 𝑛 , 𝑦 )
• 正解𝑦 𝑛
と, それを除いてスコアを最大にする𝑦を利用
• SVMで用いられる
• どちらも0-1損失関数の上界
2019/1/19 NLP/CV 本田志温 4
- 6. 重みの更新
• ミニバッチ学習で損失関数𝐿 𝜃 を最小化
𝜃 ← 𝜃 − 𝜂𝜕𝐿 𝜃
𝜕𝐿 𝜃 =
1
|𝐵|
𝑚∈𝐵
𝜕𝑙 𝜃(𝒙 𝑚 , 𝑦(𝑚))
• バッチ学習
• 一度の更新に全データの損失を使う
• データが大きいときに時間がかかる
• 確率的勾配降下法
• ランダムに選んだデータで損失
を計算し重み更新
• 分散が大きいと収束しにくい
• ミニバッチ学習はいいとこ取り
2019/1/19 NLP/CV 本田志温 6
- 7. 誤差逆伝播
• 各層で重みを更新するため勾配𝜕𝐿 𝜃 を入力層
に向かって伝搬させる必要がある
• 誤差逆伝播
• 計算グラフに従って
勾配を後ろに伝えて
いく
→連鎖律を使う長い
式が不要!
• 連鎖律を使った微分
は教科書を見てくだ
さい
• 層が深くなると勾配が大きく/小さくなりすぎて後
ろに伝わらなくなる(勾配爆発/消失問題)
2019/1/19 NLP/CV 本田志温 7
- 8. RNN
• ループ構造を持ち, 可変長の系列入力に対応
• 入力: 前の層の出力と前の時刻の隠れ状態
• 誤差逆伝播は時間方向(BPTT)
2019/1/19 NLP/CV 本田志温 8
http://colah.github.io/posts/2015-08-Understanding-LSTMs/
𝒉 𝑡
(𝑙)
= 𝑎(𝑙) 𝑾(𝑙)
𝒉 𝑡
(𝑙−1)
𝒉 𝑡−1
(𝑙)
+ 𝒃(𝑙)
- 10. 勾配消失・勾配爆発
• ResNet
• 残差ブロックで勾配消失を防ぐ
• 1000層以上の学習を実現!
𝒉(𝑙) = 𝑓(𝑙) 𝒉(𝑙−1) + 𝒉(𝑙−1)
• ゲート付き
• 残差ブロックの重み付き版
𝒉(𝑙) = 𝒈(𝑓)⨀𝑓(𝑙) 𝒉(𝑙−1) + 𝒈(ℎ) ⨀ 𝒉(𝑙−1)
• 重み𝒈もNNで学習する
𝒈(𝒉) = 𝑎 𝑔
(𝑾(𝑔)
𝒉 + 𝒃(𝑔)
)
2019/1/19 NLP/CV 本田志温 10
- 12. GRU
• 記憶セルを使わない
• reset gateで前時刻の隠れ状態を減衰
• update gateで隠れ状態の更新率を調整
• LSTMより計算量・メモリ使用量が小さい
2019/1/19 NLP/CV 本田志温 12
update gatereset gate
- 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.