๐ค Ensemble Method
ํต๊ณํ๊ณผ ๊ธฐ๊ณ ํ์ต์์ ์์๋ธ ํ์ต๋ฒ์ ํ์ต ์๊ณ ๋ฆฌ์ฆ๋ค์ ๋ฐ๋ก ์ฐ๋ ๊ฒฝ์ฐ์ ๋นํด ๋ ์ข์ ์์ธก ์ฑ๋ฅ์ ์ป๊ธฐ ์ํด ๋ค์์ ํ์ต ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํ๋ ๋ฐฉ๋ฒ ์ ๋๋ค.
ํต๊ณ ์ญํ์์์ ํต๊ณ์ ์์๋ธ๊ณผ ๋ฌ๋ฆฌ ๊ธฐ๊ณ ํ์ต์์์ ์์๋ธ์ ๋์ฒด ๋ชจ๋ธ๋ค์ ๋จ๋จํ ์ ํ ์งํฉ์ ๊ฐ๋ฆฌํค์ง๋ง, ์ผ๋ฐ์ ์ผ๋ก ๊ทธ๋ฌํ ๋์ฒด ๋ชจ๋ธ ์ฌ์ด์ ํจ์ฌ ๋ ์ ์ฐํ ๊ตฌ์กฐ๋ฅผ ํ์ฉํฉ๋๋ค.
์ด์ ํฌ์คํ ์์ ๋ฐฐ์ด Boosting ์๊ณ ๋ฆฌ์ฆ์ ๋ฐ์ ์ํจ Gradient Boost์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๐ Gradient Boost
Gradient Boost๋ฅผ ์๊ธฐ ์ํด Gradient์ ๊ฐ๋ ์ ์์์ผ ํฉ๋๋ค.
Gradient๋ ๊ธฐ์ธ๊ธฐ ์ฆ 1์ฐจ ๋ฏธ๋ถ ๊ฐ์ด๋ผ๋ ๋ป์ ๋๋ค.
๋์ค์ ๋ฐฐ์ฐ๊ฒ ๋ NN๊ณผ ๋ฅ๋ฌ๋์๊ณ ๋ฆฌ์ฆ์ด ๊ฒฐ๊ตญ์๋ ๊ธฐ์ธ๊ธฐ ๊ธฐ๋ฐ์ผ๋ก ํ์ต์ ์งํํฉ๋๋ค.
Gradient Boost๋ ์ด๋ฅผ Boosting์ ์ ์ฉํ๋ค๊ณ ํ ์ ์์ต๋๋ค.
โ ๊ฒฝ์ฌํ๊ฐ๋ฒ(Gradient Descent)
์๋์ ๊ฐ์ $J(a)$๋ผ๋ ๋ชฉ์ ํจ์๊ฐ ์กด์ฌํ๋ค๊ณ ํ๊ฒ ์ต๋๋ค.
์ด๋ $a_k$๋ ๋ชจ๋ธ์ solution์ด์ weight, parameter์ ์๋ฏธํฉ๋๋ค.
์ด๋ $a_k$๋ฅผ sequential ํ๊ฒ ์ ๋ฐ์ดํธ๋ฅผ ์ ์ฉํ๋๋ฐ ์๋์ ๊ฐ์ ๋ฐฉ๋ฒ์ ์ฌ์ฉํฉ๋๋ค.
๊ทธ๋ํ๋ฅผ ์ดํด๋ณด์์ ๋ ๋ชฉ์ ํจ์๋ $a$์ ๋ํ ํจ์์ ๋๋ค.
์ด๋ ๋ชฉ์ ํจ์๋ Loss Function, Cost Function์ ์๋ฏธํฉ๋๋ค.
๊ทธ๋ฌ๋ฏ๋ก ์ฐ๋ฆฌ๋ ํด๋น ํจ์์ ์ต์๊ฐ์ ์ฐพ์ผ๋ ค๊ณ ๋ ธ๋ ฅํด์ผ ํฉ๋๋ค. ($min(J(a))$์ ์ฐพ๋๋ค.)
์ต์ํ๋ฅผ ์ํด์ ๊ทธ๋ฆผ์ ๊ฒฝ์ฐ์๋ ํ ๋ฒ๋ง ๋ฏธ๋ถ์ ํ๋ฉด ๋์ง๋ง ์ค์ LSM(Least Square Method)๋ฅผ ์ฌ์ฉํ์ง ๋ชปํ๋ค๊ณ ๊ฐ์ ํ๊ฒ ์ต๋๋ค.(ํ ๋ฒ์ ๋ฏธ๋ถ์ผ๋ก ํด๊ฒฐ์ด ์ ๋๋ค๊ณ ๊ฐ์ )
์ด๋ ์ฐ๋ฆฌ๋ $a_k$๋ฅผ ์ผ์ชฝ์ผ๋ก ์กฐ๊ธ ์ด๋์ ํ์ฌ ๋ ์์ ๊ฐ์ ์ฐพ์ ์ ์์ต๋๋ค.
ํด๋น ๊ณผ์ ์ ๋ฐ๋ณตํ๋ค๊ฐ 0์ด ๋ ๋ Optimalํ ๊ฐ์ ์ฐพ์ ์ ์์ต๋๋ค.
์ฝ๊ฒ ๋น์ ๋ฅผ ํ์๋ฉด ๋ฑ์ฐ์ ํ ๋ ํ์ฐ์ ํ๊ธฐ ์ํด์ ์ฐ๋ฆฌ๋ ๊ฒฝ์ฌ๋ฉด์ ๋ฐ๋๋ก ์ด๋ํด์ผ ํฉ๋๋ค.
์ด๋ ํ์ง๋ฅผ ์ฐพ๊ฒ ๋๋ค๋ฉด ์ด๋ฅผ Local Optimum์ด๋ผ๊ณ ํ ์ ์์ต๋๋ค.
์ฆ, ๋ฏธ๋ถ์ ํ ๋ค ๊ธฐ์ธ๊ธฐ์ ๋ฐ๋๋ฐฉํฅ์ผ๋ก ์์ง์ฌ์ผ ํ๋ค๋ ๋ป์ ๋๋ค.
์ด๋ฅผ ์์์ผ๋ก ๋ํ๋ด๋ฉด ์๋์ ์์๊ณผ ๊ฐ์ต๋๋ค.
์ด๋ Global Optimum ์ ์๋๋๋ผ๋ Local Optimum์ ๋๋ฌํ ์ ์๊ฒ ๋ฉ๋๋ค.
ํด๋น ์๊ณ ๋ฆฌ์ฆ์ ์ด์ฉํ ๊ฒ์ด Gradient Boost ์ ๋๋ค.
Example
์์๋ฅผ ํตํด Gradient Boost๋ฅผ ์์๋ณด๊ฒ ์ต๋๋ค.
Regression์ Gradient Boost๋ฅผ ์ ์ฉํ ์์ ๋ฅผ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
ํด๋น ์๊ณ ๋ฆฌ์ฆ์ ์๋์ ๊ฐ์ ์์๋ก ์ด๋ค์ง๋๋ค.
1. y๊ฐ์ ํด๋นํ๋ ๊ฐ๋ค์ ํ๊ท ์ ํตํด Initial Guess๋ฅผ ์งํํฉ๋๋ค.
2. ์ค๊ฐ๊ณผ์ ์ ์์ฐจ($y - \hat{y}$)๋ฅผ ๊ณ์ฐํ ๋ค ์์ฐจ๋ฅผ ๋ง์ถ๋ Tree๋ฅผ ๊ตฌ์ฑํฉ๋๋ค. ์ด๋ Tree๋ Underfit ๋ชจ๋ธ์ ์ฌ์ฉํ๊ธฐ ๋๋ฌธ์ 2~4์ depth๋ฅผ ๊ฐ์ง๋๋ค. ์ด๋ ๋น์ทํ ์์ฐจ๋ฅผ ๊ฐ์ง๋ ๋ฐ์ดํฐ๋ฅผ ๋ฌถ์ด Leaf Node๋ก ๋ ๋ค์ ํด๋น ๊ฐ๋ค์ ์์ฐจ์ ํ๊ท ์ ๊ตฌํฉ๋๋ค.(์๋์ ๊ทธ๋ฆผ์ ๊ฒฝ์ฐ ์์๋ก ์์ธก๊ฐ์ ์ฝ์ ํ์ต๋๋ค)
3. ์ฌ์ฉ์๊ฐ ์ค์ ํ ํ์ดํผ ํ๋ผ๋ฏธํฐ์ธ $\alpha$๋ฅผ ํด๋น Tree์ ๊ฐ๊ณผ ๊ณฑํ ๊ฐ์ ์ด์ Tree์ ๋ํ์ฌ ๋ค์ $\hat{y}$๋ฅผ ์ค์ ํฉ๋๋ค.
4. 2, 3์ ๋ฐ๋ณต์ผ๋ก ์งํํฉ๋๋ค.
5. 4์ ๋์ผ
6. ๋ ์ด์์ ๋ณํ๊ฐ ์๋ค๊ณ ๋๊ปด์ง ๋๊ฐ์ง ์์ ๊ณผ์ ์ ๋ฐ๋ณตํฉ๋๋ค.
์ด๋ฅผ ํ์ Tree๋ฅผ ํตํด ๋ํ๋ด๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
๊ฒฐ๋ก ์ ์ผ๋ก residual์ ๋ง์ถ๋ Tree๋ฅผ ๋ง๋๋ ๊ฒ์ด ์ต์ข ๋ชฉ์ ์ ๋๋ค.
ํด๋น Residual๊ฐ์ ์ ์ ๊ฐ์์์ผ์ ์ค์ฌ๋ผ!
โ Gradient Tree Boosting Algorithm for Regression
Gradient Tree Boosting Algorithm์ ์ดํด๋ณด๊ฒ ์ต๋๋ค.
์ ์ฒด์ ์ผ๋ก ๋ณด์์ ๋ initialize์์ ํ๊ท ์ ์ฝ์ ํ๋ผ๋ ๋ป์ ๋๋ค.
์ดํ MSE๋ฅผ ์๊ฐํ์ฌ L์ ์๋์ ๊ฐ๋ค๊ณ ํ๊ฒ ์ต๋๋ค.
$r_{iM}$์ ๊ธฐ์ธ๊ธฐ ๊ฐ์(Gradient Descent)๊ฐ์ ์ ๋ ฅํฉ๋๋ค.
์์ ์์์ ๋ฏธ๋ถํ๋ฉด ์๋์ ๊ฐ๊ฒ ๋ฉ๋๋ค.
์ด๋ฅผ ์ ๋ฆฌํ๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
์ฆ, $y_i - f(x_i)$๋ ์์ฐจ๋ฅผ ์๋ฏธํฉ๋๋ค.
Residual์ ๋ง์ถ๋ Tree๋ฅผ ์์ฑํ๋ ๊ฒ์ด ์ฐ๋ฆฌ์ ๋ชฉ์ ์ด๊ธฐ ๋๋ฌธ์ Loss Function์ Gradient์ ์ญ๋ฐฉํฅ์ผ๋ก ์ด๋ํ์ฌ ์ด๋ฅผ ๋ง์ถ๊ฒ ๋ค๋ ๊ฒ์ ๋๋ค.
๊ฒฐ๊ตญ "Residual์ ๋ง์ถ๋ Tree๋ฅผ ๋ง๋ ๋ค = Gradient Descent๋ฅผ ์คํํ๋ค"๋ฅผ ์๋ฏธํ๋ ๊ฒ์ ์ ์ ์์ต๋๋ค.
์์ ์๊ณ ๋ฆฌ์ฆ์์ $R_{jm}$์์ $j$๋ Leaf Node Number์ ์๋ฏธํ๋๋ฐ, Leaf Node ๊ฐ๊ฐ ํ๊ท ์ ์ค์ ํด ์คฌ์ต๋๋ค.
์ด๋ ๊ฐ๊ฐ์ terminal region์ด๊ธฐ ๋๋ฌธ์ Leaf Node๋ฅผ ์๋ฏธํฉ๋๋ค.
์ด๋ฅผ ์ต์ํ ํ๋ ๊ฐ๋ง ๊ฐ์ ์ฐพ์์ ์ด๋ฅผ $r_Pjm}$์ ์ฝ์ ํฉ๋๋ค.
ํด๋น ๊ณผ์ ์์์ Loss Function์ ์๋์ ๊ฐ์ต๋๋ค.
์ด๋ฅผ ๋ฏธ๋ถํ์ ๋ 0์ด ๋๋ ๊ฐ์ ์ฐพ์ผ๋ฉด $\sum\gamma = \frac{\sum(y_i - f_{m-1}(x_i))}{1}$์ผ ๋ ๋ง์กฑํฉ๋๋ค.
์ต์ข ์ ์ผ๋ก $\gamma = \frac{\sum(y_i - f_{m-1}(x_i))}{n}$์ผ ๋๋ฅผ ์๋ฏธํฉ๋๋ค.
์ด๊ฒ์ด ์๋ฏธํ๋๊ฒ์ด ๊ฐ Leaf Node์ ๊ฐ์ ํ๊ท ์ด๋ผ๋ ๊ฒ๊ณผ ๋์ผํฉ๋๋ค.
๋ค์ ์๋ฃจ์ ์์ ํด๋น ๊ฐ๋ง์ ๊ฐ์ ๋ํด์ค๋๋ค.
ํด๋น ์๋ฃจ์ ๋ค์ ๋ชจ๋ ๋ํ ๊ฐ์ด $\hat{f(x)} = f_M(x)$์ ์๋ฏธํฉ๋๋ค.
์ ๋ฆฌํ์๋ฉด ์์ ๊ฐ์ด Gradient Descent๋ฅผ Boosting์ ์ ์ฉํ๋ ๋ฐฉ๋ฒ์ด Gradient Boost์ ๋๋ค.
โ Gradient Tree Boosting Algorithm for Classification
Classification ์ ๊ฒฝ์ฐ ๋๋จธ์ง๋ ๋ชจ๋ ๋์ผํ์ง๋ง Loss Function์ด ๋ค๋ฆ ๋๋ค.
Logistic Regression์์ ํ์ตํ๋ ๋ด์ฉ ์ค Odds, Log Odds์ ๋ํ ๊ฐ๋ ์ ๋จผ์ ์ดํดํด์ผ ํฉ๋๋ค.
์งง๊ฒ ์ค๋ช ํ์๋ฉด ํด๋น ํจ์๋ Logistic Sigmoid ํจ์๋ผ๋ ๊ฒ์ ์๊ณ ๊ฐ์๋ฉด ๋ฉ๋๋ค.
Refression์์์ ๊ฐ์ด ์ด๋ฅผ ์งํํ๋ค๋ฉด ์๋์ ์์์ ๊ฐ์ต๋๋ค.
Example
์ฃผ์ํด์ผ ํ ๊ฒ์ $\hat{y}$๊ฐ์ ์ง์ ๊ฑด๋๋ ธ๋ Regression๊ณผ ๋ฌ๋ฆฌ, Classification์์๋ $Log(odds)$๋ฅผ ๋์ ํด์ผ ํ๋ค๋ ๊ฒ์ ๋๋ค.
4๋ฒ ๊ณผ์ ์์ Tree0์ $Log(odds) = 0.41$์ด๊ณ Tree1์ ์ฒซ ๋ฒ์งธ Leaf Node์ ๊ฐ์ด 1.66์ด๋ฏ๋ก $0.41 + 0.1\times1.66 = 0.4266$์ ์ป์ ์ ์์ต๋๋ค.
์ด๋ฅผ ๋ค์ Probability๋ก ๋ณํํ๋ฉด 0.61์ด๋ผ๋ ๊ฐ์ ์ป์ ์ ์์ต๋๋ค.
์๊ณ ๋ฆฌ์ฆ์ ์ดํ๋ณด๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
์์์ ์ดํด๋ณธ Gradient Tree Boosting Algorithm for Regression๊ณผ Loss Function์ ์ ์ธํ๊ณ ๋์ผํฉ๋๋ค.
Regression์ ๊ฒฝ์ฐ Loss Function์ MSE๋ก ๋ด๋ ๋ฌด๋ฐฉํ๊ธฐ ๋๋ฌธ์ ๊น๋ํ๊ฒ ์ ๊ฐ๊ฐ ๋์ง๋ง, Classification์ ๊ฒฝ์ฐ MSE์ ๊ฐ์ ๋ฏธ๋ถ ๊ฐ๋ฅํ Loss Function์ ๋ง๋ค๊ธฐ ์ด๋ ค์์ ์์ ๊ฐ์ ๋ณต์กํ ์๊ณ ๋ฆฌ์ฆ์ ์ฌ์ฉํฉ๋๋ค.
์์ ์๊ณ ๋ฆฌ์ฆ์ ๋ฒ ๋ฅด๋์ด ๋ถํฌ๋ก ๋ถํฐ ์์ฑ๋๋๋ฐ ์๋์ ๊ฐ์ ๊ณผ์ ์ ๊ฑฐ์นฉ๋๋ค.
์ฐ๋ฆฌ๋ Loss Function๊ณ์ฐํ์ฌ Gradient Descent๋ฅผ ์งํํด์ผ ํ๋๋ฐ Loss Function์ด ๋ฎ์ ์๋ก ์ข๊ธฐ ๋๋ฌธ์ ๋์ ์๋ก ์ข์ Likelihood๋ฅผ negativeํ๊ฒ ๊ณ์ฐํฉ๋๋ค.
์ต์ข ์ ์ผ๋ก Negative Log Likelihood๋ฅผ ์ฌ์ฉํฉ๋๋ค.
ํด๋น ์์ ์ ๊ฐํ๋ฉด ์๋์ ๊ฐ์ต๋๋ค.
๊ฒฐ๋ก ์์ผ๋ก ์๋์ ๊ฐ์ ์์์ ์ป์ ์ ์์ต๋๋ค.
ํด๋น ์์ ์ต์ํ ํ๋ ๊ฐ์ ์ฐพ๋ ๊ฒ์ด ์์ ์๊ณ ๋ฆฌ์ฆ์ ํด๊ฒฐํ๋ ๋ฐฉ๋ฒ์ ๋๋ค.
์์ ์๊ณ ๋ฆฌ์ฆ์ ํด๊ฒฐํ๋ค๋ณด๋ฉด $ y_i - p_i$๋ผ๋ ์ค๊ฐ ์์ฐจ๋ฅผ ์ป์ ์ ์์ต๋๋ค.
์ผ๋ฐ Regression๊ณผ์ ๊ฐ์ฅ ํฐ ์ฐจ์ด์ ์ ๊ฐ๋ณ ๋ ธ๋์ Output์ Regression์์๋ ํ๊ท ์ ํตํด ๊ตฌํ๋๋ฐ, Classification์ ๊ฒฝ์ฐ ์๋์ ๊ฐ์๊ฐ์ Leaf์ Output ๊ฐ์ผ๋ก ์ฌ์ฉํฉ๋๋ค.
์ฆ๋ช ์ ์๋ตํ๋๋ก ํ๊ณ ๊ฐ์ฅ ์ค์ํ๋ ๊ฒ์ ๊ฐ์กฐํ๊ณ ๋ง์น๋๋ก ํ๊ฒ ์ต๋๋ค.
๋ชฉ์ ํจ์์ธ $f(x_i)$๋ $Log(odds)$๋ฅผ ์๋ฏธํ๋ฉฐ ์ด๋ ํธ๋ฆฌ์ Leaf Node์ output์ ์๋งํ๋ค๋ ๊ฒ์ ๋๋ค.
์ฆ๋ช ์ด ๊ถ๊ธํ์ ๋ถ์ ์๋์ ๋งํฌ๋ฅผ ์ฐธ๊ณ ํ์๊ธฐ ๋ฐ๋๋๋ค.
โ Gradient Boost ํน์ง
Gradient Boost์ ๊ฒฝ์ฐ weak learner๋ค์ Leaf Node ๊ฐ์๋ ์ผ๋ฐ์ ์ผ๋ก $2^3 ~ 2^5$์ด๋ฉฐ depth๋ 3~5์ ๋๊ฐ ๋ฉ๋๋ค.
์ฆ, Underfitํ ๋ชจ๋ธ์ ์ฌ์ฉํ๋ค๋ ๊ฒ์ ๋๋ค.
Tree์ ๊ฒฝ์ฐ ์ผ๋ฐ์ ์ผ๋ก 100์ ๋์ Iteration์ ๊ฐ์ง๋๋ค.
๋ํ Learning Rate๋ฅผ ์ฌ์ฉํ์ฌ Log(odds)๊ฐ์ ๋น์จ์ ์กฐ์ ํด์ค๋๋ค.
๋ค์ ํฌ์คํ ์์๋ XGBoost ๊ธฐ๋ฒ์ ๋ํด ์์๋ณด๋๋ก ํ๊ฒ ์ต๋๋ค.
๐ Reference
https://analysisbugs.tistory.com/225
'AI > Machine Learning' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
[ML] Ensemble Method(6) - Summary (0) | 2022.11.30 |
---|---|
[ML] Ensemble Method(5) - XGBoost (0) | 2022.11.30 |
[ML] Ensemble Method(3) - AdaBoost (0) | 2022.11.29 |
[ML] Ensemble Method(2) - Bagging & Random Forest (0) | 2022.11.26 |
[ML] Ensemble Method(1) - ํธํฅ-๋ถ์ฐ ๋๋ ๋ง(Bias-Variance Dilemma) (0) | 2022.11.26 |