ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [LGAimers] Ensemble
    전공&대외활동 이야기/2024 LG AIMERS 4기 활동 2024. 1. 25. 10:05
    본 내용은 Module 4 이화여자대학교 강제원 교수님의 강의 내용을 요약한 것입니다

    Ensemble(앙상블)

    Supervised Learning Task에서 성능을 향상시킬 수 있는 방법으로 다양한 다른 모델을 모아서 예측에 사용하는 방법이다.

    위키피디아에 따르면 다음과 같다.

    Ensemble methods use multiple learning algorithms to obtain better predictive performance than could be obtained from any of the constituent learning algorithms alone. 

    - 앙상블 기법은 여러 학습 알고리즘을 사용하여 구성 학습 알고리즘만으로 얻을 수있는 것보다 더 나은 예측 성능을 얻습니다 -

    각 모델을 각각의 Expert라고 하며, 이들에게 각각의 Dataset을 분리하여(곂치지않게) 각자 학습을 시킨지, voting, 즉 다수결로 결정을 내리게 된다. 

    Noise등에서 안정적이고, 학습 성능이 쉽게 향상될 수 있으며, 기술적으로도 구현하기도 쉽다. 

    단점으로는 다양한 model들을 혼합해서 사용하는만큼, 각 model이 confident한 결과를 주지는 않는다.

    Bagging(BootStrap Aggreagting): 병렬적으로!

    Bagging은 학습과정에서 training sample을 랜덤하게 나누어 선택해 학습하는 것을 의미한다. 

    Bagging은 Bootstrapping과 aggregating을 합한 단어이다. Original 학습데이터를 N개로 분류하여, 별도의 Subsample들을 구성한 후 (Data가 겹치게 구성해도 되지만, 일반적으로 겹치지 않게 한다) 각 개별 모델에 병렬적으로 넣는 방법이다.

     

    장점으로는 Robust한 성능을 보여주기에 lower variance모델에 효과적이라는 것이다. 

    단점으로는 각 모델 expert 자체가 confident한 성능을 담보하지는 못한다는 것에 있다.

     

    그럼 각 단어의 뜻을 알아보자

    Bootstrap: Random sampling을 적용해보자

    BootStrap은 통계학에서 사용하는 용어로 random sampling을 적용하여 multiple한 dataset을 만드는 기법이다. 

    이때 M개의 모델이라면 M개의 dataset을 만들어 낸다(복원추출)

    Aggregating: 집계하자

     

     

    Aggregating은 이제 bootstrap한 데이터를 이용해 학습한 모델들을 통계적으로 집계하는 것이다. 

     

    Bagging을 이용하면 raw data의 분포를 추정할 수 있으며, 학습 데이터가 충분치 않더라도 충분한 학습효과를 주어 underfiitng문제나 high variance로 인한 overfitting 문제를 해결하는데 도움을 줄 수 있다.

     

    대표적인 Bagging 알고리즘으로 random forest 모형이 있다. 

     

    Boosting: 순차적으로!

    Boosting 기법의 경우 Bagging과 매우 유사한 알고리즘이나, 순차적으로 학습을 진행한다는 것에 있어서 차이점을 지닌다. 앞선 bagging의 경우 각각의 분류기들이 독립적으로 학습한 뒤 각자 voting하는 과정을 거친다면, 

     

    Boosting의 경우 이전 분류기의 학습결과를 토대로, 잘 분류되지 않은 부분에 대해서 가중을 두어 이어서 학습하는 방식이다. 

     

    즉, 먼저 생성된 모델을 꾸준히 개선해 나가는 방향으로 학습이 진행되며, 오답에 대해 가중치를 부여해 이를 점차 개선하는 방향으로 학습을 진행하는 모델이다. 

    다만 Bagging보다 overfiitng의 위험이 크고, 학습 속도가 느릴 수 있다는 단점이 있다(직렬처리이기에)

     

    Boositing을 사용한 대표적인 기법으로는, XGBoost, AdaBoost, Gradient Boost 등이 있다.

     

    추가적으로 Stacking기법도 존재하지만, 해당 기법에 대해서도 첨부하지 않는다.

Designed by Tistory.