Back to IF3270 Pembelajaran Mesin
Gradient Boosting and XGBoost: Residual‑Based Additive Modeling and Gradient‑Descent Optimization
Questions/Cues
- Mengapa residual dipakai dalam Gradient Boosting?
- Bagaimana proses pembaruan model pada tiap iterasi?
- Apa peran learning rate (shrinkage) dalam XGBoost?
- Bagaimana XGBoost menangani regularisasi pohon?
- Apa perbedaan antara gradient boosting dan gradient descent klasik?
- Bagaimana cara menghitung gradient untuk fungsi loss kuadrat?
- Mengapa XGBoost disebut “extreme” dibandingkan gradient boosting standar?
Reference Points
- Lecture_Ensemble_Methods.pdf (Pages 46‑64)
- Kunapuli, G. (2023). Ensemble methods for machine learning (Pages 46‑64)
- “Basic ensemble learning – gradient boosting” – Towards Data Science (Page 58)
- “Gradient Boosting” – GeeksforGeeks (Page 59)
Gradient Boosting: Ide Dasar Additive Modeling
Gradient Boosting merupakan metode ensemble sekuensial yang membangun model kuat dengan menambahkan model lemah secara bertahap. Ide dasarnya adalah memperbaiki kesalahan (residual) yang masih tersisa setelah setiap iterasi. Pada iterasi ke‑, model lemah dilatih untuk memprediksi residual dari model gabungan sebelumnya . Dengan cara ini, setiap model baru “mengisi lubang” yang belum terjangkau, sehingga fungsi prediksi akhir menjadi penjumlahan aditif dari semua model lemah.
Contoh konkret: misalkan kita memiliki data rumah dengan harga aktual dan prediksi awal berupa rata‑rata harga. Residual pertama adalah selisih antara harga aktual dan rata‑rata. Pohon keputusan kecil (depth 1) kemudian dipelajari untuk memetakan fitur‑fitur (mis. ukuran rumah) ke residual tersebut. Setelah penambahan, prediksi menjadi rata‑rata plus kontribusi pohon pertama; proses berulang hingga residual menjadi sangat kecil atau batas iterasi tercapai.
Pendekatan additive ini berbeda dengan bagging atau random forest yang menggabungkan model secara paralel; di sini urutan pelatihan penting karena setiap model bergantung pada kesalahan model sebelumnya. (Catatan: detail tentang bagging dan random forest tidak dibahas di sini karena berada di luar cakupan topik.)
Gradient Descent sebagai Kerangka Optimasi
Secara matematis, Gradient Boosting dapat dipandang sebagai gradient descent pada ruang fungsi. Misalkan kita memiliki fungsi loss (mis. squared error ). Tujuan training adalah menemukan fungsi yang meminimalkan . Pada setiap iterasi, kita menghitung gradient negatif terhadap prediksi saat ini:
Untuk squared error, gradient negatif sama dengan residual . Kemudian, alih‑alih menggunakan gradient secara langsung, kita melatih model lemah untuk mengaproksimasi gradient tersebut. Setelah itu, model gabungan diperbarui:
di mana adalah learning rate (atau shrinkage). Dengan kata lain, setiap langkah gradient descent diimplementasikan oleh sebuah pohon keputusan yang belajar memetakan fitur ke arah penurunan loss.
Pendekatan ini menjelaskan mengapa gradient boosting disebut “gradient‑descent‑based boosting”: ia menggabungkan kekuatan boosting (penambahan model lemah) dengan optimasi gradient (menggunakan arah penurunan loss).
Pohon Keputusan sebagai Learner Lemah
Pada praktik umum, regression tree (pohon regresi) dipilih sebagai learner lemah karena kemampuannya menangkap interaksi non‑linear antar fitur dengan kompleksitas komputasi yang relatif rendah. Setiap pohon biasanya dibatasi kedalaman (mis. depth 3‑5) sehingga model lemah tidak terlalu kuat; hal ini penting agar proses boosting tetap “lemah” dan dapat memperbaiki kesalahan secara bertahap.
Proses pembentukan pohon pada iterasi meliputi:
- Menghitung residual (atau gradient) untuk semua contoh pelatihan.
- Menentukan split terbaik yang meminimalkan loss reduction pada residual tersebut (mis. mengurangi variansi residual dalam setiap leaf).
- Menetapkan nilai leaf sebagai rata‑rata residual dalam leaf tersebut (atau nilai yang meminimalkan loss secara lokal).
- Menyimpan pohon sebagai dan melanjutkan ke iterasi berikutnya.
Karena setiap pohon hanya mempelajari pola pada residual, model akhir dapat mengekspresikan fungsi yang sangat kompleks meskipun setiap komponen individualnya sederhana.
Learning Rate (Shrinkage) dan Regularisasi
Learning rate (biasanya antara 0.01‑0.3) mengontrol seberapa besar kontribusi tiap pohon lemah terhadap model akhir. Nilai kecil memperlambat konvergensi tetapi biasanya meningkatkan akurasi karena mengurangi risiko over‑fitting. Secara intuitif, shrinkage menurunkan “langkah” yang diambil dalam ruang fungsi, mirip dengan step size pada gradient descent klasik.
XGBoost memperluas konsep ini dengan menambahkan regularisasi struktural pada setiap pohon:
di mana adalah jumlah leaf, adalah nilai leaf, mengontrol penalti jumlah leaf, dan mengontrol penalti L2 pada nilai leaf. Regularisasi ini mencegah pohon menjadi terlalu dalam atau leaf memiliki nilai ekstrem, sehingga meningkatkan generalisasi.
Selain itu, XGBoost menyediakan column subsampling (sampling fitur secara acak pada tiap iterasi) dan row subsampling (sampling contoh) yang menambah variasi model tanpa harus mengorbankan kecepatan. Kedua teknik ini mirip dengan konsep “bagging” tetapi diintegrasikan dalam kerangka boosting, sehingga tetap mempertahankan urutan pembelajaran.
XGBoost: Optimasi Second‑Order dan Histogram‑Based Splitting
XGBoost memperkenalkan dua inovasi utama dibandingkan implementasi gradient boosting tradisional:
- Approximation second‑order: selain gradient pertama (), XGBoost menghitung Hessian kedua (). Dengan menggunakan Taylor expansion orde dua, objektif pada iterasi menjadi:
Ini memungkinkan pemilihan split yang lebih akurat karena mempertimbangkan kelengkungan loss, bukan hanya kemiringan.
Histogram‑based split finding: alih‑alih mengevaluasi semua nilai unik fitur, XGBoost mengkuantisasi nilai menjadi histogram (biasanya 256 bin). Split terbaik dipilih berdasarkan skor gain yang dihitung dari histogram, sehingga kompleksitas pencarian turun dari menjadi . Pendekatan ini mempercepat training pada dataset besar dan memori‑efisien.
Kedua teknik tersebut menjadikan XGBoost “extreme”: lebih cepat, lebih akurat, dan lebih mudah di‑tune dibandingkan gradient boosting standar.
Proses Inference pada Gradient Boosting dan XGBoost
Setelah model selesai dilatih, prediksi pada contoh baru dilakukan dengan menjumlahkan kontribusi semua pohon:
Pada XGBoost, nilai awal biasanya berupa bias (rata‑rata target) yang dipelajari secara otomatis. Setiap pohon dievaluasi secara leaf‑wise: fitur pada node dipilih, nilai leaf di‑lookup, dan hasilnya dikalikan dengan learning rate sebelum dijumlahkan. Karena semua operasi bersifat deterministik, inference dapat dioptimalkan dengan teknik vectorization atau GPU acceleration, yang menjadi keunggulan praktis XGBoost pada produksi.
Gradient Boosting membangun model kuat dengan menambahkan pohon lemah yang mempelajari residual (gradient negatif) pada setiap iterasi, sehingga prosesnya dapat dipandang sebagai gradient descent pada ruang fungsi. Learning rate mengatur ukuran langkah, sementara regularisasi (penalti leaf dan L2) mencegah over‑fitting. XGBoost memperluas kerangka ini dengan menggunakan informasi Hessian (second‑order), teknik histogram‑based split, serta subsampling fitur dan contoh, menjadikannya algoritma yang lebih cepat dan akurat untuk data berskala besar.
Additional Information
Formal Derivation of Gradient Boosting as Functional Gradient Descent
Misalkan ruang fungsi berisi semua fungsi yang dapat direpresentasikan oleh pohon keputusan terbatas. Tujuan kita adalah meminimalkan risiko empirik:
Dengan functional gradient descent, pada iterasi ke‑ kita mencari arah penurunan:
Di mana adalah fungsi Dirac pada titik . Karena fungsi ini tidak dapat direpresentasikan secara eksplisit, kita mengaproksimasi dengan pohon regresi yang meminimalkan:
Setelah memperoleh , langkah pembaruan menjadi:
Bukti konvergensi dapat diturunkan dengan asumsi loss konveks dan cukup kecil, mirip dengan analisis klasik gradient descent. Referensi: Friedman (2001) “Greedy Function Approximation: A Gradient Boosting Machine”.
XGBoost Objective Function and Second‑Order Approximation
XGBoost memformalkan objective pada iterasi sebagai:
Dengan melakukan Taylor expansion orde dua pada loss:
di mana dan masing‑masing gradient pertama dan Hessian kedua. Substitusi menghasilkan fungsi objektif ku