Boosting: mengapa laju pembelajaran disebut parameter regularisasi?

19

The tingkat belajar parameter ( ) di Gradient Meningkatkan menyusut kontribusi masing-masing model dasar baru -typically sebuah pohon yang dangkal yang ditambahkan dalam seri. Itu terbukti secara dramatis meningkatkan akurasi set tes, yang dapat dimengerti karena dengan langkah-langkah yang lebih kecil, minimum fungsi kerugian dapat dicapai lebih tepat. ν[0,1]

Saya tidak mengerti mengapa tingkat pembelajaran dianggap sebagai parameter regularisasi ? Mengutip Elemen Pembelajaran Statistik , bagian 10.12.1, hal.364:

Mengontrol jumlah pohon bukan satu-satunya strategi regularisasi yang mungkin. Seperti halnya regresi ridge dan jaringan saraf, teknik penyusutan dapat digunakan juga. Nilai-nilai yang lebih kecil dari (lebih penyusutan) mengakibatkan risiko pelatihan yang lebih besar untuk jumlah yang sama dari iterasi M . Dengan demikian, baik V dan M mengendalikan risiko prediksi pada data pelatihan.νM.νM.

Regularisasi berarti "cara untuk menghindari overfitting", jadi jelas bahwa jumlah iterasi sangat penting dalam hal itu ( M yang terlalu tinggi menyebabkan overfitting). Tapi:M.M.

Nilai-nilai yang lebih kecil dari (lebih penyusutan) mengakibatkan risiko pelatihan yang lebih besar untuk jumlah yang sama dari iterasi M .νM.

hanya berarti bahwa dengan tingkat belajar yang rendah, diperlukan lebih banyak iterasi untuk mencapai akurasi yang sama pada set pelatihan. Jadi bagaimana hubungannya dengan overfitting?

romuald_84
sumber

Jawaban:

23

Misalkan Anda mencoba untuk meminimalkan fungsi tujuan melalui sejumlah iterasi. Dan nilai saat ini adalah . Dalam kumpulan data yang diberikan, tidak ada "kesalahan yang tidak dapat direduksi" dan Anda dapat meminimalkan kehilangan hingga 0,0 untuk data pelatihan Anda. Sekarang Anda memiliki dua cara untuk melakukannya.100.00,0

  • Cara pertama adalah "tingkat belajar yang besar" dan beberapa iterasi. Misalkan Anda dapat mengurangi kerugian sebesar di setiap iterasi, lalu, dalam 10 iterasi, Anda dapat mengurangi kerugian menjadi 0,0 .10.0100,0

  • Cara kedua adalah "tingkat belajar lambat" tetapi lebih banyak iterasi. Misalkan Anda dapat mengurangi kerugian sebesar di setiap iterasi dan Anda membutuhkan 100 iterasi untuk memiliki 0,0 kerugian pada data pelatihan Anda.1.0100

Sekarang pikirkan tentang ini: apakah kedua pendekatannya sama? dan jika tidak, mana yang lebih baik dalam konteks optimasi dan konteks pembelajaran mesin ?

Dalam literatur optimasi , kedua pendekatan itu sama. Karena keduanya bertemu untuk solusi optimal . Di sisi lain, dalam pembelajaran mesin , mereka tidak setara. Karena dalam kebanyakan kasus, kami tidak membuat kehilangan dalam pelatihan diatur ke yang akan menyebabkan over-fitting.0

Kita dapat berpikir tentang pendekatan pertama sebagai "pencarian grid tingkat kasar", dan pendekatan kedua sebagai "pencarian grid tingkat halus". Pendekatan kedua biasanya bekerja lebih baik, tetapi membutuhkan lebih banyak daya komputasi untuk iterasi yang lebih banyak.

Untuk mencegah over-fitting, kita dapat melakukan hal-hal yang berbeda, cara pertama adalah membatasi jumlah iterasi, misalkan kita menggunakan pendekatan pertama, kita membatasi jumlah iterasi menjadi 5. Pada akhirnya, hilangnya data pelatihan adalah . (BTW, ini akan sangat aneh dari sudut pandang optimisasi , yang berarti kami dapat meningkatkan solusi kami di masa depan / itu tidak menyatu, tetapi kami memilih untuk tidak. Dalam optimasi, biasanya kami secara eksplisit menambahkan batasan atau istilah hukuman ke fungsi tujuan, tetapi biasanya tidak membatasi jumlah iterasi.)50

0,15000,0

Inilah sebabnya mengapa tingkat belajar yang kecil sama dengan "lebih banyak pengaturan".

Berikut adalah contoh penggunaan tingkat belajar yang berbeda pada data eksperimen yang digunakan xgboost. Silakan periksa dua tautan berikut untuk melihat apa artinya etaatau apa n_iterations.

Parameter untuk Penambah Pohon

XGBoost Control overfitting

50

Contoh mengubah ETA tingkat pembelajaran dalam model XGBoost

PS. bukti ketidaksesuaian adalah pelatihan dan pengujian memiliki kesalahan besar, dan kurva kesalahan untuk pelatihan dan pengujian dekat satu sama lain. Tanda over-fitting adalah kesalahan set latihan sangat rendah dan set pengujian sangat tinggi, dua kurva jauh dari satu sama lain.

Haitao Du
sumber
Apakah maksud Anda bahwa dengan tingkat belajar yang rendah, Anda diizinkan untuk beralih lebih banyak (mempersempit pencarian Anda lebih banyak) daripada dengan tingkat belajar yang tinggi, untuk kerugian yang sama? Saya pikir saya mendapatkan intuisi yang Anda coba sampaikan tetapi penjelasan yang lebih ketat dan / atau contoh ilustratif tidak akan menyakitkan.
Antoine
Terima kasih. Bisakah Anda memperbarui tautan Anda? Mereka tidak bekerja untuk saya
Antoine
Menggunakan tingkat pembelajaran yang lebih besar selalu lebih baik selama Anda tidak meningkatkan kesalahan pelatihan dalam iterasi berikutnya. Regulator yang Anda maksudkan (bias vs varians) terkait dengan kesalahan pelatihan / validasi dan bukan tingkat pembelajaran. Apakah Anda menggunakan tingkat belajar besar atau kecil, jika Anda mencapai 0,01 kesalahan pelatihan maka Anda terlalu banyak berolahraga. Jika Anda menggunakan tingkat pembelajaran yang lebih besar, maka Anda harus menghentikan pengoptimalan Anda lebih awal untuk mencegah overfitting. Anda dapat menggunakan set validasi untuk melihat apakah kesalahan validasi Anda meningkat pada titik mana Anda menghentikan pelatihan.
Penasaran
atau saya mungkin melewatkan sesuatu :)
Penasaran
This is why small learning rate is sort of equal to "more regularizations". Menurut makalah ini, semakin besar tingkat belajar, semakin banyak regularisasi: Super-Konvergensi: Pelatihan Sangat Cepat dari Jaringan Saraf Tiruan Menggunakan Tingkat Pembelajaran Besar
Antoine
2

Dengan metode Newton, Anda memperbarui parameter Anda dengan mengurangi gradien kerugian dibagi dengan kelengkungan kerugian. Dalam optimasi gradient descent, Anda memperbarui parameter Anda dengan mengurangi gradien dari kehilangan kali tingkat belajar. Dengan kata lain, kebalikan dari tingkat pembelajaran digunakan sebagai pengganti kelengkungan kerugian nyata.

Mari kita mendefinisikan masalah kerugian menjadi kerugian yang mendefinisikan apa model yang baik versus yang buruk. Kerugian yang sesungguhnya. Mari kita mendefinisikan kerugian yang dioptimalkan menjadi apa yang sebenarnya diminimalkan oleh aturan pembaruan Anda.

Menurut definisi, parameter regularisasi adalah istilah apa pun yang ada dalam kerugian yang dioptimalkan, tetapi bukan masalah yang hilang. Karena tingkat pembelajaran bertindak seperti istilah kuadratik tambahan dalam kerugian yang dioptimalkan, tetapi tidak ada hubungannya dengan hilangnya masalah, itu adalah parameter regularisasi.

Contoh lain dari regularisasi yang membenarkan perspektif ini adalah:

  • Bobot pembusukan, yang seperti istilah ekstra dalam kerugian optimal yang menghukum bobot besar,
  • istilah yang menghukum model yang rumit, dan
  • istilah yang menghukum korelasi antara fitur.
Neil G
sumber
- Saya tidak mengerti In other words, the reciprocal of the learning rate is used in place of the real loss curvature. - Saya bukan ahli domain dan itu adalah pertama kalinya saya melihat definisi: a regularization parameter is any term that is in the optimized loss, but not the problem loss. Saya juga tidak mengerti. Bisakah Anda memberikan referensi yang relevan? Terima kasih sebelumnya
Antoine
@Antoine Saya tidak bisa memberikan referensi. Hanya pengalaman saya bahwa saya mencoba membenarkan menggunakan tiga contoh lainnya. Adapun tingkat pembelajaran duduk di tempat kelengkungan kerugian terbalik, Anda dapat melihat bahwa jika Anda menulis metode Newton dan pembaruan perbaruan gradien aturan berdampingan.
Neil G