Lensa ML

Cara Kerja Regularization

Langkah 1 dari 6: Masalah Overfitting

Saat model menghafal, bukan belajar

xyGood fit
TrainTest
Train Loss
0.125
Test Loss
0.013

Model yang overfit menghafal noise pada data training: training loss-nya sangat kecil, tetapi model gagal pada data baru. Model yang good fit menangkap pola sebenarnya dan bisa menggeneralisasi.

Tekan Tampilkan Overfit dan bandingkan kedua kartu loss. Kurva overfit adalah jumlah dari 18 tonjolan sempit, masing-masing berpusat di satu titik training, dengan weight yang dihitung agar kurva melewati setiap titik dengan tepat. Train loss-nya praktis nol, sedangkan test loss pada 5 titik held-out sekitar 0,19, dibanding 0,013 untuk kurva sebenarnya y = 0.5x². Model apa pun yang punya satu parameter bebas per titik data bisa melakukan ini. Regularization mempertahankan model fleksibel yang sama, tetapi membuat weight ekstrem menjadi mahal.

Langkah 2 dari 6: Regularization L2

Memberi penalti pada weight besar agar kurva tetap mulus

λ = 0.00
TrainTestf(x) sebenarnya
Tanpa regularizationλ = 0.00Kuat
Train Loss
0.000
Test Loss
0.188
λΣw²
0.00
Besar weight |wᵢ| (Σw² = 2691k) · ^ = di luar skala
0.002.04.0

Dengan λ ≈ 0, tidak ada regularization. Weight sangat besar dan beragam, sehingga kurva berkelok melewati setiap titik. Train loss mendekati nol, tetapi test loss tinggi.

Geser λ dari 0 sampai 5 dan perhatikan Σw² di judul diagram batang. Tanpa penalti, Σw² mencapai jutaan, karena weight positif dan negatif yang sangat besar saling meniadakan agar kurva bisa melewati setiap titik. Pada λ = 1, nilainya turun menjadi sekitar 2,3. L2 menambahkan λΣw² ke loss, sehingga setiap langkah gradient juga menarik setiap weight ke arah nol, sebanding dengan besarnya. Itulah sebabnya L2 sering disebut weight decay. Pada regresi linear, penalti yang sama disebut ridge regression.

Langkah 3 dari 6: Regularization L1

Mendorong weight menjadi tepat nol, sekaligus menyeleksi feature

L1 λ = 0.00
TrainTestf(x) sebenarnya
Tanpa regularizationλ = 0.00Kuat
Train Loss
0.028
Test Loss
0.143
λΣ|w|
0.00
Nol
0/18
Besar weight |wᵢ| (Σw² = 10.7)
0.001.12.2

Dengan λ ≈ 0, tidak ada regularization. Semua weight aktif dan model mengalami overfitting pada data training yang penuh noise.

Geser λ dan hitung batang merah, yang menandai weight bernilai tepat nol. L1 menambahkan λΣ|w|, yang gradient-nya berukuran sama, yaitu λ, untuk setiap weight yang bukan nol. Weight kecil didorong sama kuatnya dengan weight besar, sehingga ia mencapai nol dan tetap di sana. Solver di sini memakai soft thresholding: setelah setiap langkah gradient, w menjadi sign(w)·max(|w| − η·λ, 0). Pada λ = 1, 13 dari 18 weight bernilai nol. Pada regresi linear, penalti ini disebut lasso.

Langkah 4 dari 6: Dropout

Mematikan neuron secara acak selama training

×××InputHidden 1Hidden 2Output
Rate
40%
Weight efektif: 6/9 neuron aktif
0.000.941.9

Dropout mematikan neuron secara acak di setiap langkah training, sehingga network tidak bisa bergantung pada satu jalur saja. Grafik weight menunjukkan weight efektif neuron yang dimatikan menjadi nol. Saat test, semua neuron aktif, dengan output yang diskalakan ulang agar sepadan. Saat ini 3 dari 9 hidden neuron sedang dimatikan.

Nyalakan atau matikan dropout dan geser slider rate antara 10% dan 80%. Network ini punya 9 hidden neuron, jadi dropout mengambil sampel dari 2^9 = 512 kemungkinan subnetwork, dan training merata-ratakan semuanya. Sebagian besar framework memakai inverted dropout. Selama training, framework membagi aktivasi yang tersisa dengan (1 − p), sehingga saat test, network penuh berjalan tanpa perubahan. Nilai yang umum adalah 0,5 untuk fully connected layer besar dan sekitar 0,1 pada transformer. Srivastava et al. (2014) memperkenalkan metode ini.

Langkah 5 dari 6: Early Stopping

Hentikan training sebelum overfitting muncul

EpochLosszona overfitbelajarepoch 28
Train lossVal loss
Epoch 0Epoch 0Epoch 60
Train Loss
2.050
Val Loss
2.150
Celah
0.100
‖w‖
0.50

Training belum banyak berjalan. Train loss dan val loss masih tinggi. Tekan Putar atau geser slider.

Tekan Putar, atau geser slider epoch, dan perhatikan titik saat kurva validation berbalik naik. Pada percobaan ini, validation loss terbaik muncul di epoch 28 dari 60. Dalam praktiknya, kode training menyimpan checkpoint setiap kali validation loss membaik. Kode itu berhenti setelah sejumlah epoch tanpa perbaikan, yang disebut patience, lalu memulihkan checkpoint terbaik. Early stopping membatasi seberapa jauh weight bergerak dari nilai awalnya yang kecil. Untuk model linear, Goodfellow et al. menunjukkan bahwa perilakunya mirip penalti L2.

