Skip to content

10회 · 숨은 변수와 EM · 노트

4 정규 혼합의 EM ​

4.1 E 단계와 M 단계 ​

KK개 정규 성분의 혼합 g(y;θ)=∑k=1Kπk φ(y;μk,σk2)g(y;\boldsymbol\theta)=\sum_{k=1}^K\pi_k\,\varphi(y;\mu_k,\allowbreak \sigma_k^2)에서 θ=(π1,…,πK,μ1,…,μK,σ12,…,σK2)\boldsymbol\theta=(\pi_1,\allowbreak \dots,\allowbreak \pi_K,\allowbreak \mu_1,\allowbreak \dots,\allowbreak \mu_K,\allowbreak \sigma_1^2,\allowbreak \dots,\allowbreak \sigma_K^2)이고 ∑πk=1\sum\pi_k=1이다. 숨은 자료는 이름표 ZiZ_i다(예제 2.2(a)).

명제 4.1 (정규 혼합의 EM) E 단계는 책임(responsibility)

rik=Pθt(Zi=k∣yi)=πk φ(yi;μk,σk2)∑jπj φ(yi;μj,σj2)(오른쪽은 θt의 값)r_{ik}=P_{\boldsymbol\theta_t}(Z_i=k\mid y_i)=\frac{\pi_k\,\varphi(y_i;\mu_k,\sigma_k^2)}{\sum_j\pi_j\,\varphi(y_i;\mu_j,\sigma_j^2)}\qquad(\text{오른쪽은 }\boldsymbol\theta_t\text{의 값})

을 구하는 것이고, nk=∑irikn_k=\sum_ir_{ik}로 두면 M 단계는

πk=nkn,μk=1nk∑irik yi,σk2=1nk∑irik (yi−μk)2\pi_k=\frac{n_k}n,\qquad\mu_k=\frac1{n_k}\sum_ir_{ik}\,y_i,\qquad\sigma_k^2=\frac1{n_k}\sum_ir_{ik}\,(y_i-\mu_k)^2

이다(σk2\sigma_k^2의 식에는 새 μk\mu_k를 쓴다).

증명 전략 완전 자료 로그가능도는 지시변수 1{Zi=k}1\{Z_i=k\}에 대해 선형이다. E 단계는 지시변수를 그 조건부 기댓값인 책임으로 바꾸고, M 단계는 π\boldsymbol\pi의 항과 성분별 항으로 나뉜 QQ를 따로 최대화한다.

  1. 완전 자료 로그가능도는 다음과 같다.

    ℓc(θ)=∑i∑k1{Zi=k}[log⁡πk−12log⁡(2πσk2)−(yi−μk)22σk2].\ell_c(\boldsymbol\theta)=\sum_i\sum_k1\{Z_i=k\}\Bigl[\log\pi_k-\tfrac12\log(2\pi\sigma_k^2)-\frac{(y_i-\mu_k)^2}{2\sigma_k^2}\Bigr] .
    예제 2.2(a)
  2. 관측이 서로 독립이므로 Eθt[1{Zi=k}∣y]=Pθt(Zi=k∣yi)=rikE_{\boldsymbol\theta_t}[1\{Z_i=k\}\mid\y]=P_{\boldsymbol\theta_t}(Z_i=k\mid y_i)=r_{ik}이다.지시함수 [T1], 1회 정리 5.5

  3. Q(θ∣θt)=∑knklog⁡πk+∑k∑irik[−12log⁡(2πσk2)−(yi−μk)22σk2]Q(\boldsymbol\theta\mid\boldsymbol\theta_t)=\sum_kn_k\log\pi_k+\sum_k\sum_ir_{ik}\bigl[-\tfrac12\log(2\pi\sigma_k^2)-\tfrac{(y_i-\mu_k)^2}{2\sigma_k^2}\bigr]이다. 첫 항은 π\boldsymbol\pi에만, 나머지는 성분별 모수에만 의존한다.1 2, 기댓값의 선형성

  4. ∑kπk=1\sum_k\pi_k=1 아래에서 ∑knklog⁡πk≤∑knklog⁡nkn\sum_kn_k\log\pi_k\le\sum_kn_k\log\tfrac{n_k}n이고, 등호는 πk=nk/n\pi_k=n_k/n일 때다.Gibbs 부등식, 2회 정리 8.3

  5. 성분 kk의 항을 μk\mu_k로 미분하면 ∑irik(yi−μk)/σk2=0\sum_ir_{ik}(y_i-\mu_k)/\sigma_k^2=0이므로 μk=1nk∑irikyi\mu_k=\tfrac1{n_k}\sum_ir_{ik}y_i이다.1계 조건, 오목성

  6. σk2\sigma_k^2로 미분하면 −nk2σk2+12σk4∑irik(yi−μk)2=0-\tfrac{n_k}{2\sigma_k^2}+\tfrac1{2\sigma_k^4}\sum_ir_{ik}(y_i-\mu_k)^2=0이므로 σk2=1nk∑irik(yi−μk)2\sigma_k^2=\tfrac1{n_k}\sum_ir_{ik}(y_i-\mu_k)^2이다.9회 예제 1.2(c)의 계산

