K-Means算法的收斂性和如何快速收斂超大的KMeans?


 

 

  

  不多說,直接上干貨!

 

  面試很容易被問的:K-Means算法的收斂性

  在網上查閱了很多資料,並沒有看到很清晰的解釋,所以希望可以從K-Means與EM算法的關系,以及EM算法本身的收斂性證明中找到蛛絲馬跡,下次不要再掉坑啊。

 

 

 

 

EM算法的收斂性

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

 

 

通過EM算法來找到似然函數的極大值,思路如下:
希望找到最好的參數θ,能夠使最大似然目標函數取最大值。但是直接計算 比較困難,所以我們希望能夠找到一個不帶隱變量z的函數恆成立,並用

逼近目標函數。


如下圖所示:
此處輸入圖片的描述

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

     

     

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

zz的一個分布,,則:

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

此處輸入圖片的描述

 

 

 

3.使等號成立的Q

  盡量使≥取等號,相當於找到一個最逼近的下界:也就是Jensen不等式中,當且僅當x1=x2x1=x2時等號成立(很關鍵)

對於EM的目標來說:應該使得loglog函數的自變量恆為常數,即:

也就是分子的聯合概率與分母的z的分布應該成正比,而由於Q是z的一個分布,所以應該保證

 

 

 

4.EM算法的框架

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

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

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

 

 

 

 

 

 

K-Means的收斂性

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

目標函數

  假設使用平方誤差作為目標函數:

 

E-Step

  固定參數μkμk, 將每個數據點分配到距離它本身最近的一個簇類中:

 

 

M-Step

  固定數據點的分配,更新參數(中心點)μkμk:

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

 

 

 

 

 

 

 

 

如何快速收斂超大的KMeans?

  最近,被一個牛人問道了這個問題:超億個節點,進行KMeans的聚類,每次迭代都要進行K×億的運算,如何能讓這個迭代快速的收斂?

  當場暈倒,從來沒有考慮過這些問題,基礎的數據挖據算法不考慮超大級別的運算問題。

 

  回來想了想,再看看Mahout的KMeans的實現方法,覺得可以這么解決.

  1. 第一次迭代的時候,正常進行,選取K個初始點,然后計算所有節點到這些K的距離,再分到不同的組,計算新的質心;

  2. 后續迭代的時候,在第m次開始,每次不再計算每個點到所有K個質心的距離,僅僅計算上一次迭代中離這個節點最近的某幾個(2到3)個質心的距離,決定分組的歸屬。對於其他的質心,因為距離實在太遠,所以歸屬到那些組的可能性會非常非常小,所以不用再重復計算距離了。

  3. 最后,還是用正常的迭代終止方法,結束迭代。

 

這個方法中,有幾個地方需要仔細定義的。

  第一,如何選擇m次? 過早的話,后面的那個歸屬到遠距離組的可能性會增加;過晚,則收斂的速度不夠。

  第二,如何選擇最后要比較的那幾個質心點數?數量過多則收斂的速度提高不明顯,過少則還是有可能出現分組錯誤。

 

這兩個問題應該都沒有標准答案,就如同K值的選取。我自己思考的基本思路可以是:

  1. 從第三次開始就開始比較每次每個質心的偏移量,亦即對於收斂的結束的標准可以划分兩個閾值,接近優化的閾值(比如偏移范圍在20%)和結束收斂的閾值(比如偏移范圍在10%以內)。m次的選擇可以從達到接近優化的閾值開始。

  2. 選擇比較的質心點數可以設定一個閾值,比較一個點到K個質心的距離,排序這些距離,或者固定選取一個數值,比如3個最近的點,或者按最近的20%那些質心點。

  這些就是基本的思路。歡迎大家討論。


免責聲明!

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



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