←前一篇 後一篇→
前兩篇紹介微分和梯度, 閣有 in 按怎收縮(convergence), 去揣著上細值梯度法, 是為著這篇做準備个: 透過梯度法, 共損失函式收縮到接近 0.
若按呢生, 伊的流程是:
- 先決定欲偌濟神經元, 幾棧
- 先予權重 (W) 和 B 一个初值. 普通這是用隨機 (random) 方式來起頭
- 用細批个資料, 來算出伊的損失函式 (loss function) 值.
- 計算損失函式佇彼的值的梯度, 伊會顯示行佗一个方向, 損失函式會減上濟
- 共權重(W) 換新算出來, 閣轉去 3, 4, 5, 重複運算, 一直到滿意的答案, 抑就是損失函式足倚零足倚零, 到咱會接受个戶橂.
下面, 咱若看若參考: two_layer_net.py
先決定欲偌濟神經元, 幾棧, 起頭的值
two_layer_net.py 內底, __init__() 就是定義這个神經網路: 伊是兩棧ê神經網路:咱直接揤頂仔彼咧連結, 去看 __init__(), 伊用 numpy ê randomn 函式來生出一个陣列, numpy 个簡介, 會用參考遮. 伊个大細, 是呼(khoo)个人, 佇呼 ê 時陣交代落來个.
伊會用 Python 字典 (dictionary) 這種資料型態.
因為 x 是輸入, 佇 __init__() 是定義 W1, b1, W2, b2.
input_size 是 x 的數目. hidden_size 是中方彼棧个數目。
W1 个大細是(橫, 直) (input_size, hidden_size) 个陣列.
W2 个大細是(橫, 直) (hidden_size, output_size) 个陣列.
這就是頂懸講个第二步.
計算損失函式
計算損失函式進前, 愛先根據一組輸入,來算出輸出, 這是進前介紹過个 predict(), 也就是真正行這个 predict() 函式:
就是這个 函式:
這是頂懸个第三步.