再論EM算法的收斂性和K-Means的收斂性


標簽(空格分隔): 機器學習


(最近被一波波的筆試+面試淹沒了,但是在有兩次面試時被問到了同一個問題:K-Means算法的收斂性。在網上查閱了很多資料,並沒有看到很清晰的解釋,所以希望可以從K-Means與EM算法的關系,以及EM算法本身的收斂性證明中找到蛛絲馬跡,下次不要再掉坑啊。。)

EM算法的收斂性

1.通過極大似然估計建立目標函數:

\(l(\theta) = \sum_{i=1}^{m}log\ p(x;\theta) = \sum_{i=1}^{m}log\sum_{z}p(x,z;\theta)\)

通過EM算法來找到似然函數的極大值,思路如下:
希望找到最好的參數\(\theta\),能夠使最大似然目標函數取最大值。但是直接計算 \(l(\theta) = \sum_{i=1}^{m}log\sum_{z}p(x,z;\theta)\)比較困難,所以我們希望能夠找到一個不帶隱變量\(z\)的函數\(\gamma(x|\theta) \leq l(x,z;\theta)\)恆成立,並用\(\gamma(x|\theta)\)逼近目標函數。
如下圖所示:
此處輸入圖片的描述

  • 在綠色線位置,找到一個\(\gamma\)函數,能夠使得該函數最接近目標函數,
  • 固定\(\gamma\)函數,找到最大值,然后更新\(\theta\),得到紅線;
  • 對於紅線位置的參數\(\theta\)
  • 固定\(\theta\),找到一個最好的函數\(\gamma\),使得該函數更接近目標函數。
    重復該過程,直到收斂到局部最大值。

2. 從Jensen不等式的角度來推導

\(Q_{i}\)\(z\)的一個分布,\(Q_{i} \geq 0\),則:

$l(\theta) = \sum_{i=1}^{m}log\sum_{z^{(i)}}p(x^{(i)},z^{(i)};\theta) \( \) = \sum_{i=1}^{m}log\sum_{z^{(i)}}Q_{i}(z^{(i)})\frac{p(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})}\( \)\geq \sum_{i=1}^{m}\sum_{z^{(i)}}Q_{i}(z^{(i)})log\frac{p(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})}$

(對於log函數的Jensen不等式)

此處輸入圖片的描述

3.使等號成立的Q

盡量使\(\geq\)取等號,相當於找到一個最逼近的下界:也就是Jensen不等式中,\(\frac{f(x_{1})+f(x_{2})}{2} \geq f(\frac{x_{1}+x_{2}}{2})\)當且僅當\(x_{1} = x_{2}\)時等號成立(很關鍵)

對於EM的目標來說:應該使得\(log\)函數的自變量恆為常數,即:
\(\frac{p(x^{(i)},z^{(i)};\theta)}{Q_{i}(z^{(i)})} = C\)
也就是分子的聯合概率與分母的z的分布應該成正比,而由於\(Q\)是z的一個分布,所以應該保證\(\sum_{z}Q_{i}(z^{(i)}) = 1\)
\(Q = \frac{p}{p對z的歸一化因子}\)

\(Q_{i}(z^{(i)}) = \frac{p(x^{(i)},z^{(i)};\theta)}{\sum_{z}p(x^{(i)},z^{(i)};\theta)}\)
\(= \frac{p(x^{(i)},z^{(i)};\theta)}{p(x^{(i)};\theta)} = p(z^{(i)}|x^{(i)};\theta)\)

4.EM算法的框架

由上面的推導,可以得出EM的框架:
此處輸入圖片的描述

回到最初的思路,尋找一個最好的\(\gamma\)函數來逼近目標函數,然后找\(\gamma\)函數的最大值來更新參數\(\theta\):

  • E-step: 根據當前的參數\(\theta\)找到一個最優的函數\(\gamma\)能夠在當前位置最好的逼近目標函數;
  • M-step: 對於當前找到的\(\gamma\)函數,求函數取最大值時的參數\(\theta\)的值。

K-Means的收斂性

通過上面的分析,我們可以知道,在EM框架下,求得的參數\(\theta\)一定是收斂的,能夠找到似然函數的最大值。那么K-Means是如何來保證收斂的呢?

目標函數

假設使用平方誤差作為目標函數:
\(J(\mu_{1},\mu_{2},...,\mu_{k}) = \frac{1}{2}\sum_{j=1}^{K}\sum_{i=1}^{N}(x_{i}-\mu_{j})^{2}\)

E-Step

固定參數\(\mu_{k}\), 將每個數據點分配到距離它本身最近的一個簇類中:

\[ \gamma_{nk} = \begin{cases} 1, & \text{if $k = argmin_{j}||x_{n}-\mu_{j}||^{2}$ } \\ 0, & \text{otherwise} \end{cases} \]

M-Step

固定數據點的分配,更新參數(中心點)\(\mu_{k}\):
\(\mu_{k} = \frac{\sum_{n}\gamma_{nk}x_{n}}{\sum_{n}\gamma_{nk}}\)

所以,答案有了吧。為啥K-means會收斂呢?目標是使損失函數最小,在E-step時,找到一個最逼近目標的函數\(\gamma\);在M-step時,固定函數\(\gamma\),更新均值\(\mu\)(找到當前函數下的最好的值)。所以一定會收斂了~


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM