Seberapa burukkah penyetelan hyperparameter di luar validasi silang?

20

Saya tahu bahwa melakukan penyetelan hyperparameter di luar validasi silang dapat menyebabkan estimasi bias eksternal yang tinggi, karena dataset yang Anda gunakan untuk mengukur kinerja adalah sama dengan yang Anda gunakan untuk menyetel fitur.

Yang saya pikirkan adalah seberapa buruk masalah ini . Saya bisa mengerti bagaimana itu akan sangat buruk untuk pemilihan fitur, karena ini memberi Anda sejumlah besar parameter untuk disetel. Tetapi bagaimana jika Anda menggunakan sesuatu seperti LASSO (yang hanya memiliki satu parameter, kekuatan regularisasi), atau hutan acak tanpa pemilihan fitur (yang dapat memiliki beberapa parameter tetapi tidak ada yang sedramatis menambahkan / menjatuhkan fitur noise)?

Dalam skenario ini, seberapa optimiskah Anda terhadap perkiraan kesalahan pelatihan?

Saya akan menghargai info apa pun tentang ini - studi kasus, makalah, anecdata, dll. Terima kasih!

EDIT: Untuk memperjelas, saya tidak berbicara tentang memperkirakan kinerja model pada data pelatihan (yaitu, tidak menggunakan validasi silang sama sekali). Dengan "penyetelan hyperparameter di luar cross-validation" Maksud saya menggunakan validasi silang hanya untuk memperkirakan kinerja masing-masing model individual, tetapi tidak termasuk loop validasi silang kedua untuk mengoreksi overfitting dalam prosedur penyetelan hyperparameter (berbeda dari overfitting selama prosedur pelatihan). Lihat misalnya jawabannya di sini .

Ben Kuhn
sumber

Jawaban:

17

Efek dari bias ini bisa sangat besar. Demonstrasi yang baik dari ini diberikan oleh kompetisi pembelajaran mesin terbuka yang ditampilkan dalam beberapa konferensi pembelajaran mesin. Ini umumnya memiliki satu set pelatihan, satu set validasi dan satu set tes. Pesaing tidak dapat melihat label untuk set validasi atau set tes (jelas). Set validasi digunakan untuk menentukan peringkat pesaing di papan peringkat yang dapat dilihat semua orang saat kompetisi sedang berlangsung. Sangat umum bagi mereka yang berada di kepala papan peringkat di akhir kompetisi untuk menjadi sangat rendah di peringkat akhir berdasarkan data uji. Ini karena mereka telah menyetel parameter hiper untuk sistem pembelajaran mereka untuk memaksimalkan kinerja mereka di papan peringkat dan dengan demikian telah melakukan over- fitting data validasidengan menyetel model mereka. Pengguna yang lebih berpengalaman memberikan sedikit atau bahkan tidak sama sekali perhatian pada papan peringkat dan mengadopsi perkiraan kinerja yang tidak bias yang lebih ketat untuk memandu metodologi mereka.

Contoh dalam makalah saya (disebutkan oleh Jacques) menunjukkan bahwa efek dari bias semacam ini dapat memiliki ukuran yang sama dengan perbedaan antara algoritma pembelajaran, jadi jawaban singkatnya adalah jangan gunakan protokol evaluasi kinerja yang bias jika Anda benar-benar tertarik untuk mencari tahu apa yang berhasil dan yang tidak. Aturan dasarnya adalah "memperlakukan pemilihan model (mis. Penyetelan hyper-parameter) sebagai bagian integral dari prosedur pemasangan model, dan memasukkannya dalam setiap lipatan validasi silang yang digunakan untuk evaluasi kinerja).

Fakta bahwa regularisasi kurang rentan terhadap over-fitting daripada pemilihan fitur adalah alasan mengapa LASSO dll adalah cara yang baik untuk melakukan pemilihan fitur. Namun, ukuran bias tergantung pada jumlah fitur, ukuran dataset dan sifat tugas pembelajaran (yaitu ada elemen yang tergantung pada dataset tertentu dan akan bervariasi dari aplikasi ke aplikasi). Sifat ketergantungan data dari ini berarti bahwa Anda lebih baik memperkirakan ukuran bias dengan menggunakan protokol yang tidak bias dan membandingkan perbedaannya (melaporkan bahwa metode ini kuat untuk terlalu pas dalam pemilihan model dalam kasus khusus ini mungkin menarik. dalam dirinya sendiri).

GC Cawley dan NLC Talbot (2010), "Over-fitting dalam pemilihan model dan bias seleksi selanjutnya dalam evaluasi kinerja", Journal of Machine Learning Research, 11, p.2079, bagian 5.2.)

