Materi
Forward pass adalah perhitungan dari masukan ke keluaran, lapis demi lapis. Dive into Deep Learning §5.1 menuliskannya untuk satu lapis tersembunyi: H = σ(XW⁽¹⁾ + b⁽¹⁾), lalu O = HW⁽²⁾ + b⁽²⁾. Di sini σ adalah aktivasi seperti ReLU, dan O adalah skor keluaran. Untuk klasifikasi, softmax dikenakan pada setiap baris O sehingga setiap sampel punya deret peluangnya sendiri.
Softmax untuk matriks harus dihitung per baris. Nilai maksimum dan jumlah diambil dengan axis=1 dan keepdims=True: axis=1 berarti menyusuri kolom di dalam setiap baris, dan keepdims mempertahankan bentuk (n, 1) supaya pembagiannya ter-broadcast ke baris yang benar. Kelas tebakan setiap sampel adalah np.argmax(P, axis=1).
import numpy as np
X = np.array([[2.0, 0.0]])
W1 = np.array([[1.0, -1.0], [0.0, 1.0]]); b1 = np.array([0.0, 0.5])
W2 = np.array([[0.5], [1.0]]); b2 = np.array([0.1])
H = np.maximum(0, X @ W1 + b1) # [[2. 0.]] (neuron kedua: -2 + 0.5 < 0)
O = H @ W2 + b2 # [[1.1]]
print(H, O)Forward pass tidak mengubah bobot sama sekali; ia hanya menghitung. Pelatihan, yang dibahas di modul berikutnya, memakai hasil antara forward pass (Z, H, dan O) untuk menghitung gradien.