이름표를 알면 성분 kk의 MLE는 그 성분에 속한 관측들의 평균과 분산이다. 모르니, 각 관측을 책임에 따라 성분들에 “나눠 준” 다음 같은 계산을 한다. nkn_k는 성분 kk의 실질적인 관측 수다. 여러 변수이면 평균은 같은 꼴이고 공분산 행렬은 Σk=1nk∑irik(yi−μk)(yi−μk)′\Sigma_k=\tfrac1{n_k}\sum_ir_{ik}(\y_i-\bmu_k)(\y_i-\bmu_k)\T이다.

알고리즘 4.2 (정규 혼합의 EM (수치적으로 안전한 판)) 

  1. 1.

    시작값: kk-평균(8절)의 결과나 무작위로 고른 관측을 평균으로, 전체 공분산을 공분산으로, πk=1/K\pi_k=1/K.

  2. 2.

    E 단계: aik=log⁡πk+log⁡φ(yi;μk,Σk)a_{ik}=\log\pi_k+\log\varphi(\y_i;\bmu_k,\allowbreak \Sigma_k)를 로그로 계산하고 log⁡rik=aik−logsumexp⁡jaij\log r_{ik}=a_{ik}-\operatorname{logsumexp}_j a_{ij}. 이때 ℓ=∑ilogsumexp⁡jaij\ell=\sum_i\operatorname{logsumexp}_ja_{ij}도 함께 얻는다.

  3. 3.

    M 단계: 명제 4.1.

  4. 4.

    ℓ\ell의 증가가 정한 값보다 작아지면 멈춘다. 여러 시작점에서 돌려 ℓ\ell이 가장 큰 것을 고른다.

logsumexp⁡jaj=a∗+log⁡∑jeaj−a∗\operatorname{logsumexp}_j a_j=a^*+\log\sum_je^{a_j-a^*} (a∗=max⁡jaja^*=\max_ja_j)는 지수를 취하기 전에 가장 큰 값을 빼서 넘침과 밑돌기를 막는다. 성분에서 멀리 떨어진 관측은 φ\varphi가 10−30010^{-300}보다 작아져 그냥 계산하면 0이 되고, 책임이 0/00/0이 된다(연습 4.4).

4.2 이름표와 대칭 ​

명제 4.3 (이름표 바꾸기) 성분의 번호를 아무 순열 σ\sigma로 바꾼 θσ\boldsymbol\theta^\sigma는 ℓ(θσ)=ℓ(θ)\ell(\boldsymbol\theta^\sigma)=\ell(\boldsymbol\theta)를 만족한다. 따라서 KK개 성분이 서로 다른 최대점 하나는 K!K!개의 최대점으로 나타난다.

증명 ∑kπkφ(y;μk,σk2)\sum_k\pi_k\varphi(y;\mu_k,\allowbreak \sigma_k^2)는 더하는 순서에 무관하다.

추정에는 해가 없다. 어느 성분을 “첫째”로 부를지 정하면(예: μ1<μ2\mu_1<\mu_2) 된다. 그러나 표준오차나 사후분포(16회)를 계산할 때는 이 대칭이 문제를 일으킨다. 더 미묘한 대칭도 있다.

예제 4.4 (같은 곳에서 출발하면 갈라지지 않는다) 모든 성분을 같은 값 (μ,σ2)(\mu,\sigma^2)에서 출발시키면 모든 관측의 책임이 rik=πkr_{ik}=\pi_k로 yiy_i에 무관하다. M 단계는 모든 성분에 같은 가중평균 yˉ\bar y와 가중분산 σ^2\hat\sigma^2을 준다. EM은 영원히 “한 정규”에 머문다. 이 점 (yˉ,σ^2)(\bar y,\hat\sigma^2)은 실제로 혼합 로그가능도의 정류점이다(연습 4.2). 대개 안장점이어서 가능도를 늘리는 방향이 있지만, EM은 대칭을 스스로 깨지 못한다. 시작값을 다르게 잡아야 하는 이유다.

연습문제

