My Data Story
[군집] 베이즈 가우시안 혼합 모델 본문
◈ '군집' 목차 ◈
10. 베이즈 가우시안 혼합 모델
베이즈 가우시안 혼합 모델에 대해 이해하고, 사이킷런에서 구현해보자.
1. 베이즈 가우시안 혼합 모델
베이즈 가우시안 혼합 모델에서 클러스터의 파라미터(가중치, 평균, 공분산 행렬 등)는 더 이상 고정된 모델 파라미터가 아니고, 클러스터 할당 처럼 잠재 확률 변수로 취급된다. 따라서 이제 z는 클러스터 파라미터와 클러스터 할당을 모두 포함하게 된다.
■ 베타 분포
베타 분포는 고정된 범위 안에 놓인 값을 가진 확률 변수를 모델링할 때 자주 사용된다.
이 모델에서 클러스터 가중치는 모두 0에서 1사이의 범위이므로 베타 분포를 따른다고 가정한다.
예를 들어 가중치 변수 = [0.3, 0.6, 0.5, ...] 라 가정하면, 샘플의 30%를 클러스터 0에 할당하고, 남은 샘플의 60%를 클러스터1에 할당하고, 남은 샘플의 50%를 클러스터 2에 할당되는 식이다.
이 프로세스는 새로운 샘플이 작은 클러스터보다 큰 클러스터에 합류할 가능성이 높은 데이터 셋에 잘 맞는 모델이다.
■ 가중치 분포
클러스터 가중치 분포는 농도 alpha 값에 따라 영향을 받는다.
농도 alpha 값이 크면, 가중치 값이 0에 가까워 SBP는 많은 클러스터를 만든다.
반대로 농도 alpha 값이 작으면, 가중치 값이 1에 가깝게 되고 SBP는 적은 클러스터를 만든다.
■ 위샤트 분포
마지막으로 위샤트 분포를 사용해 공분산 행렬을 샘플링한다. 파라미터 d와 V로 클러스터 분포 모양을 제어한다.
※ 베이즈 가우시안 혼합 모델로 무엇을 하는가?
위 가정을 전제로 데이터 셋 X가 주어지면, 가중치 ∮와 클러스터 할당 분포 z(1), ... , z(k) 그리고 전체 분포의 파라미터 m(1), ... , m(k) 와 ∑(1), ... , ∑(k) 까지를 추정한다. 다시 말해, 베이즈 가우시안 혼합 모델을 훈련시킨다는 것은 가중치와 전체 분포 파라미터를 추정하는 것이다.
※ 그렇다면, 어떻게 가중치과 전체 분포의 파라미터를 추정할까?
베이즈 가우시안 혼합 모델은 베이즈 정리를 활용하여 데이터 X를 관측한 후 잠재 변수에 대한 확률 분포를 업데이트한다.
잠재 변수 z에 대한 사전 지식이 존재하는 경우, 사전 확률이라는 확률 분포 p(z)에 인코딩 될 수 있다.
예를 들어 클러스터가 적을 것이라는 믿음은 농도 alpha 값을 높게 설정하게 된다.
하지만 데이터 수가 많을 수록 사전 믿음은 그렇게 중요하지 않다.
안타깝지만 가우시안 혼합 모델에서 분모인 P(X)는 계산하기 힘들다.
그 이유는 가능한 모든 Z에 대해 적분해야 하기 때문이다.
모든 클러스터 파라미터와 클러스터 할당의 조합을 고려해야 하기 때문이다.
이는 변분 추론과 수학적 기교를 통해 해결한다.
BayesianGaussianMixture 클래스에서 클러스터 파라미터와 할당 변수를 업데이트하는 공식에 대해 구체적으로 알고 싶다면 아래 사이트를 참고하길 바란다.
( 참고) http://homl.info/40
2. BayesianGaussianMixture 클래스
사이킷런에서 BayesianGaussianMixture 클래스 통해 베이즈 가우시안 혼합 모델을 구현할 수 있다.
BayesianGaussianMixture 클래스는 최적의 클러스터 개수를 수동으로 찾지 않고 불필요한 클러스터의 가중치를 0으로 (또는 0으로 가깝게) 만든다. 클러스터 개수 n_components를 최적의 클러스터 개수보다 크다고 믿을 만한 값으로 지정하면,자동으로 불필요한 클러스터를 제거한다.
클러스터 개수에 대한 사전 지식은 BayesianGaussianMixture의 매개 변수 weight_concetration_prior 로 조정할 수 있다.
from sklearn.mixture import BayesianGaussianMixture
bgm = BayesianGaussianMixture(n_components=10, n_inits=10)
bgm.fit(X)
#불필요한 클러스터의 가중치는 0으로 설정된다.
np.round(bgm.weights_, 2)
>> array([0.4, 0.21, 0.4, 0., 0., 0., 0., 0., 0., 0.])
3. 가우시안 혼합 모델의 한계
가우시안 혼합 모델은 타원형 클러스터에 잘 작동한다. 하지만 다른 모양을 가진 데이터에 훈련하면 나쁜 결과를 얻게 될 것이다.
예를 들어, 반달 데이터 셋을 군집하기 위해 베이즈 가우시안 혼합 모델을 사용하면, 아래와 같이 알고리즘은 필사적으로 타원을 찾는다. 2개 아니라 8개의 클러스터를 찾는다. 밀도 추정은 나쁘지 않으므로 이 모델은 이상치 감지를 위해 사용할 수는 있다. 하지만 두 개의 반달 모양을 식별하는 데는 실패했다.
'Machine Learning > 3. 비지도 학습 알고리즘' 카테고리의 다른 글
[군집] 활용 - 이미지 분할, 전처리, 준지도 학습 (0) | 2023.08.19 |
---|---|
[군집] 활용 - 개요 (0) | 2023.08.19 |
[군집] 가우시안 혼합 모델 (0) | 2023.08.19 |
[군집] 스펙트럼 군집 (0) | 2023.08.19 |
[군집] 유사도 전파 (0) | 2023.08.19 |