Algoritma AdaBoost

Terjemahan artikel disiapkan pada malam dimulainya kursus lanjutan "Matematika untuk Ilmu Data" .



pengantar


Algoritma AdaBoost dapat digunakan untuk meningkatkan kinerja algoritma pembelajaran mesin apa pun. Pembelajaran mesin telah menjadi alat yang ampuh untuk membuat prediksi berdasarkan sejumlah besar data. Ini telah menjadi sangat populer saat ini sehingga aplikasi pembelajaran mesin menemukan aplikasi bahkan dalam tugas sehari-hari. Salah satu contoh paling umum adalah rekomendasi produk berdasarkan pembelian sebelumnya yang dilakukan oleh pelanggan. Pembelajaran mesin, sering disebut analisis prediktif atau pemodelan prediktif, dapat didefinisikan sebagai kemampuan komputer untuk belajar tanpa pemrograman eksplisit. Pembelajaran mesin menggunakan algoritma yang dibangun sebelumnya untuk menganalisis data input untuk membuat prediksi berdasarkan kriteria tertentu.

Apa itu algoritma AdaBoost?


Dalam pembelajaran mesin, meningkatkan diperlukan untuk mengubah pengklasifikasi yang lemah menjadi pengklasifikasi yang kuat. Algoritma pembelajaran yang lemah atau pengklasifikasi adalah algoritma pembelajaran yang bekerja lebih baik daripada menebak secara acak, dan itu akan bekerja dengan baik dalam kasus pelatihan ulang, karena dengan sejumlah besar pengklasifikasi lemah, setiap pengklasifikasi lemah akan bekerja lebih baik daripada pengambilan sampel acak. Sebagai penggolong yang lemah, yang biasa sering digunakan thresholdsesuai dengan kriteria tertentu. Jika tanda terletak lebih tinggi threshold(nilai ambang) daripada yang diperkirakan, itu merujuk ke area positif, sebaliknya - ke negatif.

AdaBoost berarti "Adaptive Boosting" atau boosting adaptif. Ternyata algoritma pembelajaran yang lemah menjadi yang kuat untuk memecahkan masalah klasifikasi.

Persamaan akhir untuk klasifikasi dapat sebagai berikut:



Di sini f m adalah classifier lemah ke-m, di mana m bertanggung jawab untuk bobot yang sesuai.

Bagaimana cara kerja algoritma AdaBoost?


AdaBoost dapat digunakan untuk meningkatkan kinerja algoritma pembelajaran mesin . Ini bekerja paling baik dengan algoritma pelatihan yang lemah, sehingga model tersebut dapat mencapai akurasi jauh di atas acak ketika memecahkan masalah klasifikasi. Algoritma yang paling umum digunakan dengan AdaBoost adalah pohon keputusan tingkat tunggal . Algoritma pembelajaran yang lemah adalah algoritma pengklasifikasi atau prediksi yang bekerja relatif buruk dalam hal akurasi. Selain itu, kita dapat mengatakan bahwa pengklasifikasi lemah mudah untuk dihitung, sehingga Anda dapat menggabungkan banyak entitas algoritma untuk membuat pengklasifikasi yang lebih kuat menggunakan penguat.

Jika kita memiliki kumpulan data di mana n adalah jumlah titik dan



Di mana -1 adalah kelas negatif dan 1 adalah positif. Kemudian bobot setiap titik akan diinisialisasi, seperti yang ditunjukkan di bawah ini:



Setiap m dalam ekspresi berikut akan bervariasi dari 1 hingga M.
Pertama kita perlu memilih classifier lemah dengan kesalahan klasifikasi tertimbang terkecil, menerapkan classifier ke set data.



Kemudian kita menghitung bobot dari classifier lemah saya, seperti yang ditunjukkan di bawah ini:



Bobot positif untuk setiap klasifikasi dengan akurasi di atas 50%. Semakin berat, semakin akurat classifiernya. Berat menjadi negatif ketika akurasi turun di bawah 50%. Prediksi dapat digabungkan dengan membalik tanda. Dengan demikian, classifier dengan akurasi 40% dapat dikonversi menjadi classifier dengan akurasi 60%. Jadi penggolong akan berkontribusi pada prediksi akhir, bahkan jika itu bekerja lebih buruk daripada menebak secara acak. Namun, hasil akhir tidak akan berubah dengan cara apa pun di bawah pengaruh penggolong yang akurasinya adalah 50%.

