Bagaimana validasi silang mengatasi masalah overfitting?

Jawaban:

23

Saya tidak bisa memikirkan penjelasan yang cukup jelas saat ini, jadi saya akan menyerahkannya kepada orang lain; Namun cross-validation tidak sepenuhnya mengatasi masalah over-fitting dalam pemilihan model, itu hanya menguranginya. Kesalahan cross-validation tidak memiliki varians yang dapat diabaikan, terutama jika ukuran dataset kecil; dengan kata lain Anda mendapatkan nilai yang sedikit berbeda tergantung pada sampel data tertentu yang Anda gunakan. Ini berarti bahwa jika Anda memiliki banyak derajat kebebasan dalam pemilihan model (mis. Banyak fitur untuk memilih subset kecil, banyak hiper-parameter untuk disetel, banyak model untuk memilih), Anda dapat menyesuaikan kriteria validasi silang secara berlebihan. karena model disetel dengan cara yang mengeksploitasi variasi acak ini daripada dengan cara yang benar-benar meningkatkan kinerja, dan Anda dapat berakhir dengan model yang berkinerja buruk. Untuk diskusi tentang ini, lihatCawley dan Talbot "Pada Over-fitting dalam Pemilihan Model dan Bias Seleksi Selanjutnya dalam Evaluasi Kinerja", JMLR, vol. 11, hlm. 2079−2107, 2010

Sayangnya, validasi silang kemungkinan besar mengecewakan Anda ketika Anda memiliki dataset kecil, tepatnya saat Anda paling membutuhkan validasi silang. Perhatikan bahwa validasi silang k-fold umumnya lebih dapat diandalkan daripada validasi silang leave-one-out karena memiliki varian yang lebih rendah, tetapi mungkin lebih mahal untuk dihitung untuk beberapa model (itulah sebabnya mengapa LOOCV kadang-kadang digunakan untuk pemilihan model, meskipun memiliki varian yang tinggi).

Dikran Marsupial
sumber
1
Satu pemikiran yang saya miliki adalah bahwa validasi silang hanyalah menerapkan model (implisit) yang berbeda untuk data. Anda tentu dapat menunjukkan ini dengan "sepupu" dari CV, bootstrap non-parametrik (yang didasarkan pada model Proses Dirichlet dengan parameter konsentrasi 0).
probabilityislogic
Ide yang menarik. Pandangan saya adalah bahwa (untuk model yang saya tertarik) pemisahan menjadi parameter dan hiper-parameter adalah komputasi daripada logis; hiper-parameter masih merupakan parameter yang perlu dipasang ke data, dan melakukan hal ini secara tidak langsung menggunakan cross-validation tidak benar-benar mengubah itu. Dalam tulisan terakhir, saya menginvestigasi penyetelan apa yang biasanya hiper-parameter dari model kernel menggunakan kriteria pelatihan dan menambahkan istilah regularisasi tambahan untuk menghindari overfitting kriteria pemilihan model (LOOCV) dan itu bekerja dengan cukup baik.
Dikran Marsupial
1
Mengapa k-fold CV lebih mahal daripada cuti-keluar-keluar? Pengalaman saya (dan intuisi saya) mengatakan sebaliknya. Karena di k-fold CV kita melakukan tes k, di mana pun di L1O, kita melakukan tes N (>> k), dan biasanya bagian pelatihan membutuhkan waktu lebih lama karena beberapa inversi matriks, jadi bukankah L1O pilihan yang mahal?
jeff
1
Meninggalkan satu dapat dilakukan (atau diperkirakan) sebagai produk sampingan dari pemasangan model ke seluruh dataset, dengan biaya tambahan yang sangat kecil, untuk berbagai model (misalnya regresi linier). Saya akan mengedit jawaban untuk membuatnya lebih jelas.
Dikran Marsupial
Pemahaman saya tentang leave-one-out adalah k-fold CV - bentuk terbaik dari k-fold CV, di mana k = ukuran dataset.
Daniel Winterstein
10

Jawaban saya lebih intuitif daripada keras, tetapi mungkin itu akan membantu ...

Seperti yang saya pahami, overfitting adalah hasil pemilihan model berdasarkan pelatihan dan pengujian menggunakan data yang sama, di mana Anda memiliki mekanisme pemasangan yang fleksibel: Anda menyesuaikan sampel data Anda sedemikian rupa sehingga Anda menyesuaikan kebisingan, outlier, dan semua varian lainnya.

Memisahkan data ke dalam set pelatihan dan pengujian membuat Anda tidak melakukan hal ini. Tetapi pemisahan statis tidak menggunakan data Anda secara efisien dan perpecahan Anda sendiri bisa menjadi masalah. Cross-validation menjaga keuntungan jangan-imbalan-an-tepat-untuk-pelatihan-data dari pemisahan pengujian-pelatihan, sambil juga menggunakan data yang Anda miliki seefisien mungkin (yaitu semua data Anda digunakan sebagai data pelatihan dan pengujian, tidak dalam jangka yang sama).

Jika Anda memiliki mekanisme pemasangan yang fleksibel, Anda perlu membatasi pemilihan model Anda sehingga tidak mendukung "sempurna" tetapi rumit entah bagaimana. Anda dapat melakukannya dengan AIC, BIC, atau metode hukuman lain yang secara langsung menghukum kompleksitas yang sesuai, atau Anda dapat melakukannya dengan CV. (Atau Anda dapat melakukannya dengan menggunakan metode pemasangan yang tidak terlalu fleksibel, yang merupakan salah satu alasan model linear bagus.)

