AI 모델 개발: Ensemble – Boosting
ㅁ Ensemble
ㅇ 정의:
– 여러 개의 약한 학습기(weak learner)를 순차적으로 학습시켜 이전 모델이 잘못 예측한 데이터에 가중치를 부여하며 성능을 향상시키는 기법.
ㅇ 특징:
– 순차적 학습 방식으로 오차를 점진적으로 줄임.
– 각 단계에서 이전 모델의 오분류 데이터에 더 집중.
– 과적합 위험이 있으나 적절한 규제 및 조기 종료로 완화 가능.
ㅇ 적합한 경우:
– 단일 모델의 성능이 부족하고, 데이터에 복잡한 패턴이 있는 경우.
– 분류, 회귀 모두 적용 가능.
ㅇ 시험 함정:
– Bagging과 혼동: Bagging은 병렬 학습, Boosting은 순차 학습.
– 모든 Boosting이 과적합에 강하다고 오해.
ㅇ 시험 대비 “패턴 보기” 예시:
– (O) “이전 모델의 오류를 보완하며 순차적으로 학습하는 앙상블 기법은? → Boosting”
– (X) “여러 모델을 동시에 학습하여 평균을 내는 방식은 Boosting이다.”
================================
1. Boosting
ㅇ 정의:
– 약한 학습기를 순차적으로 결합하여 강한 학습기를 만드는 앙상블 학습 방법.
ㅇ 특징:
– 이전 모델의 오분류 데이터에 가중치를 높여 재학습.
– 모델이 순차적으로 연결되어 있음.
– 대표 알고리즘: AdaBoost, Gradient Boosting, XGBoost, LightGBM 등.
ㅇ 적합한 경우:
– 데이터에 노이즈가 적고, 복잡한 경계가 필요한 경우.
– 단일 결정트리보다 높은 정확도가 필요한 경우.
ㅇ 시험 함정:
– Boosting은 항상 Bagging보다 빠르다고 착각.
– 모든 Boosting 알고리즘이 과적합에 강하다고 오해.
ㅇ 시험 대비 “패턴 보기” 예시:
– (O) “이전 단계의 오분류에 가중치를 주어 학습하는 기법은? → Boosting”
– (X) “Boosting은 병렬로 여러 모델을 학습하여 평균을 낸다.”
1.1 AdaBoost
ㅇ 정의:
– Adaptive Boosting의 약자로, 오분류된 데이터의 가중치를 조정하며 여러 약한 분류기를 결합하는 알고리즘.
ㅇ 특징:
– 간단하고 구현이 쉬움.
– 이상치에 민감.
– 분류 성능 향상에 효과적.
ㅇ 적합한 경우:
– 데이터가 비교적 깨끗하고 이상치가 적은 경우.
ㅇ 시험 함정:
– AdaBoost는 항상 결정트리만 사용한다고 오해.
– 이상치에 강하다고 잘못 이해.
ㅇ 시험 대비 “패턴 보기” 예시:
– (O) “오분류 데이터의 가중치를 조정하며 학습하는 Boosting 기법은? → AdaBoost”
– (X) “AdaBoost는 이상치에 강하다.”
1.2 Gradient Boosting
ㅇ 정의:
– 손실 함수를 경사하강법(Gradient Descent)으로 최소화하며 순차적으로 학습하는 Boosting 알고리즘.
ㅇ 특징:
– 다양한 손실 함수 사용 가능.
– 학습 속도가 느릴 수 있음.
– 과적합 방지를 위해 학습률 조절 필요.
ㅇ 적합한 경우:
– 예측 정확도가 매우 중요한 경우.
ㅇ 시험 함정:
– Gradient Boosting이 항상 XGBoost보다 빠르다고 오해.
– 학습률을 올리면 항상 정확도가 향상된다고 착각.
ㅇ 시험 대비 “패턴 보기” 예시:
– (O) “손실 함수를 경사하강법으로 최소화하는 Boosting 기법은? → Gradient Boosting”
– (X) “Gradient Boosting은 병렬 학습이 기본이다.”
1.3 XGBoost
ㅇ 정의:
– eXtreme Gradient Boosting의 약자로, Gradient Boosting을 병렬 처리와 규제를 통해 최적화한 알고리즘.
ㅇ 특징:
– 빠른 학습 속도와 높은 정확도.
– L1, L2 규제를 통한 과적합 방지.
– 결측값 처리 내장.
ㅇ 적합한 경우:
– 대규모 데이터셋, 높은 성능이 필요한 경우.
ㅇ 시험 함정:
– XGBoost가 항상 LightGBM보다 빠르다고 오해.
– 결측값 처리를 위해 반드시 전처리가 필요하다고 착각.
ㅇ 시험 대비 “패턴 보기” 예시:
– (O) “규제를 통해 과적합을 방지하고 병렬 학습이 가능한 Gradient Boosting 기법은? → XGBoost”
– (X) “XGBoost는 결측값 처리를 지원하지 않는다.”
1.4 LightGBM
ㅇ 정의:
– Microsoft에서 개발한 Gradient Boosting 프레임워크로, 히스토그램 기반 학습과 리프 중심 트리 분할 방식을 사용.
ㅇ 특징:
– 매우 빠른 학습 속도.
– 메모리 효율성 높음.
– 대규모 데이터 처리에 최적화.
ㅇ 적합한 경우:
– 데이터셋이 크고, 학습 속도가 중요한 경우.
ㅇ 시험 함정:
– LightGBM이 항상 XGBoost보다 정확하다고 오해.
– 작은 데이터셋에서도 무조건 LightGBM이 유리하다고 착각.
ㅇ 시험 대비 “패턴 보기” 예시:
– (O) “히스토그램 기반 학습과 리프 중심 트리 분할을 사용하는 Boosting 기법은? → LightGBM”
– (X) “LightGBM은 작은 데이터셋에서 항상 최고의 성능을 낸다.”
ㅁ 추가 학습 내용
Boosting 기법의 성능 향상을 위해서는 하이퍼파라미터 튜닝이 중요하다. 주요 조정 요소로는 학습률(learning rate), 트리의 최대 깊이(max_depth), 최소 샘플 분할 수(min_child_samples) 등이 있으며, 이를 적절히 조정하면 과적합을 방지하고 성능을 최적화할 수 있다. Early Stopping 기법을 사용하면 불필요한 반복 학습을 줄이고 일반화 성능을 높일 수 있다. 시험에서는 Boosting과 Bagging의 차이, 각 Boosting 알고리즘의 특징, 속도와 성능의 트레이드오프, 이상치와 노이즈에 대한 민감도, 병렬 처리 가능 여부, 결측값 처리 기능 여부 등을 비교하는 문제가 자주 출제된다.