Saya mencari penjelasan intuitif tentang tradeoff bias-varians, baik secara umum maupun khusus dalam konteks regresi linier.
Saya mencari penjelasan intuitif tentang tradeoff bias-varians, baik secara umum maupun khusus dalam konteks regresi linier.
Jawaban:
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:
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.
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.
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:
Set pelatihan kami hanya terdiri dari 2 titik data.
Mari kita coba melakukannya dengan dua model, dan :
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)):
Untuk , ketika kami mencoba dengan banyak set pelatihan yang berbeda, kami memperoleh:
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 :
Jika Anda melihat evolusi fungsi biaya sehubungan dengan ukuran set pelatihan (angka dari Coursera - Machine Learning oleh Andrew Ng ):
Bias tinggi:
Varian tinggi:
Saya biasanya memikirkan dua gambar ini:
Pertama, arti 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:
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
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.
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.
Biarkan rata-rata prediksi menjadi -
Kesalahan Bias disebabkan oleh perbedaan antara rata-rata prediksi ini dan nilai yang benar.
Variance Error tidak lain adalah varians dalam prediksi ini, yaitu seberapa beragamnya prediksi ini.
Ini adalah intuisi di balik bias dan kesalahan varians.
Untuk penjelasan terperinci, kunjungi intuisi tepat di balik tradeoff varians bias