項(xiàng)目地址:https://github.com/Daya-Jin/ML_for_learner/blob/master/mixture/GaussianMixture.ipynb
原博客:https://daya-jin.github.io/2019/03/15/Gaussian_Mixture_Models/
算法概述
高斯混合模型(Gaussian Mixture Models)是一種無(wú)監(jiān)督聚類模型。GMM認(rèn)為不同類別的特征密度函數(shù)是不一樣的(實(shí)際上也不一樣),GMM為每個(gè)類別下的特征分布都假設(shè)了一個(gè)服從高斯分布的概率密度函數(shù):
而數(shù)據(jù)中又可能是由多個(gè)類混合而成,所以數(shù)據(jù)中特征的概率密度函數(shù)可以使用多個(gè)高斯分布的組合來(lái)表示:
其中為類分布概率,也可看做是各高斯分布函數(shù)的權(quán)重系數(shù),也叫做混合系數(shù)(mixture coefficient),其滿足
。
Expectation-Maximization
模型的形式有了,給定一組數(shù)據(jù)罕容,我們需要得到一組參數(shù)
,使得在這組參數(shù)下觀測(cè)數(shù)據(jù)
出現(xiàn)的概率最大稿饰,即最大似然估計(jì)锦秒。對(duì)于數(shù)據(jù)中的所有樣本,其出現(xiàn)的概率(似然函數(shù))為:
對(duì)數(shù)似然函數(shù)為:
假設(shè)我們現(xiàn)在有了參數(shù)喉镰,需要計(jì)算某個(gè)樣本對(duì)應(yīng)的類簇旅择,由貝葉斯公式有:
可以看出就是一個(gè)softmax的形式。同時(shí)侣姆,有了之后生真,又可以計(jì)算出某個(gè)類別的分布概率與該類別下的統(tǒng)計(jì)量:
其中為類別
出現(xiàn)的頻率期望沉噩。
以上兩步計(jì)算實(shí)質(zhì)上對(duì)應(yīng)了期望最大化(Expectation-Maximization)算法的E步(E-step)跟M步(M-step)。
多維數(shù)據(jù)時(shí)的情況
在多維數(shù)據(jù)下柱蟀,需要為每個(gè)類生成一個(gè)多維高斯分布川蒙,表示方式與單維情況稍有不同:
訓(xùn)練
有了算法框架,怎么訓(xùn)練模型呢长已。在初始時(shí)隨機(jī)生成個(gè)高斯分布畜眨,然后不斷地迭代EM算法,直至似然函數(shù)變化不再明顯或者達(dá)到了最大迭代次數(shù)术瓮。
E-step
在給定的多維高斯分布下康聂,計(jì)算各樣本屬于各個(gè)類別的概率:
M_step
根據(jù)概率重新計(jì)算更優(yōu)的高斯參數(shù):