코딩일기

[Emsseble] GBM 이해하기(ver.1 - Update) 본문

Code/머신러닝(ML)

[Emsseble] GBM 이해하기(ver.1 - Update)

daje 2021. 2. 28. 14:00
728x90
반응형

 

 

 

안녕하십니까 다제입니다. 

 

오늘은 GBM에 대해서 알아보도록 하겠습니다. 

 

해당 자료는 구글링, 고려대 강필성교수님, 이수안연구소, StatQuest를 통해 학습한 내용을 정리한 포스터 입니다. 

 

본 포스터는 머신러닝을 학습하지 않은 분들에게 다소 이질적으로 느껴지실 수 있음을 사전에 안내드립니다. 

 

 


 

 

 

1. GBM의 개념(Gradient Boost Model)

  -. 여러 개의 머신러닝으로 구성된 모델은 모집단의 약 80%의 데이터를 학습하고 약 20%를 예측하는데 사용합니다. 

  -. 이때 여러 개의 머신러닝은 순차적으로 구성이 되며, 머신러닝이 예측한 값과 실제 데이터 값 사이의 차이를 "잔차"라고 합니다.

  -. 첫번째 생성된 머신러닝발생시킨 잔차두번째 생성된 머신러닝학습하게 되며, N번째까지 반복적으로 학습합니다. 이러한 방법으로 생성된 모델은 잔차를 최소화시키며, GBM이라 부릅니다. 

더보기

※ 오차와 잔차

  -. 오차 = 모집단의 회귀식에서 예측된 값 - 실제 관측값

  -. 잔차 = 표본집단의 회귀식에서 예측된 값 - 실제 관측값 

 

※ 학습에 사용되는 데이터 양의 비율은 상황에 따라 개발자가 변경할 수 있습니다. 

 

 

 

2. GBM의 특징

  -. 위에서 언급한 바와 같이 GBM은 이전 머신러닝이 학습하지 못한 잔차에 초점을 두고 학습이 진행됩니다.

  -. 그러다보니 학습되지 않아야 되는 모집단의 오차까지 학습이 되게 되는데 이를 모델이 과적합되었다고 말합니다. 

  -. GBM은 이러한 과적합을 막는 3가지 특징이 있습니다. 

  

 1) Subsampling

  -. 모집단에서 일부 샘플링한 데이터로 모델을 학습시킵니다.

  -. 샘플링하는 이유는 모델이 모집단의 오차까지 학습할 수 없도록 모델에게 모든 데이터를 보여주지 않는 방법입니다.( 이때 복원추출과 비복원추출 모두 사용 가능합니다. )

 

 2) Shrinkage

  -. 가장 최근에 생성된 머신러닝의 가중치를 감소시켜 모델에게 주는 영향력을 감소키는 방법입니다. 

  -. 예시는 아래 접는 글을 참조부탁드립니다. 

더보기

y = f0(x) + f1(x) + f2(x) + ... + 0.9 * fn-2(x) + 0.8 * fn-1(x) + 0.7 * fn(x)

위와 같이 가장 최근에 생성된 모델의 가중치를 점점 줄이는 방법이 shrinkage 방법입니다.

 

왜? 이렇게 줄일까요?

 

위에서 언급드린 바와 같이 모델은 학습이 진행될수록 모집단의 데이터 오차를 모두 학습합니다. 

그렇기에 뒤쪽에 생성된 모델의 가중치를 줄이므로써 과적합을 방지시키는 것입니다.

 3) Early Stopping

 -. 우리는 머신러닝을 학습시킬 때 학습 횟수를 사전에 설정해줍니다.

 -. 이에, Early Stopping은 성능 개선(error 감소) 되고 있는지를 관찰하는 감시자 역할을 합니다.

 -. 감시하다가 성능이 변화가 없거나 또는 정말 미미하다 판단되면 사전에 설정한 학습횟수에 도달하지 않았더라도 과적합되지 않도록(표본집단의 오차를 학습하지 못하도록) 학습을 중단시키는 방법입니다. 

 

 

 

 


 

 

 

 

3. GBM에서 파생된 모델 

 1) XGBoost  /  2) LightGBM  /  3) CatBoost으로 파생되어 있습니다. 

 

이후 포스팅을 통해 해당 내용들을 하나하나 다뤄보도록 하겠습니다. 

또한, GBM에서 다루지 않았던 코드 내용들도 함께 다루어 포스팅하도록 하겠습니다. 

 

 

 

 


 

 

 

 

개인적으로 GBM이 왜 이렇게 쏙! 이해가 안됐는지는 모르겠지만, 드디어 이해하고 포스팅하게 되어 기쁩니다..ㅎ

 

잘못된 부분이이나 문의사항이 있으시면 언제든 문의 부탁드리며, 공감도 부탁드립니다. ^^ 

 

728x90
반응형
Comments