기댓값 최대화 알고리즘
예제 2: 베르누이 혼합 모델

동일한 크기의 이미지  N개가 주어졌을 때, 이를  \mathbf {x_{n}} =(x_{n,1},...,x_{n,D})^{T},n\in \{1,...,N\}라 하자. 각 이미지는  D개의 픽셀로 이루어져 있고 각 픽셀은  0 혹은  1의 값을 가진다. 즉,  x_{n,i}\in \{0,1\}이다. 또한 각각의 픽셀이 서로에 대해 조건부 독립적이라 가정하면, 성분  k의 모든 이미지에 관한 픽셀  i의 확률분포는 모수  0\leq \mu _{k,i}\leq 1를 갖는 베르누이 분포로 모델링 할 수 있다.
혼합 모델이  K개의 군집(cluster)을 가진다고 가정할 때, 어떤 이미지가 군집  i에 속해 있을 확률을  \mathbf {\pi _{i}} ,i\in \{1,...,K\},\sum _{i=1}^{K}\pi _{i}=1이라 하자.  \mathbf {\pi _{i}} 는 혼합 계수(mixing coefficient)라 불린다.
이 모델은 어떤 이미지가 특정 군집에 속할 확률변수와 그 군집에서의 픽셀 분포 변수를 모수로 갖는다. 즉,  \theta =(\mathbf {\mu } ,\mathbf {\pi } )이고,
\mathbf {\mu } :=(\mathbf {\mu _{1}} \;\mathbf {\mu _{2}} \;...\;\mathbf {\mu _{K}} )=\left({\begin{array}{cccc}\mu _{1,1}&\mu _{2,1}&...&\mu _{K,1}\\\mu _{1,2}&\mu _{2,2}&...&\mu _{K,2}\\\vdots &\vdots &\ddots &\vdots \\\mu _{1,D}&\mu _{2,D}&...&\mu _{K,D}\\\end{array}}\right),\mathbf {\pi } :=(\pi _{1},...,\pi _{K})^{T}이다.
하나의 트레이닝 이미지(training image)  \mathbf {x} 에 관한 가능도 함수는 다음과 같다.
{\begin{aligned}\,{\text{Pr}}(\mathbf {x} |\theta )=\,{\text{Pr}}(\mathbf {x} |\mathbf {\mu } ,\mathbf {\pi } )=\sum _{k=1}^{K}\pi _{k}\,{\text{Pr}}(\mathbf {x} |\mathbf {\mu _{k}} )\end{aligned}}
이 때  \mathbf {x} 가 군집  k에 의해 생성되었을 확률은 다음과 같다.
{\begin{aligned}\,{\text{Pr}}(\mathbf {x} |\mathbf {\mu _{k}} )=\prod _{i=1}^{D}\mu _{k,i}^{x_{i}}(1-\mu _{k,i})^{1-x_{i}}.\end{aligned}}
K-차원 잠재변수  \mathbf {z_{i}} ,i\in \{1,...,N\}을 정의함으로써 주어진 이미지가 어떤 군집에 속할 확률을 모델링 할 수 있다.  \mathbf {z_{i}} 가  1-of- K 표기법으로 나타내어졌다고 하자. 즉,
\mathbf {z_{i}} :=(z_{i,1},...,z_{i,K})^{T}에 대하여,  z_{i,j}\in \{0,1\},i\in \{1,...,N\},j\in \{1,...,K\}이고,  \sum _{j=1}^{K}z_{i,j}=1가 성립한다.
\mathbf {z_{i}} 의 분포가  \,{\text{Pr}}(z_{i,j}=1)=\pi _{j}로 주어져 있다고 가정하자. 그러면 다음이 성립한다.
{\begin{aligned}\,{\text{Pr}}(\mathbf {z_{n}} |\mathbf {\pi } )=\prod _{i=1}^{K}\pi _{i}^{z_{n,i}}.\end{aligned}}
또한,  \,{\text{Pr}}(\mathbf {x_{n}} |z_{n,k}=1)=\,{\text{Pr}}(\mathbf {x_{n}} |\mathbf {\mu _{k}} )라 하면,
{\begin{aligned}\,{\text{Pr}}(\mathbf {x_{n}} |\mathbf {z_{n}} ,\mathbf {\mu } ,\mathbf {\pi } )=\prod _{k=1}^{K}\,{\text{Pr}}(\mathbf {x_{n}} |\mathbf {\mu _{k}} )^{z_{n,k}}.\end{aligned}}이다.
잠재변수  \mathbf {z_{i}} 들을 포함하는 집합  \mathbf {Z} :=\{\mathbf {z_{1}} ,...,\mathbf {z_{N}} \}를 정의하고 위 수식을 사용하면,
{\begin{aligned}\,{\text{Pr}}(\mathbf {Z} |\mathbf {\pi } )=\prod _{n=1}^{N}\,{\text{Pr}}(\mathbf {z_{n}} |\mathbf {\pi } )=\prod _{n=1}^{N}\prod _{k=1}^{K}\pi _{k}^{z_{n,k}}.\end{aligned}}이 성립하고,
트레이닝 이미지의 집합  \mathbf {X} :=\{\mathbf {x_{1}} ,...,\mathbf {x_{N}} \}를 정의하면  \mathbf {Z} 에 관한  \mathbf {X} 의 조건부 확률분포를 다음과 같이 유도할 수 있다.
{\begin{aligned}\,{\text{Pr}}(\mathbf {X} |\mathbf {Z} ,\mathbf {\mu } ,\mathbf {\pi } )=\prod _{n=1}^{N}\,{\text{Pr}}(\mathbf {x_{n}} |\mathbf {z_{n}} ,\mathbf {\mu } ,\mathbf {\pi } )=\prod _{n=1}^{N}\prod _{k=1}^{K}\,{\text{Pr}}(\mathbf {x_{n}} |\mathbf {\mu _{k}} )^{z_{n,k}}=\prod _{n=1}^{N}\prod _{k=1}^{K}\left(\prod _{i=1}^{D}\mu _{k,i}^{x_{n,i}}(1-\mu _{k,i})^{1-x_{n,i}}\right)^{z_{n,k}}.\end{aligned}}
이제 위 수식들과 확률의 곱셈법칙을 이용하면 완전한 데이터 가능도(complete data likelihood)를 구할 수 있고,
{\begin{aligned}\,{\text{Pr}}(\mathbf {X} ,\mathbf {Z} |\mathbf {\mu } ,\mathbf {\pi } )=\,{\text{Pr}}(\mathbf {X} |\mathbf {Z} ,\mathbf {\mu } ,\mathbf {\pi } )\,{\text{Pr}}(\mathbf {Z} |\mathbf {\mu } ,\mathbf {\pi } )=\prod _{n=1}^{N}\prod _{k=1}^{K}\left(\pi _{k}\prod _{i=1}^{D}\mu _{k,i}^{x_{n,i}}(1-\mu _{k,i})^{1-x_{n,i}}\right)^{z_{n,k}}.\end{aligned}}
이에 로그함수를 취하면 완전한 데이터 로그가능도(complete data log-likelihood)  {\mathcal {L}}(\theta )가 유도된다.
{\begin{aligned}{\mathcal {L}}(\theta )=\ln \,{\text{Pr}}(\mathbf {X} ,\mathbf {Z} |\mathbf {\mu } ,\mathbf {\pi } )=\sum _{n=1}^{N}\sum _{k=1}^{K}z_{n,k}\left(\ln \pi _{k}+\sum _{i=1}^{D}x_{n,i}\ln \mu _{k,i}+(1-x_{n,i})\ln(1-\mu _{k,i})\right).\end{aligned}}