Materi
Melatih jaringan berarti mencari bobot yang membuat loss sekecil mungkin. Gradient descent melakukannya dengan langkah kecil berulang: hitung turunan (gradien) loss terhadap setiap bobot, lalu geser bobot ke arah yang berlawanan dengan gradien. User Guide scikit-learn menulis aturannya W ← W − ε∇Loss, dengan ε learning rate, bilangan positif yang mengatur besar langkah.
Gradien menunjuk arah loss naik paling cepat, jadi mengurangkannya menurunkan loss. Dive into Deep Learning §12.3 menunjukkan dua akibat pilihan learning rate. Terlalu kecil: bobot bergerak sangat lambat dan setelah puluhan langkah masih jauh dari minimum. Terlalu besar: langkahnya melompati minimum, dan nilainya bisa berayun makin jauh lalu meledak.
Di MLPClassifier dan MLPRegressor, learning rate awal diatur dengan learning_rate_init (bawaan 0,001) dan hanya dipakai solver sgd dan adam. Solver lbfgs mengatur langkahnya sendiri. max_iter membatasi banyak iterasi; untuk sgd dan adam, satu iterasi adalah satu epoch, yaitu satu kali melewati seluruh data latih.
# f(w) = (w - 4) ** 2, turunannya 2 * (w - 4), minimum di w = 4
w = 10.0
for langkah in range(3):
w = w - 0.25 * 2 * (w - 4)
print(round(w, 3)) # 7.0, 5.5, 4.75