연습 4.1 (M 단계의 유도 ★★) 명제 4.1의 σk2\sigma_k^2 식을 QQ를 미분해 유도하라. 여러 변수일 때 Σk\Sigma_k의 식은 어떻게 되는가? (log⁡det⁡Σ\log\det\Sigma의 미분은 Σ−1\Sigma^{-1}이다.)

풀이

QQ에서 σk2\sigma_k^2에 관한 부분은 ∑irik[−12log⁡σk2−(yi−μk)22σk2]\sum_ir_{ik}\bigl[-\tfrac12\log\sigma_k^2-\tfrac{(y_i-\mu_k)^2}{2\sigma_k^2}\bigr]이고, 미분하면 −nk2σk2+∑rik(yi−μk)22σk4=0-\tfrac{n_k}{2\sigma_k^2}+\tfrac{\sum r_{ik}(y_i-\mu_k)^2}{2\sigma_k^4}=0. 여러 변수이면 ∑irik[−12log⁡det⁡Σk−12(yi−μk)′Σk−1(yi−μk)]\sum_ir_{ik}\bigl[-\tfrac12\log\det\Sigma_k-\tfrac12(\y_i-\bmu_k)\T\Sigma_k^{-1}(\y_i-\bmu_k)\bigr]을 Σk−1\Sigma_k^{-1}로 미분해 nk2Σk−12∑rik(yi−μk)(yi−μk)′=0\tfrac{n_k}2\Sigma_k-\tfrac12\sum r_{ik}(\y_i-\bmu_k)(\y_i-\bmu_k)\T=0.

연습 4.2 (같은 출발점 ★★) 예제 4.4의 점에서 혼합 로그가능도의 기울기가 모든 모수 방향으로 0임을 보여라. (힌트: 명제 2.5와 rik=πkr_{ik}=\pi_k.)

풀이

모든 성분이 (yˉ,σ^2)(\bar y,\hat\sigma^2)이면 rik=πkr_{ik}=\pi_k. ∂ℓ/∂μk=πk∑(yi−yˉ)/σ^2=0\partial\ell/\partial\mu_k=\pi_k\sum(y_i-\bar y)/\hat\sigma^2=0, ∂ℓ/∂σk2=πk[−n2σ^2+∑(yi−yˉ)22σ^4]=0\partial\ell/\partial\sigma_k^2=\pi_k\bigl[-\tfrac n{2\hat\sigma^2}+\tfrac{\sum(y_i-\bar y)^2}{2\hat\sigma^4}\bigr]=0. πk\pi_k 방향은 혼합 밀도가 φ(y;yˉ,σ^2)\varphi(y;\bar y,\allowbreak \hat\sigma^2)로 π\pi에 무관하므로 0이다.

연습 4.3 (Poisson 혼합 ★★) 두 Poisson의 혼합 π Poi(λ1)+(1−π)Poi(λ2)\pi\,\mathrm{Poi}(\lambda_1)+(1-\pi)\mathrm{Poi}(\lambda_2)의 E 단계와 M 단계를 유도하라. M 단계의 λk\lambda_k는 책임으로 무게를 단 평균이다.

풀이

ri=π p(yi;λ1)π p(yi;λ1)+(1−π)p(yi;λ2)r_i=\tfrac{\pi\,p(y_i;\lambda_1)}{\pi\,p(y_i;\lambda_1)+(1-\pi)p(y_i;\lambda_2)}, π=1n∑ri\pi=\tfrac1n\sum r_i, λ1=∑riyi∑ri\lambda_1=\tfrac{\sum r_iy_i}{\sum r_i}, λ2=∑(1−ri)yi∑(1−ri)\lambda_2=\tfrac{\sum(1-r_i)y_i}{\sum(1-r_i)}. 도수 자료이면 각 값에 도수를 무게로 곱한다.

연습 4.4 (logsumexp ★) a=(−1000,−1001)a=(-1000,-1001)일 때 log⁡(ea1+ea2)\log(e^{a_1}+e^{a_2})를 그대로 계산하면 무엇이 나오는가? logsumexp로 계산하면? 두 성분 모두에서 멀리 떨어진 관측의 책임을 계산할 때 이것이 왜 필요한지 설명하라.

풀이

e−1000e^{-1000}은 배정밀도에서 0이므로 log⁡(0+0)=−∞\log(0+0)=-\infty. logsumexp는 −1000+log⁡(1+e−1)=−999.687-1000+\log(1+e^{-1})=-999.687. 두 성분 모두에서 먼 관측은 두 밀도가 모두 0으로 밑돌아 책임이 0/00/0이 된다. 로그에서 최댓값을 빼면 상대적인 크기가 보존된다.

이 회차에서 읽은 절 0개 · 회차 차례