상세 컨텐츠

본문 제목

[2022-1 KUBIG 정규세션] Boosting

KUBIG

by 최끝장1234 2022. 7. 23. 13:27

본문

오늘 포스팅은 KUBIG 정규세션 스터디의 일환으로 "Boosting"에 대해 발표를 목적으로 작성하게 됐다. 스터디는 "Practical Statistics for Data Scientists" 라는 도서를 공부하고 한 주간 특정 부분을 맡아서 발표를 하는 식으로 진행된다. 따라서 지금 작성하는 포스팅의 모든 내용은 모두 이 책에 기반으로 작성되었음을 알린다.

 

단일 모델을 회귀, 예측에 사용하는 것보다 여러모델을 사용하여 결과를 만들어 내는 앙상블 방식이 일반적으로 더 좋은 성능을 낸다고 알려져있다. 이러한 앙상블 모델을 만들기 위해 사용하는 방법은 크게 대표적으로 Bagging, Boosting이 있다.

이번 포스팅에서는 이 중 Boosting에 대해서 설명하고자 한다. 

 

Boosting은 Adaboost, gradient boosting, stochastic gradient boosting 등 다양한 종류가 존재한다. 하지만 핵심적인 아이디어는 똑같은데, 한마디로 오답노트를 하는 모델을 계속 만들어 낸다고 생각하면 된다. 이게 무슨 소린가 싶겠지만 우리 오답노트는 틀리는 문제, 다시 공부할 필요가 있는 문제들에 대해서 진행한다. 이걸 모델의 학습에 그대로 대입해보면, 모델도 학습을 진행할때, 데이터셋에 대해서 특정 데이터는 잘 예측을 못하는 게 존재할 것이고 이러한 데이터들에 대해서는 다른 데이터에 비해 높은 가중치를 두고 학습을 진행해야 한다.  Boosting은 모델을 하나 만들고 이 모델이 학습을 잘 못하는 데이터에 대해서 가중치를 높게 두고 이를 잘 학습할 수 있는 모델을 만들어 내는 과정을 정해진 반복횟수 만큼 반한다. 즉 독립적인 모델 여러개의 예측을 종합하여 하나의 예측을 만드는 것이 아니라, 모델의 예측을 보완할 수 있는 모델들이 연속적으로 생겨나는 것이다. (빈공간을 계속 채운다는 느낌)

 

Boosting의 모델 중 보편적으로 가장 많이 쓰이는 모델을 하나 뽑으면, XGBoost이다. XGBoost는 stochastic gradient boosting을 구현한것으로, 여러가지 option을 통해 computing efficiency를 달성했다. XGBoost는 여러가지 하이퍼파라미터를 가지는데, 대표적으로 다음과 같다.

논문참조

위 하이퍼파라미터들은 모두 overfitting을 고려하면서 항상 조정되어야 한다. 특히 lambda와 alpha값은 각각 L2, L1 regularization을 조절하기 위한 파라미터로, 값을 증가시킬수록 overfitting에 대하나 규제가 커진다고 생각하면된다. 

XGBoost는 많은 하이퍼파라미터를 가지고 있기에, Cross Validation과 같은 방법론을 통해 효과적으로 하이퍼파라미터의 조합을 찾아야 한다. 

 

사실 책에 있는 XGBoost 내용자체가 가볍게 다루고 있는 느낌이 강해서, 더 자세히 알고 싶은 사람은 아래 유튜브 영상을 참조하길 바란다. 

https://www.youtube.com/watch?v=VHky3d_qZ_E 

 

관련글 더보기

댓글 영역