LightGBM 의 동작 방식 : GOSS, EFB

hyemin·2022년 11월 17일
0

ML

목록 보기
2/9

LightGBM

  • 데이터의 크기를 줄인 뒤, AdaBoost의 방법을 차용하는 Gradient Boosting
  • XGBoost는 약한 학습기로서의 Decision Tree를 만들 때, 모든 feature와 모든 sample(residual)에 대해서 계산한다. 학습에 오랜 시간이 필요하기 때문에 LightGBM이 개발되었다.

LightGBM 동작 방식

주어진 데이터의 분포(distribution)에 영향을 주지 않으면서 효과적으로 데이터의 크기를 줄이는 방법

1. GOSS(Gradient based One Side Sampling)

AdaBoost는 전체 관측치에 sample weight를 매기고, 올바르게 훈련되지 않은(under-trained) 관측치에 더 높은 가중치를 부여하여, 다음 학습에서 더 많은 focus를 받도록 설계되어 있다.
well-trained 관측치가 다음 학습에 거의 영향을 미치지 못하도록 만들이 위한 방법으로 GOSS가 나왔다.

그라디언트가 큰 것들을 유지하고, 작은 그라디언트를 가지는 관측치에 대해서 무작위로 샘플링을 한 후, 다음 학습에 사용한다.

  • Gradient == negative residual
  • 그라디언트가 크다 == residual이 크다. == under-trained
  • 작은 그라디언트는 잘 맞춘거고, 큰 그라디언트는 틀린거니까, 맞춘 작은 그라디언트는 영향을 줄이기 위해서 샘플링하여 행을 줄인다.

2. EFB(Exclusive Feature Bundling) 배타적 특성 묶음

Feature의 가짓수를 줄이는 방법이다. feature의 가짓수를 줄이면 트리가 overfitting되는 것을 막을 수 있다.

  • EFB에 히스토그램 기반 알고리즘(Hostogram-based-algorithm)이 사용된다.
  • 연속적인 값을 갖는 feature를 특정 구간을 정한 다음, 히스토그램처럼 부분(bundle)을 나눈다. == 열을 줄인다.

LightGBM 랑 XGBoost랑 비교했던 것 : https://velog.io/@aimaimee/%EB%B3%B4%ED%8C%85soft-hard-voting-%EA%B2%BD%EC%82%AC%ED%95%98%EA%B0%95%EB%B2%95-XGBoost%EC%99%80-LightGBM-%EB%B9%84%EA%B5%90
📌💯진짜 정리 잘 되어 있는 블로그📌💯 : https://blog.naver.com/wltjd54/222511122676


부족한 부분

  • AdaBoost 방법 설명
  • GOSS 작동 방식
  • EFB에서 sparse matrix 설명
  • EFB 작동 방식
profile
아직 고쳐나가는 중.

0개의 댓글