Apa itu overfitting dalam machine learning?
Overfitting terjadi ketika model mengikuti data training terlalu persis, termasuk noise-nya, sehingga kinerjanya justru lebih buruk pada data baru. Kebalikannya, underfitting, terjadi ketika model terlalu sederhana untuk menangkap pola yang sebenarnya, sehingga hasilnya buruk pada data training maupun data baru. Tujuan training adalah model yang bisa menggeneralisasi: error rendah pada contoh yang belum pernah dilihatnya.
Semua model supervised menghadapi tradeoff ini, dari regresi linear sampai neural network besar. Praktisi mendeteksinya dengan menyisihkan validation set, lalu membandingkan training error dan validation error. Cara mengatasinya antara lain menambah data, regularization seperti weight decay dan dropout, early stopping, data augmentation, dan memilih ukuran model yang pas.
Ide utama
- Underfitting berarti error tinggi pada data training maupun data test.
- Overfitting berarti training error rendah, tetapi test error jauh lebih tinggi.
- Model dengan parameter sebanyak jumlah titik data bisa mengikuti training set dengan tepat.
- Expected test error terbagi menjadi bias², variance, dan noise yang tidak bisa dihilangkan.
- Pengaturan model sebaiknya dipilih dengan data validation, bukan dengan test set.
- Menambah data, regularization, dan early stopping adalah cara standar mengatasi overfitting.
Ulasan singkat tentang topik ini
Pertanyaan umum
Bagaimana cara mengetahui model mengalami overfitting?
Bandingkan kinerja training dan validation. Kalau training error terus turun sementara validation error mendatar atau naik, model mengalami overfitting. Celah besar yang terus melebar di antara kedua kurva adalah tanda paling jelas.
Apakah sedikit overfitting masih bisa diterima?
Ya. Training error hampir selalu lebih rendah daripada validation error, dan celah kecil itu wajar. Yang penting adalah kinerja validation. Model dengan celah lebih besar tetapi validation error lebih rendah tetap model yang lebih baik.
Apakah deep neural network bisa overfit?
Bisa, dan dengan parameter yang cukup ia bisa menghafal training set apa pun. Dalam praktiknya, network besar yang dilatih dengan weight decay, data augmentation, dan early stopping sering menggeneralisasi dengan baik walaupun parameternya jauh lebih banyak daripada jumlah contoh. Teori klasik tidak memprediksi hal ini.
Apakah menambah data selalu mengurangi overfitting?
Data tambahan dari distribusi yang sama menurunkan variance, jadi biasanya memperkecil celah antara training error dan validation error. Cara ini tidak mengatasi underfitting, dan tidak membantu kalau data barunya penuh noise, salah label, atau berasal dari distribusi yang berbeda dari data test.
Penjelasan terkait
- Bias-Variance Tradeoff · Kenapa model mengalami underfitting atau overfitting, lewat dekomposisi dasarnya
- Regularization · Dropout, L1, dan L2 agar model tetap jujur
- Training, Validation, dan Test Set · Membagi data untuk mengukur generalization dan menghindari overfitting
- Learning Curve · Mendiagnosis underfitting dan overfitting dari ukuran training set
- Cross-Validation · Evaluasi dengan k-fold, stratified, dan leave-one-out
- Evaluasi Model dan Metrik · Precision, recall, F1, kurva ROC, dan metrik regresi
Referensi
- James, Witten, Hastie & Tibshirani, "An Introduction to Statistical Learning", chapter 2
- Goodfellow, Bengio & Courville (2016), "Deep Learning", section 5.2: Capacity, Overfitting and Underfitting
- Zhang et al. (2016), "Understanding deep learning requires rethinking generalization"
- Belkin et al. (2019), "Reconciling modern machine learning practice and the bias-variance trade-off"
Terakhir diperbarui