Eksponen dalam pembilang akan selalu lebih besar dari 1 dalam hal klasifikasi yang salah dari pengklasifikasi dengan bobot positif. Setelah iterasi, berat benda yang diklasifikasikan secara tidak benar akan meningkat. Pengklasifikasi dengan bobot negatif akan berperilaku serupa. Ada perbedaan dalam pembalikan tanda: klasifikasi yang benar akan menjadi salah. Prakiraan akhir dapat dihitung dengan memperhitungkan kontribusi masing-masing pengklasifikasi dan menghitung jumlah perkiraan tertimbang mereka.

Berat untuk setiap titik akan diperbarui sebagai berikut:



Berikut Z m adalah parameter normalisasi. Diperlukan untuk memastikan bahwa jumlah semua instance instance adalah 1.

Di mana algoritma AdaBoost digunakan?


AdaBoost dapat digunakan untuk pengenalan wajah, karena ini merupakan algoritma standar untuk tugas-tugas tersebut. Ini menggunakan kaskade penolakan yang terdiri dari beberapa lapisan pengklasifikasi. Ketika area pengenalan tidak mendeteksi wajah pada lapisan apa pun, itu ditolak. Pengklasifikasi pertama di wilayah membuang wilayah negatif untuk meminimalkan biaya komputasi. Meskipun AdaBoost digunakan untuk menggabungkan pengklasifikasi lemah, prinsip AdaBoost juga digunakan untuk menemukan fitur terbaik untuk setiap lapisan dalam kaskade.

Kelebihan dan kekurangan algoritma AdaBoost


Salah satu dari banyak kelebihan dari algoritma AdaBoost adalah mudah, cepat dan mudah diprogram. Selain itu, cukup fleksibel untuk menggabungkannya dengan algoritma pembelajaran mesin apa pun tanpa menetapkan parameter, kecuali untuk parameter T. Dapat diperluas untuk mempelajari tugas yang lebih rumit daripada klasifikasi biner, dan cukup universal karena dapat digunakan dengan data numerik atau tekstual.

AdaBoost juga memiliki beberapa kelemahan, setidaknya fakta bahwa algoritma ini terbukti secara empiris dan sangat rentan terhadap kebisingan yang terdistribusi secara merata. Klasifikasi yang lemah jika terlalu lemah dapat menyebabkan hasil yang buruk dan pelatihan ulang.

Contoh Algoritma AdaBoost


Sebagai contoh, ambil kampanye penerimaan universitas, di mana pelamar dapat diterima di universitas atau tidak. Di sini Anda dapat mengambil berbagai data kuantitatif dan kualitatif. Sebagai contoh, hasil penerimaan, yang dapat dinyatakan sebagai "ya" atau "tidak," dapat dikuantifikasi, sedangkan keterampilan dan hobi siswa dapat ditentukan secara kualitatif. Kita dapat dengan mudah menemukan klasifikasi data pelatihan yang benar. Misalkan, jika seorang siswa menunjukkan dirinya dengan baik dalam disiplin ilmu tertentu, maka ia akan diterima dengan probabilitas yang lebih tinggi. Namun, memprediksi dengan akurasi tinggi adalah masalah yang rumit dan di sinilah bantuan pengklasifikasi lemah.

Kesimpulan


AdaBoost membantu memilih satu set pelatihan untuk setiap classifier, yang dilatih berdasarkan hasil dari classifier sebelumnya. Adapun untuk menggabungkan hasil, algoritma menentukan berapa banyak bobot yang harus diberikan kepada masing-masing pengklasifikasi tergantung pada respon yang diterima. Ini menggabungkan pengklasifikasi lemah untuk membuat kesalahan klasifikasi yang kuat dan benar, dan juga merupakan algoritma penguat yang sangat sukses untuk masalah klasifikasi biner.



Pelajari lebih lanjut tentang kursus.



All Articles