資源描述:
《em算法在高斯混合模型中的應(yīng)用》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在學(xué)術(shù)論文-天天文庫。
1、EM算法及其在高斯混合模型中的應(yīng)用EM算法在高斯混合模型中的應(yīng)用1.定義對于一個(gè)隨機(jī)信號生成器,假設(shè)他的模型參數(shù)為,我們能觀測到的數(shù)據(jù)輸出為X,不能觀測到的數(shù)據(jù)輸出為Y,且隨機(jī)系統(tǒng)模型結(jié)構(gòu)的概率密度函數(shù)為(1)能夠觀測到的一部分?jǐn)?shù)據(jù)輸出數(shù)據(jù),模型的另一部分輸出數(shù)據(jù)未知,模型的參數(shù)也未知。EM算法就是要求我們從觀測數(shù)據(jù)中估計(jì)出參數(shù)。2.EM算法的描述假設(shè)每一對隨機(jī)系統(tǒng)的輸出樣本對于不同的n相互獨(dú)立,這樣當(dāng),x和y都已知的情況下,概率也已知。未觀測的輸出y的概率分布也屬于待求參數(shù)。根據(jù)獨(dú)立性假設(shè)有:(2)3.EM算法的基本思路基本問題是求解下面的方程的解:(3)由于X是確定量,Y是未知的,因此即
2、使給定了,也無法求得的值,因此我們只能退一步求:(4)其中(5)表示考慮了未知數(shù)據(jù)y的所有可能的取值Y后對求平均值。最后根據(jù)log函數(shù)的單調(diào)性得到(4)的等效形式:(6)對于(6)給出的最優(yōu)化問題,考慮用下面的遞推算法解決,即:先給定一個(gè)估值并計(jì)算,然后更新得到并且有(7)(8)其中,等號在時(shí)成立,即:(9)EM算法及其在高斯混合模型中的應(yīng)用于是對的遞推算法(7)可通過進(jìn)行,步驟為:1)令k=0,先給出估值2)然后找出滿足(10)3)k更新為k+1并返回步驟2)直到收斂令(11)處理后(12)其中(13)4.EM算法與高斯混合模型在隨機(jī)系統(tǒng)模型中,假設(shè)是通道的隨機(jī)信號生成器的概率密度函數(shù)的參
3、數(shù),是選中通道的概率。記為。假設(shè)個(gè)隨機(jī)信號生成器和通道選擇隨機(jī)生成器是相互獨(dú)立的,從通道輸出的數(shù)據(jù)的概率是:(14)不考慮通信信息,輸出的概率為:(15)其中::是第個(gè)通道隨機(jī)信號生成器的參數(shù)。:參數(shù)集合。觀測數(shù)據(jù)為一批隨機(jī)產(chǎn)生的輸出信號,并且每個(gè)輸出都是相互獨(dú)立的,而每個(gè)輸出來自哪個(gè)通道不可測。于是系統(tǒng)模型參數(shù)估計(jì)問題就變?yōu)橥ㄟ^有限的輸出樣本估計(jì)個(gè)通道參數(shù).應(yīng)用(12)求解,其中可以簡化為:(16)其中:EM算法及其在高斯混合模型中的應(yīng)用這樣我們把和分別放在兩項(xiàng)里面,他們不相關(guān),可以獨(dú)立考慮。在中應(yīng)用約束條件:用拉格朗日乘子優(yōu)化得到:上式的含義是,選中號通道的概率估計(jì)是每個(gè)觀測數(shù)據(jù)來自于通
4、道的條件概率(根據(jù)上一次估值估算)的平均。其中的通過下式得出。中的的優(yōu)化取決于分布函數(shù)的類型,對于為高斯分布時(shí),其中是分布的均值,是方差。再經(jīng)過推導(dǎo),有:①,②③通道參數(shù)得更新可以看作是對的加權(quán),加權(quán)系數(shù)可以看成是根據(jù)上一次的參數(shù)估計(jì)算出來得率屬于通道的概率。最后,上面的EM算法可能收斂到局部極大點(diǎn),因此需要選擇多個(gè)參數(shù)的初始值進(jìn)行迭代計(jì)算,并選擇使得最大的解,最大的解可由下式算出:EM算法及其在高斯混合模型中的應(yīng)用5.EM算法在matlab中的實(shí)現(xiàn)利用上面推導(dǎo)出的公式①②③,我們以二個(gè)一維的高斯分布(,)來驗(yàn)證EM算法的性能,首先用二個(gè)一維的高斯分布來建立一個(gè)高斯混合模型。假設(shè):,其中與為
5、混合系數(shù),且有,我們要用EM算法估計(jì)混合系數(shù)和各一維高斯分布的均值和方差。并將利用EM算法估計(jì)出的值與真實(shí)值做比較,就可以得到該算法的性能。首先我們?nèi)〉恼鎸?shí)值為(0.4,0.6,1,2,0.25,0.36)這樣我們得到一個(gè)混合高斯分布,他的密度函數(shù)為,然后產(chǎn)生1000個(gè)服從的分布的觀測樣本點(diǎn)。接下來要做的就是對這1000個(gè)樣本點(diǎn)用EM算法進(jìn)行處理,來估計(jì)出一組的值。在使用EM算法時(shí),要首先給設(shè)定一組初值這里假設(shè)初值為=0.3,=0.7,0.8,1.8,0.2,0.25Matlab具體程序如下:Y=zeros(1,10000);fori=1:10000ifrand(1)>0.3Y(i)=nor
6、mrnd(2,sqrt(0.36),1,1);elseY(i)=normrnd(1,sqrt(0.25),1,1);endend%高斯混合模型A=[0.30.7];%設(shè)置參數(shù)的初值M=[0.81.8];%設(shè)置均值的初值S=[0.20.25];%設(shè)置方差的初值forn=1:1000forj=1:2a3=0;a4=0;a5=0;fork=1:10000EM算法及其在高斯混合模型中的應(yīng)用a1=0;fort=1:2a1=A(t)*1/sqrt(2*pi*S(t))*exp(-(Y(k)-M(t))^2/(2*S(t)))+a1;endf=A(j)*1/sqrt(2*pi*S(j))*exp(-(Y(
7、k)-M(j))^2/(2*S(j)));a2=f/a1;a3=a2+a3;%a3對應(yīng)公式a4=a2*Y(k)+a4;%a4對應(yīng)公式a5=a2*(Y(k)-M(j))^2+a5;%a5對應(yīng)公式endA(j)=a3/10000;%循環(huán)更新系數(shù)值M(j)=a4/a3;%循環(huán)更新均值值S(j)=a5/a3;%循環(huán)更新方差值endend運(yùn)行程序,查看變量A,M,S的值,與真實(shí)值比較一下,就可以得到用EM算法估計(jì)的高斯