Ensemble(앙상블)?
단일 모델 예측에 대한 Bias(편향), Variance(분산) 사이 관계를 표현하면 위 그림과 같다.
편향과 분산이 모두 낮은 이상적인 경우는 아쉽게도 불가능하다. 둘은 Trade-off 관계이기 때문이다.
하지만 단일 모델을 여러 개 모아 예측에 활용하면 편향과 분산 모두가 낮아지도록 예측을 개선할 수 있다.
이처럼 단일 모델을 여러 개 모아 예측을 개선하는 방법을 앙상블이라고 한다.
앙상블 구성 시 중요 고려 사항은 '개별 모델들이 충분한 수준의 Diversity를 만족하는 지'와 개별 모델의 결과를 '어떤 방식으로 합칠 것인지'이다.
Diversity : Implicit vs Explicit
완전히 동일한 가중치를 가지는 모델을 여러개 묶는 경우, Diversity가 만족되지 않아 앙상블의 효과를 얻을 수 없다. 또한 다른 모델이더라도, 각 모델의 성능이 너무 낮은 경우엔 앙상블의 효과를 체감하기 힘들다. 결국은 개별 모델들이 Diversity를 만족하면서, 성능까지 좋을 때 앙상블 효과를 극대화할 수 있다.
Diversity는 Implicit과 Explicit으로 나뉜다.
Implicit은 데이터셋을 다르게 제공하면 학습되는 결과가 달라진다는 가정 하에 앙상블을 진행한다.
Explicit은 명시적인 지표를 설정하고, 이전 모델과 다른 지표의 모델이 나오도록 유도하여 앙상블을 진행한다.
실제로 아래 그림의 Explicit(Model guided) 앙상블의 경우 이전 Classifier의 결과가 다음 Classifier 구성에 영향을 주는 것을 확인할 수 있다. 대표적인 Implicit 앙상블 기법으로는 Bagging(배깅)이 있고, Explicit 앙상블 기법은 Boosting(부스팅)이 있다.
Bagging(배깅) vs Boosting(부스팅)
배깅은 분산을 줄이는 방법으로 성능을 개선한다.
모델의 복잡도가 높은 경우 일반적으로 low bias + high variance 특성이 있다.
따라서 컨셉 상으론 모델 복잡도가 높을 경우엔, 배깅을 활용한 앙상블이 더 적절하다고 볼 수 있다.
반대로 부스팅은 분산 감소 효과도 있지만, 편향을 줄이는데 더 특화돼 있다.
모델의 복잡도가 낮은 경우엔 일반적으로 high bias + low variance인 특성이 있다.
따라서 컨셉 상으론 모델 복잡도가 낮은 경우엔, 부스팅을 고려하는 것이 좋다.
배깅은 Implicit 가정 하에 이뤄지는 앙상블이기 때문에, 각 모델을 병렬적으로 학습할 수 있다는 특징이 있다.
하지만 부스팅은 Explicit 가정하에 이뤄지기 때문에, 모델을 순차적으로만 처리할 수 있다.
앙상블의 우수성 : 오차 확인을 통해
앙상블을 통해 편향이나, 분산을 줄일 수 있음을 확인했다.
편향 - 분산의 분해 과정을 생각해보면, 앙상블은 결국 오차를 줄이는 역할을 한다.
그럼 앙상블이 정말 오차를 줄이는데 기여할 수 있는지 수식을 통해 확인해보자.
이를 위해 $M$ 개의 모델을 묶어, 앙상블 모델을 구성하는 상황을 생각해보자. 이 경우 $m$ 번째 모델의 예측 $y_m$ 과 정답 $f(x)$ 사이 관계는 오차항 $\epsilon_m$ 을 도입해 다음과 같이 나타낼 수 있다.
$$\begin{aligned}
&y_m(\mathbf{x}) = f(\mathbf{x}) + \epsilon_m(\mathbf{x}) \\
&\mathbb{E}_\mathbf{x}[\{y_m(\mathbf{x}) - f(\mathbf{x})\}^2] = \mathbb{E}_\mathbf{x}[\epsilon_m(\mathbf{x})^2]
\end{aligned}$$
추가로 각 개별 모델의 오차를 평균한 $E_{avg}$ 와 앙상블 모델의 오차 기댓값 $E_{Ensemble}$ 는 다음과 같이 정리할 수 있다.
- $f(x)$는 모든 $m$에서 동일하기 때문에 괄호 안으로 넣을 수 있다.
$$\begin{aligned}
E_\text{Avg} &= \frac{1}{M} \sum_{i=1}^M \mathbb{E}_\mathbf{x}[\epsilon_m(\mathbf{x})^2] \\
E_\text{Ensemble} &= \mathbb{E}_\mathbf{x}\bigg[\big\{\frac{1}{M}\sum_{i=1}^My_m(\mathbf{x}) - f(x)\big\}^2\bigg] \\
&= \mathbb{E}_\mathbf{x}\bigg[\big\{\frac{1}{M}\sum_{i=1}^M\epsilon_m(\mathbf{x})\big\}^2\bigg]
\end{aligned}$$
앙상블이 정말 효과 있음을 확인하려면, 결국 $E_{avg}$ 보다 $E_{Ensemble}$ 이 작다는 것을 확인하면 된다.
이를 위해 우선 앙상블을 구성하는 각 모델 $m$의 오차 기댓값이 0 이고($\mathbb{E}_\mathbf{x}[\epsilon_m(\mathbf{x})^2] = 0$), 각 모델 끼리 uncorrelated 한 ($\mathbb{E}_\mathbf{x}[\epsilon_m(\mathbf{x})\epsilon_l(\mathbf{x})] = 0 \quad (m \neq l)$) 이상적인 상황을 먼저 고려해보자.
이 경우 $E_\text{Ensemble} = \frac{1}{M} E_\text{Avg}$ 가 된다. 엄청난 효과다.
하지만 이상적인 경우기 때문에, 현실적으로 가능한 범위에서 비교할 필요가 있다.
이를 위해 코시-슈바르츠 부등식을 활용해 $E_{Ensemble}$ 과 $E_{Avg}$ 사이 관계를 확인해보자.
$$\begin{aligned}
M\sum_{i=1}^M \mathbb{E}_\mathbf{x}[\epsilon_m(\mathbf{x})^2] &\geq \bigg[\sum_{i=1}^M \mathbb{E}_\mathbf{x}\epsilon_m(\mathbf{x}) \bigg]^2 \\
\frac{1}{M}\sum_{i=1}^M \mathbb{E}_\mathbf{x}[\epsilon_m(\mathbf{x})^2] &\geq \bigg[\frac{1}{M}\sum_{i=1}^M \mathbb{E}_\mathbf{x}\epsilon_m(\mathbf{x}) \bigg]^2 \\
E_\text{Avg} &\geq E_\text{Ensemble}
\end{aligned}$$
식을 통해 최종적으로 $E_{Ensemble}$ 의 상한 값이 $E_{Avg}$ 라는 것을 알 수 있다.
이는 앙상블 모델이 적어도 개별 모델의 평균 보다는 우수하다는 것을 증명해준다.
참고
04-2: Ensemble Learning - Bias-Variance Decomposition (앙상블 - 편향과 분산) - YouTube
- 강의 내용을 참고했다.