Modul 5: Backpropagation
Bagaimana Model "Belajar" dari Kesalahannya Sendiri
📉 Menuruni Gunung Error (Gradient Descent)
Di Modul 4, kita sudah tahu kita berada di "gunung error".
Tujuan kita adalah mencapai lembah terdalam (error minimum).
Analogi Pendaki Buta
Bayangkan kamu ada di puncak gunung malam hari tanpa senter.
Gimana caranya turun? Kamu meraba tanah dengan kakimu.
Jika tanah miring ke bawah ke arah kanan, kamu melangkah ke kanan.
🧮 Matematika di Balik Layar
Dalam matematika, "kemiringan tanah" itu disebut Gradien (turunan/derivative).
Kita menghitung gradien dari Cost Function ($J$) terhadap setiap bobot ($w$).
Rumus Update Bobot
Setelah tahu arah kemiringan ($\frac{\partial J}{\partial w}$), kita melangkah *berlawanan* arah
dengan
gradien (karena kita ingin turun, bukan naik).
$$ w_{baru} = w_{lama} - \alpha \frac{\partial J}{\partial w} $$
$\alpha$ (alpha) adalah Learning Rate. Ini menentukan seberapa besar langkah
kaki kita.
- Jika $\alpha$ terlalu kecil: Turunnya lama sekali.
- Jika $\alpha$ terlalu besar: Kita mungkin melompat ke seberang lembah dan malah naik.
Contoh Perhitungan:
Langkah Kaki Menuruni Gunung
Misalkan kita punya satu bobot $w$ yang ingin diperbaiki.
- Bobot Saat Ini ($w_{lama}$): 2.5
- Learning Rate ($\alpha$): 0.1 (Langkah kecil hati-hati)
- Gradien ($\frac{\partial J}{\partial w}$): 4.0 (Kemiringan tajam ke
atas)
Kita ingin turun, jadi kita harus gerak berlawanan arah gradien (kurangi bobot).
$$ w_{baru} = 2.5 - (0.1 \times 4.0) $$
$$ w_{baru} = 2.5 - 0.4 $$
$$ w_{baru} = 2.1 $$
Hasil: Bobot berkurang dari 2.5 menjadi 2.1. Kita telah melangkah "turun"
mendekati lembah minimum.
🔗 Chain Rule (Aturan Rantai)
Masalahnya: Bagaimana cara menghitung gradien $\frac{\partial J}{\partial w}$ untuk bobot di
layer awal?
Padahal bobot itu jauh sekali dari output errornya.
Di sinilah keajaiban Kalkulus bernama Chain Rule bekerja.
Kita menghitung pengaruh error secara mundur, dari output -> hidden -> input.
Itulah kenapa disebut Backpropagation (Perambatan Mundur).
$$ \frac{\partial J}{\partial w^{[1]}} = \frac{\partial J}{\partial \hat{y}} \cdot
\frac{\partial
\hat{y}}{\partial z^{[2]}} \cdot \frac{\partial z^{[2]}}{\partial a^{[1]}} \cdot \frac{\partial
a^{[1]}}{\partial z^{[1]}} \cdot \frac{\partial z^{[1]}}{\partial w^{[1]}} $$
Intinya: "Kesalahan total adalah akibat dari kesalahan di layer output, yang
disebabkan oleh layer sebelumnya, yang disebabkan oleh layer sebelumnya lagi..."