[Paper Review] ML: Ensemble Learning(KR)

- 5 mins

Ensemble Learning


Starters

앙상블(ensemble)은 프랑스어로, ‘함께’, ‘동시에’ , ‘전체적인 어울림’을 의미한다.

Ensembles in Music 우리가 흔히 앙상블을 쉽게 접하는 곳은 ‘음악’에 있어서입니다. 음악 연주자들의 앙상블이 좋다, 연주자들의 앙상블 … 등의 말을 들어본 적있나요? 저는 앙상블이란 말을 들으면, 대학 프랑스어문학과 축구팀 ‘앙상블’이 생각납니닷..지금 생각해보면 찰떡!으로 지은 이름이네요!

이때의 앙상블이 오늘 공부할 ‘머신러닝’에서의 앙상블과 유사하답니다.


Motivation

머신러닝에서의 ‘앙상블’은 위에서 설명한 의미와 유사하게 사용된다. 다양한 머신러닝 기법의 앙.상.블 인 셈입니다. 즉, 다양한 머신러닝 기법의 전체적인 어울림 의 느낌이랄까요..?

앙상블 기법에 대해 관심을 가지게 된 것은 KAGGLE Competition의 Notebook 들을 봤을 때 인것 같아요! 결국에는 다양한 컴피티션 속 우수한 결과물들이 모델링 파트의 끝부분에서 ‘앙상블’을 진행했다고 하더라구요. 저는 처음에는 XGBOOST 나 LGBM 처럼 새로나온 머신러닝 모델인 줄 알았슴다..(어리석움) 그치만 코드를 읽어보며, 모델들을 다양한 방식으로 조화를 이루게 한 것이구나!를 알게되었답니다.

사실 우리가 아는 많은 머신러닝 기법은 Ensemble Learning 의 일종이랍니다. 헷갈리지만 앙상블 기법 안에 다양한 형식으로 분류되어 있답니다. 오늘 글에서 앙상블에 대해 정확히 알아 가시길 바랍니닷!


Main Paper

앙상블 기법에 대해서 알려면, 가장 근본이 되는 논문을 읽어봐야겠죠? 제가 읽은 글은 Thomas G. Dietterich“Ensemble Learning” 입니다. Google Scholar을 통해 쉽게 찾을 수 있는 글입니다.

간단한 서론을 마치고, 중요한 부분은 2절부터 시작됩니다. ‘Why Ensemble Methods Work’ 의 제목을 가진 2절은 단일 모델과 비교했을 때, 앙상블 기법들이 왜 우수한 결과를 가져오는지에 대해 설명합니다. 그러나 더 쉬운 이해를 위해, 앙상블 기법에 대해 설명하는 3절 ‘Review of Ensemble Methods’ 부터 설명하도록 하겠습니다.

[Paragraph 3] Review of Ensemble Methods

앙상블 기법의 전반적인 설명을 다루고 있는 3장입니다. 앙상블 기법은 2가지 방식으로 기본 가설(base learning algorithm)을 다룹니다.

첫번째 방식은 가설을 여러 개 독립적으로 생성하는 방법입니다. 즉, 각 가설은 독립적이기 때문에 다양한(diverse) 관점을 제공합니다. 이 방식은 Independently Construced Examples 으로, 4가지로 분류됩니다.

Independently Constructed Examples

  • 훈련 예제(training set)를 다르게 사용하는 경우
  • 변수(feature)를 다르게 사용하는 경우
  • 결과 변수(output label)를 다르게 사용하는 경우
  • 학습 알고리즘(learning algorithm)에 무작위성(randomness) 부여하는 경우

첫번째 방안은, 각 가설마다 훈련예제를 사뭇 다르게 사용하는 방법입니다. 독립적으로 생성하는 가설마다 동일한 훈련예제(trains set)을 이용하지 않아 다양성을 유지하는 방법이죠! 가장 대표적인 예시에는 Bagging(Bootstrap Aggregating)기법이 있습니다. Bagging 기법은 m개의 훈련예제에서 가설마다 n개를 복원추출(sample uniformly with replacement) 하는 방식으로 진행됩니다. 복원추출을 진행하기에 여러번 사용된 데이터셋도 존재할 것이고 한번도 사용되지 않은 데이터셋도 존재할 수 있습니다.

두번째 방안은, 각 가설마다 변수(feature)를 다양하게 사용하는 것입니다. 예를 들어, 10개의 변수가 있는 훈련예제가 있을 때, 각 모델마다 3개씩의 변수를 사용한다는 등의 방법이 있습니다!

세번째 방안은, 결과 변수(output label)을 조정하는 것입니다. 이 방안에는 error-correcting output coding 의 방법이 존재합니다. 간단하게 설명한다면, 이 방법은 많은 class label을 가진 y를 A,B 그룹으로 나누어, 가설들을 이 그룹에 따라 예측하는 방법입니다.

마지막 방법은, 학습 알고리즘(learning algorithm)에 랜덤성을 부여하는 것입니다. 예를 들면, 역전파(backpropagation)을 진행할때의 가중치(weight)를 매번 다르게 설정하는 것과 같이, 알고리즘 자체에 무작위성을 부여하는 것입니다.

