Penjelasan intuitif tentang tradeoff bias-varians?

Jawaban:

24

Bayangkan beberapa data 2D - katakanlah tinggi versus berat untuk siswa di sekolah menengah - diplot pada sepasang sumbu.

Sekarang anggaplah Anda cocok garis lurus melalui itu Baris ini, yang tentu saja mewakili satu set nilai yang diprediksi, memiliki nol varians statistik. Tetapi biasnya (mungkin) tinggi - yaitu, itu tidak cocok dengan data dengan sangat baik.

Selanjutnya, misalkan Anda memodelkan data dengan spline polinomial tingkat tinggi. Anda tidak puas dengan kecocokan, jadi Anda meningkatkan derajat polinomial hingga kecocokan meningkat (dan itu akan, pada presisi yang berubah-ubah, pada kenyataannya). Sekarang Anda memiliki situasi dengan bias yang cenderung nol, tetapi variansinya sangat tinggi.

Perhatikan bahwa trade-off bias-varians tidak menggambarkan hubungan proporsional - yaitu, jika Anda merencanakan bias versus varians, Anda tidak perlu melihat garis lurus melalui titik asal dengan slope -1. Dalam contoh splin polinomial di atas, mengurangi derajat hampir pasti meningkatkan varians jauh lebih sedikit daripada mengurangi bias.

Tradeoff bias-varians juga tertanam dalam fungsi jumlah kesalahan kuadrat. Di bawah ini, saya telah menulis ulang (tetapi tidak mengubah) bentuk persamaan ini untuk menekankan ini:

teks alternatif

Di sisi kanan, ada tiga istilah: yang pertama hanya kesalahan tak tereduksi (varians dalam data itu sendiri); ini di luar kendali kami jadi abaikan saja. The kedua istilah adalah persegi bias ; dan yang ketiga adalah varians . Sangat mudah untuk melihat bahwa ketika satu naik ke atas yang lain turun - keduanya tidak dapat keduanya berbeda dalam arah yang sama. Dengan kata lain, Anda dapat menganggap regresi kuadrat-terkecil sebagai (secara implisit) menemukan kombinasi bias dan varians yang optimal dari antara model kandidat.

doug
sumber
8
Saya mengalami kesulitan memahami persamaan; Saya tidak dapat menemukan cara untuk membenarkannya. Bahkan analisis unit dasar mengidentifikasi masalah. Misalkan diukur dalam parsecs dan dalam drams, misalnya, sehingga dan estimatornya (apakah itu yang dimaksud dengan titik kecil di atas ?) Juga dalam parsec. Kemudian lhs dan adalah parsec kuadrat; istilah tengah pada rhs adalah kuadrat dari perbedaan antara parsec ( ) dan parsecs per dram (karena pembagian dengan ); dan istilah terakhir pada rh adalah parsec kuadrat per dram. Tidak sah jika menambahkan salah satu dari ketentuan ini satu sama lain! yxffσ2f(x)x
whuber
persamaannya baik-baik saja (huruf-huruf Yunani kecil dalam pembilang bukanlah 'x' tetapi 'kappa'). Coba ini: mulai dengan formula untuk SSE yang Anda sukai dan hanya beberapa langkah yang akan membawa Anda ke yang di atas.
doug
Apa 'kappa' dalam konteks ini?
Saya seorang noob. Dapatkah Anda membantu saya secara intuitif melihat mengapa pada bagian pertama dari jawaban Anda, Anda mengatakan bahwa pemasangan splin polinomial menyebabkan varians meningkat?
Rohit Banga
3
Contoh yang lebih sederhana: y = a + b x + e (rror). Jika saya cocok dengan konstanta untuk ini, bias = b x dan varians = var (e) + varians estimasi saya tentang nilai sebenarnya. Jika saya menambahkan istilah b * x ke model, bias nol di mana-mana, tetapi sekarang varians menyertakan efek kesalahan estimasi saya tentang b serta a dan varian e, jadi akan lebih tinggi daripada yang pertama kasus. Jadi ada tradeoff antara penurunan bias, diperoleh dengan menambahkan istilah pada model yang seharusnya ada, dan peningkatan varian, diperoleh dengan harus memperkirakan persyaratan tersebut dan, mungkin, menambahkan yang tidak relevan.
jbowman
25

Katakanlah Anda sedang mempertimbangkan asuransi kesehatan bencana, dan ada kemungkinan 1% jatuh sakit yang akan menelan biaya 1 juta dolar. Biaya yang diharapkan untuk sakit adalah 10.000 dolar. Perusahaan asuransi, yang ingin mendapat untung, akan menagih Anda 15.000 untuk polis.

Membeli polis memberikan biaya yang diharapkan kepada Anda sebesar 15.000, yang memiliki varian 0 tetapi dapat dianggap sebagai bias karena itu adalah 5.000 lebih dari biaya yang diharapkan sebenarnya untuk sakit.

Tidak membeli polis memberikan biaya yang diharapkan sebesar 10.000, yang tidak bias karena sama dengan biaya sebenarnya yang diharapkan untuk sakit, tetapi memiliki varian yang sangat tinggi. Tradeoff di sini adalah antara pendekatan yang konsisten salah tetapi tidak pernah banyak dan pendekatan yang benar rata-rata tetapi lebih bervariasi.

CDX
sumber
15

Saya sangat merekomendasikan untuk melihat kursus Caltech ML oleh Yaser Abu-Mostafa, Kuliah 8 (Bias-Variance Tradeoff) . Berikut adalah garis besarnya:

Katakanlah Anda mencoba mempelajari fungsi sinus:

teks alternatif

Set pelatihan kami hanya terdiri dari 2 titik data.

Mari kita coba melakukannya dengan dua model, dan :h0(x)=bh1(x)=ax+b

Untuk , ketika kami mencoba dengan banyak set pelatihan yang berbeda (yaitu kami berulang kali memilih 2 titik data dan melakukan pembelajaran pada mereka), kami memperoleh (grafik kiri mewakili semua model yang dipelajari, grafik kanan mewakili rata-rata g dan varians mereka (area abu-abu)):h0(x)=b

masukkan deskripsi gambar di sini

Untuk , ketika kami mencoba dengan banyak set pelatihan yang berbeda, kami memperoleh:h1(x)=ax+b

masukkan deskripsi gambar di sini

Jika kita membandingkan model yang dipelajari dengan dan , kita dapat melihat bahwa menghasilkan model yang lebih sederhana daripada , maka varians yang lebih rendah ketika kita mempertimbangkan semua model yang dipelajari dengan , tetapi model terbaik g (berwarna merah pada grafik) yang dipelajari dengan lebih baik daripada model terbaik yang dipelajari g dengan , karenanya bias yang lebih rendah dengan :h0h1h0h1h0h1h0h1

masukkan deskripsi gambar di sini


Jika Anda melihat evolusi fungsi biaya sehubungan dengan ukuran set pelatihan (angka dari Coursera - Machine Learning oleh Andrew Ng ):

Bias tinggi:

masukkan deskripsi gambar di sini

Varian tinggi:

masukkan deskripsi gambar di sini

Franck Dernoncourt
sumber
+1, sangat rumit. Ambil sebagai contoh, Kami telah mengambil banyak sampel berbeda , masing-masing dengan 2 poin, jadi kami melatih banyak model masing-masing dengan estimasi parameter model yang berbeda , kan? Dan untuk input spesifik , berbeda memberikan prediksi yang berbeda , sehingga nilai target yang diprediksi adalah variabel acak yang bervariasi dengan estimasi parameter model . Dan bias dan varians dalam ara dihitung untuk setiap 's diprediksi , kan? Apakah saya benar? D i ( a i , b i ) x 0 ( a i , b i ) y 0 y 0 ( a , b ) x yh1Di(a^i,b^i)x0(a^i,b^i)y^0y^0(a^,b^)xy^
alpukat
fungsi sinus Anda adalah XP terbalik
Diego
1
Ini membingungkan b / c Anda tampaknya merujuk ke plot yang tidak ada (mungkin "teks alt").
gung - Reinstate Monica
@ung diperbaiki, terima kasih telah menunjukkannya. ImageShack mematikan akun gratis dan menghapus gambar . Dan Stack Exchange gagal mengambil tindakan yang tepat. Terkait: Larangan gambar ImageShack karena mereka menggunakan kembali URL lama untuk iklan (harap dukung larangan); Apa cara termudah bagi saya untuk mengunduh semua pertanyaan + jawaban saya di semua situs Stack Exchange? (Saya senang saya memiliki cadangan; silakan dorong StackExchange untuk menyediakan alat yang lebih baik untuk membuat cadangan konten)
Franck Dernoncourt
Terima kasih telah berbagi tautan video, Ini menjelaskan dengan baik apa yang saya cari, sekarang dapat memahami jawaban Anda
Espoir Murhabazi
13

