Path: blob/master/site/ko/probability/examples/Fitting_DPMM_Using_pSGLD.ipynb
25118 views
Copyright 2018 The TensorFlow Probability Authors.
Licensed under the Apache License, Version 2.0 (the "License");
사전 조정된 확률적 그래디언트 랑주뱅 동역학으로 디리클레 프로세스 혼합 모델 맞춤 조정하기
이 노트북에서는 가우시안 분포의 디리클레 프로세스(Dirichlet Process)를 맞춤 조정하여 많은 수의 샘플을 클러스터링하고 동시에 클러스터 수를 추론하는 방법을 보여줍니다. 추론을 위해 사전 조정된 확률적 그래디언트 랑주뱅 동역학(Preconditioned Stochastic Gradient Langevin Dynamics, pSGLD)을 사용합니다.
목차
샘플
모델
최적화
결과 시각화하기
4.1. 클러스터링된 결과
4.2. 불확실성 시각화하기
4.3. 선택된 혼합 구성 요소의 평균 및 규모
4.4. 각 혼합 구성 요소의 혼합 가중치
4.5. 의 수렴
4.6. 반복을 통해 추론된 클러스터 수
4.7. RMSProp로 모델 맞춤 조정하기
결론
1. 샘플
먼저 장난감 데이터세트를 설정합니다. 3개의 이변량 가우시안 분포에서 50,000개의 무작위 샘플을 생성합니다.
2. 모델
여기에서 대칭 디리클레 사전 확률을 사용하여 가우시안 분포의 디리클레 프로세스 혼합을 정의합니다. 노트북 전체에서 벡터 수량은 굵게 표시됩니다. 샘플에 대해 가우시안 분포의 혼합이 있는 모델은 다음과 같이 공식화됩니다.
클러스터의 추론된 인덱스를 나타내는 를 통해 번째 클러스터에 각 를 할당하는 것이 목표입니다.
이상적인 디리클레 혼합 모델의 경우 는 로 설정됩니다. 하지만 충분히 큰 로 디리클레 혼합 모델을 근사화할 수 있는 것으로 알려져 있습니다. 초기값을 로 임의로 설정했지만, 단순한 가우시안 혼합 모델과 달리 최적화를 통해 최적의 클러스터 수를 추론할 수도 있습니다.
이 노트북에서는 이변량 가우시안 분포를 혼합 구성 요소로 사용하고 를 30으로 설정합니다.
3. 최적화
사전 조정된 확률적 그래디언트 랑주뱅 동역학(pSGLD)으로 모델을 최적화하여, 미니 배치 경사 하강 방식으로 많은 수의 샘플에서 모델을 최적화할 수 있습니다.
번째 반복에서 매개변수 를 미니 배치 크기 로 업데이트하려면, 업데이트는 다음과 같이 샘플링됩니다.
$$\begin{align*} \Delta \boldsymbol { \theta } _ { t } & \sim \frac { \epsilon _ { t } } { 2 } \bigl[ G \left( \boldsymbol { \theta } _ { t } \right) \bigl( \nabla _ { \boldsymbol { \theta } } \log p \left( \boldsymbol { \theta } _ { t } \right) - \frac { N } { M } \sum _ { k = 1 } ^ { M } \nabla _ \boldsymbol { \theta } \log \text{GMM}(x_{t_k})\bigr) + \sum_\boldsymbol{\theta}\nabla_\theta G \left( \boldsymbol { \theta } _ { t } \right) \bigr]\ &+ G ^ { \frac { 1 } { 2 } } \left( \boldsymbol { \theta } _ { t } \right) \text { Normal } \left( \text{loc}=\boldsymbol{0} ,, \text{scale}=\epsilon _ { t }\boldsymbol{1} \right)\ \end{align*}$$위의 수식에서 는 번째 반복에서의 학습률이고, 는 의 로그 사전 확률 분포의 합계입니다. 는 각 매개변수의 그래디언트 배율을 조정하는 사전 조정기입니다.
pSGLD에 대한 손실 함수로 가능성 및 사전 확률 의 결합 로그 확률을 사용합니다.
pSGLD의 API에 지정된 대로 사전 확률의 합계를 샘플 크기 으로 나누어야 합니다.
4. 결과 시각화하기
4.1. 클러스터링된 결과
먼저 클러스터링 결과를 시각화합니다.
각 샘플 를 클러스터 에 할당하기 위해 의 사후 확률을 다음과 같이 계산합니다.
거의 동일한 수의 샘플이 적절한 클러스터에 할당되고 모델이 올바른 수의 클러스터를 성공적으로 추론한 것을 볼 수 있습니다.
4.2. 불확실성 시각화하기
여기에서는 각 샘플에 대해 시각화하여 클러스터링 결과의 불확실성을 살펴봅니다.
엔트로피를 사용하여 불확실성을 계산합니다.
pSGLD에서는 각 반복에서 훈련 매개변수의 값을 사후 확률 분포의 샘플로 취급합니다. 따라서 각 매개변수에 대해 반복의 값에 대한 엔트로피를 계산합니다. 최종 엔트로피 값은 모든 클러스터 할당의 엔트로피를 평균하여 계산됩니다.
위 그래프에서 휘도가 낮을수록 불확실성이 커집니다. 클러스터 경계 근처의 샘플이 특히 더 높은 불확실성을 가지고 있음을 알 수 있습니다. 이는 이러한 샘플을 클러스터링하기 어려우므로 직관적으로 사실입니다.
4.3. 선택된 혼합 구성 요소의 평균 및 규모
다음으로 선택한 클러스터의 및 를 확인합니다.
및 는 실측값에 가깝습니다.
4.4 각 혼합 구성 요소의 혼합 가중치
추론된 혼합 가중치도 살펴봅니다.
단지 몇 개(3개)의 혼합 구성 요소만이 상당한 가중치를 가지고 있고 나머지 가중치는 0에 가까운 값을 가지고 있음을 알 수 있습니다. 이는 또한 모델이 샘플의 분포를 구성하는 올바른 수의 혼합 구성 요소를 성공적으로 추론했음을 보여줍니다.
4.5. 의 수렴
디리클레 분포의 집중 매개변수 의 수렴을 살펴봅니다.
가 작으면 디리클레 혼합 모델에서 예상되는 클러스터 수가 적다는 사실을 고려할 때 모델은 반복을 통해 최적의 클러스터 수를 학습하는 것으로 보입니다.
4.6. 반복을 통해 추론된 클러스터 수
추론된 클러스터 수가 반복에 따라 어떻게 변하는지 시각화합니다.
이를 위해 반복을 통해 클러스터 수를 추론합니다.
반복을 통해 클러스터 수가 3개에 가까워지고 있습니다. 반복을 통해 를 더 작은 값으로 수렴한 결과, 모델이 최적의 클러스터 수를 추론하는 매개변수를 성공적으로 학습하고 있음을 알 수 있습니다.
흥미롭게도, 추론이 훨씬 이후의 반복에서 수렴된 와 달리 초기 반복에서 올바른 수의 클러스터로 수렴되었음을 알 수 있습니다.
4.7. RMSProp로 모델 맞춤 조정하기
이 섹션에서는 pSGLD의 몬테카를로 샘플링 체계의 효과를 확인하기 위해 RMSProp를 사용하여 모델을 맞춤 조정합니다. 샘플링 방식이 없고 pSGLD가 RMSProp를 기반으로 하므로 비교를 위해 RMSProp를 선택합니다.
pSGLD에 비해 RMSProp에 대한 반복 횟수는 더 길지만, RMSProp에 의한 최적화는 훨씬 빠릅니다.
다음으로 클러스터링 결과를 살펴봅니다.
실험에서 RMSProp 최적화로 올바른 클러스터 수가 추론되지 않았습니다. 또한 혼합 가중치를 봅니다.
잘못된 수의 구성 요소에 상당한 혼합 가중치가 있음을 알 수 있습니다.
최적화에 더 오랜 시간이 걸리지만 몬테카를로 샘플링 방식을 사용하는 pSGLD가 실험에서 더 나은 성능을 보였습니다.
5. 결론
이 노트북에서는 pSGLD로 가우시안 분포의 디리클레 프로세스 혼합을 맞춤 조정하여 많은 수의 샘플을 클러스터링하고 동시에 클러스터 수를 추론하는 방법을 설명했습니다.
이 실험을 통해 모델이 샘플을 성공적으로 클러스터링하고 올바른 클러스터 수를 추론한 것으로 나타났습니다. 또한 pSGLD의 몬테카를로 샘플링 방식을 통해 결과의 불확실성을 시각화할 수 있음을 보여주었습니다. 샘플을 클러스터링할 뿐만 아니라 모델이 혼합 구성 요소의 올바른 매개변수를 추론할 수 있음을 확인했습니다. 매개변수와 추론된 클러스터 수 간의 관계에 대해, 𝛼 수렴과 추론된 클러스터 수 간의 상관관계를 시각화하여 모델이 효과적인 클러스터 수를 제어하는 매개변수를 학습하는 방법을 조사했습니다. 마지막으로 RMSProp을 사용하여 모델을 맞춤 조정한 결과를 살펴보았습니다. 몬테카를로 샘플링 방식이 없는 옵티마이저인 RMSProp는 pSGLD보다 훨씬 빠르게 동작하지만 클러스터링의 정확성은 떨어집니다.
장난감 데이터세트에는 2차원만 갖는 50,000개의 샘플만 있었지만, 여기에 사용된 미니 배치 방식의 최적화는 훨씬 더 큰 데이터세트에 맞게 확장 가능합니다.