混合高斯分佈與 EM 算法

極大似然估計在混合高斯分佈中遇到的困難

在通常的狀況下,對於所獲得的樣本集,\(X=\left\{x_{1}, \dots, x_{N}\right\}\),咱們的目標是最大化似然函數,經過最大化似然函數來獲取參數的值。這是似然函數每每取對數表示就是:
\[ \begin{aligned} L(\theta | X) &=\log \left(\prod_{i=1}^{N} p\left(x_{i} | \theta\right)\right) \\ &=\sum_{i=1}^{N} \log p\left(x_{i} | \theta\right) \end{aligned} \]
這個過程的參數估計能夠描述成:
\[ \hat{\theta}=\arg \max _{\theta} L(\theta | X) \]
這個結果是能夠直接計算出來的,那麼引入混合高斯分佈會是什麼樣呢?算法

混合高斯分佈:app

簡單的說就是,非混合的狀況下,咱們的數據集知足高斯分佈,這樣用極大似然就直接算出高斯分佈中的參數就能夠了。那麼混合的狀況下就是,原數據集是由多個知足高斯分佈的數據集線性組合起來,這個時候咱們理解爲:有 \(k\) 個知足不一樣參數的高斯分佈的數據集,而且 \(\sum_{j=1}^{k} \phi_{j}=1\)。其中 $\phi $ 表示權重那麼咱們新的數據集就能夠表示成 \(\sum_{j=1}^{k} \phi_{j} p_{j}\left({x} | \theta_{j}\right)\) 。那麼這時參數就有兩個,分別是 $ \phi $ 和 $ \theta$ 。如今咱們假設有\(\phi_{j} = p\left(z^{(i)}=j\right)\)函數

這個時候,根據條件機率的計算公式,咱們似然函數能夠寫成下面這樣的式子:
\[ \begin{aligned} \ell(\phi, \mu, \Sigma) &=\sum_{i=1}^{m} \log p\left(x^{(i)} ; \phi, \mu, \Sigma\right) \\ &=\sum_{i=1}^{m} \log \sum_{z^{(i)}=1}^{k} p\left(x^{(i)} | z^{(i)} ; \mu, \Sigma\right) p\left(z^{(i)} ; \phi\right) \end{aligned} \]
上式中的 \(x^{(i)}|z^{(i)}\) 能夠理解爲 $x^{(i)} $ 來自第 $ j$ 個數據集的機率。顯然這個 \(p\left(x^{(i)} | z^{(i)} ; \mu, \Sigma\right)\) 表示的是第 \(z^{(i)}\) 個高斯分佈的函數。因此 $z^{(i)} $ 是個隱變量。這個式子我感受本身說的不夠清楚,這個裏的 $z^{(i)} $ 的選擇咱們選擇的是 \(\{1, \ldots, k\}\) 中的某一個,其實 $z^{(i)} $ 能夠用向量來表示,表示成:
\[ \left[ \begin{matrix} 0& 0& 1& 0& ……& 0& 0& 0\\ \end{matrix} \right] \]
這樣說明這個式子更直觀,也更加細節,這裏推薦一篇博客 傳送門 ,spa

機率論中的 Jensen 不等式

對於 Jensen 不等式,一般狀況下是這樣的:對於 \(f^{\prime \prime}(x) \geq 0\) 也就是對於凸函數而言,這個能夠用中值定理來證實,同時這個公式還能夠用於證實多項式的均值不等式與調和不等式,這裏就不給出證實了,在機率的條件下就是:實際上,這就是均值不等式來的啊, E 表示數學指望
\[ \mathrm{E}[f(X)] \geq f(\mathrm{E} X) \].net

EM 算法講了什麼東西

對於通常形式的,引入隱變量 \(z\) 的極大似然函數:
\[ \begin{aligned} \ell(\theta) &=\sum_{i=1}^{N} \log p(x ; \theta) \\ &=\sum_{i=1}^{N} \log \sum_{z} p(x, z ; \theta) \end{aligned} \]
如今,咱們假設對於每個 $ i $ , \(Q_{i}\) 表示 $ z $ 的分佈,那麼咱們有 \(\sum_{z} Q_{i}(z)=1, Q_{i}(z) \geq0\) 。而後咱們使用 Jensen 不等式將上面的式子進行放縮,寫成下面的這樣形式,
\[ \begin{aligned} \ell(\theta) =\sum_{i} \log p\left(x^{(i)} ; \theta\right) &=\sum_{i} \log \sum_{z^{(i)}} p\left(x^{(i)}, z^{(i)} ; \theta\right) \\ &=\sum_{i} \log \sum_{z^{(i)}} Q_{i}\left(z^{(i)}\right) \frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)} \\ & \geq \sum_{i} \sum_{z^{(i)}} Q_{i}\left(z^{(i)}\right) \log \frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)} \end{aligned} \]
這裏的 \(Q_{i}\) 應該就是 EM 算法不斷的迭代的關鍵。blog

