Machine_Learning/이론

Regression-04. Model 3 : XGBoost

가는중 2022. 11. 8. 18:33
XGBoost : 하드웨어 최적화를 시킨 Gradient Boosting Model

 

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

 

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

 

 

요약

  • XGBoost는 시스템 최적화를 통해서 practical한 좋은 솔루션을 제안합니다.
  • GPU를 사용할 수 있게 되어서, computing resource를 이전보다 더 많이 사용해서 더 좋은 성능을 낼 수 있는 방법을 제안하게 되었습니다
반응형