Meningkatkan Teknik dalam Pembelajaran Mesin: Meningkatkan Akurasi dan Mengurangi Kesalahan
Diterbitkan: 2025-01-16Boosting adalah teknik pembelajaran ansambel yang ampuh dalam pembelajaran mesin (ML) yang meningkatkan akurasi model dengan mengurangi kesalahan. Dengan melatih model sekuensial untuk mengatasi kekurangan sebelumnya, peningkatan akan menciptakan sistem prediksi yang kuat. Panduan ini mencakup cara kerja peningkatan; kelebihan, tantangan, dan penerapannya; dan bagaimana perbandingannya dengan mengantongi.
Daftar isi
- Apa itu peningkatan?
- Bias vs. varians
- Meningkatkan vs. mengantongi
- Cara kerja peningkatan
- Jenis algoritma peningkatan
- Aplikasi peningkatan
- Keuntungan dari peningkatan
- Tantangan dan keterbatasan peningkatan
Apa itu peningkatan?
Boosting adalah teknik pembelajaran ansambel yang melatih model baru yang berurutan untuk memperbaiki kesalahan model sebelumnya dalam ansambel. Teknik pembelajaran ensemble adalah cara menggunakan beberapa model serupa untuk meningkatkan kinerja dan akurasi. Dalam peningkatan, model baru dilatih hanya berdasarkan kesalahan ansambel sebelumnya. Kemudian model-model baru bergabung dengan ansambel untuk membantunya memberikan prediksi yang lebih akurat. Setiap masukan baru dilewatkan melalui model dan dikumpulkan untuk mengurangi kesalahan pada semua model.
Akurasi adalah konsep yang luas. Peningkatan secara khusus akan meningkatkan performa model dengan mengurangi bias model (dan, pada tingkat lebih rendah, varians). Varians dan bias adalah dua konsep penting ML yang akan kita bahas di bagian selanjutnya.
Bias vs. varians
Bias dan varians adalah dua sifat dasar pembelajaran mesin secara keseluruhan. Tujuan dari setiap algoritma ML adalah untuk mengurangi varians dan bias model. Mengingat pentingnya hal tersebut, kami akan menjelaskan lebih lanjut tentang masing-masing hal dan mengapa hal tersebut biasanya bertentangan satu sama lain.
Untuk menjelaskan masing-masing konsep, mari kita ambil contoh prediksi harga jual rumah berdasarkan data tentang fitur-fiturnya (misalnya luas persegi, jumlah kamar tidur, dll.).
Bias
Bias adalah ukuran seberapa salah rata-rata suatu model. Jika sebuah rumah benar-benar dijual seharga $400.000 dan model memperkirakan $300.000, bias untuk titik data tersebut adalah −$100.000. Rata-ratakan bias pada seluruh kumpulan data pelatihan, dan Anda akan mendapatkan bias model.
Bias biasanya diakibatkan oleh model yang terlalu sederhana untuk memahami hubungan kompleks antara fitur dan keluaran. Model yang terlalu sederhana mungkin belajar untuk hanya melihat luas persegi dan akan selalu salah, bahkan pada data pelatihan. Dalam bahasa ML, ini disebut underfitting.
Perbedaan
Varians mengukur seberapa besar perbedaan keluaran suatu model dengan masukan yang serupa. Dalam kebanyakan kasus, rumah-rumah di lingkungan yang sama dan dengan ukuran luas yang sama, jumlah kamar tidur, dan jumlah kamar mandi harus memiliki harga yang sama. Namun model dengan varian tinggi mungkin memberikan harga yang sangat berbeda. Mengapa?
Model tersebut mungkin telah mempelajari hubungan palsu dari data pelatihan (misalnya, mengira bahwa jumlah rumah mempengaruhi harga). Hubungan palsu ini kemudian dapat menghilangkan hubungan berguna dalam data. Umumnya, model yang kompleks menangkap hubungan yang tidak relevan ini, yang disebut overfitting.
Pertukaran bias-varians
Idealnya, Anda menginginkan model ML dengan bias rendah dan varian rendah yang akan menangkap hubungan sebenarnya dalam data, tetapi tidak lebih dari itu. Namun, hal ini sulit dilakukan dalam praktiknya.
Meningkatkan kecanggihan atau kompleksitas model dapat mengurangi bias dengan memberikan kemampuan untuk menemukan pola yang lebih dalam pada data. Namun, kekuatan yang sama juga dapat membantunya menemukan pola yang tidak relevan dan sebaliknya, sehingga membuat trade-off bias-varians ini sulit diselesaikan.
Peningkatan meningkatkan bias dan varians
Boosting adalah teknik pembelajaran ansambel yang sangat populer karena dapat mengurangi bias dan varians (walaupun pengurangan varians tidak umum terjadi).
Dengan mengoreksi kesalahan sebelumnya, peningkatan mengurangi tingkat kesalahan rata-rata dan ukuran kumpulan model, sehingga menurunkan bias.
Dengan menggunakan beberapa model, kesalahan masing-masing model dapat dihilangkan, sehingga berpotensi menghasilkan varians yang lebih rendah.
Meningkatkan vs. mengantongi
Dalam pembelajaran ansambel, dua teknik yang paling umum adalah boosting dan bagging. Bagging mengambil set data pelatihan, membuat subset secara acak, dan melatih model berbeda pada setiap subset. Kemudian model-model tersebut digunakan bersama-sama untuk membuat prediksi. Hal ini menyebabkan beberapa perbedaan antara bagging dan boosting, yang kami jelaskan di bawah.
Mengantongi | Meningkatkan | |
Pelatihan model | Model dilatih secara paralel pada subkumpulan data yang berbeda. | Model dilatih secara berurutan, dengan setiap model berfokus pada kesalahan model sebelumnya. |
Fokus pengurangan kesalahan | Mengurangi varians | Mengurangi bias |
Algoritma umum | Hutan acak, pohon keputusan yang dikantongi | AdaBoost, peningkatan gradien, XGBoost |
Risiko yang berlebihan | Risiko overfitting lebih rendah karena pengambilan sampel acak | Risiko overfitting lebih tinggi |
Kompleksitas komputasi | Lebih rendah | Lebih tinggi |
Kedua teknik ini umum dilakukan, namun boosting adalah pilihan yang lebih populer karena dapat mengurangi bias dan varians.
Cara kerja peningkatan
Mari kita bahas cara kerja peningkatan. Pada dasarnya, peningkatan terdiri dari melatih setiap model baru berdasarkan titik data yang salah pada model sebelumnya. Ada tiga bagian:
- Memberi bobot pada data pelatihan berdasarkan kesalahan
- Melatih model baru pada kumpulan data kesalahan berbobot ini
- Menambahkan model baru ke ansambel
Untuk memulainya, anggaplah kita telah melatih model awal (sebuah ansambel).
Memberi bobot pada data pelatihan berdasarkan kesalahan
Kami menjalankan data pelatihan melalui ansambel yang ada dan mencatat masukan mana yang prediksinya salah dari ansambel tersebut. Kemudian kami membuat versi kumpulan data pelatihan yang dimodifikasi di mana masukan yang bermasalah tersebut lebih terwakili atau lebih penting.
Melatih model baru
Kami menggunakan kumpulan data modifikasi yang kami buat untuk melatih model baru, yang tipenya sama dengan model lain dalam ansambel. Namun, model baru ini lebih berfokus pada contoh-contoh sulit dari data pelatihan, sehingga kemungkinan besar kinerjanya akan lebih baik. Peningkatan kinerja kesalahan ini merupakan bagian penting dalam mengurangi bias.
Menggabungkan model baru
Model yang baru dilatih ditambahkan ke ansambel, dan prediksinya diberi bobot berdasarkan keakuratannya. Secara paralel, masukan baru diteruskan ke setiap model dalam ansambel, dan keluaran akhir dari setiap model diberi bobot untuk mendapatkan keluaran ansambel.
Untuk tugas klasifikasi (biasanya memilih antara dua label dalam meningkatkan masalah), kelas dengan jumlah suara tertimbang tertinggi dipilih sebagai prediksi ansambel.
Untuk tugas regresi, prediksi ansambel adalah rata-rata tertimbang dari prediksi setiap model.
Pada titik ini, proses dapat terulang jika biasnya masih terlalu tinggi.
Jenis algoritma peningkatan
Ada beberapa varian algoritma peningkatan, dengan beberapa perbedaan besar di antara keduanya. Yang paling populer adalah peningkatan adaptif (AdaBoost), peningkatan gradien, peningkatan gradien ekstrim (XGBoost), dan peningkatan kucing. Kami akan membahas masing-masing secara bergantian.
AdaBoost
AdaBoost sangat mirip dengan algoritme peningkatan yang kami jelaskan sebelumnya: Data pelatihan yang menimbulkan masalah pada ansambel sebelumnya akan lebih diberi bobot saat melatih model berikutnya. AdaBoost adalah salah satu algoritma peningkatan asli dan dikenal karena kesederhanaannya.
AdaBoost tidak terlalu rentan terhadap overfitting dibandingkan algoritme peningkatan lainnya karena model baru melihat variasi yang berbeda (dengan titik data keras menjadi lebih umum) dari kumpulan data pelatihan. Namun, dibandingkan dengan teknik peningkatan lainnya, teknik ini lebih sensitif terhadap data outlier dan tidak terlalu mengurangi bias.
Peningkatan gradien
Peningkatan gradien adalah pendekatan unik untuk peningkatan. Berbeda dengan peningkatan adaptif, model baru tidak mendapatkan versi set data pelatihan yang memiliki bobot error. Mereka mendapatkan kumpulan data asli. Namun, alih-alih mencoba memprediksi keluaran untuk masukan dalam kumpulan data, mereka mencoba memprediksi gradien negatif dari ansambel sebelumnya pada setiap masukan.
Gradien negatif pada dasarnya adalah arah pergerakan bobot dan prediksi model ansambel untuk mengurangi kesalahan—agar mendekati jawaban yang benar. Gradien negatif ditambahkan (dengan faktor pembobotan diterapkan) ke prediksi keluaran ansambel sebelumnya untuk membuatnya semakin mendekati kebenaran.
Peningkatan gradien jauh lebih berperforma dibandingkan AdaBoosting, terutama pada data yang kompleks. Terdapat juga lebih banyak hyperparameter yang harus disesuaikan, yang memberi orang lebih banyak kontrol namun juga meningkatkan kebutuhan akan eksperimen.
XGBoost
XGBoost (atau peningkatan gradien ekstrem) adalah versi peningkatan gradien yang sangat optimal. XGBoost membuat pelatihan dan inferensi peningkatan gradien menjadi lebih paralel. XGBoost juga menambahkan regularisasi (yaitu, penalti untuk kompleksitas) untuk mencegah overfitting dan menangani data yang hilang dengan lebih baik. Terakhir, XGBoost jauh lebih skalabel untuk kumpulan data atau beban kerja besar.
XGBoost bahkan lebih berperforma daripada peningkatan gradien dan merupakan salah satu algoritme ML paling populer di tahun 2010-an. Namun hal ini juga lebih sulit untuk diinterpretasikan dan jauh lebih mahal secara komputasi untuk dijalankan.
Peningkatan Kucing
CatBoost adalah bentuk peningkatan gradien yang dirancang untuk bekerja pada data kategorikal. Data kategorikal adalah data yang nilainya dapat berada dalam beberapa kelompok terbatas. Berikut beberapa contohnya:
- Ya–tidak data (misalnya, apakah rumah tersebut mempunyai garasi?)
- Kategori warna (misalnya merah, biru, hijau)
- Kategori produk (misalnya, elektronik, pakaian, furnitur)
Model peningkatan gradien umumnya tidak berfungsi dengan baik dengan data kategorikal, sedangkan CatBoost berfungsi dengan baik. CatBoost juga dapat menangani data berkelanjutan, menjadikannya pilihan peningkatan yang populer. Seperti model peningkatan gradien lainnya, CatBoost mengalami kompleksitas komputasi dan overfitting.
Aplikasi peningkatan
Peningkatan dapat diterapkan pada hampir semua masalah ML karena kesalahan dan bias sering kali lebih tinggi dari yang kita inginkan. Klasifikasi dan regresi adalah dua subdivisi besar ML, dan peningkatan berlaku untuk keduanya. Rekomendasi konten dan deteksi penipuan adalah dua contoh masalah ML yang dihadapi perusahaan dan peningkatan juga dapat membantu.
Klasifikasi dan regresi
Klasifikasi dan regresi adalah dua tugas inti ML. Pengguna mungkin ingin memprediksi apakah suatu gambar berisi anjing atau kucing (klasifikasi), atau mereka mungkin ingin memprediksi harga jual rumah (regresi). Peningkatan berfungsi dengan baik untuk kedua tugas tersebut, terutama ketika model dasarnya lemah atau tidak rumit.
Rekomendasi konten
Peningkatan ini akan meningkatkan rekomendasi konten (misalnya, film yang disarankan Netflix untuk Anda) dengan meningkatkan akurasi prediksi secara berulang untuk preferensi pengguna. Ketika model pemberi rekomendasi gagal menangkap pola penayangan tertentu (seperti preferensi musiman atau pilihan bergantung konteks), peningkatan akan menciptakan model tambahan yang secara khusus berfokus pada pola yang terlewatkan tersebut. Setiap model baru dalam rangkaian ini memberikan bobot ekstra pada preferensi pengguna yang sebelumnya diprediksi buruk, sehingga menghasilkan error yang lebih rendah.
Deteksi penipuan
Dalam deteksi penipuan, yang merupakan kasus umum bagi perusahaan pembiayaan, mereka meningkatkan keunggulan dengan belajar secara progresif dari transaksi yang salah klasifikasi. Jika model-model awal tidak menangkap pola-pola penipuan yang canggih, maka model-model baru yang ditingkatkan secara khusus menargetkan kasus-kasus yang menyulitkan ini. Teknik ini beradaptasi dengan sangat baik terhadap perubahan taktik penipuan dengan memberikan bobot yang lebih tinggi pada kesalahan klasifikasi terkini, sehingga sistem dapat mempertahankan tingkat deteksi yang tinggi.
Keuntungan dari peningkatan
Peningkatan sangat baik dalam mengurangi bias model dan, pada tingkat lebih rendah, varians. Dibandingkan dengan teknik ansambel lainnya, teknik ini memerlukan lebih sedikit data dan memberikan kontrol lebih besar terhadap overfitting.
Mengurangi bias dan varians
Bias yang tinggi berarti model sering kali salah. Peningkatan adalah teknik hebat untuk mengurangi bias dalam model. Karena setiap model berfokus pada koreksi kesalahan model sebelumnya, ansambel secara keseluruhan mengurangi tingkat kesalahannya.
Berkurangnya varians juga memiliki efek samping: Model yang lebih baru mungkin memiliki campuran data pelatihan yang berbeda, sehingga kesalahan dalam model yang berbeda dapat saling menghilangkan.
Membutuhkan lebih sedikit data
Berbeda dengan teknik ansambel lainnya, peningkatan tidak memerlukan kumpulan data yang besar agar dapat berfungsi dengan baik. Karena setiap model baru berfokus terutama pada kesalahan model lama, maka model tersebut memiliki sasaran yang sempit dan tidak memerlukan banyak data. Model baru dapat menggunakan data pelatihan yang ada dan berulang kali melatih kesalahan tersebut.
Kontrol lebih besar terhadap overfitting
Peningkatan memiliki beberapa hyperparameter yang mengontrol seberapa besar kontribusi setiap model baru terhadap prediksi ansambel. Dengan memodifikasi hyperparameter ini, pengguna dapat mengurangi pengaruh model baru. Hal ini akan meningkatkan bias namun berpotensi menurunkan varians, sehingga pengguna dapat mengontrol di mana trade-off bias-varians yang mereka inginkan.
Tantangan dan keterbatasan peningkatan
Namun, peningkatan memiliki peringatan tersendiri. Hal ini memerlukan lebih banyak waktu untuk melatih dan menggunakannya, sensitif terhadap data outlier, dan memerlukan lebih banyak penyesuaian hyperparameter.
Waktu pelatihan lebih lama
Dalam meningkatkan, setiap model baru bergantung pada kesalahan ansambel sebelumnya. Artinya, model harus dilatih satu per satu, sehingga memerlukan waktu pelatihan yang lama. Kelemahan lainnya adalah pelatihan berurutan berarti Anda mungkin tidak tahu apakah peningkatan akan efektif sampai Anda melatih selusin model.
Sensitivitas outlier
Dalam peningkatan, model baru hanya berfokus pada kesalahan model sebelumnya. Beberapa data outlier dalam set pelatihan yang harus diabaikan mungkin malah menjadi satu-satunya fokus model selanjutnya. Hal ini dapat menurunkan kinerja ansambel secara keseluruhan dan membuang waktu pelatihan. Pemrosesan data yang hati-hati mungkin diperlukan untuk melawan dampak outlier.
Penyetelan hyperparameter lebih banyak
Keuntungan memberikan pengguna lebih banyak kontrol atas overfitting juga berarti bahwa pengguna perlu menyesuaikan lebih banyak hyperparameter untuk menemukan keseimbangan yang baik antara bias dan varians. Eksperimen peningkatan berkali-kali sering kali diperlukan, sehingga pelatihan berurutan menjadi lebih membosankan. Peningkatan memerlukan banyak sumber daya komputasi.