上面的式子代表 \(\ell(\theta)\) 有一個下界,從極大似然的角度考慮,咱們就是要最大化這個下界,獲得 $ \theta $ 的取值,可是其中的 \(Q_{i}\) 是一個隱變量的分佈,咱們並不知道這個分佈是什麼樣子的。get

上面使用 Jensen 不等式關鍵的一步是:
\[ f\left(\mathrm{E}_{z^{(i)} \sim Q_{i}}\left[\frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)}\right]\right) \geq \mathrm{E}_{z^{(i)} \sim Q_{i}}\left[f\left(\frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)}\right)\right] \]
這個式子取等式的時候,對於數學指望而言,只有常數能夠知足數學指望中的 Jensen 不等式相等。這裏不作具體的證實,咱們能夠考慮從均值不等式來理解這個問題,假設這個常數是 $ c$ :
\[ \frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)}=c \]
也就是說:
\[ Q_{i}\left(z^{(i)}\right) \propto p\left(x^{(i)}, z^{(i)} ; \theta\right) \]
咱們知道:\(\sum_{z} Q_{i}\left(z^{(i)}\right)=1\) ,那麼我能夠考慮這樣的狀況:
\[ 1 = \sum{Q_i\left( z^{\left( i \right)} \right)} \propto \sum{p\left( x^{\left( i \right)},z^{\left( i \right)};\theta \right) } = \sum_{z} p\left(x^{(i)}, z ; \theta\right) \]
這樣的話,就有下面的公式:
\[ \begin{aligned} Q_{i}\left(z^{(i)}\right) &=\frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{\sum_{z} p\left(x^{(i)}, z ; \theta\right)} \\ &=\frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{p\left(x^{(i)} ; \theta\right)} \\ &=p\left(z^{(i)} | x^{(i)} ; \theta\right) \end{aligned} \]
這一步咱們稱爲 E 步驟,能夠獲得等式成立的條件, \(Q_{i}\left(z^{(i)}\right) :=p\left(z^{(i)} | x^{(i)} ; \theta\right)\) ,這個是最大化下界的條件,咱們將這個條件帶入 $\ell(\theta) $ 獲得,也就是說,這個是最大似然函數的條件之一:那麼咱們能夠用下面的步驟來計算 $ \theta$ ,
\[ \theta :=\arg \max _{\theta} \sum_{i} \sum_{z^{(i)}} Q_{i}\left(z^{(i)}\right) \log \frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)} \]
那麼這個 $ \theta$ 是否是最優的呢?接下來咱們來證實 EM 算法中一個很關鍵的問題,那就是上述的 E 步驟與 M 步驟不斷放縮與收斂,最終獲得最優的 $ \theta$ 的值。博客

因此 EM 算法的步驟能夠表示成下面這樣:數學

  1. 函數聲明 \(\operatorname{EM}\left(p_{Y, C}(y, c ; \theta), p_{C | Y}(c | y ; \theta), \theta^{(0)}\right)\)
  2. for iteration \(t \in 1,2, \ldots\) do
  3. \(Q_{i}^{(t)} \leftarrow P\left(z_i | x_i ; \theta^{(t-1)}\right) \quad(\text { E-step })\)
  4. \(\theta^{(t)} \leftarrow \operatorname{argmax}_{\theta} \mathbb{E}_{Q_{i}^{(t)}}\left[P(y, C ; \theta)\right] \quad\left(\mathrm{M}{-\mathrm{Step}}\right)\)
  5. if \(\theta^{(t)} \approx \theta^{(t-1)}\) then
  6. return $\theta^{(t)} $

EM 算法的收斂問題

這個收斂的思想是這樣的:咱們的 $ \theta $ 是直接經過極大似然函數算出的來的。那麼 EM 算法迭代的步驟就是,咱們不斷地最大化極大似然估計函數,也就是說 \(\ell\left(\theta^{(t)}\right) \leq \ell\left(\theta^{(t+1)}\right)\) ,這樣就會不斷地逼近最優解。在 EM 迭代的過程當中,咱們不斷改變是 \(Q_{i}\)it

爲了更好的說明,假設上一步咱們已經獲得了一個最優解 \(\ell\left(\theta^{(t)}\right)\) 以及 $ \theta^{(t)} $ 那麼在這一步,咱們知足下面的狀況:
\[ Q_{i}^{(t)}\left(z^{(i)}\right) :=p\left(z^{(i)} | x^{(i)} ; \theta^{(t)}\right) \ \ \ Jensen不等式條件\\ 用於計算 \ell\left(\theta^{(t+1)}\right) \]

