実践でのバックプロパゲーション

Pythonで学ぶDeep Learning入門

Dan Becker

Data Scientist and contributor to Keras and TensorFlow libraries

バックプロパゲーション

ch2_4_v2.002.png

Pythonで学ぶDeep Learning入門

バックプロパゲーション

ch2_4_v2.003.png

Pythonで学ぶDeep Learning入門

バックプロパゲーション

ch2_4_v2.004.png

Pythonで学ぶDeep Learning入門

バックプロパゲーション

ch2_4_v2.010.png

Pythonで学ぶDeep Learning入門

任意の重みに対する勾配の計算

  • 重みの勾配は次の積
    1. その重みに入るノードの値
    2. 受け側ノードの活性化関数の傾き
    3. 出力ノードに対する損失関数の傾き
Pythonで学ぶDeep Learning入門

バックプロパゲーション

ch2_4_v2.016.png

Pythonで学ぶDeep Learning入門

バックプロパゲーション

ch2_4_v2.017.png

Pythonで学ぶDeep Learning入門

バックプロパゲーション

ch2_4_v2.018.png

Pythonで学ぶDeep Learning入門

バックプロパゲーション

ch2_4_v2.019.png

Pythonで学ぶDeep Learning入門

バックプロパゲーション

ch2_4_v2.020.png

Pythonで学ぶDeep Learning入門

バックプロパゲーション

ch2_4_v2.021.png

Pythonで学ぶDeep Learning入門

バックプロパゲーション:要点

  • 重みをランダムに初期化
  • 順伝播で予測を計算
  • 逆伝播で各重みに対する損失の勾配を計算
  • 勾配に学習率を掛け、現在の重みから差し引く
  • 平坦になるまでこのサイクルを繰り返す
Pythonで学ぶDeep Learning入門

確率的勾配降下法

  • データの一部(バッチ)で勾配を計算するのが一般的
  • 次の更新は別のバッチで計算
  • 全データを使い切ったら最初からやり直す
  • 学習データを1周することをエポックと呼ぶ
  • 1バッチずつ勾配を計算する方法:確率的勾配降下法(SGD)
Pythonで学ぶDeep Learning入門

演習に進みましょう!

Pythonで学ぶDeep Learning入門

Preparing Video For Download...