BookmarkSubscribeRSS Feed

[EM] 그래디언트 부스팅(Gradient Boosting) 이론

Started ‎06-10-2020 by
Modified ‎06-10-2020 by
Views 542

 

이번시간에는 그래디언트 부스팅(Gradient Boosting)에 대하여 다뤄보겠습니다.

 

 

 

 

introduction

 

그래디언트 부스팅이란 Gradient Desent 와 Boosting의 합성어로 쉽게 말해 Boosting에 Gradient Descent를

접목시킨 강력한 머신러닝기법입니다.

 

우선 Boosting이란 앞서 연재된 글에서 소개 된 바와 같이 단순한 모델들을 결합하여 단계적으로 학습함으로써

 이전모델의 약점을 점점 보완해 가는 모델입니다.

 

 

 

 

Gradient Descent

 

Gradient Descent는 단어 그대로 해석하면 ‘경사 하강’ 이란 의미입니다. 말 그대로 함수의 기울기를 구하여

기울기가 낮은 쪽으로 이동시키면서 극값에 이를 때까지 반복하는 방법입니다.

weu9lJJ9CZ3mAAAAABJRU5ErkJggg__.png

위의 그림은 3yeZvc8K12tSkptmsuTJ0xxShQx9cxn9b69dNn2N07R3Q5ng2U5H0sM_oBRzF7sP68XRnX4nwnY2Zt6cbMXlnGYGMQEYgI5ARyAi.png를 얻는 모습을 나타내고 있습니다.

10.PNG

QCj5a_bxmo4AAAAASUVORK5CYII_.png

2_PpBONuD0VUKNpPA53wfyjbTykVovbQQGXc7XGOFYocDVTGXZlF22qgMu62PdoKWGXclQ20rQYq427bo62AVcZd2UDbaqAy7rY9.png

7TVxAAAAX0lEQVQYV2NgoDlQYuFgUBHihNojIcOuoMgMt1SJXV5YCs5T5hMXRLhHmYeDgUGRVYSbSQEoqMQGVCcrzSTHB_JJg80T.png은 이동할 거리를 조절하는 매개변수입니다7TVxAAAAX0lEQVQYV2NgoDlQYuFgUBHihNojIcOuoMgMt1SJXV5YCs5T5hMXRLhHmYeDgUGRVYSbSQEoqMQGVCcrzSTHB_JJg80T.png은 wolfe 조건을 만족하는 라인검색을 통해 구하거나 다음과 같은 Barzilai-Borwein 방법을 통해 구할 수 있습니다.

ALahbTLCcXoIAAAAAElFTkSuQmCC.png

 

그래디언트 부스팅은 약한 모델들을 단계적으로 부스팅하는 과정에서 이전 모델의 오류를 손실함수로 나타내고

이 손실함수를 최소화하는 방법으로 Gradient Descent를 사용하는 분석기법입니다.

 

 

 

 

 

algorithm

 

iHuQwAAAABJRU5ErkJggg__.png

 

2.PNG

 

NXRuGGCzOK8AAAAASUVORK5CYII_.png

이런 함수식을 추정량h(x)에 대하여 다시 정리하면

Ab8WejzIfwLL8kLFhdH5N0AAAAASUVORK5CYII_.png

위와 같은 식이 나오는데 그래디언트 부스팅의 주 목적은 이 h(x)를 추정하는 것입니다그리고 h(x)를 추정하는 과정에서 Gradient descent를 사용하게 됩니다.

분류나 순위문제에서 손실함수에 대한 일반적인 아이디어는 주어진 모델에 대한 잔차 y-F(x)가 오차제곱 손실함수SJNRglKaw7ChNQfzG3W9oOSBAd_Ll7gAAAABJRU5ErkJggg__.png의 음의 기울기라는 점에서 나왔습니다.

따라서 그래디언트 부스팅의 목적은 특정한 손실함수의 기대값을 최소화하는 함수 F(x) 대한 근사치 7TVxAAAATklEQVQYV2NgwAFEGdnEQVLSQlziYpzCyKqkOBiBgAUkJAokJdhBLEEwCdLAJyDNLwJiSbIyMjKDDZFgFpfkBssilPHy.png을 찾는 것입니다.

 sAAAAASUVORK5CYII_.png

3.PNG

kuNxFdT9cCgAAAABJRU5ErkJggg__.png

4.PNG

wAAAABJRU5ErkJggg__.png

하지만 임의의 손실함수 L에 대한 최고의 함수h를 고르는 것은 계산적으로 불가능합니다따라서 함수를 단순화 시키게 됩니다이때 Gradient descent를 적용하게 됩니다연속형의 경우아래와 같은 방정식에 따라 모델을 업데이트합니다.

lpQRDMEGliSKBwZZAQdjBlTB_6hUw3pnU_It4ecN4a7wNz28QOdHb7g83De4YSu1FAkUCnUqgIGynkivPFQkUCRQJtJLAyM3DtpJ.png

그리고 이산형의 경우, 손실함수L의 기울기에 가장 가까운 후보함수h를 선택하고 계수IyiLFzMgjwMQmLMAkzMIiyCPLzAg0T5_LhAJspxCoIpkWYIVYIsUFoPjQaLAgAVnoBlqN2D_cAAAAASUVORK5CYII_.png 은 line search을 통해 구합니다. 비록 이런 접근법이 완벽하게 정확하지는 않지만 충분히 설득력있는 근사값을 얻을 수 있습니다.

 

 

loss function

 

대표적인 손실 함수는 Square loss : PfoL1gwcDKGNKdAAAAAASUVORK5CYII_.png 가 있고 Square loss 는 수학적으로 다루기는

쉽지만 이상치에 민감한 단점을 가지고 있습니다. 이러한 단점을 보완하는 이상치에 민감하지 않은 손실함수로는 Absolute loss 나 Huber loss 가 있습니다.

 

BKlXqhBMIxAXaNBAKQYwkOp0WLY2r9ndZK9Mk64VRkK9V0XhK7qbwpCrUrQga0aBADrHegL1QjUI8UcUgzq0SXAeofli4GF9a4eU.png

 

 

 

 

 

 

 

Reference

https://en.wikipedia.org/wiki/Gradient_descent

http://www.ccs.neu.edu/home/vip/teach/MLcourse/4_boosting/slides/gradient_boosting.pdf

https://en.wikipedia.org/wiki/Gradient_boosting

Version history
Last update:
‎06-10-2020 10:06 PM
Updated by:
Contributors

Ready to join fellow brilliant minds for the SAS Hackathon?

Build your skills. Make connections. Enjoy creative freedom. Maybe change the world. Registration is now open through August 30th. Visit the SAS Hackathon homepage.

Register today!
Article Labels
Article Tags