ã¯ããã«
åŸé ããŒã¹ããçšããæ±ºå®æš(GBDT)ã«ããã¯ã©ã¹åé¡ãååž°ã¯ããŒã¿åæã³ã³ãã§ãéåžžã«ãã䜿ãããŠããŸãã
ãã®äžã§ã2016幎ã«åºãããXGBoostã¯LightGBMãšäžŠã³ãã䜿ãããŠããææ³ã§ãã
æ§èœãè¯ãããšã§æåãªXGBoost, LightGBMã§ãããã¢ãã«å
éšã§ã©ã®ãããªåŠçãè¡ãããŠãããããããã£ãŠããªãã£ãã®ã§è«æãèªãã§ã¿ãŸããã
åŒå€åœ¢ã®çç¥ãå€ãããŸãã€ã¡ãŒãžãã¥ããç®æããããèªã¿ã¥ããã£ãã®ã§ãã
äžåºŠã€ã¡ãŒãžã§ããã°å²ãšãã£ããçè§£ã§ããŸãã
ãã®äœéšãèžãŸããŠãã€ã¡ãŒãžå³ãå€ãåãå ¥ããªããXGBoostã®è«æãïŒéäžãŸã§ïŒäžå¯§ã«è§£èª¬ããŸãã
XGBoost: A Scalable Tree Boosting System
[è«æ] (https://arxiv.org/abs/1603.02754)
ãã®èšäºã§è¿°ã¹ãããš
- ããŒã¿ã®å ¥åºå
- XGBoostã®æšæ§é
- æå€±é¢æ°ãšboosting
- æšæ§é ã®åŠç¿ïŒsplitææ³ïŒ
ãã®èšäºã§è¿°ã¹ãŠãªãããš
- å®è£ ã®ãããŒ
- ãã©ã¡ãŒã¿ãã¥ãŒãã³ã°ã®Tips
- ã¡ã¢ãªåæžã®ããã®è¿äŒŒææ³
- å€§èŠæš¡ããŒã¿ã®ããã®ã¹ã±ãŒã«ææ³ïŒãããèïŒ
æéãå€ããªã£ãã®ã§ã第1åãšããŸãã
ïŒçµæ§ç²ããŸããããããããããããããããããæ¬¡å以éãæžããããšãããïŒ
ïŒè¿œèšïŒ
第2åæžããŸããã
XGBoostè«æãäžå¯§ã«è§£èª¬ãã(2): ShrinkageãšSubsampling
åèèšäº
[XGBoost: A Scalable Tree Boosting System] (https://arxiv.org/abs/1603.02754)ïŒåè
XGBoost å
¬åŒããã¥ã¡ã³ã: è«æãããå¹³æã«è§£èª¬ãããŠããŸãã
[XGBoostã®ãæ°æã¡ãäžéšçè§£ãã] (https://qiita.com/kenmatsu4/items/226f926d87de86c28089): ã¿ããªå€§å¥œã@kenmatsu4 ããã®èšäºããã®èšäºãçè§£ãããŠãããæ¬èšäºã¯äžèŠã§ãã
XGBoostè«æã®è§£èª¬
XGBoostã®æ§é
ããŒã¿ã®å ¥åºå
å ¥åããŒã¿: $\mathcal X$
瞊ïŒäžïŒæ¹åã«ãµã³ãã«ã暪ïŒå³ïŒæ¹åã«ããŒã¿ã®å±æ§ïŒç¹åŸŽéïŒã䞊ã¶ããŒãã«åã®ããŒã¿æ§é ãèããŸãã
ãµã³ãã«æ°ã¯nãããŒã¿ã®æ¬¡å æ°ã¯mãšããŸãããŸããç¹å®ã®ãµã³ãã«ã衚ãã€ã³ããã¯ã¹ãiãšããŸãã
ãã®ãšãã
içªç®ã®ãµã³ãã«ãXGBoostã«ããåºåå€ïŒäºæž¬å€ïŒãã©ãã«ïŒæåž«ããŒã¿ïŒããããã
$x_{i}, \hat{y_i}, y_{i}$ãšè¡šèšããŸãã
XGBoostã®æšæ§é
æ±ºå®æšã®æ§é
è«æã®Fig.1ïŒæç²ïŒã䜿ã£ãŠèª¬æããŸãã
5人ã®å®¶æãã³ã³ãã¥ãŒã¿ã²ãŒã ã奜ããã©ãããäºæž¬ããå ŽåãèããŸããïŒããããã®ã³ã³ãã¥ãŒã¿ã²ãŒã 奜ã床ãå®éåãããšèšãæããŸãããïŒ
å®¶æã«äžããããæ å ±ïŒå¹Žéœ¢ãæ§å¥ãPCã®äœ¿çšé »åºŠãªã©ïŒãçšããŠæ¯ãåãã®ã«ãŒã«ãäœããµã³ãã«ãæ¯ãåããŠããã®ãæšããŒã¹ã®èãæ¹ã§ããäŸãã°äžå³ã®tree1ã§ã¯ã
- 幎霢ã15æ³æªæºãïŒ
- æ§å¥ãç·ãïŒ
ãšãã£ãã«ãŒã«ã§ãµã³ãã«ãæ¯ãåããŠãããŸããã«ãŒã«ã«ãããã£ãŠæçµçã«ãã©ãçããæšã®æ«ç«¯ãèããŒãïŒleaf nodeïŒãšåŒã³ãŸããæ¯ãåããããèããŒãã«åºã¥ããŠãµã³ãã«ãåé¡ããã®ãæ±ºå®æšã«ããã¯ã©ã¹åé¡ã®åºæ¬çãªèãæ¹ã§ãã
æšã®äžŠååïŒã¢ã³ãµã³ãã«ïŒ
åäžã®æšã䜿ãå ŽåãããŒã¿ã«å«ãŸãããã€ãºã«åœ±é¿ãåããå ŽåããããŸããããã§ãæ±ºå®æšãè€æ°çšæããŠäžŠååãïŒã¢ã³ãµã³ãã«ïŒãåºåçµæãããã¹ãã«ããããšãèããŸãã
人éã§ããäžäººã®äººéã®æ±ºæã«åŸããšãšãã«éæ¿ãªè¡åã«åºãããšããããŸããããããé¿ããããã«å€æ°æ±ºãåãã€ã¡ãŒãžã§ãã
䞊ååãåãå ¥ããæ±ºå®æšãšããŠæåãªã®ã¯ã©ã³ãã ãã©ã¬ã¹ã(Random Forest)ã§ãããããµã³ãã«ãã©ã³ãã ã«ç¹°ãè¿ãæœåºããŠããã€ãºã«åŒ·ãæ±ºå®æšïŒçŸ€ïŒãäœãåºããŸãã
äžã®å³ã§ã¯ãtree1ã®ã»ãã«tree2ãçšæããŠããŸããåºåçµæãå¹³ååããããšã«ãããæçµçãªäºæž¬ãåŸãŸããããããã®éã¿ãçããããã°åãªã倿°æ±ºã«ãªããŸãããäžç¥šã«éã¿ãä»ããããšãèããŸãã
XGBoostã®æ§é
ããŠãããããXGBoostã®æ§é ãšããŒã¿ã®å
¥åºåã«ã€ããŠå®åŒåããŠãããŸãã
XGBoostã䞊ååãããè€æ°ã®æ±ºå®æšãçšããŸããããããã®çµæãã¢ã³ãµã³ãã«ããããšã§äºæž¬å€ãåºåããŸããäžå³ãåºã«èª¬æããŸãã
䞊ååãããæšã®æ°ãKãšããŸããå ¥åããŒã¿äžã®1ãµã³ãã«ããŒã¿($x_{i}$)ã¯ããããã®æšã®æ¯ãåãã«ãŒã«ã«åŸããæçµçãªèããŒãã«èœã¡çããŸãã
ããããã®æšã«ããTåã®èããŒãããŸãšããŠã¿ãŸãããã
è¡çªå·kãæšã®æ°ãåçªå·qãããããã®æšã®èããŒãã®æ°ã衚ããŠããŸãã
ãã®ããŒãã«æ ŒçŽãããŠããå€$w$ãXGBoostã®éã¿ããããŠåŠç¿ããå€ã«ãªããŸãã
泚
ãã®å³ã§ã¯å
šãŠã®æšã«ã€ããŠåãèããŒãã®æ°Tãæã£ãŠããŸãããå®éã«ã¯ããããã®æšãåãããŒãæ°ãæã€ãšã¯éããŸãããããã§ã®Tã¯èããŒãã®æå€§æ°ãšãèããã ããã
ãããŸã§ã«æ§ã ãªèšå·ãåºãŠããŸãããããããããã©ã®ãããªå ¥åºåé¢ä¿ã«ãªã£ãŠãããæŽçããŠã¿ãŸãããã
- 1ãµã³ãã«ã®å ¥åããŒã¿$x_{i}$ã XGBoostã®ã¢ãã«ã«äžãã
- ããããã®æš(k)ã«å¯ŸããŠå¯Ÿå¿ããèããŒãã®çªå·qãæ±ºãŸã
- kããã³qãã察å¿ããéã¿ã決ãŸã
3ã®éã¿ãåkã«å¯Ÿãã1次å ãã¯ãã«ãšããŠè¡šèšããŠããã®ãè«æäžã®wãkãå«ãã2次å ãã¯ãã«ãšããŠè¡šããŠããã®ãfã«ãªããŸãããããã«ãã
$$x_{i} \rightarrow q \rightarrow w_{q} \quad (or : f_{k}) $$
ã®ããŒã¿ãããŒãã€ã¡ãŒãžããŠãããŠãã ããã
ããã§ããããã®æšã«å¯Ÿããéã¿ã決å®ããŸããæçµçãªåºåïŒ$\hat{y}_{i}$ïŒã¯ããããã®æšã®å¯Ÿå¿ããéã¿ãç·åãããã®ã«ãªããŸãïŒåŒ(1)ïŒ
$$\hat{y_i} = \sum_{k=1}^{K} f_k(x_i) \quad \cdots (1)$$
è£è¶³ïŒæ£ç¢ºã«ã¯éã¿Ãlearning rateã«ãªããŸããlearning rateã«é¢ãããã¯ããã¯ã¯ããã®2ã§è§£èª¬ããäºå®ã§ãã
æ£ååé ä»ãã®æå€±é¢æ°
æå€±é¢æ°ãåŒ(2)ã«ç€ºããŸãã
æå€±é¢æ°($\mathcal l$)ã«ã¯ãæ®å·®äºä¹å¹³åã®ãããªåŸ®åå¯èœãªåžé¢æ°ãçšããŸãã
åãµã³ãã«ã«å¯ŸããŠäºæž¬å€ãšæåž«ããŒã¿ãšã®éã®æ®å·®ã$\mathcal l$ã§è¡šçŸããå
šãŠã®ãµã³ãã«ã«å¯ŸããŠç·åããŸãã
ããã«ã第2é ç®ã«XGBoostã«ç¹æã®æ£ååé ããããããããã®æšã«å¯Ÿãã$\Omega$ã®å¯äžãç·åããŸãã
æ£ååé $\Omega$ã¯ããã«$T$ãš$||\omega||^{2}$ã«åè§£ã§ããŸãã
$T$ïŒèããŒãã®æ°ïŒã倧ãããªãã»ã©æå€±é¢æ°ã倧ãããªããããæšã®æ§é ãè€éåããã®ãæãã广ããããŸãã
$||w||^2$ã¯éã¿$w$ã®L2ãã«ã ã§ããããããéåŠç¿ãæãã广ããããŸãã
$\gamma$ããã³$\lambda$ã¯ããããã®æ£ååé
ã®ãã©ã³ã¹ã調æŽãããã©ã¡ãŒã¿ã§ãã
Gradient Tree Boosting
ããããã¯XGBoostã®åŠç¿ã«ã€ããŠèŠãŠãããŸãã
XGBoostã®ã¢ãã«ã決å®ããã«ã¯
- æšã®æ§é ãæ±ºå®ãã
- åèããŒãã®åºåïŒ$f_k(x_i)$ãããã¯$w_q$ïŒã決å®ãã
å¿ èŠããããŸãã2ããèŠãŠãããŸãããã
æå€±é¢æ°ïŒåŒ(2)ïŒãæå°åãããããªéã¿$f_k(x_i)$ãããã¯$w_q$ãæ±ãããã®ã§ããããããã®å€æ°ã¯ãµã³ãã«ã«äŸåããå€ïŒã€ãŸã颿°ïŒã§ããã®ã§ãéåžžã®æé©åææ³ïŒäŸãã°ç¢ºççåŸé éäžæ³ïŒã䜿ãããšãã§ããŸããã
ããã§ãåŸé ããŒã¹ãã£ã³ã°ã§ã¯è«æäžã§âAdditive mannerâãšåŒã°ããæ¹æ³ã§åŠç¿ãè¡ãã$f_k(x_i)$ãæŽæ°ããŠæå€±é¢æ°ãäžããŠãããŸããäžå³ã§èª¬æããŸãã
åŸé ããŒã¹ãã£ã³ã°ã«ãããæŒžååŒ
泚
(2018.08.09)
åŸé
ããŒã¹ãã£ã³ã°ã§ã¯K=1ïŒåäžã®æšæ§é ïŒããå§ãŸããã©ãŠã³ãæ¯ã«æšã®æ°ãå¢ãããŠãããšã®ã³ã¡ã³ããããã ããŸããïŒ2019.08.09ïŒããã®å³ã§ã¯åãããKåã®æšæ§é ãããããšã«ãªã£ãŠããŸãã確èªããŠå³ãšæãä¿®æ£äºå®ã§ãã
(2018.08.10)
å³ãšæãä¿®æ£ããŸããïŒä»¥äžïŒ
åæç¶æ
($t=1$)ã§ã¯ãåäžã®æ±ºå®æšã®ã¿ãååšããŸãïŒèµ€æ ïŒã
1ã¹ãããé²ãt=2ã®æã«ãæ°ããæšã远å ããããšãèããŸãã
æçµçãªåºåã¯äžã€åã®åºåã«æ°ãã远å ãããæšãå ããŸãã
ã€ãŸãã以äžã®åŒãæãç«ã¡ãŸãã
$$\hat{y_i^{(t)}} = \hat{y_i^{(t-1)}} + f_t(x_i)$$
ãã®æãæ°ããæšã¯çã®å€ãšã®ã®ã£ãããåãããã®ãæ¡çšããŸãã
以äžã®ã€ã¡ãŒãžå³ãèŠãã»ããæ©ãã§ãããã
ãã®ããã«ããŠãå埩ãç¹°ãè¿ããªããã¢ãã«ã®åºåå€ãçã®å€ã«è¿ã¥ããŠãããŸãã
æå€±é¢æ°ïŒåŸé ããŒã¹ãã£ã³ã°çïŒ
XGBoostã®åºåå€ãçã®å€ã«è¿ã¥ããããã«$\hat{y_{i}}^{(t)}$ã$t$ã«é¢ããæŒžååŒã®åœ¢ã§è¡šããŸããã
ãã®æŒžååŒãçšããŠæå€±é¢æ°ãæžãçŽããš
\begin{align}
\mathcal L^{(t)} &= \sum_i^{n} \mathcal l\,(y_i^{(t)}, \hat{y_i}^{(t)}) + \Omega (f_k) \\
&= \sum_i^{n} \mathcal l\,(y_i^{(t)}, \hat{y_i}^{(t-1)} + f_t(x_i)) + \Omega (f_k) \quad \cdots (*)
\end{align}
ãšãªããŸãã
泚
ååºã®æå€±é¢æ°$\mathcal L$ã«å¯ŸããŠã挞ååŒçã®æå€±é¢æ°$\mathcal L^{(t)}$ã§ã¯$\Omega$ã«å¯Ÿããç·å$\sum_k$ã®èšè¿°ããªããªã£ãŠããŸãã
è«æäžããã«å¯Ÿããèšåã¯ç¹ã«ãªãã®ã§æšæž¬ã«éããŸããããæŒžååŒçã®æå€±é¢æ°ã§ã¯ããããã®æšã«å¯Ÿããæå€±é¢æ°ãèŠãŠãããšèããããŸãïŒééã£ãŠãããæããŠãã ããïŒ
ãšã«ãããä»åŸã®è°è«ã§ã¯æ±ºå®æšã®æ°$k$ã«å¯Ÿããç·å$\sum_k$ã¯èããã«è°è«ãé²ã¿ãŸãã
(2019.08.09) ã³ã¡ã³ãããã ããŸãããããããšãããããŸãã
ïŒäžç¥ïŒBoostingã§ã¯åã©ãŠã³ãtããšã«æšãã©ãã©ãå¢ãããŠãããŸã. ãã®ãã, çŸåšã®ã©ãŠã³ãtã«ä»éãã倿°ã®ã¿ãåŠç¿ãã¹ã察象ãšãªããŸã.
ãããã£ãŠ$\mathcal L^{(t)}$ã§åŠç¿ãã¹ã倿°, æé©åããã倿°ã¯$f_t$, $w_t$(tã©ãŠã³ãç®ã§ã®æšã®æ å ±)ã§ãã£ãŠ,
tã©ãŠã³ãã«ãããŠã¯w_1...w_(t-1)ã¯å®æ°æ±ããšãªããŸã. ãªã®ã§æ£ååé ã®âkã®ãã¡tã®ã¿èããã°è¯ã, ãšããæµãã ãšæããŸã.
åŸé ããŒã¹ãã£ã³ã°ã®æé©è§£
ãã€ã©ãŒå±é
ããããŠåŸãããæå€±é¢æ°(*)ãèŠããšã颿° $l(â¢,â¢) $ã®äžã«æé©åããã倿°ïŒé¢æ°ïŒ$f$ãå ¥ã£ãŠããŸãã
ãã®$f$ã$l$ã®å€ã«ãããåºãããšãèããŸãã
颿°$F$ã®$x$ã®åšãã®ãã€ã©ãŒå±éã2次ã®é ãŸã§è¿äŒŒãããš
$$F(x + \Delta t) \simeq F(x) + \frac{dF}{dx} (\Delta x) + \frac{1}{2!} \frac{d^2F}{dx^2} (\Delta x)^2$$
ã«ãªããŸãã$F$ã$l$ã$x$ã$\hat{y_i}^{(t-1)}$ã$\Delta x$ã$f_t(x_i)$ãšçœ®ãæãããšã
\begin{align}
\mathcal L^{(t)} &= \sum_i^{n} l\,(y_i^{(t)}, \hat{y_i}^{(t-1)} + f_t(x_i)) + \Omega (f_k) \\
&= \sum_i^{n} [l\,(y_i^{(t)}, \hat{y_i}^{(t-1)}) + \frac{\partial }{\partial \hat{y_i}^{(t-1)}} \,l\,(y_i^{(t)}, \hat{y_i}^{(t-1)})\, f_t(x_i)
+ \frac{1}{2!} \frac{\partial^2}{(\partial \hat{y_i}^{(t-1)})^2}\,l\,(y_i^{(t)}, \hat{y_i}^{(t-1)})\, (f_t(x_i))^2]
+ \Omega (f_k) \\
&= \sum_i^{n} [l\,(y_i^{(t)}, \hat{y_i}^{(t-1)}) + g_i \, f_t(x_i)
+ \frac{1}{2} h_i \, f^2_t(x_i)]
+ \Omega (f_k) \\
\end{align}
ãåŸãŸãããã ã
\begin{align}
where \quad g_i &= \frac{\partial }{\partial \hat{y_i}^{(t-1)}} \,l\,(y_i^{(t)}, \hat{y_i}^{(t-1)}) \\
h_i &= \frac{\partial^2}{(\partial \hat{y_i}^{(t-1)})^2}(l\,(y_i^{(t)}, \hat{y_i}^{(t-1)}) \\
f_t^2(x_i) &= (f_t(x_i))^2
\end{align}
ã§ãã
ããã§ã$l,(y_i^{(t)}, \hat{y_i}^{(t-1)})$㯠$f_t(x_i)$ã«äŸåããªã颿°ãªã®ã§$\mathcal L^{(t)}$ã®äžã§å®æ°é ãšããŠã¿ãªããŸãã
ãã®å®æ°é
ãç¡èŠããæå€±é¢æ°ãåå®çŸ©ããããšã§
$$ \tilde{\mathcal {L}}^{(t)} = \sum_i^{n} [g_i , f_t(x_i)
+ \frac{1}{2} h_i , f^2_t(x_i)]
- \Omega (f_k) \quad \cdots (3) $$
ãæçµçã«åŸãŸãã
ç·åã®å€æããªãã¯
ããŠãæ°åŒãåºãŠããŸãããé ããŽãã£ãŽãã£ããŠããŸããããã©ããã¢ããããŸãããã
- XGBoostã®åºåããã³æå€±é¢æ°ãã¹ãããæ°$t$ã«é¢ããæŒžååŒã§æžãçŽã
- ãã€ã©ãŒå±éã«ããæé©åããã倿°$f$ãæå€±é¢æ°ïŒã®äžã®é¢æ°$l$ïŒãããããåºã
- 宿°é ãç¡èŠããã·ã³ãã«ãªæå€±é¢æ°ãæ°ãã«åŸã
ãããªã«åŒãããããåãç®çã¯äœã ã£ãããšãããšãæé©åããã倿°$f$ã®ããã§ãã
端çã«èšãã°å€æ°$f$ã®æé©è§£ãåŸãããšã§ãã
ããã念é ã«ãããŠããå°ãé²ã¿ãŸãããã
åŒ(3)ã®æ£ååé $\Omega$ãå®çŸ©éãã«æžãæããŸãã
$$ \tilde{\mathcal {L}}^{(t)} = \sum_i^{n} [g_i , f_t(x_i)
+ \frac{1}{2} h_i , f^2_t(x_i)]
- \gamma T + \frac{1}{2} \lambda \sum_{j=1}^{T}w_j^2 $$
å³èŸºç¬¬1é
ã«ã¯$\sum_i^{n}$ã第3é
ã«ã¯$\sum_j^T$ã®èšå·ããããŸããã
ãã®èšå·ã®æå³ãå³ã§ç€ºããŸãã
ãŸãã¯ç¬¬1é
ç®
1ãµã³ãã«ã®ããŒã¿$x_i$ãåäžã®æ±ºå®æšã«å
¥åãããšããTåããèããŒãã®ãã¡ã®äžã€ã®åºåå€ã察å¿ããŸãïŒå³ã®èµ€äžžïŒã
ãã®åºåå€ã«å¯ŸããŠ$g_i$ã$h_i$ãæãããã2ä¹ãããããåŸã«å
šãµã³ãã«ã®ç·åãåã£ããã®ã«ãªããŸãã
ã€ãã«ç¬¬3é
ç®
ãã®é
ã¯æ£ååé
ã®äžéšã§ãããµã³ãã«ã®åºåå€ãšã¯é¢ä¿ãªãã察å¿ããæšã®Tåã®èããŒãã®åºåå€ïŒéã¿ïŒã®ç·åã®ç·åãåããŸãã
泚
å·Šã®å³ã§è¡šããäžž($f_t(x_i)$)ãšãå³ã®å³ã§ç€ºããäžž($w_j$)ã¯èšå·ãéããåããã®ã§ããããå¿ããŠãããäžã®æ¹ã®èª¬æãèªã¿è¿ããŠãã ãããããšã§äœ¿ããŸãã
第1,3é
ç®ã§ç·åã®æ¹å(倿°)ãéããŸããããããæèããŠãã ããã
ããã§äžã€ããªãã¯ã䜿ããŸããç·åã®æ¹åãæããŸãã
å³èŸºç¬¬1é ïŒäžå³ã®å·ŠïŒã«é¢ããŠããµã³ãã«æ¹åïŒäžæ¹åïŒã«è¶³ããŠãã£ãç·å$\sum_{i}$ããããŠã第3é ïŒäžå³å³ïŒã®ããã«æšªæ¹åïŒããŒãæ¹åïŒ$\sum_j^T$ã®ç·åã«å€ããŸãã
å³ã§å²ãŸããéæ ã®å€ã暪æ¹åã«ç·åããŠããã€ã¡ãŒãžã§ãã
ãã ããéãé·æ¹åœ¢ã®äžã®å®éã«åºåãããããŒãïŒèµ€äžžïŒã®ã¿ãè¶³ãå¿ èŠããããŸãã
ããã衚çŸããããã«ãjåç®ã®å
šãµã³ãã«éåããå®éã«åºåããããµã³ãã«ã®éšåéåïŒã€ãŸãéé·æ¹åœ¢äžã®èµ€äžžå
šäœïŒã$Ij$ãšè¡šããŸãã
ãããŠãã®èµ€äžžã ãã®ç·åããšãããšã$\sum_{i \in I_j}$ãšè¡šããŸãã
ãã®åœ¢åŒã§æå€±é¢æ°ãæžãçŽããŠã¿ãŸãããã
$$ \tilde{\mathcal {L}}^{(t)} = \sum_{j=1}^T \sum_{i \in I_j} [g_i , f_t(x_i)
+ \frac{1}{2} h_i , f^2_t(x_i)]
- \gamma T + \frac{1}{2} \lambda \sum_{j=1}^{T}w_j^2 $$
åºåå€$f_t(x_i)$ã$w_j$ã§æžãæããåŒãå€åœ¢ããŸãã
$$ \tilde{\mathcal {L}}^{(t)} = \sum_{j=1}^T [(\sum_{i \in I_j} g_i) , w_j
+ \frac{1}{2} (\sum_{i \in I_j} h_i) , w_j^2]
- \gamma T + \frac{1}{2} \lambda \sum_{j=1}^{T}w_j^2 $$
$\sum$ã®æ¹åãæããããšã§ãæé©åããã倿°$w_j$ã«ã€ããŠæ¬ãããšãã§ããŸãã
$$ \tilde{\mathcal {L}}^{(t)} = \sum_{j=1}^T [( \sum_{i \in I_j} g_i) , w_j
+ \frac{1}{2} ( \sum_{i \in I_j} h_i + \lambda) w_j^2]
- \gamma T \quad \cdots (4)$$
æé©è§£ã®å°åº
åŒ(4)ã䜿ã£ãŠãåºå®ãããæ±ºå®æšïŒã€ãŸã$x_i$ã«å¯ŸããŠå¯Ÿå¿ããèããŒããå€åããªãïŒå Žåã®ãjçªç®ã®èããŒãã®æé©è§£ãæ±ããŸãã
æå€±é¢æ°ïŒåŸ®åå¯èœãªåžé¢æ°ïŒã®æå°å€$w_j^*$ãæ±ããããã«ãæå€±é¢æ°ã埮åããŠãŒããšãããŸãã
\begin{align}
\frac{\partial \tilde{\mathcal L}^{(t)}}{\partial w_j} &= \frac{\partial}{\partial w_j}(
\sum_{j=1}^T [( \sum_{i \in I_j} g_i) \, w_j
+ \frac{1}{2} ( \sum_{i \in I_j} h_i + \lambda) w_j^2]
+ \gamma T) \\
&= (\sum_{i \in I_j}g_i) + (\sum_{i \in I_j} h_i + \lambda) w_j \\
&= 0 \\
\end{align}
ãã£ãŠ$w_j$ã®æé©è§£
$$ w_j^* = - \frac{\sum_{i \in I_j} g_i}{\sum_{i \in I_j} h_i + \lambda} \quad \cdots (5)$$
ãåŸãŸãããããããã©ãçããŸããã
ãããŸã§ãäžèšã§ãŸãšããŸãããã
åºå®ãããæšæ§é ã«ãããXGBoostã®æé©è§£ã®è¿äŒŒå€ã¯è§£æçã«æ±ãŸãããã®å€ã¯åŒ(5)ã§ããã
æé©è§£ã«ãããæå€±é¢æ°
æé©è§£ã«ãããæå€±é¢æ°ã®å€ãåŸãããã«åŒ(4)ã«$w_j^*$ãä»£å ¥ããŸãã
\begin{align}
\tilde{\mathcal {L}}^{(t)} &= \sum_{j=1}^T \left[\left( \sum_{i \in I_j} g_i\right) \, \left(- \frac{\sum_{i \in I_j} g_i}{\sum_{i \in I_j} h_i + \lambda}\right)
+ \frac{1}{2} \left( \sum_{i \in I_j} h_i + \lambda\right) \left(- \frac{\sum_{i \in I_j} g_i}{\sum_{i \in I_j} h_i + \lambda} \right)^2\right]
+ \gamma T \\
&= - \frac{1}{2} \sum_{j=1}^{T} \frac{(\sum_{i \in I_j}g_i)^2}{\sum_{i \in I_j}(h_i + \lambda)} + \gamma T \quad \cdots (6)\\
\end{align}
åŒ(6)ã«ãããåºå®ãããæ§é ã«ãããæå€±é¢æ°ã®æå°å€ãæ±ãŸããŸããããã®å€ã¯äžçš®ã®åºæºãšãªããŸãã
ã€ãŸããæ§é ãå€ããåŸã®ã¹ã³ã¢ãæ§é ãå€ããåã®ã¹ã³ã¢ããè¯ããã°ïŒäœããã°ïŒå€ããåŸã®æ§é ã®æ¹ãè¯ãæ§é ã§ããããšèšããŸãã
æ±ºå®æšã®æ§é ãå€ããã¢ãããŒããèŠããŠããŸãããã
æšæ§é ã®åŠç¿
ããŒãã®åå²
åç« ãŸã§ã§ãããŒãã«å¯Ÿããæå€±é¢æ°ã®æå°å€ãæ±ãŸããŸãããããã«ãããæšã®æ§é ãå€åãããååŸã®æå€±é¢æ°ã®å€ã®å·®ãèŠãããšã§æ§é å€åãæ¡çšããããæ±ºããããšãã§ããŸãã
äžå³ã®ãããªæšæ§é ããããšããŠã3çªç®ã®èããŒããããã«åå²ããã¹ããã©ãããèããŸãã
åå²ããªãã£ãæã®æå€±é¢æ°ã$\mathcal L$ãåå²ããåŸã®ããŒããããããã$\mathcal L_L$, $\mathcal L_R$ãšããŠãåå²ååŸã®æå€±é¢æ°ã®å·®ã$\mathcal L_{split}$ã§å®çŸ©ããŸãã笊å·ã«æ³šæããŠ
\begin{align}
\mathcal L_{split} &= \mathcal L - (\mathcal L_L + \mathcal L_R) \\
&= \frac{1}{2}[\frac{(\sum_{i \in I_L} g_i)^2}{\sum_{i \in I_L}h_i + \lambda}
+ \frac{(\sum_{i \in I_R} g_i)^2}{\sum_{i \in I_R}h_i + \lambda}
- \frac{(\sum_{i \in I} g_i)^2}{\sum_{i \in I}h_i + \lambda}] - \gamma \quad \cdots (7)\\
\end{align}
ãåŸãŸãã
$\mathcal L$, $\mathcal L_L$, $\mathcal L_R$, $\mathcal L_{split}$ã®é¢ä¿ããšãã«ã®ãŒæºäœå³ã§è¡šããšä»¥äžã®ããã«ãªããŸãã
$\mathcal L_{split}$ã¯åé¢åŸããåé¢åã®ãšãã«ã®ãŒå€åã衚ããŠãŸãããããã®å€ãæ£ã«ãªãæãåå²ãæå¹ãªæã§ãã
ãã®ããã«ããŠåŸããã$\mathcal L_{split}$ã®å€ãè©äŸ¡ããããšã§ãæšã®æ§é ãå€åãããããšãã§ããŸãã
次å
ãããŸã§ã§ãXGBoostã®åºæ¬çãªèãæ¹ããŸãšããŸããã
é·ããªã£ãã®ã§ãäžåºŠããã§åããŸãã
次åã¯å®è£
ã®ãããŒã®è§£èª¬ããå€§èŠæš¡ããŒã¿ã¹ã±ãŒã«ãããããã®å·¥å€«ã«ã€ããŠè§£èª¬ããäºå®ã§ãã
XGBoostè«æãäžå¯§ã«è§£èª¬ãã(2): ShrinkageãšSubsampling