Cara lain untuk melihatnya adalah bahwa belajar adalah tentang generalisasi, dan kecocokan yang terlalu ketat dalam beberapa hal tidak generalisasi. Dengan memvariasikan apa yang Anda pelajari dan apa yang Anda uji, Anda menggeneralisasi lebih baik daripada jika Anda hanya mempelajari jawaban untuk serangkaian pertanyaan tertentu.

Wayne
sumber
3

Dari perspektif Bayesian, saya tidak begitu yakin bahwa validasi silang melakukan apa pun yang tidak dilakukan analisis Bayesian yang tepat untuk membandingkan model. Tetapi saya tidak 100% yakin akan hal itu.

M.SEBUAHM.BDsaya

P(M.SEBUAH|D,saya)P(M.B|D,saya)=P(M.SEBUAH|saya)P(M.B|saya)×P(D|M.SEBUAH,saya)P(D|M.B,saya)

P(D|M.SEBUAH,saya)

P(D|M.SEBUAH,saya)=P(D,θSEBUAH|M.SEBUAH,saya)dθSEBUAH=P(θSEBUAH|M.SEBUAH,saya)P(D|M.SEBUAH,θSEBUAH,saya)dθSEBUAH

Yang disebut distribusi prediktif sebelumnya . Itu pada dasarnya mengatakan seberapa baik model memprediksi data yang sebenarnya diamati, yang persis apa yang dilakukan validasi silang, dengan "prior" digantikan oleh model "training" yang dipasang, dan "data" diganti oleh "testing" data. Jadi jika model B meramalkan data lebih baik daripada model A, probabilitas posteriornya meningkat relatif terhadap model A. Tampaknya dari ini bahwa teorema Bayes akan benar-benar melakukan validasi silang menggunakan semua data, bukan subset. Namun, saya tidak sepenuhnya yakin akan hal ini - sepertinya kita mendapatkan sesuatu tanpa hasil.

Fitur lain yang rapi dari metode ini adalah bahwa ia memiliki "pisau cukur" yang dibangun, yang diberikan oleh rasio konstanta normalisasi dari distribusi sebelumnya untuk masing-masing model.

Namun validasi silang tampaknya berharga untuk "sesuatu yang lain" lama yang ditakuti atau apa yang kadang-kadang disebut "model salah spesifikasi". Saya terus-menerus terkoyak oleh apakah "sesuatu yang lain" ini penting atau tidak, karena sepertinya itu memang penting - tetapi membuat Anda lumpuh tanpa solusi sama sekali ketika itu penting. Hanya sesuatu yang membuat Anda sakit kepala, tetapi tidak ada yang dapat Anda lakukan - kecuali memikirkan apa itu "sesuatu yang lain", dan mencobanya dalam model Anda (sehingga tidak lagi menjadi bagian dari "sesuatu yang lain") .

Dan selanjutnya, validasi silang adalah cara untuk benar-benar melakukan analisis Bayes ketika integral di atas sangat sulit. Dan validasi silang "masuk akal" kepada hampir semua orang - ini "mekanis" daripada "matematika". Jadi mudah untuk memahami apa yang sedang terjadi. Dan itu juga membuat kepala Anda fokus pada bagian penting dari model - membuat prediksi yang baik.

probabilityislogic
sumber
2
Masalah kesalahan spesifikasi model adalah kuncinya. Metode Bayesian (khususnya "orang miskin" Bayes of maksimalization bukti) dapat melakukan sangat buruk di bawah salah spesifikasi model, sedangkan validasi silang tampaknya bekerja dengan cukup baik hampir sepanjang waktu. Keuntungan ketika asumsi (prior) "benar" pada umumnya jauh lebih kecil daripada penalti ketika mereka "salah", sehingga validasi silang menang secara rata-rata (karena hampir tidak ada asumsi). Ini tidak memuaskan secara intelektual! ; o)
Dikran Marsupial
1
@dikran - menarik. Saya tidak begitu yakin saya setuju dengan apa yang Anda katakan. Jadi Anda mengatakan jika model itu salah tentukan, maka validasi silang dengan model yang sama lebih baik daripada menggunakan teorema Bayes? Saya ingin melihat contohnya.
probabilityislogic
@probabiltyislogic Saya tidak berpikir ini adalah pengamatan yang sangat baru, Rasmussen dan Williams menyebutkannya di halaman 118 dari buku Proses Gaussian mereka yang sangat baik (meskipun pada dasarnya referensi ke komentar yang sama dalam monografi Grace Wahba tentang splines). Pada dasarnya, kemungkinan marjinal adalah probabilitas data yang diberikan asumsi model, sedangkan kemungkinan XVAL adalah perkiraan probabilitas data, terlepas dari asumsi model, maka lebih dapat diandalkan ketika asumsi tidak valid. Studi empiris yang tepat akan bermanfaat.
Dikran Marsupial
@probabilityislogic Saya harus menambahkan bahwa saya suka pendekatan Bayesian untuk pemilihan model, tetapi saya hampir selalu menggunakan validasi silang dalam praktek hanya karena umumnya memberikan hasil yang (secara statistik) sebagus, atau lebih baik daripada pendekatan Bayesian.
Dikran Marsupial
XsayaysayaXsayahal(ysaya|Xsaya,θy)hal(Xsaya|θX). Istilah kedua memiliki kontribusi yang jauh lebih besar untuk kemungkinan itu, jadi jika model melakukannya dengan baik di sana dan menggigitnya pada prediksi, kemungkinan marjinal tidak akan peduli.
JMS