Saya biasanya memikirkan dua gambar ini:

Pertama, arti bias dan varians:

Memahami bias dan Varians

Bayangkan pusat wilayah mata banteng Merah adalah nilai rata-rata sebenarnya dari variabel acak target kami yang kami coba prediksi, dan wilayah merah menunjukkan penyebaran varians dari variabel ini. Setiap kali kita mengambil satu set sampel pengamatan dan memperkirakan nilai variabel ini, kita plot titik biru. Kami memperkirakan dengan benar jika titik biru jatuh di dalam wilayah merah. Dengan kata lain, bias adalah ukuran seberapa jauh titik biru yang diprediksi dari daerah merah yang sebenarnya, secara intuitif ini adalah kesalahan. Varians adalah seberapa terpencarnya prediksi kita.

Sekarang trade-off di sini adalah:

Pertukaran antara Bias dan Variance

ketika kami mencoba mengurangi salah satu dari parameter ini (bias atau varians), parameter lainnya meningkat. Tapi ada sweet spot di suatu tempat di antara bias yang tidak terlalu kurang dan tidak terlalu kurang yang menghasilkan kesalahan prediksi paling sedikit dalam jangka panjang.

Foto-foto ini diambil dari http://scott.fortmann-roe.com/docs/BiasVariance.html . Periksa penjelasan dengan regresi linier dan tetangga terdekat K untuk lebih jelasnya

Thamme Gowda
sumber
angka pertama lebih mirip presisi vs akurasi?
KingBoomie
0

Berikut ini penjelasan yang sangat sederhana. Bayangkan Anda memiliki sebaran sebaran poin {x_i, y_i} yang disampel dari beberapa distribusi. Anda ingin mencocokkan beberapa model untuk itu. Anda dapat memilih kurva linier atau kurva polinomial orde tinggi atau yang lainnya. Apa pun yang Anda pilih akan diterapkan untuk memprediksi nilai y baru untuk set {x_i} poin. Sebut ini set validasi. Mari kita asumsikan bahwa Anda juga mengetahui nilai {y_i} mereka yang sebenarnya dan kami menggunakan ini hanya untuk menguji model.

Nilai yang diprediksi akan berbeda dari nilai yang sebenarnya. Kita dapat mengukur sifat-sifat perbedaan mereka. Mari kita pertimbangkan satu titik validasi tunggal. Sebut saja x_v dan pilih beberapa model. Mari kita membuat satu set prediksi untuk satu titik validasi dengan menggunakan katakan 100 sampel acak berbeda untuk melatih model. Jadi kita akan mendapatkan nilai 100 y. Perbedaan antara rata-rata dari nilai-nilai itu dan nilai sebenarnya disebut bias. Varian dari distribusi adalah varians.

Bergantung pada model apa yang kita gunakan, kita bisa menukar keduanya. Mari kita perhatikan dua hal yang ekstrem. Model varians terendah adalah model yang sepenuhnya mengabaikan data. Katakanlah kita cukup memprediksi 42 untuk setiap x. Model itu tidak memiliki varians di sampel pelatihan yang berbeda di setiap titik. Namun itu jelas bias. Biasnya hanya 42-y_v.

