14. Combining Models

모델을 혼합하는 법을 알아보자.

14.1. Bayesian Model Averaging

최선의 모델을 선택해 그 모델로 예측을 하는 대신 각각 모델에서의 예측의 가중평균 p(y | \mathbf{x}, \mathcal{D}) = \sum_{m \in \mathcal{M}} p(y | \mathbf{x}, m, \mathcal{D}) p(m | \mathcal{D})를 계산할 수 있다. 이를 베이즈 모델 평균(BMA)라 하며 그냥 단일 모델을 쓰는 것보다 가끔은 더 좋은 성능을 낸다. 물론, 모든 모델에 대해 평균을 내는 것은 계산적으로 불가능하므로, 간단한 근사로서 사후분포에서 몇 개의 모델을 샘플링한다. 더 간단한 근사는 그냥 최대사후확률추정 모델을 사용하는 것이다.

14.2. Committees

위원회 법f(y | \mathbf{x}, \mathbf{\pi}) = \sum_{m \in \mathcal{M}} w_{m} f_{m}(y | \mathbf{x})의 기반 모델의 가중치합 형태인 모델을 학습하는 것이다. 이 때 가중치 w_{m}은 튜닝될 수 있는 변수들이다. 이는 총체 학습이라고도 불린다.

당연하지만 총체 학습은 적응적 기저 함수 모델을 학습하는 것과 밀접한 연관이 있다. 사실, f_{m}을 은닉 단위, w_{m}을 출력 가중치로 보면 신경망을 총체 학습으로 볼 수도 있다. 또한, 부스팅을 기반 모델의 가중치가 연속적으로 결정되는 총체 학습의 일종으로 볼 수도 있다.

14.3. Boosting

부스팅은 적응적 기저 함수 모델을 피팅하는 탐욕적 알고리즘이다. 이 때 \phi_{m}들은 약한 학습기 또는 기본 학습기라 불리는 알고리즘에 의해 생성된다. 이 알고리즘은 약한 학습기를 가중치가 부과된 데이터에 연속적으로 적용하는데, 초기에 잘못 분류된 표본들에 대해 높은 가중치를 부여한다.

지수 손실 함수를 쓰는 이진 분류 문제를 생각해 보자. 이 경우 m번째 단계에서 목적 함수는 L_{m}(\phi) = \sum_{i=1}^{N} e^{-\tilde{y}_{i}(f_{m-1}(\mathbf{x}_{i}) + \beta \phi(\mathbf{x}_{i}))} = \sum_{i=1}^{N} w_{i, m} e^{-\beta \tilde{y}_{i} \phi(\mathbf{x}_{i})}이 된다. (w_{i, m} = e^{-\tilde{y}_{i}f_{m-1}(\mathbf{x}_{i})}는 i번째 데이터에 대한 가중치) 이는 다음과 같이 쓸 수 있다.

L_{m} = e^{-\beta} \sum_{\tilde{y}_{i} = \phi(\mathbf{x}_{i})} w_{i, m} + e^{\beta} \sum_{\tilde{y}_{i} \neq \phi(\mathbf{x}_{i})} w_{i, m} = (e^{\beta} - e^{-\beta}) \sum_{i=1}^{N} w_{i, m} \mathbf{1}_{\tilde{y}_{i} \neq \phi(\mathbf{x}_{i})} + e^{-\beta} \sum_{i=1}^{N} w_{i, m} 따라서 최적의 함수는 \phi_{m} = \mathrm{argmin}_{\phi} w_{i, m} \mathbf{1}_{\tilde{y}_{i} \neq \phi(\mathbf{x}_{i})}이며, 이는 데이터 집합에 가중치 w_{i, m}를 부여한 뒤 약한 학습기를 적용해서 얻을 수 있다. 이를 대입하면 \mathrm{err}_{m} = \frac{\sum_{i=1}^{N} w_{i} \mathbf{1}_{\tilde{y}_{i} \neq \phi_{m}(\mathbf{x}_{i})}}{\sum_{i=1}^{N} w_{i, m}} \beta_{m} = \frac{1}{2} \log \frac{1 - \mathrm{err}_{m}}{\mathrm{err}_{m}}을 얻으며, 전체 업데이트는 f_{m}(\mathbf{x}) = f_{m-1}(\mathbf{x}) + \beta_{m} \phi_{m}(\mathbf{x})이 된다.

이를 이용하면 다음 반복에서의 가중치는 w_{i, m+1} = w_{i, m} e^{2\beta_{m} \mathbf{1}_{\tilde{y}_{i} \neq \phi(\mathbf{x}_{i})}} e^{-\beta_{m}}이 됨을 알 수 있다. 일반성을 잃지 않고 e^{-\beta_{m}}은 없앨 수 있다. 이 과정을 에이다부스트.M1 알고리즘이라 한다. 이는 과적합되기까지의 과정이 매우 느리다.

14.3.1 Minimizing exponential error

