Materi
Untuk jaringan Z1 = XW1 + b1, H = ReLU(Z1), Ŷ = HW2 + b2, dengan loss MSE rata-rata atas n sampel, backpropagation berjalan mundur dalam lima langkah. Pertama, gradien terhadap keluaran: dŶ = 2(Ŷ − Y)/n. Kedua, lapisan keluaran: dW2 = Hᵀ·dŶ dan db2 = jumlah dŶ per kolom. Ketiga, kirim gradien ke lapis tersembunyi: dH = dŶ·W2ᵀ. Keempat, lewati ReLU: dZ1 = dH dikali (Z1 > 0), karena turunan ReLU 1 untuk z positif dan 0 selainnya. Kelima, lapisan pertama: dW1 = Xᵀ·dZ1 dan db1 = jumlah dZ1 per kolom.
Pola bentuknya selalu sama: gradien bobot punya bentuk yang persis sama dengan bobotnya, sehingga W − η·dW bisa langsung dihitung. Transpos (.T) muncul karena gradien harus dijumlahkan atas semua sampel. User Guide scikit-learn meringkas proses yang sama: setelah loss dihitung, backward pass merambatkannya dari lapisan keluaran ke lapisan sebelumnya dan memberi setiap bobot nilai pembaruan yang menurunkan loss.
import numpy as np
# satu sampel, satu neuron tersembunyi, tanpa bias
x = np.array([[3.0]]); y = np.array([[1.0]])
w1 = np.array([[0.5]]); w2 = np.array([[2.0]])
z1 = x @ w1; h = np.maximum(0, z1); y_topi = h @ w2 # 1.5, 1.5, 3.0
d_y = 2 * (y_topi - y) # 4.0
d_w2 = h.T @ d_y # 6.0
d_z1 = (d_y @ w2.T) * (z1 > 0) # 8.0
d_w1 = x.T @ d_z1 # 24.0