Salah satu yang ekstrim lain kita dapat memilih model yang sesuai sebanyak mungkin. Misalnya paskan polinomial 100 derajat hingga 100 titik data. Atau sebagai alternatif, interpolasi linear antara tetangga terdekat. Ini memiliki bias yang rendah. Mengapa? Karena untuk setiap sampel acak titik tetangga ke x_v akan berfluktuasi secara luas tetapi mereka akan diinterpolasi lebih tinggi sesering mereka akan interpolasi rendah. Jadi rata-rata di seluruh sampel, mereka akan membatalkan dan bias karena itu akan sangat rendah kecuali kurva yang sebenarnya memiliki banyak variasi frekuensi tinggi.

Namun model pakaian berlebih ini memiliki varian besar di sampel acak karena mereka tidak memperhalus data. Model interpolasi hanya menggunakan dua titik data untuk memprediksi yang menengah dan ini membuat banyak kebisingan.

Perhatikan bahwa bias diukur pada satu titik. Tidak masalah apakah itu positif atau negatif. Ini masih bias pada suatu x tertentu. Bias yang dirata-rata atas semua nilai x mungkin akan kecil tetapi itu tidak membuatnya tidak bias.

Satu lagi contoh. Katakanlah Anda mencoba memprediksi suhu pada set lokasi di AS pada suatu waktu. Anggaplah Anda memiliki 10.000 poin pelatihan. Sekali lagi, Anda bisa mendapatkan model varians rendah dengan melakukan sesuatu yang sederhana hanya dengan mengembalikan rata-rata. Tapi ini akan menjadi bias rendah di negara bagian Florida dan bias tinggi di negara bagian Alaska. Anda akan lebih baik jika Anda menggunakan rata-rata untuk setiap negara bagian. Tetapi bahkan kemudian, Anda akan menjadi bias tinggi di musim dingin dan rendah di musim panas. Jadi sekarang Anda memasukkan bulan dalam model Anda. Tapi Anda masih akan menjadi bias rendah di Death Valley dan tinggi di Gunung Shasta. Jadi sekarang Anda pergi ke tingkat kode granularity. Tetapi pada akhirnya jika Anda terus melakukan ini untuk mengurangi bias, Anda kehabisan poin data. Mungkin untuk kode pos dan bulan tertentu, Anda hanya memiliki satu titik data. Jelas ini akan membuat banyak variasi. Jadi Anda melihat memiliki model yang lebih rumit menurunkan bias dengan mengorbankan varians.

Jadi Anda lihat ada trade off. Model yang lebih halus memiliki varians yang lebih rendah di sampel pelatihan tetapi tidak menangkap bentuk kurva yang sebenarnya juga. Model yang kurang halus dapat menangkap kurva dengan lebih baik tetapi dengan mengorbankan yang ribut. Di suatu tempat di tengah adalah model Goldilocks yang membuat tradeoff yang dapat diterima antara keduanya.

Dave31415
sumber
0

Bayangkan jika tugas pembangunan model dapat diulang untuk dataset pelatihan yang berbeda, yaitu kami melatih model baru untuk dataset yang berbeda setiap kali (ditunjukkan pada gambar di bawah). Jika kami memperbaiki titik data uji dan mengevaluasi prediksi model pada titik ini, prediksi akan bervariasi karena keacakan dalam proses pembuatan model. Dari gambar di bawah untuk situasi ini, P_1, P_2, ..., P_n adalah prediksi yang berbeda dan acak juga. masukkan deskripsi gambar di sini

Biarkan rata-rata prediksi menjadi -

masukkan deskripsi gambar di sini

Kesalahan Bias disebabkan oleh perbedaan antara rata-rata prediksi ini dan nilai yang benar. masukkan deskripsi gambar di sini

Variance Error tidak lain adalah varians dalam prediksi ini, yaitu seberapa beragamnya prediksi ini. masukkan deskripsi gambar di sini

Ini adalah intuisi di balik bias dan kesalahan varians.

Untuk penjelasan terperinci, kunjungi intuisi tepat di balik tradeoff varians bias

Pradeep bansal
sumber