\[ \ell\left(\theta^{(t)}\right)=\sum_{i} \sum_{z^{(i)}} Q_{i-1}^{(t)}\left(z^{(i)}\right) \log \frac{p\left(x^{(i)}, z^{(i)} ; \theta^{(t)}\right)}{Q_{i-1}^{(t)}\left(z^{(i)}\right)} \]

上面是一次最大化似然函數的條件,假設在上一次結束後咱們獲得知足如上的條件,第一個式子是,咱們在上一次結束以後咱們獲得 \(\ell\left(\theta^{(t)}\right)\) 以及最優解 $ \theta^{(t)} $ ,那麼接下來的一次 E 步驟中,就會知足上面第一個等式,

那麼咱們能夠推出下面的不等式:
\[ \begin{aligned} \ell\left(\theta^{(t+1)}\right) & \geq \sum_{i} \sum_{z^{(i)}} Q_{i}^{(t)}\left(z^{(i)}\right) \log \frac{p\left(x^{(i)}, z^{(i)} ; \theta^{(t+1)}\right)}{Q_{i}^{(t)}\left(z^{(i)}\right)} \\ & \geq \sum_{i} \sum_{z^{(i)}} Q_{i}^{(t)}\left(z^{(i)}\right) \log \frac{p\left(x^{(i)}, z^{(i)} ; \theta^{(t)}\right)}{Q_{i}^{(t)}\left(z^{(i)}\right)} \\ &=\ell\left(\theta^{(t)}\right) \end{aligned} \]
對於上面的兩個不等式作出如下解釋:

  1. 這個式子來自 Jensen 不等式,原式是這樣的:\(\ell(\theta) \geq \sum_{i} \sum_{z^{(i)}} Q_{i}\left(z^{(i)}\right) \log \frac{p\left(x^{(i)}, z^{(i)} ; \theta\right)}{Q_{i}\left(z^{(i)}\right)}\) 對任意的 $ Q_i $ 與 \(\theta\) 均成立,因此咱們進行放縮獲得第一個不等式,這個式子比較顯然,

EM 算法用於混合高斯分佈

\[ \sum_{i=1}^{m} \sum_{z^{(i)}} Q_{i}\left(z^{(i)}\right) \log \frac{p\left(x^{(i)}, z^{(i)} ; \phi, \mu, \Sigma\right)}{Q_{i}\left(z^{(i)}\right)} \\ =\sum_{i=1}^{m} \sum_{j=1}^{k} Q_{i}\left(z^{(i)}=j\right) \log \frac{p\left(x^{(i)} | z^{(i)}=j ; \mu, \Sigma\right) p\left(z^{(i)}=j ; \phi\right)}{Q_{i}\left(z^{(i)}=j\right)} \\ =\sum_{i=1}^{m} \sum_{j=1}^{k} w_{j}^{(i)} \log \frac{\frac{1}{(2 \pi)^{n / 2}\left|\Sigma_{j}\right|^{1 / 2}} \exp \left(-\frac{1}{2}\left(x^{(i)}-\mu_{j}\right)^{T} \Sigma_{j}^{-1}\left(x^{(i)}-\mu_{j}\right)\right) \cdot \phi_{j}}{w_{j}^{(i)}} \]

而後咱們用極大似然函數來將這個函數求最大值,偏導爲0,
\[ \nabla_{\mu_{l}} \sum_{i=1}^{m} \sum_{j=1}^{k} w_{j}^{(i)} \log \frac{\frac{1}{(2 \pi)^{n / 2}\left|\Sigma_{j}\right|^{1 / 2}} \exp \left(-\frac{1}{2}\left(x^{(i)}-\mu_{j}\right)^{T} \Sigma_{j}^{-1}\left(x^{(i)}-\mu_{j}\right)\right) \cdot \phi_{j}}{w_{j}^{(i)}} \\ =-\nabla_{\mu_{l}} \sum_{i=1}^{m} \sum_{j=1}^{k} w_{j}^{(i)} \frac{1}{2}\left(x^{(i)}-\mu_{j}\right)^{T} \Sigma_{j}^{-1}\left(x^{(i)}-\mu_{j}\right) \\ =\frac{1}{2} \sum_{i=1}^{m} w_{l}^{(i)} \nabla_{\mu_{l}} 2 \mu_{l}^{T} \Sigma_{l}^{-1} x^{(i)}-\mu_{l}^{T} \Sigma_{l}^{-1} \mu_{l} \\ =\sum_{i=1}^{m} w_{l}^{(i)}\left(\sum_{l}^{-1} x^{(i)}-\Sigma_{l}^{-1} \mu_{l}\right) \]
而後就能夠得出了:
\[ \mu_{l} :=\frac{\sum_{i=1}^{m} w_{l}^{(i)} x^{(i)}}{\sum_{i=1}^{m} w_{l}^{(i)}} \]

相關文章
相關標籤/搜索