볼록한 상한은 지수 손실 함수 L(\tilde{y}, f) = e^{-\tilde{y} f}가 있다. 이는 로그 손실 함수에 비해 계산할 때 이점이 있다. 이 경우 최적의 추정은 역시 f^{\ast}(\mathbf{x}) = \frac{1}{2} \log \frac{p(\tilde{y} = 1 | \mathbf{x})}{p(\tilde{y} = -1 | \mathbf{x})}으로 동일하다.

14.3.2. Error functions for boosting

부스팅에 여러 손실 함수를 상황에 맞게 적용할 수 있다.

14.4. Tree-based Models

일반적으로 약한 학습기로는 분류 회귀 트리를 많이 사용한다. 이 때 분산을 낮게 유지하기 위해 트리를 너무 깊게 하지 않는 것이 좋다. 분산이 낮아져 편향이 커지더라도, 이는 부스팅의 여러 단계를 거치면 완화된다. 이 때 트리의 높이, 부스팅하는 라운드 수, 그리고 수축 인자는 추가적으로 튜닝해야 하는 매개변수이다. 보통은 리프 노드가 6개 근처인 트리를 많이 쓴다.

경사 부스팅 알고리즘을 얕은 회귀 트리와 결합한다면 다변수 적응적 회귀 트리(MART) 모델이 된다. 이는 경사 부스팅 알고리즘에 대해서 회귀 트리를 피팅한 뒤에, 트리의 리프 노드에서 매개변수를 재추정해 손실 함수를 최소화하는 것이다. 즉, R_{jm}이 m번째 트리의 j번째 리프 영역, \gamma_{jm}이 그에 대응하는 매개변수일 때 (회귀일 때는 평균 반응도이고 분류일 때는 최적의 클래스 라벨이 될 것이다) \gamma_{jm} = \mathrm{argmin}_{\gamma} \sum_{x_{i} \in R_{jm}} L(y_{i}, f_{m-1}(\mathbf{x}_{i}) + \gamma)을 구하는 것이 된다.

14.5. Conditional Mixture Models

조건적 혼합 모델에 대해 알아보자.

14.5.1. Mixtures of linear regression models

가장 흔히 사용되는 혼합 모델은 가우시안 혼합, 또는 가우시안 혼합 모델(GMM)로 p(\mathbf{x}_{i} | \mathbf{\theta}) = \sum_{k=1}^{K} \pi_{k} \mathcal{N}(\mathbf{x}_{i} | \mathbf{\mu}_{k}, \mathbf{\Sigma}_{k})이 된다. 이는 기대값 최대화 알고리즘으로 피팅된다.

14.5.2. Mixture of logistic models

혼합 모델의 첫 번째 용도는 이를 블랙박스 분포 모델로 사용하는 것이다. 두 번째 용도는 클러스터링이다. 이는 우선 혼합 모델을 피팅한 뒤 각각 클래스에 속할 책임도를 나타내는 r_{ik} = p(z_{i} = k | \mathbf{x}_{i}, \mathbf{\theta}) = \frac{p(z_{i} = k | \mathbf{\theta}) p(\mathbf{x}_{i} | z_{i} = k, \mathbf{\theta})}{\sum_{k' = 1}^{K} p(z_{i} = k' | \mathbf{\theta}) p(\mathbf{x}_{i} | z_{i} = k', \mathbf{\theta}) }을 계산하는 것이다. 이를 소프트 클러스터링이라 하며, 생성적 분류기를 이용해 계산하는 것과 같다. 차이가 있다면 학습 시점에서 혼합 모델은 z_{i}를 관측할 수 없지만 생성적 분류기에서는 y_{i}를 관측하게 된다는 것이 차이이다. 이도 기대값 최대화 알고리즘으로 피팅된다.

14.5.3. Mixtures of experts

혼합 모델로 분류와 회귀에 쓰이는 구별적 모델도 만들 수 있다. 예를 들어 여러 개의 다른 선형 회귀 모델을 가중치합한다고 하면 p(y_{i} | \mathbf{x}_{i}, z_{i} = k, \mathbf{\theta}) = \mathcal{N}(y_{i} | \mathbf{w}_{k}^{T} \mathbf{x}_{i}, \sigma_{k}^{2}), p(z_{i} | \mathbf{x}_{i}, \mathbf{\theta}) = \mathrm{Cat}(z_{i} | \mathcal{S}(\mathbf{V}^{T} \mathbf{x}_{i})) 로 나타낼 수 있는데, 이런 형태의 모델을 전문가의 혼합이라고 한다.

답글 남기기

아래 항목을 채우거나 오른쪽 아이콘 중 하나를 클릭하여 로그 인 하세요:

WordPress.com 로고

WordPress.com의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Google photo

Google의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Twitter 사진

Twitter의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

Facebook 사진

Facebook의 계정을 사용하여 댓글을 남깁니다. 로그아웃 /  변경 )

%s에 연결하는 중