Machine Learning

XGBoost 기초 설명

with_AI 2022. 5. 25. 12:06

XGBoost: 하드웨어를 최적화 시킨 Gradient Boosting Mdel

 

실제 학습이 빠르게 학습되고, 대중적으로 많이 쓰인다. 추후 LGBM 모델에 많은 영향을 주었다.

 

 

Boosting & Gradient Boosting

  • Boosting model은 Bagging 방식이 만들어지는 원리가 전체 성능을 향상하는데 직접적인 연관이 없는 것을 보완한 모델
  • 순차적 모델
  • 첫번째로 만든 DT가 잘못 분류한 친구들을 그 다음 DT가 보완하는 방식으로 순차적으로 Tree를 생성
  • 다음 DT는 이전의 DT가 잘못 분류한 데이터들에 가중치를 주는 것으로 DT가 뽑을데이터의 샘플링을 조절한다.
  • 그리고 그 DT를 다 모아서 앙상블 한다.
  • Gradient descent algorithm을 boosting model에 도입하여, 다음 DT가 이전 DT와 합쳐져서 더 적은 loss를 가지게 되는 방향으로 DT를 만드는 방법을 Gradient Boosting model이라고 한다.

 

하지만 Gradient Boosting model은 모델 학습 시간이 너무나 많이 걸렸다. 이를 해결한 방식이 XGBOOST 모델이다.

 

 

XGBoost

  • Gradient Boosting model + System Optimization
  • tree의 best split point를 찾을때 feature를 정렬하는게 가장 큰 cost를 소모
  • 정렬하는 비용을 block단위로 잘라서 업데이트, GBM과 거의 유사한 성능을 내는 방식을 제안
  • 훨씬 더 빠르게 정렬한 내용들을 사용할 수 있게 시스템 최적화를 한다.
  • GPU Acceleration, Cache awareness, I/O performance를 개선하여 훨씬 더 빠르게 학습이 가능한 방식을 제안

 

  • XGBoost는 시스템 최적화를 통해서 pratical한 좋은 솔루션 제안
  • GPU를 사용할 수 있게 되어 컴퓨팅 자원을 이전보다 더 많이 사용해서 더 좋은 성능을 낼 수 있는 방법을 제안