Langkah 6 dari 6: Perbandingan

Cara tiap teknik membentuk kurva

Tanpa Reg
Metode
Train Loss
Test Loss
Tanpa Reg
0.000
0.188
L2
0.129
0.029
L1
0.127
0.073
Dropout
0.067
0.057
Early Stop
0.115
0.026
f(x) sebenarnya
0.125
0.013
Semua loss adalah MSE yang dihitung pada 18 titik train dan 5 titik test yang sama dari Langkah 1. L2: fit RBF dengan λ=1 ditambahkan ke diagonal kernel. L1: solver ISTA dengan λ=1. Dropout: didekati sebagai L2 dengan λ=0.5 (dropout ≈ L2 implisit). Early stop: gradient descent dari weight nol, dihentikan pada 40 iterasi.

Tanpa Reg: Overfitting karena menghafal noise. Train loss mendekati nol, tetapi test loss tinggi, tanda klasik overfitting.

Klik setiap metode dan bandingkan barisnya di tabel loss. Early stopping pada 40 iterasi dan L2 dengan λ = 1 memberi test loss terendah di antara kurva yang memakai regularization, sekitar 0,026 dan 0,029, dibanding 0,188 tanpa regularization. Jalankan gradient descent yang sama selama 400 iterasi, dan test loss-nya naik lagi ke sekitar 0,18. Nilai λ, dropout rate, atau titik berhenti terbaik selalu bergantung pada data, jadi pengaturan ini disetel pada validation set. Training sungguhan biasanya menggabungkan beberapa metode, misalnya weight decay, dropout, dan early stopping, ditambah data augmentation.

Apa itu regularization dalam machine learning?

Regularization adalah teknik apa pun yang mengurangi overfitting dengan membatasi seberapa dekat model bisa mengikuti data training-nya. Bentuk yang paling umum menambahkan penalti atas ukuran weight ke loss: L_total = L_data + λ·R(w), dengan λ yang menentukan kekuatannya. Bentuk lain mengubah prosedur training, seperti dropout dan early stopping.

Hampir semua model yang dilatih memakai regularization dalam bentuk tertentu. Regresi ridge dan lasso menambahkan penalti L2 dan L1 ke model linear. Deep network biasanya menggabungkan weight decay, dropout, data augmentation, dan early stopping. Large language model dilatih dengan AdamW, yang decoupled weight decay-nya merupakan bentuk regularization L2, dan banyak yang memakai dropout saat fine-tuning.

Ide utama

  • Regularization menukar sedikit akurasi training dengan kinerja yang lebih baik pada data baru.
  • Regularization L2 mengecilkan semua weight sebanding dengan besarnya.
  • Regularization L1 mendorong weight kecil menjadi tepat nol dan menghasilkan model sparse.
  • Dropout mematikan neuron secara acak selama training sehingga tidak ada unit yang bisa bergantung pada unit lain.
  • Early stopping menghentikan training ketika validation loss berhenti membaik.
  • Kekuatan regularization adalah hyperparameter yang dipilih dengan data validation.

Ulasan singkat tentang topik ini

Pertanyaan umum

Apa bedanya regularization L1 dan L2?

L1 memberi penalti pada jumlah nilai absolut weight dan cenderung membuat banyak weight bernilai tepat nol, sehingga berfungsi sebagai feature selection. L2 memberi penalti pada jumlah kuadrat weight dan mengecilkan semuanya secara halus tanpa membuatnya nol. Elastic net menggabungkan kedua penalti itu.

Apakah weight decay sama dengan regularization L2?

Untuk gradient descent biasa, ya: menambahkan λΣw² ke loss setara dengan mengecilkan setiap weight dengan faktor konstan di setiap langkah. Untuk optimizer adaptif seperti Adam, keduanya berbeda, karena Adam menskalakan ulang gradient penalti per weight. AdamW menerapkan decay langsung ke weight, dan hasilnya biasanya lebih baik.

Bagaimana cara memilih kekuatan regularization λ?

Coba nilai pada grid logaritmik, misalnya 0,0001, 0,001, 0,01, dan 0,1, lalu ambil nilai dengan skor validation terbaik. Cross-validation memberi pilihan yang lebih andal ketika datanya terbatas. Kalau validation error tinggi dan dekat dengan training error, λ kemungkinan terlalu besar.

Apakah data augmentation termasuk regularization?

Ya. Membalik, memotong, atau menambahkan noise ke contoh training menciptakan variasi baru dari data, sehingga model lebih sulit menghafal. Cara ini mengubah data, bukan loss atau model, dan termasuk regularizer paling efektif untuk model gambar dan audio.

Penjelasan terkait

Referensi

  1. Srivastava et al. (2014), "Dropout: A Simple Way to Prevent Neural Networks from Overfitting", JMLR
  2. Loshchilov & Hutter (2017), "Decoupled Weight Decay Regularization"
  3. Goodfellow, Bengio & Courville (2016), "Deep Learning", chapter 7: Regularization for Deep Learning
  4. James, Witten, Hastie & Tibshirani, "An Introduction to Statistical Learning", chapter 6: ridge regression and the lasso

Terakhir diperbarui