Hindari overfitting dalam regresi: alternatif untuk regularisasi


19

Regularisasi dalam regresi (linier, logistik ...) adalah cara paling populer untuk mengurangi pemasangan berlebihan.

Ketika tujuannya adalah akurasi prediksi (tidak menjelaskan), apakah ada alternatif yang baik untuk regularisasi, terutama cocok untuk kumpulan data besar (mil / pengamatan pengamatan dan jutaan fitur)?


3
"Kumpulan data besar" dapat berarti banyak pengamatan, banyak variabel atau keduanya, dan jawabannya mungkin tergantung pada jumlah pengamatan dan variabel.
Pere

Kenapa tidak menggunakan norma regularisasi? Untuk jaringan saraf, ada dropout
seanv507

4
Keuntungan dari regularisasi adalah harganya murah secara komputasi. Metode ensemble seperti bagging dan boosting (dll.) Dikombinasikan dengan metode validasi silang untuk diagnostik model adalah alternatif yang baik, tetapi itu akan menjadi solusi yang jauh lebih mahal.
Digio


1
Untuk menambah komentar oleh Digio: regularisasi murah dibandingkan dengan mengantongi / meningkatkan tetapi masih mahal dibandingkan dengan alternatif "tidak ada regularisasi" (lihat misalnya posting ini oleh Ben Recht tentang bagaimana regularisasi membuat pembelajaran mendalam menjadi sulit ). Jika Anda memiliki sampel dalam jumlah besar, tidak ada regularisasi yang dapat bekerja dengan baik dengan biaya yang jauh lebih murah. Model ini masih bisa menggeneralisasi serta @ hxd1001 menunjukkan )
Berk U.

Jawaban:


11

Dua poin penting yang tidak terkait langsung dengan pertanyaan Anda:

  • Pertama, meskipun tujuannya adalah akurasi daripada interpretasi, regularisasi masih diperlukan dalam banyak kasus, karena, itu akan memastikan "akurasi tinggi" pada set data pengujian / produksi nyata, bukan data yang digunakan untuk pemodelan.

  • Kedua, jika ada miliar baris dan juta kolom, mungkin tidak diperlukan regularisasi. Ini karena datanya sangat besar, dan banyak model komputasi memiliki "kekuatan terbatas", yaitu, hampir mustahil untuk overfit. Inilah sebabnya mengapa beberapa jaringan saraf yang dalam memiliki milyaran parameter.


