본문 바로가기
IT

Gradient Boosting Algorithm에 대해서

by mimmic 2021. 5. 17.

1. 경사 부스팅 알고리즘

이 기계 학습 자습서에서는 Gradient Boosting Algorithm을 공부한다. 또한, 우리는 부스팅 알고리즘의 역사와 목적을 배울 것입니다. 이와 함께, 우리는 Gradient Boosting Algorithm의 작업도 연구할 것이며, 마지막으로 Gradient Boosting Algorithm의 개선에 대해 논의한다.

그레이디언트 부스팅 알고리즘이란?

2. 기계 학습에서 Gradient Boosting이란 무엇입니까?

그레이디언트 부스팅은 회귀 및 분류 문제에 대한 기계 학습 기법이다. 이는 약한 예측 모델의 앙상블 형태로 예측 모델을 생성한다. 예측 모형의 정확성은 두 가지 방법, 즉 a로 높일 수 있다. 피처 엔지니어링 또는 b를 수용합니다. 부스팅 알고리즘을 바로 적용해서. 다음과 같은 많은 활성화 알고리즘이 있다.

  • Gradient Boosting
  • XGBoost,
  • AdaBoost
  • Gentle Boost 등

모든 부스팅 알고리즘에는 고유의 기본 수학이 있습니다. 또한, 그것들을 적용하는 동안 약간의 변화가 관찰됩니다.

3. 부스팅 알고리즘의 역사

부스팅 알고리즘은 지난 20년 동안 도입된 가장 강력한 학습 아이디어 중 하나입니다. 분류 문제를 위해 설계되었지만 회귀 분석으로도 확장할 수 있습니다. Gradient boosting의 동기는 절차였다. 그것은 강력한 "위원회"를 만들기 위해 많은 "약한" 분류기의 출력을 결합한다. 약한 분류기(예: 의사 결정 트리)는 오류율이 무작위 추측보다 더 나은 분류기이다.

4. 부스팅 알고리즘의 목적

알고리즘을 활성화하는 목적은 약한 분류 알고리듬을 반복적으로 수정된 데이터 버전에 순차적으로 적용하여 $G_m(x)$, $m = 1, 2, …, M$의 약한 분류기를 생성하는 것이다. 기계 학습 알고리듬에 대해 읽어라.

5. 단계적 적층 모델링

부스팅은 부가 모델을 구축한다: $F(x) = \sum_{m=1}^M \dump_mb(x; \dump_m)$ 여기서 $b(x; \dump_m)$는 트리이고 $\dump_m$은 분할을 매개 변수 화한다. 부스팅을 사용하면 매개 변수 $(\beta_m, \gamma_m)$가 단계별로 적합하다. 이렇게 하면 프로세스가 느려지고 과적합이 줄어듭니다.

6. 부스트도 있고

AdaBoost는 단계별로 AdaBoost를 적합시켜 부가적인 로지스틱 회귀 모델을 구축하며, 음의 이항 로그 우도 손실과 같이 $L(y, F(x)) = exp(-yF(x))$ 형식의 지수 손실 함수를 사용한다.

7. Gradient Boosting 알고리즘

a. 손실 기능 및 구배

최적의 반복 횟수 T와 학습 속도 β는 서로 다릅니다.

8. 확률적 경사 부스팅 알고리즘

이것은 확률적 그레이디언트 부스팅 알고리듬에 의해 제안되었다. 또한 다음 단계를 추정하기 전에 데이터 세트에서 교체 없이 샘플을 추출한다. 그는 이 추가 단계가 성능을 향상한다는 것을 발견했습니다.

9. Gradient Boosting 알고리즘은 어떻게 작동합니까?

그레이디언트 부스팅 알고리즘에는 다음 세 가지 요소가 포함됩니다.

  • 최적화해야 할 손실 함수입니다.
  • 예측을 하기에는 약한 학습자.
  • 손실 함수를 최소화하기 위해 약한 학습자를 추가하는 추가 모델입니다.

a. 손실 함수

  • 사용되는 손실 함수는 해결되는 문제의 유형에 따라 달라집니다.
  • 분명 차별화될 수 있을 거야. 그러나 많은 표준 손실 함수가 지원되고 자체적인 손실 함수를 정의할 수 있습니다.

