Apa itu bias-variance tradeoff?
Bias-variance tradeoff menjelaskan bagaimana expected test error sebuah model terbagi menjadi dua sumber yang saling bersaing. Bias adalah error karena model terlalu kaku untuk merepresentasikan pola aslinya. Variance adalah error karena model begitu fleksibel sehingga hasil fit-nya berubah setiap kali sampel training berganti. Model yang lebih kompleks biasanya menurunkan bias dan menaikkan variance, jadi total error paling rendah ada di suatu titik di tengah.
Ide ini menjadi dasar sebagian besar pilihan tentang kapasitas model: derajat polinomial, kedalaman tree, jumlah tetangga di k-NN, kekuatan L2 regularization, dan ukuran neural network. Ide ini juga menjelaskan kenapa ensemble berhasil. Bagging dan random forest merata-ratakan banyak model ber-variance tinggi untuk memangkas variance, sedangkan boosting menambahkan weak learner ber-bias tinggi satu per satu untuk memangkas bias.
Ide utama
- Expected squared test error sama dengan bias² ditambah variance ditambah noise yang tidak bisa dihilangkan.
- Bias mengukur seberapa jauh model rata-rata dari kebenaran, atas banyak training set.
- Variance mengukur seberapa banyak model berubah dari satu training set ke training set berikutnya.
- Data tambahan menurunkan variance, tetapi tidak mengubah bias.
- Regularization dan perata-rataan menurunkan variance dengan imbalan sedikit kenaikan bias.
- Kompleksitas terbaik dipilih dengan data validation, karena bias dan variance tidak bisa diukur langsung.
Ulasan singkat tentang topik ini
Pertanyaan umum
Apakah bias tinggi sama dengan underfitting?
Keduanya menggambarkan situasi yang sama dari dua sudut. Bias tinggi adalah penyebabnya, yaitu kelas model yang terlalu kaku untuk polanya, dan underfitting adalah gejalanya, yaitu error tinggi pada data training dan validation. Begitu juga, variance tinggi adalah penyebab overfitting.
Bisakah model punya bias tinggi dan variance tinggi sekaligus?
Bisa. Model yang bentuknya tidak cocok dengan data dan juga dilatih pada contoh yang sangat sedikit dan ber-noise bisa meleset dari pola secara rata-rata dan tetap berayun jauh antarsampel. Decision tree dalam yang dilatih pada input yang tidak berhubungan dengan target adalah salah satu contohnya.
Bagaimana k pada k-nearest neighbors memengaruhi bias dan variance?
k kecil memberi bias rendah dan variance tinggi: dengan k = 1, tiap prediksi menyalin satu tetangga, termasuk noise-nya. k besar merata-ratakan lebih banyak tetangga, sehingga prediksi lebih halus dan variance turun, tetapi batas yang sebenarnya jadi kabur dan bias naik. Pada k = n, semua input mendapat prediksi yang sama.
Bagaimana cara memperkirakan bias dan variance dalam praktik?
Variance bisa diperkirakan dengan melatih model yang sama pada banyak bootstrap resample, lalu mengukur sebaran prediksinya di tiap titik test. Bias membutuhkan fungsi aslinya, jadi pada data sungguhan nilainya didekati dengan mengurangkan variance itu dan estimasi noise dari test error yang terukur. Simulasi dengan fungsi yang diketahui, seperti gelombang sinus di sini, memberi nilai yang tepat.
Penjelasan terkait
- Overfitting dan Underfitting · Bias-variance tradeoff dan generalisasi
- Regularization · Dropout, L1, dan L2 agar model tetap jujur
- Cross-Validation · Evaluasi dengan k-fold, stratified, dan leave-one-out
- Learning Curve · Mendiagnosis underfitting dan overfitting dari ukuran training set
- Bagging dan Random Forest · Bootstrap aggregation dan ensemble tree yang korelasinya rendah
- Gradient Boosting · Mencocokkan residual secara berurutan untuk prediksi yang kuat
Referensi
- Geman, Bienenstock & Doursat (1992), "Neural Networks and the Bias/Variance Dilemma", Neural Computation
- Belkin, Hsu, Ma & Mandal (2019), "Reconciling modern machine learning practice and the bias-variance trade-off", PNAS
- Nakkiran et al. (2019), "Deep Double Descent: Where Bigger Models and More Data Hurt"
- James, Witten, Hastie & Tibshirani, "An Introduction to Statistical Learning", ch. 2
Terakhir diperbarui