梯度下降

Python 深度學習入門

Dan Becker

Data Scientist and contributor to Keras and TensorFlow libraries

梯度下降

ch2_2.003.png

Python 深度學習入門

梯度下降

ch2_2.004.png

Python 深度學習入門

梯度下降

ch2_2.005.png

Python 深度學習入門

梯度下降

ch2_2.006.png

Python 深度學習入門

梯度下降

ch2_2.008.png

Python 深度學習入門

梯度下降

ch2_2.009.png

Python 深度學習入門

梯度下降

ch2_2.010.png

Python 深度學習入門

梯度下降

ch2_2.011.png

Python 深度學習入門

梯度下降

ch2_2.012.png

Python 深度學習入門

梯度下降

ch2_2.013.png

Python 深度學習入門

梯度下降

ch2_2.014.png

Python 深度學習入門

梯度下降

  • 若斜率為正:
    • 逆著斜率走會往較小的數移動
    • 以目前值減去斜率
    • 一步太大可能偏離目標
  • 解法:學習率
    • 用「學習率 * 斜率」從每個權重中相減更新
Python 深度學習入門

斜率計算範例

ch2_2.022.png

  • 計算某個權重的斜率,需要相乘:
    • 損失函式對我們餵入之節點值的斜率
    • 餵入該權重之節點的值
    • 啟用函式對我們餵入之值的斜率
Python 深度學習入門

斜率計算範例

ch2_2.028.png

  • 計算某個權重的斜率,需要相乘:
    • 損失函式對我們餵入之節點值的斜率
    • 餵入該權重之節點的值
    • 啟用函式對我們餵入之值的斜率
Python 深度學習入門

斜率計算範例

ch2_2.029.png

  • 均方損失對預測的斜率:
    • 2 (Predicted Value - Actual Value) = 2 Error
    • 2 * -4
Python 深度學習入門

斜率計算範例

ch2_2.033.png

  • 計算某個權重的斜率,需要相乘:
    • 損失函式對我們餵入之節點值的斜率
    • 餵入該權重之節點的值
    • 啟用函式對我們餵入之值的斜率
Python 深度學習入門

斜率計算範例

ch2_2.035.png

  • 計算某個權重的斜率,需要相乘:
    • 損失函式對我們餵入之節點值的斜率
    • 餵入該權重之節點的值
    • 啟用函式對我們餵入之值的斜率
Python 深度學習入門

斜率計算範例

ch2_2.037.png

  • 計算某個權重的斜率,需要相乘:
    • 損失函式對我們餵入之節點值的斜率
    • 餵入該權重之節點的值
    • 啟用函式對我們餵入之值的斜率
Python 深度學習入門

斜率計算範例

ch2_2.038.png

  • 計算某個權重的斜率,需要相乘:
    • 損失函式對我們餵入之節點值的斜率
    • 餵入該權重之節點的值
    • 啟用函式對我們餵入之值的斜率
Python 深度學習入門

斜率計算範例

ch2_2.044.png

  • 2 * -4 * 3
  • -24
  • 若學習率為 0.01,新的權重為
  • 2 - 0.01(-24) = 2.24
Python 深度學習入門

含兩個輸入影響預測的網路

ch2_2.045.png

Python 深度學習入門

計算斜率並更新權重的程式碼

import numpy as np
weights = np.array([1, 2])
input_data = np.array([3, 4])
target = 6
learning_rate = 0.01
preds = (weights * input_data).sum()
error = preds - target

print(error)
5
Python 深度學習入門

計算斜率並更新權重的程式碼

gradient = 2 * input_data * error

gradient
array([30, 40])
weights_updated = weights - learning_rate * gradient
preds_updated = (weights_updated * input_data).sum()
error_updated = preds_updated - target

print(error_updated)
2.5
Python 深度學習入門

一起來練習吧!

Python 深度學習入門

Preparing Video For Download...