Apa itu optimizer dalam deep learning?
Optimizer adalah aturan yang mengubah gradient menjadi pembaruan weight selama training. Stochastic gradient descent (SGD) biasa menggeser setiap weight sebesar pecahan tetap dari gradient-nya. Momentum, RMSProp, dan Adam menambahkan memori tentang gradient sebelumnya agar bergerak lebih cepat pada arah yang konsisten dan memberi setiap weight ukuran langkah efektifnya sendiri.
Optimizer memengaruhi seberapa cepat model dilatih, learning rate mana yang masih bisa ditoleransi, dan kadang seberapa baik model menggeneralisasi. Image classifier seperti ResNet sering dilatih dengan SGD plus momentum. Transformer dan large language model hampir selalu dilatih dengan Adam atau variannya, AdamW. State optimizer juga memakan memori: Adam menyimpan dua angka tambahan untuk setiap parameter.
Ide utama
- SGD memperbarui setiap weight sebesar learning rate dikali gradient-nya.
- Momentum merata-ratakan gradient sebelumnya, mempercepat arah yang konsisten dan meredam osilasi.
- RMSProp membagi setiap langkah dengan root-mean-square berjalan dari gradient weight itu.
- Adam menggabungkan momentum dengan penskalaan gaya RMSProp dan mengoreksi bias kedua rata-ratanya.
- Metode adaptif paling membantu pada loss yang ill-conditioned, yaitu curam di beberapa arah dan datar di arah lain.
- Adam dan AdamW adalah default untuk transformer; SGD dengan momentum tetap umum untuk computer vision.
Ulasan singkat tentang topik ini
Pertanyaan umum
Apa bedanya Adam dan AdamW?
Adam menerapkan weight decay dengan menambahkannya ke gradient, sehingga penskalaan adaptif ikut mengecilkan decay untuk weight dengan gradient besar. AdamW mengurangkan decay langsung dari weight, terpisah dari langkah adaptif. Dengan begitu, regularization bekerja sesuai tujuan, dan AdamW kini menjadi pilihan standar untuk melatih transformer.
Learning rate berapa yang sebaiknya dipakai dengan Adam?
Nilai default dari paper-nya, 0,001, adalah titik awal yang wajar untuk model kecil. Transformer besar biasanya memakai learning rate puncak yang lebih kecil, sekitar 1e-4 sampai 6e-4, dengan warmup dan decay. Fine-tuning model pretrained sering memakai 1e-5 sampai 5e-5.
Apa fungsi epsilon di Adam?
Epsilon, secara default 1e-8, ditambahkan ke penyebut √v̂ agar tidak terjadi pembagian dengan nol pada weight yang gradient-nya mendekati nol. Epsilon juga membatasi langkah efektif weight tersebut. Sebagian model menaikkannya, misalnya menjadi 1e-6, agar training lebih stabil pada aritmetika presisi rendah.
Apakah stochastic gradient descent sama dengan mini-batch gradient descent?
Dalam deep learning, kedua istilah ini dipakai bergantian. Secara ketat, SGD memperkirakan gradient dari satu contoh, sedangkan mini-batch gradient descent merata-ratakannya pada batch kecil, misalnya 32 atau 256 contoh. Optimizer "SGD" di semua framework modern bekerja pada batch apa pun yang diberikan kepadanya.
Penjelasan terkait
- Gradient Descent · Optimasi dengan mengikuti kemiringan ke bawah
- Learning Rate Scheduling · Step decay, cosine annealing, warmup, dan cyclical LR
- Backpropagation · Cara network belajar dari kesalahannya
- Konveksitas, Minimum, dan Saddle Point · Kenapa sebagian masalah optimasi lebih sulit daripada yang lain
- Hyperparameter · Pengaturan yang kamu pilih sebelum training dimulai
- Epoch dan Batching · Cara data masuk ke model lewat epoch, batch, dan shuffle
Referensi
- Kingma & Ba (2014), "Adam: A Method for Stochastic Optimization"
- Loshchilov & Hutter (2017), "Decoupled Weight Decay Regularization"
- Wilson et al. (2017), "The Marginal Value of Adaptive Gradient Methods in Machine Learning"
- Goodfellow, Bengio & Courville (2016), "Deep Learning", chapter 8: Optimization for Training Deep Models
- Zhang et al., "Dive into Deep Learning", section 12.10: Adam
Terakhir diperbarui