- Source: Gradient boosting
Gradient boosting (lit: peningkatan gradien) adalah teknik pemelajaran mesin berbasis boosting dalam ruang fungsional dengan residu semu sebagai targetnya, bukan residu biasa yang biasa digunakan dalam boosting tradisional. Teknik ini mengembalikan sebuah model prediksi dalam bentuk kumpulan (ensemble) model berprediksi lemah, yaitu model memberikan sangat sedikit asumsi tentang data, yang biasanya berupa pohon keputusan (decision tree) sederhana. Jika pohon keputusan ini merupakan pemelajar yang lemah, algoritma yang dihasilkan disebut sebagai pohon dengan gradien yang ditingkatkan (gradient-boosted trees) yang biasanya performana melebihi Random forest. Gradient-boosted trees dibuat secara bertahap seperti pada metode boosting lainnya, tetapi model ini menggeneralisasi metode lain dengan memungkinkan optimasi fungsi kerugian yang terdiferensialkan secara bebas.
Sejarah
Ide gradient boosting bermula dari pengamatan Leo Breiman yang menemukan bahwa boosting dapat diinterpretasikan sebagai sebuah algoritma optimasi pada fungsi biaya yang sesuai. Secara eksplisit, algoritma ini kemudian dikembangkan oleh Jerome H. Friedman, (pada tahun 1999 dan kemudian pada tahun 2001) bersamaan dengan perspektif peningkatan gradien fungsional yang lebih umum dari Llew Mason, Jonathan Baxter, Peter Bartlett dan Marcus Frean. Dua makalah yang disebutkan di akhir memperkenalkan pandangan terkait algoritma boosting sebagai algoritma penurunan gradien fungsional berulang (functional gradient descent). Artinya, algoritma yang mengoptimalkan fungsi biaya pada ruang fungsi dengan memilih fungsi secara berulang (berhipotesis lemah) yang mengarah ke gradien negatif. Pandangan ini menyebabkan pengembangan algoritma boosting di banyak bidang pemelajaran mesin dan statistika di luar regresi dan klasifikasi.
Pengenalan informal
(Bagian ini mengikuti eksposisi peningkatan gradien oleh Cheng Li.)
Seperti metode boosting lainnya, gradient boosting menggabungkan beberapa "pemelajaran" lemah menjadi satu pemelajar yang kuat secara iteratif. Cara paling mudah untuk menjelaskannya adalah dengan pengaturan regresi kuadrat terkecil, yang tujuannya adalah untuk "mengajarkan" suatu model
F
{\displaystyle F}
untuk memprediksi nilai bentuk
y
^
=
F
(
x
)
{\displaystyle {\hat {y}}=F(x)}
dengan meminimalkan rata-rata kuadrat galat
1
n
∑
i
(
y
^
i
−
y
i
)
2
{\displaystyle {\tfrac {1}{n}}\sum _{i}({\hat {y}}_{i}-y_{i})^{2}}
dengan indeks
i
{\displaystyle i}
pada beberapa himpunan ukuran pelatihan
n
{\displaystyle n}
dari nilai sebenarnya dari variabel keluaran
y
{\displaystyle y}
:
y
^
i
=
{\displaystyle {\hat {y}}_{i}=}
nilai prediksinya
F
(
x
i
)
{\displaystyle F(x_{i})}
y
i
=
{\displaystyle y_{i}=}
nilai yang diamati
n
=
{\displaystyle n=}
jumlah sampel yang masuk
y
{\displaystyle y}
Sekarang, pertimbangkan algoritma gradient boosting dengan
M
{\displaystyle M}
tahap. Di setiap tahap
m
{\displaystyle m}
(
1
≤
m
≤
M
{\displaystyle 1\leq m\leq M}
) gradient boosting, misalkan beberapa model yang tidak sempurna
F
m
{\displaystyle F_{m}}
(dengan
m
{\displaystyle m}
kecil, model ini mungkin mengembalikan
y
^
i
=
y
¯
{\displaystyle {\hat {y}}_{i}={\bar {y}}}
, saja dengan RHS adalah rerata dari
y
{\displaystyle y}
). Untuk meningkatkan
F
m
{\displaystyle F_{m}}
, algoritma ini harus menambahkan beberapa estimator baru,
h
m
(
x
)
{\displaystyle h_{m}(x)}
. Sedemikian sehingga
F
m
+
1
(
x
i
)
=
F
m
(
x
i
)
+
h
m
(
x
i
)
=
y
i
{\displaystyle F_{m+1}(x_{i})=F_{m}(x_{i})+h_{m}(x_{i})=y_{i}}
atau, dapat ditulis ulang sebagai,
h
m
(
x
i
)
=
y
i
−
F
m
(
x
i
)
{\displaystyle h_{m}(x_{i})=y_{i}-F_{m}(x_{i})}
.
Oleh karena itu, gradient boosting akan menyesuaikan (fit)
h
m
{\displaystyle h_{m}}
ke residu
y
i
−
F
m
(
x
i
)
{\displaystyle y_{i}-F_{m}(x_{i})}
. Seperti pada varian boosting lainnya, masing-masing
F
m
+
1
{\displaystyle F_{m+1}}
berupaya untuk memperbaiki galat
F
m
{\displaystyle F_{m}}
sebelumnya. Generalisasi ide ini digunakan pada fungsi kerugian, selain kesalahan kuadrat, dan pada masalah klasifikasi dan pemeringkatan yang mengikuti pengamatan bahwa residu
h
m
(
x
i
)
{\displaystyle h_{m}(x_{i})}
untuk model tertentu sebanding dengan gradien negatif dari fungsi kerugian mean squared error (MSE) (sehubungan dengan
F
(
x
i
)
{\displaystyle F(x_{i})}
):
L
M
S
E
=
1
n
∑
i
=
1
n
(
y
i
−
F
(
x
i
)
)
2
{\displaystyle L_{\rm {MSE}}={\frac {1}{n}}\sum _{i=1}^{n}\left(y_{i}-F(x_{i})\right)^{2}}
−
∂
L
M
S
E
∂
F
(
x
i
)
=
2
n
(
y
i
−
F
(
x
i
)
)
=
2
n
h
m
(
x
i
)
{\displaystyle -{\frac {\partial L_{\rm {MSE}}}{\partial F(x_{i})}}={\frac {2}{n}}(y_{i}-F(x_{i}))={\frac {2}{n}}h_{m}(x_{i})}
.
Oleh karena itu, gradient boosting dapat juga digunakan pada algoritma penurunan gradien dengan "memasukkan" kerugian yang berbeda dan gradiennya.
Referensi
Lihat juga
AdaBoost
Hutan acak
peningkatan kucing
GBM ringan
XGBoost
Pembelajaran pohon keputusan
Referensi
Boehmke, Bradley; Greenwell, Brandon (2019). "Gradient Boosting". Hands-On Machine Learning with R. Chapman & Hall. hlm. 221–245. ISBN 978-1-138-49568-5.
Bagaimana menjelaskan peningkatan gradien
Pohon Regresi yang Didorong Gradien
GBM ringan
Kata Kunci Pencarian:
- Gradient boosting
- Penurunan gradien stokastik
- Pemelajaran mesin daring
- Gradient boosting
- Boosting (machine learning)
- LightGBM
- XGBoost
- CatBoost
- AdaBoost
- Yandex
- Data binning
- Jerome H. Friedman
- Scikit-learn