Dikran Marsupial
sumber
7
  • Bias yang Anda bicarakan masih terkait dengan overfitting.
  • Anda dapat menjaga risikonya rendah dengan mengevaluasi hanya sedikit model untuk memperbaiki hiperparameter regularisasi plus memberikan kompleksitas yang rendah dalam pilihan yang masuk akal.

  • Seperti yang ditunjukkan oleh @MarcClaesen, Anda memiliki kurva pembelajaran yang bekerja untuk Anda, yang akan mengurangi bias. Tetapi kurva belajar biasanya curam hanya untuk sangat sedikit kasus, dan kemudian juga overfitting adalah lebih banyak masalah.

Pada akhirnya, saya berharap bias bergantung pada

  • data (sulit untuk mengatasi masalah univariat ...) dan
  • Anda pengalaman dan pemodelan perilaku: Saya pikir adalah mungkin bahwa Anda akan memutuskan pada kompleksitas kira-kira tepat untuk model Anda jika Anda memiliki cukup pengalaman dengan kedua jenis model dan aplikasi dan jika Anda berperilaku sangat baik dan tidak menyerah godaan untuk model yang lebih kompleks. Tetapi tentu saja, kami tidak mengenal Anda dan karena itu tidak dapat menilai seberapa konservatif pemodelan Anda.
    Juga, mengakui bahwa model statistik mewah Anda sangat subjektif dan Anda tidak memiliki kasus yang tersisa untuk melakukan validasi biasanya bukan yang Anda inginkan. (Bahkan dalam situasi di mana hasil keseluruhan diharapkan lebih baik.)

Saya tidak menggunakan LASSO (karena pemilihan variabel tidak masuk akal untuk data saya karena alasan fisik), tetapi PCA atau PLS biasanya bekerja dengan baik. Punggungan akan menjadi alternatif yang dekat dengan LASSO dan lebih cocok untuk jenis data. Dengan data ini saya telah melihat urutan besarnya kesalahan klasifikasi pada "validasi pintas" vs validasi lintas independen (luar) yang tepat. Namun, dalam situasi ekstrem ini, pengalaman saya mengatakan bahwa validasi pintasan tampak mencurigakan, misalnya 2% kesalahan klasifikasi => 20% dengan validasi silang yang tepat.

