Dalam meningkatkan, mengapa pembelajar “lemah”?

28

Lihat juga pertanyaan serupa di stats.SE .

Dalam meningkatkan algoritma seperti AdaBoost dan LPBoost diketahui bahwa pelajar "lemah" yang akan digabungkan hanya harus berkinerja lebih baik daripada kesempatan untuk berguna, dari Wikipedia:

Klasifikasi yang digunakannya bisa lemah (yaitu, menampilkan tingkat kesalahan yang besar), tetapi selama kinerjanya tidak acak (menghasilkan tingkat kesalahan 0,5 untuk klasifikasi biner), mereka akan meningkatkan model akhir. Bahkan pengklasifikasi dengan tingkat kesalahan lebih tinggi dari yang diharapkan dari pengelompokan acak akan berguna, karena mereka akan memiliki koefisien negatif dalam kombinasi linear akhir dari pengklasifikasi dan karenanya berperilaku seperti invers mereka.

  • Apa manfaat menggunakan yang lemah dibandingkan dengan pelajar yang kuat? (mis. mengapa tidak meningkatkan dengan metode pembelajaran "kuat" - apakah kita lebih rentan terhadap overfitting?)

  • Apakah ada semacam kekuatan "optimal" untuk pelajar yang lemah? Dan apakah ini terkait dengan jumlah peserta didik dalam ansambel?

Apakah ada teori untuk mendukung jawaban atas pertanyaan-pertanyaan ini?

tdc
sumber
Peserta didik yang lemah juga menghindari pemasangan data yang terlalu ketat
Aman Deep Gautam

Jawaban:

15

Jadi, boosting adalah algoritma pembelajaran, yang dapat menghasilkan prediksi akurasi tinggi menggunakan sebagai subrutin algoritma lain, yang pada gilirannya dapat secara efisien menghasilkan hipotesis hanya sedikit lebih baik (dengan polinomial terbalik) daripada menebak acak.

Keuntungan utamanya adalah kecepatan.

Ketika Schapire mempresentasikannya pada tahun 1990, ini merupakan terobosan karena menunjukkan bahwa pembelajar waktu polinom menghasilkan hipotesis dengan kesalahan hanya sedikit lebih kecil dari 1/2 dapat ditransformasikan menjadi pembelajar waktu polinomial menghasilkan hipotesis dengan kesalahan kecil sewenang-wenang.

Jadi, teori untuk mendukung pertanyaan Anda ada di "Kekuatan kemampuan belajar yang lemah" ( pdf ) di mana ia pada dasarnya menunjukkan bahwa pembelajaran "kuat" dan "lemah" adalah setara.

Dan mungkin jawaban dari pertanyaan aslinya adalah, "tidak ada gunanya membangun pelajar yang kuat ketika Anda bisa membangun yang lemah dengan lebih murah".


Dari makalah yang relatif baru, ada "Pada kesetaraan kemampuan belajar yang lemah dan keterpisahan linier: relaksasi baru dan algoritma peningkatan efisien" ( pdf ) yang saya tidak mengerti tetapi yang tampaknya terkait dan mungkin menarik bagi orang yang lebih berpendidikan :)

andreister
sumber
1
+1 referensi yang bagus. Jadi mungkin jawabannya adalah: "tidak ada gunanya membangun pelajar yang kuat ketika Anda bisa membangun yang lemah lebih murah"?
tdc
ya, kedengarannya seperti itu - saya memperbarui jawabannya! Juga, jika saya mengerti dengan benar, ini tidak tergantung pada kekuatan peserta didik Anda yang lemah - mereka hanya harus "sedikit" lebih baik daripada acak.
andreister
1
Saya pikir apa yang Anda berdua benar-benar maksudkan adalah: tidak ada gunanya membangun pelajar yang kuat dan mahal ketika keterampilan yang sama atau bahkan lebih baik dapat dicapai hanya dengan menggabungkan banyak pelajar yang lemah dan murah . Memang, jika keterampilan yang dicapai oleh pembelajar yang kuat jauh lebih tinggi daripada keterampilan yang dicapai oleh pembelajar yang lemah, maka saya benar-benar bisa melihat titik dalam membangun pembelajar yang kuat ...
Antoine
9

Saya akan membahas overfitting, yang belum disebutkan, dengan penjelasan yang lebih intuitif. Pertanyaan pertama Anda adalah:

Apa manfaat menggunakan yang lemah dibandingkan dengan pelajar yang kuat? (mis. mengapa tidak meningkatkan dengan metode pembelajaran "kuat" - apakah kita lebih rentan terhadap overfitting?)

Alasan utama, dalam pemahaman saya, adalah:

  • Kecepatan , sebagaimana tercakup dengan cukup baik dalam jawaban lainnya;
  • Peningkatan akurasi : jika Anda sudah memiliki pembelajar yang kuat, manfaat meningkatkan kurang relevan;
  • Hindari overfitting , seperti yang Anda duga. Pikirkan seperti ini:

Yang dilakukan peningkatan adalah menggabungkan banyak hipotesis berbeda dari ruang hipotesis sehingga kita berakhir dengan hipotesis akhir yang lebih baik. Karena itu, kekuatan dorongan yang besar datang dari keragaman hipotesis yang digabungkan.

Jika kita menggunakan pembelajar yang kuat, keragaman ini cenderung menurun: setelah setiap iterasi tidak akan ada banyak kesalahan (karena modelnya kompleks), yang tidak akan banyak mendorong perubahan hipotesis baru. Dengan hipotesis yang sangat mirip, ansambel akan sangat mirip dengan model tunggal yang kompleks, yang pada gilirannya cenderung overfit!

Arthur Colombini Gusmão
sumber
4
Ini jawaban yang sebenarnya.
Matthew Drury
6

Dalam meningkatkan kami menggunakan peserta didik yang lemah sebagian besar karena mereka dilatih lebih cepat dibandingkan dengan peserta didik yang kuat. Pikirkan tentang itu. Jika saya menggunakan Multi-Layer Neural Network sebagai pembelajar, maka saya perlu melatih banyak dari mereka. Di sisi lain, pohon keputusan mungkin jauh lebih cepat, maka saya bisa melatih banyak dari mereka.

Katakanlah saya menggunakan 100 pelajar. Saya melatih NN dalam 100 detik dan pohon keputusan dalam 10 detik. Peningkatan pertama saya dengan NN akan memakan waktu 100 * 100 detik sementara peningkatan kedua dengan pohon keputusan akan memakan waktu 100 * 10 detik.

Yang mengatakan saya telah melihat artikel, yang menggunakan pembelajar yang kuat dalam meningkatkan. Tetapi dalam masalah itu pembelajar yang kuat cepat menurut saya.

Saya mencoba untuk melatih MLP pada KDD99 Intrusion Detection Dataset, (4+ Juta) menggunakan Weka. Butuh lebih dari 72 jam di mesin saya. Tetapi meningkatkan (AdaBoostM1 dengan Decision Tree - Decision Stump) hanya membutuhkan waktu 3 jam. Dalam masalah ini jelas bahwa saya tidak dapat menggunakan boosting dengan pembelajar yang kuat, yaitu pembelajar yang membutuhkan terlalu banyak waktu.

Atilla Ozgur
sumber
1
"Saya telah melihat artikel, yang menggunakan pembelajar kuat dalam meningkatkan" - ada referensi?
tdc