앙상블(ensemble) 기본 개념 제대로 이해하기

0. bias와 variance

 

1) overfitting

 

model이 학습을 너무 해버리면 모델의 차원이나 복잡도가 증가

 

데이터의 세세한 부분까지 fitting하는 overfitting 현상 발생

 

모든 데이터는 noise가 존재하는데 overfitting하면 데이터의 noise까지 세세하게 fitting하게 되는 경향성을 가짐

 

다양한 데이터가 나올 가능성이 높다.

 

넓은 범위에서 데이터가 나올 가능성이 높아서 high variance라고도 부른다

 

best fitting과 overfitting의 차이

 

2) underfitting

 

반면 학습을 너무 하지 않으면 너무 데이터를 고려하지 않게 된다

 

데이터를 많이 fitting하지 못한다

 

일부분에만 fitting되어 일부분에만 편향된다고 하여 high bias라고도 부른다

 

underfitting과 best fitting의 차이

 

 

data set을 만드는 과정에서 일반화를 잘 시킨다면 이런 fitting을 고려하는 것이 큰 도움이 된다

 

데이터가 나올 수 있는 가능성이 있는 부분에 다양성을 준다면 엄청 overfitting이 되는 것은 조금은 막을 수 있을 것

 

1. 앙상블은 무슨 의미를 가지는가

 

1-1) background

 

여러 모델을 실험하면서 성능 좋은 것만 사용할까? 항상 그렇지는 않다

 

어떤 모델은 특정 class를 잘 찾고 다른 모델은 또 다른 class를 잘 잡음

 

이런 모델들을 잘 조합하면 더 나은 모델을 만들 수 있지 않을까?

 

 

1-2) 앙상블에 대한 오해

 

성능이 좋아진다고해서 인식이 좋을 수 있지만 사실 현업에서 사용하기는 그렇다

 

앙상블은 여러 모델을 결합하여 성능을 올리는 방식으로 inference time이 그만큼 늘어난다

 

그래서 production이 중요한 현업에서는 성능이 조금 손해보더라도 single model을 쓰거나 model을 최적화시키는 방향으로 사용함

 

그러나 성능이 좋아야 하는 경우는 앙상블 시도해볼만함

 

 

1-3) 의미

 

단순히 합치는 것이 무슨 의미를 가지는가?

 

오케스트라에서 바이올린만 있으면 풍성한 소리를 낼수는 없는데 비올라,첼로,오보에 등등이 같이 있음

 

소리내는 음이 같더라도 이들은 음색이 달라서 이들을 모아 하나의 화음을 만들어 관객들에게 큰 효과를 줌

 

마찬가지로 앙상블은 서로 다른 모델들이 가지는 여러가지 특색을 하나로 모아 성능을 올리겠다는 의미다.

 

 

1-4) 기본 알고리즘

 

항상 그런건 아닌데 일반적으로 딥러닝에선 거의 보통 overfitting이 일어날 가능성이 높음

 

high bias의 underfitting을 앙상블하여 효과를 높이는 방법으로 부스팅(boosting)이 있음

 

bias가 매우 높은 모델을 순차적으로 깊게 학습하면서 나은 방향으로 fitting해나가는 방법

 

그래디언트 부스팅, XGBoost, LGBM 등등이 있음

 

----------------------------------------------------------------------------------

 

high variance의 overfitting을 앙상블하는 방법이 bagging

 

데이터 샘플을 하나하나 나눠 각각을 학습시킨 뒤 전부 평균을 내는 방법

 

대표적으로 random forest

 

 

2. model averaging

 

보통 자주 쓰는 앙상블 방법

 

“서로 다른 모델이 동일한 test set에서 동일한 error를 내는 경우는 거의 없다.”

 

다른 error를 내는 자기만의 특색을 가지는 모델들의 ensemble로 좋은 효과를 낼 수 있을 것이라는 아이디어

 

 

2-1) hard voting

 

각 모델들이 data에 대해 예측한 최고확률 class를 보고 다수결로 평가

 

strict하게 바로바로 결과를 낼 수 있다는 것이 장점

 

그러나 어떤 model은 다수결이니까 인정은 하겠지만… 그래도 나는 조금은 다른게 맞는것 같은데??라고 생각할 수 있지 않을까?

 

 

2-2) soft voting

 

데이터에 대한 여러 model의 어떤 class로 분류할지 모든 확률분포를 고려함

 

물론 각 model은 가장 확률이 높은 값을 최종 class라고 생각은 하겠지만

 

다른 예측에 대해서도 점수를 버리지 않겠다는 것이 hard voting과의 차이

 

 

 

hard voting은 최고 확률 class만 보지만 soft voting은 모든 class에 대한 예측 확률을 모두 고려하겠다는 것이다.

 

soft voting과 hard voting은 당연히 결과가 다를 수 있음

 

일반적으로는 여러 경우를 고려한 soft voting이 성능이 좋다고 알려짐

 

당연하지만 무엇을 쓸지는 여러 실험을 고려하여 선택해야함

 

 

3. 앙상블에 대한 오해

 

앙상블은 성능을 높여서 좋다고 인식할 수 있지만 그만큼 여러 모델을 사용해야하므로 시간이 많이 소요됨

 

모델이 너무 많을수록 학습시간도 많이 소요되고 추론 시간도 많이 소요됨

 

효율을 중시하는 현업에서는 성능을 손해보더라도 단일 모델을 사용하지 앙상블을 잘 사용하지는 않음

 

 

 

 

TAGS.

Comments