b. 약한 학습자

  • 우리는 그레이디언트 부스팅 알고리듬에서 의사결정 트리를 약한 학습자로 사용한다.
  • 특히, 우리는 분할에 대한 실제 값을 출력하는 회귀 트리를 사용한다. 출력물을 함께 추가할 수 있습니다. 이를 통해 다음 모형 출력을 추가하고 예측의 잔차를 "수정"할 수 있습니다.
  • 나무들은 탐욕스러운 방법으로 건축할 필요가 있다. 지니와 같은 순도 점수를 기준으로 최상의 분할 포인트를 선택하거나 손실을 줄이는 데 도움이 됩니다.
  • 처음에는 AdaBoost의 경우처럼. 또한, 우리는 의사 결정 스텀프라고 불리는 단일 분할만 가진 매우 짧은 의사 결정 트리를 사용합니다.
  • 일반적으로, 우리는 4~8단계의 더 큰 나무를 사용합니다.
  • 약한 학습자를 특정한 방법으로 구속하는 것은 흔한 일이다. 예를 들어, 계층, 노드, 분할 또는 리프 노드의 최대 수.
  • 이는 학습자가 약한 상태를 유지하지만 여전히 욕심 많은 방식으로 구성되어야 할 수 있음을 보장하기 위한 것입니다.

c. 가법 모형

  • 트리는 한 번에 하나씩 추가해야 하며, 모델의 기존 트리는 변경할 필요가 없습니다.
  • 우리는 나무를 추가할 때 손실을 최소화하기 위해 경사 하강 절차를 사용한다.
  • 전통적으로, 우리는 일련의 매개 변수를 자르기 위해 그러데이션 트리를 사용한다. 회귀 방정식의 계수나 신경망의 가중치 같은 것. 오류 또는 손실을 계산한 후에는 해당 오류를 최소화하기 위해 가중치를 업데이트해야 합니다.
  • 매개 변수 대신 학습자 하위 모델 또는 보다 구체적으로 의사 결정 트리가 약하다. 손실 계산 후 경사 하강 절차를 수행한다. 우리는 손실을 줄일 수 있는 나무를 모델에 추가해야 한다.
  • 우리는 나무를 매개 변수 화하여 이것을 합니다. 그런 다음 트리의 매개 변수를 변경하고 남은 손실을 줄이면서 올바른 방향으로 이동합니다.

10. 기본 그러데이션 부스팅 알고리즘의 개선

그레이디언트 부스팅 알고리듬은 탐욕스러운 알고리듬이며 훈련 데이터 세트를 빠르게 오버핏 할 수 있다. 그것은 정규화 방법을 즐길 수 있다. 그것은 증강 알고리즘의 다양한 부분에 불이익을 준다. 그리고 일반적으로 과적합을 줄임으로써 알고리듬의 성능을 향상한다.

  • 트리 제약 조건
  • 슈림
  • 랜덤 블링
  • 벌칙 학습

a. 나무 제약 조건

  • 약한 학습자는 기술이 있지만 약한 상태를 유지하는 것이 중요합니다.
  • 나무들이 제약이 될 필요가 있는 많은 방법들이 있다.

b. 가중 업데이트

  • 각 트리의 예측은 순차적으로 합산되어야 합니다.
  • 이 합계에 대한 각 트리의 기여는 알고리즘에 의한 학습 속도를 늦추기 위한 가중치가 되어야 한다. 이러한 가중치를 수축 또는 학습률이라고 합니다.

c. 확률적 경사 부스팅 알고리즘

  • 봉지 앙상블에 대한 큰 통찰력. 또한, 임의의 숲은 나무들이 만들 수 있도록 했습니다.
  • 이와 동일한 이점을 사용하여 나무 간의 상관관계를 줄일 수 있습니다.
  • 부스팅의 이러한 변화를 확률적 경사 부스팅이라고 한다.

d. 벌점 그레이디언트 부스팅 알고리즘

d. 벌점 그레이디언트 부스팅 알고리즘

  • L1 가중치의 정규화.
  • L2 가중치의 정규화.

11. 결론

결과적으로, 우리는 Gradient Boosting Algorithm을 연구했다. 또한 Gradient Boosting Algorithm(그라디언트 부스팅 알고리즘)의 이력, 목적, 그리고 그것이 작동하고 있습니다. Gradient Boosting Algorithm(그라디언트 부스팅 알고리즘)은 매우 뜨거운 주제이다. 또한, 우리는 이 블로그에서 Gradient Boosting Algorithm과 관련된 모든 것을 다루었다.

'IT' 카테고리의 다른 글

XGBoost 튜토리얼  (0) 2021.05.18
Dimensionality Reduction의 기술과 방법  (0) 2021.05.17
SVM(지원 벡터 머신)의 사례  (0) 2021.05.17
Python에서 SVM을 구현하는 방법  (0) 2021.05.17
딥러닝과 오디오 분석  (0) 2021.05.17

댓글