Lompat ke konten utama
←

Jaringan Saraf Tiruan Dasar dengan Python

Pelajaran 12 dari 22

Belajar: gradient descent, backpropagation, dan optimizer

Optimizer: momentum dan Adam

Setelah pelajaran ini kamu bisa menghitung satu langkah pembaruan bobot dengan momentum dan dengan Adam, termasuk koreksi bias, dan menjelaskan kenapa langkah pertama Adam tidak bergantung pada besar gradien.

±14 menitDiperiksa 28 Sep 2026

Materi

Gradient descent biasa hanya memakai gradien saat ini. Pada loss yang berbentuk lembah sempit, langkahnya bolak-balik melintasi dinding lembah dan maju pelan di sepanjang dasarnya; Deep Learning bab 8.3.2 memakai gambaran lembah ini untuk memperkenalkan momentum. Dive into Deep Learning §12.6 menulisnya sebagai rata-rata bocor (leaky average) gradien: v_t = β·v_(t−1) + g_t, lalu w ← w − η·v_t, dengan v₀ = 0 dan β di antara 0 dan 1. v disebut kecepatan: gradien yang arahnya konsisten saling menumpuk, gradien yang berganti tanda saling meredam.

Adam (d2l §12.10, Deep Learning bab 8.5.3) menyimpan dua rata-rata bergerak untuk setiap bobot: v_t = β₁·v_(t−1) + (1 − β₁)·g_t untuk arah gradien dan s_t = β₂·s_(t−1) + (1 − β₂)·g_t² untuk besarnya. Keduanya dimulai dari 0, jadi di langkah-langkah awal nilainya condong terlalu kecil dan dikoreksi: v̂_t = v_t / (1 − β₁ᵗ) dan ŝ_t = s_t / (1 − β₂ᵗ), dengan t dihitung mulai 1. Pembaruannya w ← w − η·v̂_t / (√ŝ_t + ε).

Pembagian dengan √ŝ memberi setiap bobot besar langkahnya sendiri, sehingga bobot bergradien kecil tidak tertinggal. Nilai yang umum dipakai, dan juga bawaan MLPClassifier scikit-learn, adalah β₁ = 0,9, β₂ = 0,999, dan epsilon 10⁻⁸; η diatur learning_rate_init. Parameter momentum di MLPClassifier (bawaan 0,9) hanya dipakai solver sgd.

# momentum pada f(w) = (w - 4) ** 2, beta 0.5, eta 0.1, mulai dari w = 0
w, v = 0.0, 0.0
for t in range(3):
    g = 2 * (w - 4)
    v = 0.5 * v + g
    w = w - 0.1 * v
    print(round(v, 2), round(w, 3))   # -8.0 0.8 | -10.4 1.84 | -9.52 2.792

Latihan

0/3 lulus

Jawaban diperiksa di server. Lulus berarti kamu memahami contohnya, bukan penilaian seluruh pekerjaanmu.

Latihan 1 dari 3

Gradient descent dengan momentum pada f(w) = (w − 3)², turunannya 2(w − 3). Mulai dari w = 0 dan v = 0, dengan β = 0,9 dan learning rate 0,1. Berapa nilai w setelah dua langkah? Tulis dengan dua desimal.

Latihan 3 dari 3

Adam dengan learning rate 0,01 menjalankan langkah pertamanya (t = 1). Bobot A punya gradien 500, bobot B punya gradien 0,002. Seberapa jauh masing-masing bergeser?

Pilih satu jawaban

Catatanmu

Memuat catatan…

tersimpan otomatis, ikut tercetak · 0/4.000

Luluskan semua latihan dulu untuk menandai pelajaran ini selesai.

Lanjutkan ke