결국, 이렇게 독립적으로 생성된 개별 가설들(hypothesis)을 투표(classification의 경우 vote) 또는 평균화(Regrssion의 경우: average)를 통해 최종 모델를 생성합니다.

Coordinated Construction of Examples

  • Boosting

두번째 방식은, Coordinated Construction of Examples 으로 additive model 의 경우입니다. 이때 가설들은 다른 가설의 생성에 영향을 끼칩니다. 이 방식은 Adaboost, 우리가 잘 아는 Gradient Boost 계열의 모델들이 있습니다. 이러한 Boosting 계열의 모델은 비슷한 원리를 지녔지만, 가설들이 어떻게 다른 가설에 영향을 끼치냐에 따라 다른 방식으로 진행됩니다. 이것은 모델별로 개별적으로 다루겠습니당!

[Paragraph 2] Why Ensemble Methods Work

다시, 2절로 돌아와서 앙상블 기법이 왜 좋은가에 대해 알아보겠습니다. 2절의 내용부터는 의무적으로 알아야할 내용은 아니지만, 알고 있으면 나쁠 것이 없는 내용(?)입니다. 그렇지만 머신러닝의 앙상블에 대해 기본적인 지식만 얻고 싶다면 건너뛰어도 될 것 같아용! 어렵지는 않지만, 부과적인 내용입니다!

우리가 흔히 알고 있는 linear Regression, SVM, Decision Tree 등의 기법은 단일 가설(single hypothesis) 을 생성합니다. 이러한 단일 가설 기법들은 3가지의 문제를 동반하는데, 앙상블 기법들은 이를 해결해준다고 합니다.

Three Problems of Single Hypothesis

  • Statistical Problem
  • Computational Problem
  • Representative Problem
1. Statistical Problem

한 문제씩 풀어서 이야기 해보자면, 첫번째는 통계적 문제 입니다. 통계적 문제는 학습 알고리즘(Learning Algorithm)이 훈련 예제(training set)에 비해 너무 큰 범위로 가설을 탐색할 때 발생합니다. 예를 들어, 작은 훈런 데이터 셋에서 SVM도 0.90, Linear Regression도 0.90 의 정확도를 준다고 할 때, 결국 우리는 이 중 한 알고리즘을 선택해야 합니다. (둘의 정확도가 유사하게 높은 이유는 훈련 예제가 충분히 없어, 과적합일 것이라는 말이겠죠?) 이때 우리가 고른 알고리즘은 테스트 셋의 데이터들을 잘 예측해줄 보장이 없습니다.

이때 앙상블 기법은 하나만을 고르는 것이 아닌, 모든 알고리즘을 고려하여 과적합을 방지합니다

2. Computational Problem

두번째 문제는 계산상의 문제 입니다. 이 문제는 우리가 선정한 알고리즘이 가장 좋은 가설을 찾을 보장이 없을 때 발생합니다. 우리가 훈련예제에 대해 가장 좋은 가설(hypothesis)을 찾을 때, local minima 에 빠지게 되며 전체 데이터셋에 대한 최고의 가설을 못 찾게 되는 것이죠! 그럼 통계적 문제처럼 과적합 문제가 있겠죠?

이때 앙상블 기법은 한 가설의 local minima만이 아닌 다양한 가설의 local minima를 고려하여 이를 해결합니다.

3. Represetational Problem

마지막 문제는 표현상의 문제 입니다. 이는 어떠한 가설도 true function f 에 근접하지 못할 경우에 발생합니다. 결국 이때는 우리가 잘 아는 과소적합 의 문제가 있는 것입니다.

이때 앙상블 기법은 다양한 가설을 활용하여 true function에 근접하도록 노력합니다.

결국, 단일 가설 모델은 Statistical problem에서는 높은 variance를, Computational Problem에서는 높은 computational variance를, 마지막으로 Representational Problem 에서는 높은 bias를 야기할 수 있습니다.

앙상블 모델은 variance, bias 모두를 낮출 수 있는 기법입니다


Applications

파이썬에서 앙상블 기법은 쉽게 사용할 수 있습니다! 우리가 흔히 사용하는 Descision tree , Randomforest 등은 sklearn 라이브러리에 포함되어 있고, 그외에도 gradient boosting 등도 이용할 수 있습니다.

또한, voting/averaging method 도 sklearn으로 간단하게 구현할 수 있답니다.


Recap

결론적으로, 가설을 형성하는 방식에서 두 분류로 나뉩니다. 첫 분류는 가설들을 독립적으로 생성하며, 최종적으로 vote/average 기법을 통해 통합합니다. 예를 들면, decision tree가 있습니다. 두번째 분류는 가설들을 연관지어 생성합니다. 예를 들어, boosting 계열의 모델들(xgboost,adaboost 등)이 있습니다.

앞으로의 데이터 분석 과제에서 앙상블 기법을 활용하는 것은 어떤가요? 이처럼 간단한 방법과 원리로 성능을 높일 수 있답니다.


Thats it for today. Thanks for reading!
오늘은 여!기!까!지! 읽어주셔서 감사합니다!

rss facebook twitter github gitlab youtube mail spotify lastfm instagram linkedin google google-plus pinterest medium vimeo stackoverflow reddit quora quora