기계 학습은 다양하고 복잡한 회귀 및 분류 작업을 위한 예측 모델을 구축하는 데 가장 널리 사용되는 기술 중 하나입니다. 그라디언트 부스팅 머신 (GBM)은 가장 강력한 부스팅 알고리즘 중 하나로 간주됩니다.
10의 6승
기계 학습에 사용되는 알고리즘이 너무 많지만, 부스팅 알고리즘은 전 세계 기계 학습 커뮤니티에서 주류가 되었습니다. 부스팅 기법은 앙상블 학습의 개념을 따르므로 여러 단순 모델(약한 학습기 또는 기본 추정기)을 결합하여 최종 출력을 생성합니다. GBM은 약한 학습자를 강한 학습자로 변환하는 기계 학습의 앙상블 방법으로도 사용됩니다. 이 주제에서는 '머신러닝의 GBM' 그래디언트 머신러닝 알고리즘, 머신러닝의 다양한 부스팅 알고리즘, GBM의 역사, 작동 방식, GBM에서 사용되는 다양한 용어 등에 대해 논의하겠습니다. 하지만 시작하기 전에 먼저 머신러닝의 부스팅 개념과 다양한 부스팅 알고리즘을 이해하세요.
머신러닝에서 부스팅이란 무엇입니까?
부스팅은 다양한 약한 분류기로부터 강력한 분류기를 구축하는 데 사용되는 인기 있는 학습 앙상블 모델링 기술 중 하나입니다. 사용 가능한 교육 데이터 세트에서 기본 모델을 구축하는 것부터 시작한 다음 기본 모델에 존재하는 오류를 식별합니다. 오류를 식별한 후 2차 모델이 구축되고, 나아가 이 과정에서 3차 모델이 도입됩니다. 이러한 방식으로 더 많은 모델을 도입하는 프로세스는 모델이 올바르게 예측하는 완전한 훈련 데이터 세트를 얻을 때까지 계속됩니다.
AdaBoost(적응형 부스팅)는 기계 학습 역사상 다양한 약한 분류기를 하나의 강력한 분류기로 결합한 최초의 부스팅 알고리즘입니다. 주로 이진 분류와 같은 분류 작업을 해결하는 데 중점을 둡니다.
부스팅 알고리즘의 단계:
다음과 같이 알고리즘을 향상시키는 몇 가지 중요한 단계가 있습니다.
- 서로 다른 데이터 포인트가 있는 데이터 세트를 고려하고 초기화합니다.
- 이제 각 데이터 포인트에 동일한 가중치를 부여합니다.
- 이 가중치를 모델의 입력으로 가정합니다.
- 잘못 분류된 데이터 포인트를 식별합니다.
- 4단계에서 데이터 포인트의 가중치를 늘립니다.
- 적절한 출력이 나오면 이 프로세스를 종료하고 2단계와 3단계를 다시 수행하십시오.
예:
예측에 세 가지 다른 모델이 있고 완전히 다른 방식으로 작동한다고 가정해 보겠습니다. 예를 들어, 선형 회귀 모델은 데이터의 선형 관계를 보여주는 반면, 의사결정 트리 모델은 아래 이미지와 같이 데이터의 비선형성을 포착하려고 시도합니다.
또한 결과를 예측하기 위해 이러한 모델을 개별적으로 사용하는 대신 시리즈 또는 조합 형태로 사용하면 모든 기본 모델보다 정확한 정보를 가진 결과 모델을 얻을 수 있습니다. 즉, 각 모델의 개별 예측을 사용하는 대신 이러한 모델의 평균 예측을 사용하면 데이터에서 더 많은 정보를 캡처할 수 있습니다. 앙상블 학습이라고도 하며 부스팅 역시 머신러닝의 앙상블 방법을 기반으로 합니다.
기계 학습의 알고리즘 강화
머신러닝에는 주로 4가지 부스팅 알고리즘이 있습니다. 이는 다음과 같습니다:
머신러닝에서 GBM이란 무엇인가요?
GBM(Gradient Boosting Machine)은 기계 학습에서 가장 널리 사용되는 순방향 학습 앙상블 방법 중 하나입니다. 회귀 및 분류 작업을 위한 예측 모델을 구축하는 강력한 기술입니다.
GBM은 의사결정 트리와 같은 약한 예측 모델의 앙상블 형태로 예측 모델을 얻는 데 도움이 됩니다. 의사결정 트리가 약한 학습기로 수행될 때마다 결과 알고리즘을 그래디언트 부스팅 트리라고 합니다.
이를 통해 다양한 학습자 모델의 예측을 결합하고 올바른 예측을 갖는 최종 예측 모델을 구축할 수 있습니다.
그러나 여기서 동일한 알고리즘을 적용하는 경우 어떻게 여러 결정 트리가 단일 결정 트리보다 더 나은 예측을 제공할 수 있는지 한 가지 질문이 발생할 수 있습니다. 게다가 각 의사결정 트리는 동일한 데이터에서 어떻게 다른 정보를 포착합니까?
따라서 이러한 질문에 대한 대답은 최상의 분할을 선택하기 위해 각 의사결정 트리의 노드에서 다양한 기능 하위 집합을 사용한다는 것입니다. 즉, 각 트리는 다르게 동작하므로 동일한 데이터에서 다른 신호를 캡처합니다.
GBM은 어떻게 작동하나요?
일반적으로 대부분의 지도 학습 알고리즘은 선형 회귀, 벌점 회귀 모델, 의사결정 트리 등 단일 예측 모델을 기반으로 합니다. 그러나 ML에는 앙상블을 통해 다양한 모델의 조합에 의존하는 지도 알고리즘도 있습니다. 즉, 여러 기본 모델이 예측에 기여할 때 모든 예측의 평균은 부스팅 알고리즘을 통해 조정됩니다.
그라디언트 부스팅 머신은 다음과 같은 3가지 요소로 구성됩니다.
- 손실 함수
- 약한 학습자
- 추가 모델
이 세 가지 요소를 자세히 이해해 봅시다.
추상 클래스 자바
1. 손실 함수:
하지만 머신러닝에는 해결되는 작업 유형에 따라 사용할 수 있는 대규모 손실 함수 제품군이 있습니다. 손실 함수의 사용은 견고성과 같은 조건부 분포의 특정 특성에 대한 요구에 의해 추정됩니다. 작업에서 손실 함수를 사용하는 동안 손실 함수와 해당 음의 기울기를 계산하는 함수를 지정해야 합니다. 이 두 가지 기능을 얻으면 그라디언트 부스팅 머신에 쉽게 구현할 수 있습니다. 그러나 GBM 알고리즘에는 이미 여러 가지 손실 함수가 제안되었습니다.
손실 함수 분류:
손실함수는 응답변수 y의 유형에 따라 다음과 같은 유형으로 분류할 수 있습니다.
- 가우스 L2 손실 함수
- 라플라스 L1 손실 함수
- 후버 손실 함수, δ 지정됨
- 분위수 손실 함수, α 지정
- 이항 손실 함수
- Adaboost 손실 함수
- 생존 모델의 손실 함수
- 손실 함수는 데이터를 계산합니다.
- 맞춤형 손실 함수
2. 약한 학습자:
약한 학습자는 과거 오류로부터 학습하고 기계 학습의 알고리즘을 강화하기 위한 강력한 예측 모델 설계를 구축하는 데 도움이 되는 기본 학습자 모델입니다. 일반적으로 의사결정 트리는 알고리즘을 강화하는 데 있어 약한 학습자 역할을 합니다.
긴 문자열 자바
부스팅은 기본 모델의 출력을 개선하기 위해 지속적으로 작동하는 프레임워크로 정의됩니다. 많은 그래디언트 부스팅 애플리케이션을 사용하면 다양한 클래스의 약한 학습자를 원하는 대로 '플러그인'할 수 있습니다. 따라서 의사결정 트리는 약한(기본) 학습자에게 가장 자주 사용됩니다.
약한 학습자를 훈련하는 방법:
머신러닝은 학습 데이터 세트를 사용하여 기본 학습자를 학습하고, 이전 학습자의 예측을 기반으로 이전 트리에서 오류나 잔차가 가장 큰 학습 데이터 행에 집중하여 성능을 향상시킵니다. 예: 얕은 나무는 몇 개의 분할을 포함하므로 의사결정 나무에 대해 약한 학습자로 간주됩니다. 일반적으로 부스팅 알고리즘에서는 최대 6개의 분할을 갖는 트리가 가장 일반적입니다.
아래는 각 트리가 이전 트리의 잔차와 순서대로 있는 경우 성능을 향상시키기 위해 약한 학습자를 훈련하는 시퀀스입니다. 또한 이전 트리의 오류로부터 학습할 수 있도록 각각의 새로운 트리를 소개합니다. 이는 다음과 같습니다:
- 데이터 세트를 고려하고 여기에 의사결정 트리를 맞추세요.
F1(x)=y - 이전 트리의 오류가 가장 큰 다음 의사결정 트리를 맞춥니다.
h1(x)=y?F1(x) - 1단계와 2단계를 모두 추가하여 이 새 트리를 알고리즘에 추가합니다.
F2(x)=F1(x)+h1(x) - 다시 이전 트리의 잔차를 사용하여 다음 의사결정 트리를 맞춥니다.
h2(x)=y?F2(x) - 3단계에서 수행한 것과 동일한 작업을 반복합니다.
F3(x)=F2(x)+h2(x)
일부 메커니즘(예: 교차 검증)이 중지하라고 지시할 때까지 이 프로세스를 계속합니다. 여기서 최종 모델은 b개 개별 트리의 단계적 추가 모델입니다.
f(x)=B∑b=1fb(x)따라서 트리는 Gini와 같은 순수성 점수를 기준으로 최상의 분할 지점을 선택하거나 손실을 최소화하여 탐욕스럽게 구성됩니다.
3. 추가 모델:
추가 모델은 모델에 나무를 추가하는 것으로 정의됩니다. 한 번에 여러 개의 트리를 추가해서는 안 되지만 모델의 기존 트리가 변경되지 않도록 단일 트리만 추가해야 합니다. 또한 손실을 줄이기 위해 트리를 추가하는 경사하강법을 선호할 수도 있습니다.
지난 몇 년 동안 신경망에서는 회귀 방정식의 계수, 가중치 등 매개변수 집합을 최소화하기 위해 경사하강법(Gradient Descent Method)이 사용되었습니다. 오류나 손실을 계산한 후 가중치 매개변수를 사용하여 오류를 최소화합니다. 그러나 최근 대부분의 ML 전문가는 이러한 매개변수 대신 약한 학습자 하위 모델이나 의사결정 트리를 선호합니다. 여기서는 오류를 줄이고 해당 모델의 성능을 향상시키기 위해 모델에 트리를 추가해야 합니다. 이런 방식으로 새로 추가된 트리의 예측은 기존 트리 계열의 예측과 결합되어 최종 예측을 얻습니다. 이 프로세스는 손실이 허용 가능한 수준에 도달하거나 더 이상 개선이 필요하지 않을 때까지 계속됩니다.
어레이리스트와 링크드리스트
이 방법은 함수형 경사하강법(Functional Gradient Descent) 또는 함수를 이용한 경사하강법(Gradient Descent)이라고도 합니다.
익스트림 그래디언트 부스팅 머신(XGBM)
XGBM은 GBM과 매우 유사하게 작동하는 최신 버전의 그래디언트 부스팅 머신입니다. XGBM에서는 이전 트리의 오류를 학습하고 개선하는 트리를 순차적으로(한 번에 하나씩) 추가합니다. XGBM과 GBM 알고리즘은 모양과 느낌이 비슷하지만 다음과 같은 몇 가지 차이점이 있습니다.
- XGBM은 다양한 정규화 기술을 사용하여 모델의 과소적합 또는 과적합을 줄입니다. 이는 또한 그라디언트 부스팅 머신보다 모델 성능을 향상시킵니다.
- XGBM은 각 노드의 병렬 처리를 따르는 반면, GBM은 그렇지 않으므로 그라디언트 부스팅 머신보다 더 빠릅니다.
- XGBM은 기본적으로 모델이 이를 처리하므로 누락된 값의 대치를 제거하는 데 도움이 됩니다. 이러한 값이 오른쪽 노드에 있어야 하는지 왼쪽 노드에 있어야 하는지 자체적으로 학습합니다.
라이트 그래디언트 부스팅 머신(Light GBM)
Light GBM은 효율성과 빠른 속도로 인해 Gradient 부스팅 머신의 업그레이드 버전입니다. GBM, XGBM과 달리 대용량 데이터를 복잡하지 않게 처리할 수 있습니다. 반면에 숫자가 적은 데이터 포인트에는 적합하지 않습니다.
Light GBM은 레벨별 성장 대신 트리 노드의 리프별 성장을 선호합니다. 또한 라이트 GBM에서는 기본 노드가 두 개의 보조 노드로 분할되고 나중에 분할할 하나의 보조 노드를 선택합니다. 보조 노드의 이러한 분할은 두 노드 중 손실이 더 높은 노드에 따라 달라집니다.
따라서 리프별 분할로 인해 많은 양의 데이터가 제공되는 다른 알고리즘보다 LGBM(Light Gradient Boosting Machine) 알고리즘이 항상 선호됩니다.
캣부스트
catboost 알고리즘은 주로 데이터 세트의 범주형 기능을 처리하는 데 사용됩니다. GBM, XGBM 및 Light GBM 알고리즘은 숫자 데이터 세트에 적합하지만 Catboost는 범주형 변수를 숫자 데이터로 처리하도록 설계되었습니다. 따라서 catboost 알고리즘은 범주형 특성을 다른 알고리즘에는 없는 수치변수로 변환하는 필수적인 전처리 단계로 구성됩니다.
부스팅 알고리즘의 장점:
- 부스팅 알고리즘은 모델이 신뢰할 수 없는 보다 정확한 예측을 제공할 수 있도록 하는 앙상블 학습을 따릅니다.
- 부스팅 알고리즘은 다양한 손실 함수를 최적화할 수 있고 여러 하이퍼파라미터 조정 옵션을 제공하므로 다른 알고리즘보다 훨씬 더 유연합니다.
- 숫자형 변수와 범주형 변수 모두에 적합하므로 데이터 전처리가 필요하지 않습니다.
- 데이터 세트의 누락된 값을 대치할 필요가 없으며 누락된 데이터를 자동으로 처리합니다.
부스팅 알고리즘의 단점:
다음은 알고리즘 부스팅의 몇 가지 단점입니다.
- 알고리즘을 부스팅하면 과적합이 발생하고 이상값이 지나치게 강조될 수 있습니다.
- 그라디언트 부스팅 알고리즘은 오류를 최소화하기 위해 지속적으로 초점을 맞추고 여러 트리가 필요하므로 계산 비용이 많이 듭니다.
- 시간이 많이 걸리고 메모리를 많이 사용하는 알고리즘입니다.
- 본질적으로 덜 해석적이지만 다양한 도구를 사용하면 쉽게 해결할 수 있습니다.
결론:
이런 식으로 우리는 머신러닝의 예측 모델링을 위한 부스팅 알고리즘을 배웠습니다. 또한 GBM, XGBM, light GBM, Catboost 등 ML에 사용되는 다양한 중요한 부스팅 알고리즘에 대해 논의했습니다. 또한 다양한 구성 요소(손실 함수, 약한 학습기, 가산 모델)와 GBM이 이들 구성 요소와 어떻게 작동하는지 살펴보았습니다. 부스팅 알고리즘이 실제 시나리오 배포에 얼마나 유리한지 등