Sekarang, tentang pertanyaan Anda. Seperti yang disebutkan oleh Ben dan Andrey, ada beberapa opsi sebagai alternatif untuk regularisasi. Saya ingin menambahkan lebih banyak contoh.

  • Gunakan model yang lebih sederhana (Misalnya, kurangi jumlah unit tersembunyi di jaringan saraf. Gunakan kernel polinomial orde rendah dalam SVM. Kurangi jumlah Gauss dalam campuran Gauss. Dll.)

  • Berhentilah lebih awal dalam pengoptimalan. (Misalnya, kurangi zaman dalam pelatihan jaringan saraf, kurangi jumlah iterasi dalam optimasi (CG, BFGS, dll.)

  • Rata-rata pada banyak model (Misalnya, hutan acak, dll.)


Terima kasih banyak. Opsi kedua (berhenti lebih awal) adalah apa yang kami coba saat ini dengan SGD. Ini bekerja dengan baik. Kami ingin segera membandingkannya dengan regularisasi. Apakah Anda mengetahui ada artikel yang menyebutkan metode ini?
Benoit Sanchez

1
Ada petunjuk hubungan geometris antara penghentian awal dengan penurunan gradien, dan regularisasi. Sebagai contoh, regresi ridge dalam bentuk primal meminta parameter meminimalkan fungsi kerugian yang terletak di dalam elips padat yang berpusat di titik asal, dengan ukuran elips fungsi dari kekuatan regularisasi. Parameter punggungan terletak pada permukaan elips jika mereka berbeda dari solusi yang tidak diatur. Jika Anda menjalankan pendakian mulai dari titik asal, dan kemudian berhenti lebih awal, Anda akan berada di batas salah satu elips ini ...
Matthew Drury

Karena Anda mengikuti gradien, Anda mengikuti jalur ke minimum yang sebenarnya, sehingga Anda akan sering berakhir di sekitar solusi ridge. Saya tidak yakin seberapa keras Anda bisa membuat pemikiran ini, tetapi mungkin ada hubungan.
Matthew Drury

@BenoitSanchez Makalah ini mungkin relevan. Para penulis menangani masalah yang berbeda (overfitting dalam perhitungan vektor eigen), tetapi strategi untuk menangani overfitting adalah sama (yaitu regularisasi implisit dengan mengurangi komputasi). Strateginya adalah untuk memecahkan masalah yang lebih murah yang menghasilkan solusi perkiraan (yang - saya pikir - sama dengan berhenti di awal optimasi).
Berk U.

@ BenenoSanchez Saya merekomendasikan ini. Ceramah Lorenzo tersedia di youtube, tetapi halaman ini juga memiliki tautan ke beberapa makalah mit.edu/~9.520/fall17/Classes/early_stopping.html
David Kozak

14

Dua alternatif untuk regularisasi:

  1. Miliki banyak, banyak pengamatan
  2. Gunakan model yang lebih sederhana

Geoff Hinton (co-inventor dari back propogation) pernah menceritakan sebuah kisah tentang para insinyur yang memberitahunya (mengutip dengan keras), "Geoff, kita tidak perlu putus sekolah di jaring kita yang dalam karena kita memiliki begitu banyak data." Dan jawabannya, adalah, "Nah, maka Anda harus membangun jaring lebih dalam, sampai Anda sedang overfitting, dan kemudian menggunakan putus sekolah." Selain saran yang bagus, Anda dapat menghindari regularisasi bahkan dengan jaring yang dalam, asalkan ada cukup data.

Dengan jumlah pengamatan tetap, Anda juga dapat memilih model yang lebih sederhana. Anda mungkin tidak perlu regularisasi untuk memperkirakan intersep, kemiringan, dan varian kesalahan dalam regresi linier sederhana.


3

Beberapa kemungkinan tambahan untuk menghindari overfitting

  • Pengurangan dimensi

    ml<<m

  • Pemilihan fitur (juga pengurangan dimensi)

    Anda dapat melakukan putaran pemilihan fitur (mis. Menggunakan LASSO) untuk mendapatkan ruang fitur dimensi yang lebih rendah. Sesuatu seperti pemilihan fitur menggunakan LASSO dapat berguna jika beberapa bagian besar tapi fitur yang tidak diketahui tidak relevan.

  • Gunakan algoritma yang kurang rentan terhadap overfitting seperti hutan acak. (Tergantung pada pengaturan, jumlah fitur dll ..., ini bisa lebih mahal secara komputasi daripada kuadrat terkecil biasa.)

    Beberapa jawaban lain juga menyebutkan kelebihan teknik dan algoritma peningkatan dan pengemasan.

  • Metode Bayesian

    Menambahkan sebelumnya pada vektor koefisien mengurangi overfitting. Ini secara konseptual terkait dengan regularisasi: misalnya. regresi ridge adalah kasus khusus dari estimasi posteriori maksimum.


2

Jika Anda menggunakan model dengan solver, di mana Anda dapat menentukan jumlah iterasi / zaman, Anda dapat melacak kesalahan validasi dan menerapkan penghentian dini: hentikan algoritme, ketika kesalahan validasi mulai meningkat.


1
Pertanyaan ini jelas menanyakan tentang model regresi (linier, logistik).
Matthew Drury

2
Secara teknis, regresi linier dan logistik adalah jaringan saraf yang sangat sederhana.
Andrey Lukyanenko

2
Saya tidak berpikir itu mengubah keyakinan saya bahwa ini tidak menjawab pertanyaan sebagaimana ditanyakan. Jika Anda mengerjakan ulang untuk mengatakan "jika Anda cocok dengan regresi dengan beberapa bentuk gradient descent, dan menerapkan penghentian dini" itu akan lebih baik.
Matthew Drury

Bahkan sklearn memiliki sejumlah model yang mendukung parameter yang membatasi jumlah iterasi. Ini bisa digunakan untuk melacak akurasi. Tapi saya kira Anda benar bahwa kata-katanya tidak sepenuhnya benar.
Andrey Lukyanenko

1

Dua pemikiran:

  1. Saya kedua strategi "gunakan model yang lebih sederhana" yang diusulkan oleh Ben Ogorek .

    Saya bekerja pada model klasifikasi linier yang benar-benar jarang dengan koefisien integer kecil (misalnya, maks. 5 variabel dengan koefisien integer antara -5 dan 5). Model tersebut menggeneralisasi dengan baik dalam hal akurasi dan metrik kinerja yang lebih rumit (mis. Kalibrasi).

    n/d

  2. Jika Anda dapat menentukan batasan tambahan untuk model Anda (misalnya kendala monotonisitas, informasi sampingan), maka ini juga dapat membantu dengan generalisasi dengan mengurangi ruang hipotesis (lihat misalnya makalah ini ).

    Ini perlu dilakukan dengan hati-hati (misalnya Anda mungkin ingin membandingkan model Anda dengan data dasar tanpa kendala, dan merancang proses pelatihan Anda dengan cara yang memastikan Anda tidak mengalami kendala memetik ceri).

Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.