Saya tidak bisa memberi Anda bilangan real yang langsung berlaku untuk pertanyaan Anda, meskipun:

  • Sejauh ini, saya lebih peduli dengan jenis "jalan pintas" lain yang terjadi di bidang saya dan menyebabkan kebocoran data, misalnya lintas memvalidasi spektrum alih-alih pasien (bias besar! Saya bisa menunjukkan 10% kesalahan klasifikasi -> 70% = menebak di antara 3 kelas), atau tidak termasuk PCA dalam validasi silang (2 - 5% -> 20 - 30%).
  • Dalam situasi di mana saya harus memutuskan apakah validasi silang yang saya mampu harus digunakan untuk optimasi model atau validasi, saya selalu memutuskan untuk validasi dan memperbaiki parameter kompleksitas berdasarkan pengalaman. PCA dan PLS bekerja dengan baik karena teknik regularisasi adalah penghormatan karena parameter kompleksitas (# komponen) berhubungan langsung dengan sifat fisik / kimia dari masalah (misalnya, saya dapat menebak berapa banyak kelompok zat yang berbeda secara kimiawi yang saya perkirakan menjadi masalah). Juga, untuk alasan fisika-kimia, saya tahu bahwa komponen-komponennya harus terlihat agak seperti spektrum dan jika berisik, saya overfitting. Tetapi pengalaman mungkin juga mengoptimalkan kompleksitas model pada set data lama dari eksperimen sebelumnya yang cukup mirip secara umum untuk membenarkan pemindahan hyperparameter dan kemudian hanya menggunakanparameter regularisasi untuk data baru.
    Dengan begitu, saya tidak bisa mengklaim memiliki model yang optimal, tetapi saya bisa mengklaim memiliki perkiraan kinerja yang masuk akal.
    Dan dengan jumlah pasien yang saya miliki, tidak mungkin untuk melakukan perbandingan model yang bermakna secara statistik (ingat, total jumlah pasien saya di bawah ukuran sampel yang disarankan untuk memperkirakan proporsi tunggal [sesuai dengan aturan praktis @FrankHarrell berikan di sini]).

Mengapa Anda tidak menjalankan beberapa simulasi yang sedekat mungkin dengan data Anda dan beri tahu kami apa yang terjadi?


Tentang data saya: Saya bekerja dengan data spektroskopi. Kumpulan data biasanya luas: beberapa puluh kasus independen (pasien; meskipun biasanya banyak pengukuran per kasus. Ca. 10³ variasi dalam data mentah, yang mungkin dapat saya kurangi hingga 250 dengan menerapkan pengetahuan domain untuk memotong area yang tidak informatif keluar dari spektrum saya dan untuk mengurangi resolusi spektral.

Cbeleites mendukung Monica
sumber
5

Jika Anda hanya memilih hyperparameter untuk LASSO, tidak perlu CV bersarang. Pemilihan parameter-hiper dilakukan dalam interaksi CV tunggal / datar.

λ

LiTiλTiLi

λ

(Ini bukan satu-satunya metode untuk memilih hiperparameter tetapi ini adalah yang paling umum - ada juga prosedur "median" yang dibahas dan dikritik oleh GC Cawley dan NLC Talbot (2010), "Ketidaksesuaian dalam pemilihan model dan bias seleksi selanjutnya dalam evaluasi kinerja ", Journal of Machine Learning Research, 11 , hal.2079 , bagian 5.2.)

λλ

Saya tahu dua hasil eksperimen dalam mengukur bias estimasi ini (dibandingkan dengan kesalahan generalisasi sebenarnya untuk dataset sintetis)

keduanya membuka akses.

Anda memerlukan CV bersarang jika:

a) Anda ingin memilih antara LASSO dan beberapa algoritma lainnya, khususnya jika mereka juga memiliki hyperparameter

λ

λ

Akhirnya, CV bersarang bukan satu-satunya cara untuk menghitung estimasi wajar yang tidak bias dari kesalahan generalisasi yang diharapkan. Setidaknya ada tiga proposal lainnya

Jacques Wainer
sumber
2
Bisakah Anda jelaskan apa yang Anda maksud dengan "tidak ada CV untuk pemilihan hiperparameter"? Dari apa yang Anda tulis saya tidak dapat mengerti apakah Anda ingin memperingatkan OP bahwa mereka tidak melakukan sarang, atau apakah Anda menyatakan bahwa secara umum tidak ada hal seperti itu ada.
cbeleites mendukung Monica
(+1) untuk penjelasan singkat tentang masalah & referensi yang baik. Tapi, seperti yang ditunjukkan oleh @cbeleites, kalimat pertama agak membingungkan: tampaknya dimaksudkan untuk memperbaiki kesalahpahaman yang tidak dimiliki OP.
Scortchi
@cbeleites (dan Scortchi) - Saya menjawab OP "EDIT:" di mana (saya percaya) dia mengklaim bahwa dia menggunakan CV untuk memilih parameter ("validasi silang hanya untuk memperkirakan kinerja masing-masing model individual,") dan dia khawatir bahwa dia tidak menggunakan CV bersarang ("tetapi tidak termasuk lingkaran luar, validasi silang kedua untuk mengoreksi overfitting dalam prosedur penyetelan hyperparameter"). Saya mencoba memberitahunya bahwa tidak ada CV luar dalam pemilihan parameter.
Jacques Wainer
@ JacquesWainer: Saya yakin dia ingin "mengoreksi overfitting dalam prosedur penyetelan hyperparameter" ketika memperkirakan kinerja out-of-sample prosedur (situasi Anda b ), daripada entah bagaimana mengoreksi nilai yang dipilih dari hyperparameter menggunakan CV bersarang. Bagaimanapun, edit Anda membuat awal jawaban Anda lebih jelas.
Scortchi
Ya, saya bermaksud "untuk mengoreksi [estimasi kinerja yang naif] untuk overfitting dalam prosedur penyetelan hyperparameter", bukan "untuk mengoreksi [hiperparameter yang disetel] untuk overfitting" atau sesuatu seperti itu. Saya minta maaf atas kebingungannya; Saya seharusnya lebih eksplisit menyatakan bahwa saya khawatir tentang estimasi kesalahan, bukan pemilihan parameter.
Ben Kuhn
2

Algoritma pembelajaran kompleks apa pun, seperti SVM, jaringan saraf, hutan acak, ... dapat mencapai akurasi pelatihan 100% jika Anda membiarkannya (misalnya melalui lemah / tidak ada regularisasi), dengan hasil generalisasi yang benar-benar mengerikan.

κ(xi,xj)=exp(γxixj2)γ=100%

Singkatnya, Anda dapat dengan mudah berakhir dengan pengklasifikasi yang sempurna pada set pelatihan Anda yang sama sekali tidak belajar apa pun yang berguna pada set tes independen. Betapa buruknya itu.

Marc Claesen
sumber
Saya tidak berbicara tentang melatih model di luar validasi silang. Saya bicarakan menyetel hyperparameters (dan masih menggunakan cross-validation untuk memperkirakan kinerja setiap set hyperparameters). Saya akan mengedit posting untuk memperjelas ini.
Ben Kuhn
100% akurasi pelatihan dan kinerja generalisasi yang tidak berguna dalam beberapa kasus.
Marc Claesen
Menurut Anda mengapa saya mempertimbangkan untuk tidak menggunakan validasi silang? Saya secara khusus berkata, "... dan masih menggunakan validasi silang untuk memperkirakan kinerja setiap set hiperparameter."
Ben Kuhn
1
γ=γγ
2
Saya benar-benar salah mengerti pertanyaan Anda. Sebelum diedit itu sangat membingungkan. Bias Anda tampaknya tertarik belum tentu positif, omong-omong; karena banyak pendekatan menghasilkan model yang jauh lebih baik ketika diberikan lebih banyak data pelatihan, yang khususnya relevan untuk perangkat pelatihan kecil + validasi silang.
Marc Claesen