Machine Learning/Supervised Learning

[Supervised Learning][Ensemble][Boosting] Gradient Boosting

데이터 세상 2022. 10. 6. 15:23
728x90
반응형

Boosting

동일한 알고리즘의 분류기를 순차적으로 학습해서 여러 개의 분류기를 만든 후, 테스트할 때 가중 투표를 통해 예측값을 결정

분류기 A, B, C가 있고, 각각이 0.3정도의 accuracy를 보여준다면

A, B, C를 결합하여 더 높은 정확도, 예를 들어 0.7 정확도를 얻는 게 앙상블 알고리즘의 기본 원리

 

 

  • 가중치를 활용하여 약 분류기를 강 분류기로 만드는 방법
  • 처음 모델이 예측을 하면 그 예측 결과에 따라 데이터에 가중치가 부여되고, 부여된 가중치가 다음 모델에 영향을 줌
  • 잘못 분류된 데이터에 집중하여 새로운 분류 규칙을 만드는 단계 반복

 

Gradient Boosting(GBM, Gradient Boosting Machine)

얕은 깊이의 트리를 사용하여 이전 트리의 오차를 보완하는 방식의 앙상블

깊이가 얕은 결정 트리를 사용하기 때문에, overfitting에 강하며 높은 일반화 성능을 기대할 수 있다.

그라디언트 부스팅(Gradient Boosting) = 경사하강법(Gradient Descent) + 부스팅(Boosting)

  • 여러 개의 결정 트리를 묶어 강력한 모델을 만듦
  • 이전 트리의 오차를 보완하는 방식으로 순차적 트리를 만듦
  • 강력한 사전치기가 사용되어 메모리를 작게 사용하고 예측도 빠름
  • 각각의 트리는 데이터의 일부에 대해서만 예측을 잘 수행할 수 있어서 트리가 많이 추가될수록 성능이 좋아짐

 

https://bkshin.tistory.com/entry/15-Gradient-Boost

 

Gradient

경사 하강법을 사용하여 앙상블에 트리를 추가하는 방식

모델의 가중치와 절편을 조금씩 바꿔가며, 결정 트리를 계속 추가하는 방식으로 오차를 줄여간다.

 

회귀 문제에서는 loss function으로 MSE(MSE, Mean Squared Error, 평균 제곱 오차)를 주로 사용하는데, 이 때 MSE의 negative gradient가 residual이기 때문이다.

residual을 이용해서 학습한다고 설명하였는데, 사실 이것은 Gradient Boosting 중 하나의 사례에 속한다.

 

어떠한 loss를 사용하든 이 loss function의 negative gradient를 다음 학습의 정답으로 사용하는 것이 GBM !!

회귀문제에서는 MSE를 loss function으로 사용했기에 이 loss function의 negative gadient인 residual을 학습한 것

gradient 정보를 가지고 학습을 진행하기 때문에 loss는 미분가능해야 한다.

 

경사하강법(Gradient Descent)

주어진 함수의 극소값을 찾는 데 사용되는 최적화 알고리즘

기본 개념은 주어진 함수의 기울기를 구하고 기울기의 절댓값이 낮은 쪽으로 계속 이동하여 극소값에 이를 때까지 반복하는 것입니다

 

negative gradient

  • negative gradient는 loss function이 줄어드는 방향을 의미
  • gradient가 양수라면 음수 방향(=negative gradient의 방향)으로 이동해야 loss function이 줄어드는 것
  • 반대로 gradient가 음수라면 양수 방향(=negative gradient의 방향)으로 이동해야 loss function이 줄어든다.

 

 

Gradient 장점과 단점

장점

  • Random Forest보다는 예측 성능이 조금 뛰어나다.

 

단점

  • 오차를 줄여가는 방식으로 트리를 순서대로 추가하기 때문에, 랜덤으로 노드를 분할하는 랜덤 포레스트와 달리 훈련 속도가 느리다
  • 하이퍼파라미터 튜닝 노력이 필요하다
  • 약한 학습기의 순차적 예측 오류 보정을 통해 학습을 하기 때문에 대용량 데이터의 경우 매우 많은 시간이 필요하다.

 

XG Boost(eXtream Gradient Boosting)

[Ensemble][Boosting] XGBoost(eXtream Gradient Boosting)

 

 

 

※ Tree Boosting 기법

  • 여러 개의 의사결정 트리를 사용하지만 단순 결과를 평균내는 것이 아니라 결과를 보고 오답에 대해 가중치 부여

 


References

728x90
반응형