學(xué)號(hào):20021110074? ? ?電院? ? 姓名:梁雪玲
轉(zhuǎn)載自:https://blog.csdn.net/weixin_38206214/article/details/81064625?utm_medium=distribute.pc_relevant_download.none-task-blog-baidujs-2.nonecase&depth_1-utm_source=distribute.pc_relevant_download.none-task-blog-baidujs-2.nonecase
【嵌牛導(dǎo)讀】:GMM與EM算法的學(xué)習(xí)與推導(dǎo)催享。
【嵌牛鼻子】:GMM? ? EM??
【嵌牛提問(wèn)】:GMM是什么漆弄?EM算法是什么?二者之間的關(guān)系?算法的推導(dǎo)蜗细?如何深入學(xué)習(xí)关贵?
【嵌牛正文】:
在深度學(xué)習(xí)的路上诱告,從頭開(kāi)始了解一下各項(xiàng)技術(shù)扮匠。本人是DL小白,連續(xù)記錄我自己看的一些東西锋喜,大家可以互相交流些己。
本文參考:
http://www.ituring.com.cn/article/497545(GMM)
https://blog.csdn.net/xmu_jupiter/article/details/50889023(GMM)
http://www.cnblogs.com/wjy-lulu/p/7010258.html(EM算法)
https://blog.csdn.net/zouxy09/article/details/8537620(EM算法)
一、前言
????高斯混合模型(Gaussian Mixture Model)簡(jiǎn)稱GMM跑芳,是一種業(yè)界廣泛使用的聚類(lèi)算法轴总。它是多個(gè)高斯分布函數(shù)的線性組合,理論上GMM可以擬合出任意類(lèi)型的分布博个,通常用于解決同一集合下的數(shù)據(jù)包含多種不同的分布的情況怀樟。高斯混合模型使用了期望最大(Expectation Maximization, 簡(jiǎn)稱EM)算法進(jìn)行訓(xùn)練盆佣,故此我們?cè)诹私釭MM之后往堡,也需要了解如何通過(guò)EM算法訓(xùn)練(求解)GMM。
二共耍、高斯混合模型(GMM)
? ? 在了解高斯混合模型之前虑灰,我們先了解一下這種模型的具體參數(shù)模型-高斯分布。高斯分布又稱正態(tài)分布痹兜,是一種在自然界中大量存在的穆咐,最為常見(jiàn)的分布形式。
????如上圖字旭,這是一個(gè)關(guān)于身高的生態(tài)分布曲線对湃,關(guān)于175-180對(duì)稱,中間高兩邊低遗淳,相信大家在高中已經(jīng)很了解了拍柒,這里就不再闡述。
? ? 現(xiàn)在屈暗,我們引用《統(tǒng)計(jì)學(xué)習(xí)方法》-李航 書(shū)中的定義拆讯,如下圖:
????根據(jù)定義脂男,我們可以理解為,GMM是多個(gè)高斯分布的加權(quán)和种呐,并且權(quán)重α之和等于1宰翅。這里不難理解,因?yàn)镚MM最終反映出的是一個(gè)概率陕贮,而整個(gè)模型的概率之和為1堕油,所以權(quán)重之和即為1潘飘。高斯混合模型實(shí)則不難理解肮之,接下來(lái)我們介紹GMM的訓(xùn)練(求解)方法。
PS.從數(shù)學(xué)角度看卜录,對(duì)于一個(gè)概率模型的求解戈擒,即為求其最大值。從深度學(xué)習(xí)角度看艰毒,我們希望降低這個(gè)概率模型的損失函數(shù)筐高,也就是希望訓(xùn)練模型,獲得最大值丑瞧。訓(xùn)練和求解是不同專業(yè)柑土,但相同目標(biāo)的術(shù)語(yǔ)。
三绊汹、最大似然估計(jì)
? ? ?想要了解EM算法稽屏,我們首先需要了解最大似然估計(jì)這個(gè)概念。我們通過(guò)一個(gè)簡(jiǎn)單的例子來(lái)解釋一下西乖。
? ? 假設(shè)狐榔,我們需要調(diào)查學(xué)校男女生的身高分布。我們用抽樣的思想获雕,在校園里隨機(jī)抽取了100男生和100女生薄腻,共計(jì)200個(gè)人(身高樣本數(shù)據(jù))。我們假設(shè)整個(gè)學(xué)校的身高分布服從于高斯分布届案。但是這個(gè)高斯分布的均值u和方差?2我們不知道庵楷,這兩個(gè)參數(shù)就是我們需要估計(jì)的值。記作θ=[u,??]T楣颠。
? ? 由于每個(gè)樣本都是獨(dú)立地從p(x|θ)中抽取的尽纽,并且所有的樣本都服從于同一個(gè)高斯分布p(x|θ)。那么我們從整個(gè)學(xué)校中球碉,那么我抽到男生A(的身高)的概率是p(xA|θ)蜓斧,抽到男生B的概率是p(xB|θ)。而恰好抽取出這100個(gè)男生的概率睁冬,就是每個(gè)男生的概率乘積挎春。用下式表示:
? ? 這個(gè)概率反映了看疙,在概率密度函數(shù)的參數(shù)是θ時(shí),得到X這組樣本的概率直奋。在公式中能庆,x已知,而θ是未知脚线,所以它是θ的函數(shù)搁胆。這個(gè)函數(shù)放映的是在不同的參數(shù)θ取值下,取得當(dāng)前這個(gè)樣本集的可能性邮绿,因此稱為參數(shù)θ相對(duì)于樣本集X的似然函數(shù)(likehood function)渠旁。記為L(zhǎng)(θ)。
? ? 我們先穿插一個(gè)小例子船逮,來(lái)闡述似然的概念顾腊。
某位同學(xué)與一位獵人一起外出打獵,一只野兔從前方竄過(guò)挖胃。只聽(tīng)一聲槍響杂靶,野兔應(yīng)聲到下,如果要你推測(cè)酱鸭,這一發(fā)命中的子彈是誰(shuí)打的吗垮?你就會(huì)想,只發(fā)一槍便打中凹髓,由于獵人命中的概率一般大于這位同學(xué)命中的概率烁登,看來(lái)這一槍是獵人射中的。
????? 這個(gè)例子所作的推斷就體現(xiàn)了極大似然法的基本思想扁誓,我們并不知道具體是誰(shuí)打的兔子防泵,但是我們可以估計(jì)到一個(gè)看似正確的參數(shù)』雀遥回到男生身高的例子中捷泞。在整個(gè)學(xué)校中我們一次抽到這100個(gè)男生(樣本),而不是其他的人寿谴,那么我們可以認(rèn)為這100個(gè)男生(樣本)出現(xiàn)的概率最大锁右,用上面的似然函數(shù)L(θ)來(lái)表示。
? ? 所以讶泰,我們就只需要找到一個(gè)參數(shù)θ咏瑟,其對(duì)應(yīng)的似然函數(shù)L(θ)最大,也就是說(shuō)抽到這100個(gè)男生(的身高)概率最大痪署。這個(gè)叫做θ的最大似然估計(jì)量码泞,記為:
因?yàn)長(zhǎng)(θ)是一個(gè)連乘函數(shù),我們?yōu)榱吮阌诜治隼欠福梢远x對(duì)數(shù)似然函數(shù)余寥,運(yùn)用對(duì)數(shù)的運(yùn)算規(guī)則领铐,把連乘轉(zhuǎn)變?yōu)檫B加:
PS.這種數(shù)學(xué)方法在MFCC中我們?cè)?jīng)用過(guò),可以回溯一下上一篇文章宋舷。
? ? 此時(shí)绪撵,我們要求θ,只需要使θ的似然函數(shù)L(θ)極大化祝蝠,然后極大值對(duì)應(yīng)的θ就是我們的估計(jì)音诈。在數(shù)學(xué)中求一個(gè)函數(shù)的最值問(wèn)題,即為求導(dǎo)绎狭,使導(dǎo)數(shù)為0细溅,解方程式即可(前提是函數(shù)L(θ)連續(xù)可微)。在深度學(xué)習(xí)中坟岔,θ是包含多個(gè)參數(shù)的向量谒兄,運(yùn)用高等數(shù)學(xué)中的求偏導(dǎo),固定其中一個(gè)變量的思想社付,即可求出極致點(diǎn),解方程邻耕。
????最大似然估計(jì)鸥咖,只是一種概率論在統(tǒng)計(jì)學(xué)的應(yīng)用,它是參數(shù)估計(jì)的方法之一兄世。說(shuō)的是已知某個(gè)隨機(jī)樣本滿足某種概率分布啼辣,但是其中具體的參數(shù)不清楚,參數(shù)估計(jì)就是通過(guò)若干次試驗(yàn)御滩,觀察其結(jié)果鸥拧,利用結(jié)果推出參數(shù)的大概值。最大似然估計(jì)是建立在這樣的思想上:已知某個(gè)參數(shù)能使這個(gè)樣本出現(xiàn)的概率最大削解,我們當(dāng)然不會(huì)再去選擇其他小概率的樣本富弦,所以干脆就把這個(gè)參數(shù)作為估計(jì)的真實(shí)值。
????求最大似然函數(shù)估計(jì)值的一般步驟:
(1)寫(xiě)出似然函數(shù)氛驮;
(2)對(duì)似然函數(shù)取對(duì)數(shù)腕柜,并整理;(化乘為加)
(3)求導(dǎo)數(shù)矫废,令導(dǎo)數(shù)為0盏缤,得到似然方程;
(4)解似然方程蓖扑,得到的參數(shù)即為所求唉铜。
四、EM算法
? ? 期望最大(Expectation Maximization律杠, 簡(jiǎn)稱EM)算法潭流,稱為機(jī)器學(xué)習(xí)十大算法之一柿赊。它是一種從不完全數(shù)據(jù)或有數(shù)據(jù)丟失的數(shù)據(jù)集(存在隱含變量)中求解概率模型參數(shù)的最大似然估計(jì)方法。
? ? 現(xiàn)在幻枉,我們重新回到男女生身高分布的例子碰声。我們通過(guò)抽取100個(gè)男生身高,并假設(shè)身高分布服從于高斯分布熬甫,我們通過(guò)最大化其似然函數(shù)胰挑,可以求的高斯分布的參數(shù)θ=[u,??]T了,對(duì)女生同理椿肩。但是瞻颂,假如這200人,我們只能統(tǒng)計(jì)到其身高數(shù)據(jù)郑象,但是沒(méi)有男女信息(其實(shí)就是面對(duì)200個(gè)樣本贡这,抽取得到的每個(gè)樣本都不知道是從哪個(gè)分布抽取的,這對(duì)于深度學(xué)習(xí)的樣本分類(lèi)很常見(jiàn))厂榛。這個(gè)時(shí)候盖矫,我們需要對(duì)樣本進(jìn)行兩個(gè)東西的猜測(cè)或者估計(jì)了。
? ??? EM算法就可以解決這個(gè)問(wèn)題击奶。假設(shè)我們想估計(jì)知道A和B兩個(gè)參數(shù)辈双,在開(kāi)始狀態(tài)下二者都是未知的,但如果知道了A的信息就可以得到B的信息柜砾,反過(guò)來(lái)知道了B也就得到了A湃望。可以考慮首先賦予A某種初值痰驱,以此得到B的估計(jì)值证芭,然后從B的當(dāng)前值出發(fā),重新估計(jì)A的取值担映,這個(gè)過(guò)程一直持續(xù)到收斂為止废士。
? ? 在男女生身高分布的例子中,我們運(yùn)用EM算法的思想另萤。首先隨便猜一下男生的高斯分布參數(shù):均值和方差湃密。假設(shè)均值是1.7米,方差是0.1米四敞,然后計(jì)算出每個(gè)人更可能屬于第一個(gè)還是第二個(gè)正態(tài)分布中泛源。這是第一步,Expectation忿危。在分開(kāi)了兩類(lèi)之后达箍,我們可以通過(guò)之前用的最大似然,通過(guò)這兩部分铺厨,重新估算第一個(gè)和第二個(gè)分布的高斯分布參數(shù):均值和方差缎玫。這是第二步硬纤,Maximization。然后更新這兩個(gè)分布的參數(shù)赃磨。這是可以根據(jù)更新的分布筝家,重新調(diào)整E(Expectation)步驟...如此往復(fù),迭代到參數(shù)基本不再發(fā)生變化邻辉。
? ? 這里原作者提到了一個(gè)數(shù)學(xué)思維溪王,很受啟發(fā),轉(zhuǎn)給大家看一眼(比較雞湯和啰嗦值骇,大家可以跳過(guò))
這時(shí)候你就不服了莹菱,說(shuō)你老迭代迭代的,你咋知道新的參數(shù)的估計(jì)就比原來(lái)的好爸ù瘛道伟?為什么這種方法行得通呢?有沒(méi)有失效的時(shí)候呢使碾?什么時(shí)候失效呢蜜徽?用到這個(gè)方法需要注意什么問(wèn)題呢?呵呵部逮,一下子拋出那么多問(wèn)題娜汁,搞得我適應(yīng)不過(guò)來(lái)了,不過(guò)這證明了你有很好的搞研究的潛質(zhì)啊兄朋。呵呵,其實(shí)這些問(wèn)題就是數(shù)學(xué)家需要解決的問(wèn)題怜械。在數(shù)學(xué)上是可以穩(wěn)當(dāng)?shù)淖C明的或者得出結(jié)論的颅和。那咱們用數(shù)學(xué)來(lái)把上面的問(wèn)題重新描述下。(在這里可以知道缕允,不管多么復(fù)雜或者簡(jiǎn)單的物理世界的思想峡扩,都需要通過(guò)數(shù)學(xué)工具進(jìn)行建模抽象才得以使用并發(fā)揮其強(qiáng)大的作用,而且障本,這里面蘊(yùn)含的數(shù)學(xué)往往能帶給你更多想象不到的東西教届,這就是數(shù)學(xué)的精妙所在啊)
五驾霜、EM算法的簡(jiǎn)單理解方式
? ? 在提出EM算法的推導(dǎo)過(guò)程之前案训,先提出中形象的理解方式,便于大家理解整個(gè)EM算法粪糙,如果只是實(shí)現(xiàn)深度學(xué)習(xí)模型强霎,個(gè)人認(rèn)為可以不需要去看后面的算法推導(dǎo),看這個(gè)就足夠了蓉冈。
? ? 坐標(biāo)上升法(Coordinate ascent):
? ? 圖中的直線式迭代優(yōu)化的途徑城舞,可以看到每一步都會(huì)向最優(yōu)值靠近轩触,而每一步前進(jìn)的路線都平行于坐標(biāo)軸。那么我們可以將其理解為兩個(gè)未知數(shù)的方程求解家夺。倆個(gè)未知數(shù)求解的方式脱柱,其實(shí)是固定其中一個(gè)未知數(shù),求另一個(gè)未知數(shù)的偏導(dǎo)數(shù)拉馋,之后再反過(guò)來(lái)固定后者榨为,求前者的偏導(dǎo)數(shù)。EM算法的思想椅邓,其實(shí)也是如此柠逞。使用坐標(biāo)上升法,一次固定一個(gè)變量景馁,對(duì)另外的求極值板壮,最后逐步逼近極值。對(duì)應(yīng)到EM上合住,E步:固定θ绰精,優(yōu)化Q;M步:固定Q透葛,優(yōu)化θ笨使;交替將極值推向最大。?
六僚害、EM算法推導(dǎo)
? ? 現(xiàn)在很多深度學(xué)習(xí)框架可以簡(jiǎn)單調(diào)用EM算法硫椰,實(shí)際上這一段大家可以不用看,直接跳過(guò)看最后的總結(jié)即可萨蚕。但是如果你希望了解一些內(nèi)部的邏輯靶草,可以看一下這一段推導(dǎo)過(guò)程。
? ? 假設(shè)我們有一個(gè)樣本集{x(1),…,x(m)}岳遥,包含m個(gè)獨(dú)立的樣本(右上角為樣本序號(hào))奕翔。但每個(gè)樣本i對(duì)應(yīng)的類(lèi)別z(i)是未知的(相當(dāng)于聚類(lèi)),也即隱含變量浩蓉。故我們需要估計(jì)概率模型p(x,z)的參數(shù)θ(在文中可理解為高斯分布)派继,但是由于里面包含隱含變量z,所以很難用最大似然求解捻艳,但如果z知道了驾窟,那我們就很容易求解了。
首先放出似然函數(shù)公式讯泣,我們接下來(lái)對(duì)公式進(jìn)行化簡(jiǎn):
? ? 對(duì)于參數(shù)估計(jì)纫普,我們本質(zhì)上的思路是想獲得一個(gè)使似然函數(shù)最大化的參數(shù)θ,現(xiàn)在多出一個(gè)未知變量z,公式(1)昨稼。那么我們的目標(biāo)就轉(zhuǎn)變?yōu)椋赫业竭m合的θ和z讓L(θ)最大节视。
? ? 對(duì)于多個(gè)未知數(shù)的方程分別對(duì)未知的θ和z分別求偏導(dǎo),再設(shè)偏導(dǎo)為0假栓,即可解方程寻行。
? ? 因?yàn)?1)式是和的對(duì)數(shù),當(dāng)我們?cè)谇髮?dǎo)的時(shí)候匾荆,形式會(huì)很復(fù)雜拌蜘。
????這里我們需要做一個(gè)數(shù)學(xué)轉(zhuǎn)化。我們對(duì)和的部分牙丽,乘以一個(gè)相等的函數(shù)简卧,得到(2)式,利用Jensen不等式的性質(zhì)烤芦,將(2)式轉(zhuǎn)化為(3)式举娩。(Jensen不等式數(shù)學(xué)推到比較復(fù)雜,知道結(jié)果即可)
Note:
Jensen不等式表述如下:
如果f是凸函數(shù)构罗,X是隨機(jī)變量铜涉,那么:E[f(X)]>=f(E[X])
特別地,如果f是嚴(yán)格凸函數(shù)遂唧,當(dāng)且僅當(dāng)X是常量時(shí)芙代,上式取等號(hào)。參考鏈接: https://blog.csdn.net/zouxy09/article/details/8537620
? ? 至此盖彭,上面的式(2)和式(3)不等式可以寫(xiě)成:似然函數(shù)L(θ)>=J(z,Q)纹烹,那么我們可以通過(guò)不斷的最大化這個(gè)下界J(z,Q)函數(shù)苔可,來(lái)使得L(θ)不斷提高例嘱,最終達(dá)到它的最大值。
????現(xiàn)在颖变,我們推導(dǎo)出了在固定參數(shù)θ后掌实,使下界拉升的Q(z)的計(jì)算公式就是后驗(yàn)概率,解決了Q(z)如何選擇的問(wèn)題邦马。這一步就是E步贱鼻,建立L(θ)的下界。接下來(lái)的M步滋将,就是在給定Q(z)后邻悬,調(diào)整θ,去極大化L(θ)的下界J(在固定Q(z)后随闽,下界還可以調(diào)整的更大)父丰。
EM算法是一種從不完全數(shù)據(jù)或有數(shù)據(jù)丟失的數(shù)據(jù)集(存在隱藏變量)中,求解概率模型參數(shù)的最大似然估計(jì)方法。
EM的算法流程:
1>初始化分布參數(shù)θ蛾扇;
重復(fù)2>, 3>直到收斂:
? ? 2>E步驟(Expectation):根據(jù)參數(shù)初始值或上一次迭代的模型參數(shù)來(lái)計(jì)算出隱性變量的后驗(yàn)概率攘烛,其實(shí)就是隱性變量的期望。作為隱藏變量的現(xiàn)估計(jì)值:
????3>M步驟(Maximization):將似然函數(shù)最大化以獲得新的參數(shù)值:
這個(gè)不斷迭代的過(guò)程镀首,最終會(huì)讓E坟漱、M步驟收斂,得到使似然函數(shù)L(θ)最大化的參數(shù)θ更哄。
在L(θ)的收斂證明: