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?
Jawaban:
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 :)
sumber
Saya akan membahas overfitting, yang belum disebutkan, dengan penjelasan yang lebih intuitif. Pertanyaan pertama Anda adalah:
Alasan utama, dalam pemahaman saya, adalah:
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!
sumber
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.
sumber