Lensa ML

Bias-Variance Tradeoff

Langkah 1 dari 6: Apa Itu Bias?

Underfitting yang sistematis

-2-112-11asli: sin(x)model
Derajat Polinomial2
Derajat
2
Bias²
0.178
Train err
0.248

Bias tinggi: kurvanya terlalu sederhana untuk mengikuti gelombang sinus. Derajat 2 tidak lebih baik daripada garis lurus, karena sin(x) adalah fungsi ganjil dan suku x² tidak membantu.

Geser derajat polinomial dari 1 sampai 10 dan bandingkan kurva hasil fit dengan sin(x) yang putus-putus. Bias didefinisikan atas banyak training set, bukan satu: selisih antara prediksi rata-rata E[f̂(x)] dan target f(x), dikuadratkan, lalu dirata-ratakan atas x. Garis lurus punya bias tinggi pada gelombang sinus berapa pun sampelnya, karena garis tidak bisa melengkung. Kartu Train err diukur pada 20 titik ini, sedangkan kartu Bias² diukur atas 200 training set baru. Bias² bernilai 0,178 di derajat 1 dan 2, karena fungsi ganjil seperti sin(x) tidak mendapat apa-apa dari suku x², lalu turun ke 0,004 di derajat 3.

Langkah 2 dari 6: Apa Itu Variance?

Kepekaan terhadap data training

-2-112-11
Derajat Polinomial2
Derajat
2
Variance
0.012
Sebaran
0.065

Variance rendah: kurva dari lima sampel ber-noise yang berbeda tetap berdekatan.

Geser derajatnya dan perhatikan lima kurva berwarna. Setiap kurva dilatih pada 20 titik ber-noise yang diambil ulang dari sin(x) yang sama. Itulah yang diukur variance: E[(f̂(x) − E[f̂(x)])²], seberapa jauh prediksi satu model menyimpang dari prediksi model rata-rata. Kartu Sebaran adalah simpangan baku terukur dari kelima kurva ini, dirata-ratakan atas x. Variance mengecil saat training set membesar. Untuk least-squares fit, rata-ratanya sekitar σ²·p/n atas input training, dengan p sebagai jumlah koefisien dan n sebagai jumlah titik.

Langkah 3 dari 6: Kurva Berbentuk U

Error = Bias² + Variance + Noise

Kompleksitas ModelError14812Bias²VarianceError TotalBatas Noise
Kompleksitas Model4
Bias²
0.004
Variance
0.020
Noise
0.09
Total
0.114

Dekat dasar kurva U: gabungan bias² dan variance mendekati minimumnya.

Geser kompleksitas model dari 1 sampai 12 dan perhatikan keempat angkanya. Untuk squared error di titik x, expected test error terbagi tepat menjadi tiga bagian: E[(y − f̂(x))²] = Bias² + Variance + σ², dengan σ² sebagai noise pada y itu sendiri. Di sini noise datanya punya variance σ² = 0.09, jadi tidak ada model yang bisa mendapat nilai di bawah batas itu. Bias² dan variance diukur dengan mencocokkan tiap derajat pada 200 training set baru. Total terendah, sekitar 0,109, ada di derajat 3, dan derajat 12 naik ke 0,165 seiring variance bertambah. Pembagian ini hanya tepat untuk squared error. Untuk classification loss 0-1, bias dan variance saling berinteraksi, dan ada beberapa definisi yang bersaing.

Langkah 4 dari 6: Zona Underfitting

Bias tinggi, variance rendah

-2-112-11Underfitting
Kompleksitas1
Bias²
0.178
Variance
0.008
Total error
0.276
Diagnosis
Underfit

Data tambahan tidak akan menyelesaikan ini. Model butuh lebih banyak fleksibilitas. Garis merah menunjukkan seberapa jauh tiap prediksi meleset.

Geser kompleksitas dari 1 sampai 5 dan lihat garis residual merah memendek. Di zona bias tinggi, training error dan test error sama-sama tinggi dan berdekatan. Itulah tanda yang perlu dicari dalam praktik. Semua solusinya menambah kapasitas: derajat lebih tinggi, variabel input lebih banyak, network lebih dalam, atau regularization lebih lemah. Mengumpulkan data tambahan hampir tidak membantu, karena bias tidak bergantung pada jumlah sampel. Garis derajat 1 yang dicocokkan ke sin(x) pada [−3, 3] tetap melewatkan belokan kurva walaupun titiknya sejuta.

Langkah 5 dari 6: Zona Overfitting

Bias rendah, variance tinggi

-2-112-11Overfitting
Kompleksitas12
Bias²
0.000
Variance
0.075
Total error
0.165
Diagnosis
Overfit

Overfitting ekstrem: kurvanya mengejar noise. Data tambahan atau regularization akan menurunkan variance.

Geser kompleksitas dari 8 sampai 12. Polinomial derajat 12 punya 13 koefisien untuk 20 titik, nyaris cukup bebas untuk melewati semuanya. Bias-nya mendekati nol, tetapi setiap sampel baru akan menghasilkan kurva yang sangat berbeda, terutama di dekat x = ±3, tempat polinomial berderajat tinggi berayun paling keras (fenomena Runge). Regularization menukar sedikit bias dengan penurunan variance yang besar: ridge regression menyusutkan koefisien mendekati nol, sehingga kurvanya berhenti mengejar titik-titik tunggal. Merata-ratakan banyak model ber-variance tinggi, seperti pada random forest, menurunkan variance dengan cara yang sama.

Langkah 6 dari 6: Titik Pas

Menyeimbangkan kompleksitas

Kompleksitas ModelError14812Train ErrorTest Errorselisihoptimal
Kompleksitas Model3
Optimal
3
Test err
0.109
Selisih train-test
0.033

Titik pas: kompleksitas ini menghasilkan expected test error yang mendekati terendah.

Geser kompleksitas di seluruh rentang dan ikuti penanda putih di sepanjang kurva test. Di proyek sungguhan, kurva bias² dan variance tidak pernah terlihat, karena fungsi aslinya tidak diketahui. Yang bisa diukur hanya training error dan validation error, jadi titik optimum dicari lewat cross-validation: latih tiap kandidat pada k − 1 fold, rata-ratakan error pada data yang dipisahkan, lalu ambil yang terendah. Neural network besar bisa menunjukkan penurunan kedua setelah melewati titik ketika ia cocok persis dengan data training, dengan test error turun lagi saat jumlah parameter terus bertambah.

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

Referensi

  1. Geman, Bienenstock & Doursat (1992), "Neural Networks and the Bias/Variance Dilemma", Neural Computation
  2. Belkin, Hsu, Ma & Mandal (2019), "Reconciling modern machine learning practice and the bias-variance trade-off", PNAS
  3. Nakkiran et al. (2019), "Deep Double Descent: Where Bigger Models and More Data Hurt"
  4. James, Witten, Hastie & Tibshirani, "An Introduction to Statistical Learning", ch. 2

Terakhir diperbarui