激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務(wù)器之家:專注于服務(wù)器技術(shù)及軟件下載分享
分類導(dǎo)航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術(shù)|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務(wù)器之家 - 編程語言 - Java教程 - 高斯混合模型與EM算法圖文詳解

高斯混合模型與EM算法圖文詳解

2021-11-13 11:28Dominic221 Java教程

高斯模型就是用高斯概率密度函數(shù)(正態(tài)分布曲線)精確地量化事物,將一個事物分解為若干的基于高斯概率密度函數(shù)(正態(tài)分布曲線)形成的模型

一、前言 

高斯混合模型(gaussian mixture model)簡稱gmm,是一種業(yè)界廣泛使用的聚類算法。它是多個高斯分布函數(shù)的線性組合,理論上gmm可以擬合出任意類型的分布,通常用于解決同一集合下的數(shù)據(jù)包含多種不同的分布的情況。高斯混合模型使用了期望最大(expectation maximization, 簡稱em)算法進行訓練,故此我們在了解gmm之后,也需要了解如何通過em算法訓練(求解)gmm。

二、高斯混合模型(gmm) 

在了解高斯混合模型之前,我們先了解一下這種模型的具體參數(shù)模型-高斯分布。高斯分布又稱正態(tài)分布,是一種在自然界中大量存在的,最為常見的分布形式。

高斯混合模型與EM算法圖文詳解

如上圖,這是一個關(guān)于身高的生態(tài)分布曲線,關(guān)于175-180對稱,中間高兩邊低,相信大家在高中已經(jīng)很了解了,這里就不再闡述。

現(xiàn)在,我們引用《統(tǒng)計學習方法》-李航 書中的定義,如下圖:

高斯混合模型與EM算法圖文詳解

根據(jù)定義,我們可以理解為,gmm是多個高斯分布的加權(quán)和,并且權(quán)重α之和等于1。這里不難理解,因為gmm最終反映出的是一個概率,而整個模型的概率之和為1,所以權(quán)重之和即為1。高斯混合模型實則不難理解,接下來我們介紹gmm的訓練(求解)方法。

ps.從數(shù)學角度看,對于一個概率模型的求解,即為求其最大值。從深度學習角度看,我們希望降低這個概率模型的損失函數(shù),也就是希望訓練模型,獲得最大值。訓練和求解是不同專業(yè),但相同目標的術(shù)語。

三、最大似然估計 

想要了解em算法,我們首先需要了解最大似然估計這個概念。我們通過一個簡單的例子來解釋一下。

假設(shè),我們需要調(diào)查學校男女生的身高分布。我們用抽樣的思想,在校園里隨機抽取了100男生和100女生,共計200個人(身高樣本數(shù)據(jù))。我們假設(shè)整個學校的身高分布服從于高斯分布。但是這個高斯分布的均值u和方差∂2我們不知道,這兩個參數(shù)就是我們需要估計的值。記作θ=[u, ∂]t。

由于每個樣本都是獨立地從p(x|θ)中抽取的,并且所有的樣本都服從于同一個高斯分布p(x|θ)。那么我們從整個學校中,那么我抽到男生a(的身高)的概率是p(xa|θ),抽到男生b的概率是p(xb|θ)。而恰好抽取出這100個男生的概率,就是每個男生的概率乘積。用下式表示:

    高斯混合模型與EM算法圖文詳解

這個概率反映了,在概率密度函數(shù)的參數(shù)是θ時,得到x這組樣本的概率。在公式中,x已知,而θ是未知,所以它是θ的函數(shù)。這個函數(shù)放映的是在不同的參數(shù)θ取值下,取得當前這個樣本集的可能性,因此稱為參數(shù)θ相對于樣本集x的似然函數(shù)(likehood function)。記為l(θ)。

我們先穿插一個小例子,來闡述似然的概念。 

某位同學與一位獵人一起外出打獵,一只野兔從前方竄過。只聽一聲槍響,野兔應(yīng)聲到下,如果要你推測,這一發(fā)命中的子彈是誰打的?你就會想,只發(fā)一槍便打中,由于獵人命中的概率一般大于這位同學命中的概率,看來這一槍是獵人射中的。

這個例子所作的推斷就體現(xiàn)了極大似然法的基本思想,我們并不知道具體是誰打的兔子,但是我們可以估計到一個看似正確的參數(shù)。回到男生身高的例子中。在整個學校中我們一次抽到這100個男生(樣本),而不是其他的人,那么我們可以認為這100個男生(樣本)出現(xiàn)的概率最大,用上面的似然函數(shù)l(θ)來表示。

所以,我們就只需要找到一個參數(shù)θ,其對應(yīng)的似然函數(shù)l(θ)最大,也就是說抽到這100個男生(的身高)概率最大。這個叫做θ的最大似然估計量,記為:

高斯混合模型與EM算法圖文詳解

因為l(θ)是一個連乘函數(shù),我們?yōu)榱吮阌诜治觯梢远x對數(shù)似然函數(shù),運用對數(shù)的運算規(guī)則,把連乘轉(zhuǎn)變?yōu)檫B加:

高斯混合模型與EM算法圖文詳解

ps.這種數(shù)學方法在mfcc中我們曾經(jīng)用過,可以回溯一下上一篇文章。

此時,我們要求θ,只需要使θ的似然函數(shù)l(θ)極大化,然后極大值對應(yīng)的θ就是我們的估計。在數(shù)學中求一個函數(shù)的最值問題,即為求導(dǎo),使導(dǎo)數(shù)為0,解方程式即可(前提是函數(shù)l(θ)連續(xù)可微)。在深度學習中,θ是包含多個參數(shù)的向量,運用高等數(shù)學中的求偏導(dǎo),固定其中一個變量的思想,即可求出極致點,解方程。

總結(jié)而言:

最大似然估計,只是一種概率論在統(tǒng)計學的應(yīng)用,它是參數(shù)估計的方法之一。說的是已知某個隨機樣本滿足某種概率分布,但是其中具體的參數(shù)不清楚,參數(shù)估計就是通過若干次試驗,觀察其結(jié)果,利用結(jié)果推出參數(shù)的大概值。最大似然估計是建立在這樣的思想上:已知某個參數(shù)能使這個樣本出現(xiàn)的概率最大,我們當然不會再去選擇其他小概率的樣本,所以干脆就把這個參數(shù)作為估計的真實值。

求最大似然函數(shù)估計值的一般步驟:

  • 寫出似然函數(shù);
  • 對似然函數(shù)取對數(shù),并整理;(化乘為加)
  • 求導(dǎo)數(shù),令導(dǎo)數(shù)為0,得到似然方程;
  • 解似然方程,得到的參數(shù)即為所求。

四、em算法 

期望最大(expectation maximization, 簡稱em)算法,稱為機器學習十大算法之一。它是一種從不完全數(shù)據(jù)或有數(shù)據(jù)丟失的數(shù)據(jù)集(存在隱含變量)中求解概率模型參數(shù)的最大似然估計方法。

現(xiàn)在,我們重新回到男女生身高分布的例子。我們通過抽取100個男生身高,并假設(shè)身高分布服從于高斯分布,我們通過最大化其似然函數(shù),可以求的高斯分布的參數(shù)θ=[u, ∂]t了,對女生同理。但是,假如這200人,我們只能統(tǒng)計到其身高數(shù)據(jù),但是沒有男女信息(其實就是面對200個樣本,抽取得到的每個樣本都不知道是從哪個分布抽取的,這對于深度學習的樣本分類很常見)。這個時候,我們需要對樣本進行兩個東西的猜測或者估計了。

em算法就可以解決這個問題。假設(shè)我們想估計知道a和b兩個參數(shù),在開始狀態(tài)下二者都是未知的,但如果知道了a的信息就可以得到b的信息,反過來知道了b也就得到了a。可以考慮首先賦予a某種初值,以此得到b的估計值,然后從b的當前值出發(fā),重新估計a的取值,這個過程一直持續(xù)到收斂為止。

在男女生身高分布的例子中,我們運用em算法的思想。首先隨便猜一下男生的高斯分布參數(shù):均值和方差。假設(shè)均值是1.7米,方差是0.1米,然后計算出每個人更可能屬于第一個還是第二個正態(tài)分布中。這是第一步,expectation。在分開了兩類之后,我們可以通過之前用的最大似然,通過這兩部分,重新估算第一個和第二個分布的高斯分布參數(shù):均值和方差。這是第二步,maximization。然后更新這兩個分布的參數(shù)。這是可以根據(jù)更新的分布,重新調(diào)整e(expectation)步驟...如此往復(fù),迭代到參數(shù)基本不再發(fā)生變化。

這里原作者提到了一個數(shù)學思維,很受啟發(fā),轉(zhuǎn)給大家看一眼(比較雞湯和啰嗦,大家可以跳過)

這時候你就不服了,說你老迭代迭代的,你咋知道新的參數(shù)的估計就比原來的好啊?為什么這種方法行得通呢?有沒有失效的時候呢?什么時候失效呢?用到這個方法需要注意什么問題呢?呵呵,一下子拋出那么多問題,搞得我適應(yīng)不過來了,不過這證明了你有很好的搞研究的潛質(zhì)啊。呵呵,其實這些問題就是數(shù)學家需要解決的問題。在數(shù)學上是可以穩(wěn)當?shù)淖C明的或者得出結(jié)論的。那咱們用數(shù)學來把上面的問題重新描述下。(在這里可以知道,不管多么復(fù)雜或者簡單的物理世界的思想,都需要通過數(shù)學工具進行建模抽象才得以使用并發(fā)揮其強大的作用,而且,這里面蘊含的數(shù)學往往能帶給你更多想象不到的東西,這就是數(shù)學的精妙所在啊)

五、em算法的簡單理解方式 

在提出em算法的推導(dǎo)過程之前,先提出中形象的理解方式,便于大家理解整個em算法,如果只是實現(xiàn)深度學習模型,個人認為可以不需要去看后面的算法推導(dǎo),看這個就足夠了。

坐標上升法(coordinate ascent):

高斯混合模型與EM算法圖文詳解

圖中的直線式迭代優(yōu)化的途徑,可以看到每一步都會向最優(yōu)值靠近,而每一步前進的路線都平行于坐標軸。那么我們可以將其理解為兩個未知數(shù)的方程求解。倆個未知數(shù)求解的方式,其實是固定其中一個未知數(shù),求另一個未知數(shù)的偏導(dǎo)數(shù),之后再反過來固定后者,求前者的偏導(dǎo)數(shù)。em算法的思想,其實也是如此。使用坐標上升法,一次固定一個變量,對另外的求極值,最后逐步逼近極值。對應(yīng)到em上,e步:固定θ,優(yōu)化q;m步:固定q,優(yōu)化θ;交替將極值推向最大。 

六、em算法推導(dǎo) 

現(xiàn)在很多深度學習框架可以簡單調(diào)用em算法,實際上這一段大家可以不用看,直接跳過看最后的總結(jié)即可。但是如果你希望了解一些內(nèi)部的邏輯,可以看一下這一段推導(dǎo)過程。

假設(shè)我們有一個樣本集{x(1),…,x(m)},包含m個獨立的樣本(右上角為樣本序號)。但每個樣本i對應(yīng)的類別z(i)是未知的(相當于聚類),也即隱含變量。故我們需要估計概率模型p(x,z)的參數(shù)θ(在文中可理解為高斯分布),但是由于里面包含隱含變量z,所以很難用最大似然求解,但如果z知道了,那我們就很容易求解了。

首先放出似然函數(shù)公式,我們接下來對公式進行化簡:

高斯混合模型與EM算法圖文詳解

對于參數(shù)估計,我們本質(zhì)上的思路是想獲得一個使似然函數(shù)最大化的參數(shù)θ,現(xiàn)在多出一個未知變量z,公式(1)。那么我們的目標就轉(zhuǎn)變?yōu)椋赫业竭m合的θ和z讓l(θ)最大。

對于多個未知數(shù)的方程分別對未知的θ和z分別求偏導(dǎo),再設(shè)偏導(dǎo)為0,即可解方程。

因為(1)式是和的對數(shù),當我們在求導(dǎo)的時候,形式會很復(fù)雜。

這里我們需要做一個數(shù)學轉(zhuǎn)化。我們對和的部分,乘以一個相等的函數(shù),得到(2)式,利用jensen不等式的性質(zhì),將(2)式轉(zhuǎn)化為(3)式。(jensen不等式數(shù)學推到比較復(fù)雜,知道結(jié)果即可)

note:

jensen不等式表述如下:

如果f是凸函數(shù),x是隨機變量,那么:e[f(x)]>=f(e[x])

特別地,如果f是嚴格凸函數(shù),當且僅當x是常量時,上式取等號。參考鏈接: https://blog.csdn.net/zouxy09/article/details/8537620

至此,上面的式(2)和式(3)不等式可以寫成:似然函數(shù)l(θ)>=j(z,q),那么我們可以通過不斷的最大化這個下界j(z,q)函數(shù),來使得l(θ)不斷提高,最終達到它的最大值。

現(xiàn)在,我們推導(dǎo)出了在固定參數(shù)θ后,使下界拉升的q(z)的計算公式就是后驗概率,解決了q(z)如何選擇的問題。這一步就是e步,建立l(θ)的下界。接下來的m步,就是在給定q(z)后,調(diào)整θ,去極大化l(θ)的下界j(在固定q(z)后,下界還可以調(diào)整的更大)。

總結(jié)而言

em算法是一種從不完全數(shù)據(jù)或有數(shù)據(jù)丟失的數(shù)據(jù)集(存在隱藏變量)中,求解概率模型參數(shù)的最大似然估計方法。

em的算法流程:

1>初始化分布參數(shù)θ;

重復(fù)2>, 3>直到收斂:

2>e步驟(expectation):根據(jù)參數(shù)初始值或上一次迭代的模型參數(shù)來計算出隱性變量的后驗概率,其實就是隱性變量的期望。作為隱藏變量的現(xiàn)估計值:

高斯混合模型與EM算法圖文詳解

3>m步驟(maximization):將似然函數(shù)最大化以獲得新的參數(shù)值:

高斯混合模型與EM算法圖文詳解

這個不斷迭代的過程,最終會讓e、m步驟收斂,得到使似然函數(shù)l(θ)最大化的參數(shù)θ。

在l(θ)的收斂證明:

高斯混合模型與EM算法圖文詳解

 總結(jié)

本篇文章就到這里了,希望能給你帶來幫助,也希望您能夠多多關(guān)注服務(wù)器之家的更多內(nèi)容!

原文鏈接:https://blog.csdn.net/weixin_38206214/article/details/81064625

延伸 · 閱讀

精彩推薦
  • Java教程小米推送Java代碼

    小米推送Java代碼

    今天小編就為大家分享一篇關(guān)于小米推送Java代碼,小編覺得內(nèi)容挺不錯的,現(xiàn)在分享給大家,具有很好的參考價值,需要的朋友一起跟隨小編來看看吧...

    富貴穩(wěn)中求8032021-07-12
  • Java教程Java BufferWriter寫文件寫不進去或缺失數(shù)據(jù)的解決

    Java BufferWriter寫文件寫不進去或缺失數(shù)據(jù)的解決

    這篇文章主要介紹了Java BufferWriter寫文件寫不進去或缺失數(shù)據(jù)的解決方案,具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望...

    spcoder14552021-10-18
  • Java教程Java實現(xiàn)搶紅包功能

    Java實現(xiàn)搶紅包功能

    這篇文章主要為大家詳細介紹了Java實現(xiàn)搶紅包功能,采用多線程模擬多人同時搶紅包,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙...

    littleschemer13532021-05-16
  • Java教程Java使用SAX解析xml的示例

    Java使用SAX解析xml的示例

    這篇文章主要介紹了Java使用SAX解析xml的示例,幫助大家更好的理解和學習使用Java,感興趣的朋友可以了解下...

    大行者10067412021-08-30
  • Java教程20個非常實用的Java程序代碼片段

    20個非常實用的Java程序代碼片段

    這篇文章主要為大家分享了20個非常實用的Java程序片段,對java開發(fā)項目有所幫助,感興趣的小伙伴們可以參考一下 ...

    lijiao5352020-04-06
  • Java教程升級IDEA后Lombok不能使用的解決方法

    升級IDEA后Lombok不能使用的解決方法

    最近看到提示IDEA提示升級,尋思已經(jīng)有好久沒有升過級了。升級完畢重啟之后,突然發(fā)現(xiàn)好多錯誤,本文就來介紹一下如何解決,感興趣的可以了解一下...

    程序猿DD9332021-10-08
  • Java教程Java8中Stream使用的一個注意事項

    Java8中Stream使用的一個注意事項

    最近在工作中發(fā)現(xiàn)了對于集合操作轉(zhuǎn)換的神器,java8新特性 stream,但在使用中遇到了一個非常重要的注意點,所以這篇文章主要給大家介紹了關(guān)于Java8中S...

    阿杜7482021-02-04
  • Java教程xml與Java對象的轉(zhuǎn)換詳解

    xml與Java對象的轉(zhuǎn)換詳解

    這篇文章主要介紹了xml與Java對象的轉(zhuǎn)換詳解的相關(guān)資料,需要的朋友可以參考下...

    Java教程網(wǎng)2942020-09-17
主站蜘蛛池模板: 国产五区 | 中国一级毛片在线视频 | 国产色视频在线观看免费 | 日韩在线播放第一页 | 午夜看毛片 | 精品伊人| 日日草日日干 | 毛片网站视频 | 久久久久se | 成人短视频在线观看 | 最新一区二区三区 | 国产福利视频在线观看 | 成人区一区二区三区 | 欧美日韩经典在线 | 一区二区三区视频在线观看 | 亚洲特黄妇女高潮 | 成人午夜视频免费在线观看 | 国产一级淫片在线观看 | 久久色网站 | videos高潮| 欧美成人午夜影院 | 91在线免费观看 | 国产成人在线观看免费网站 | 精品一区二区三区电影 | 九九热在线视频观看这里只有精品 | 美女黄污视频 | 姑娘第四集免费看视频 | 久久精品a一级国产免视看成人 | 久久小视频| 欧美 videos粗暴| 亚洲第一成av人网站懂色 | 国产精品久久久久久久久粉嫩 | 日日狠狠久久偷偷四色综合免费 | 欧美一级淫片免费视频黄 | 99麻豆久久久国产精品免费 | 一区二区三区手机在线观看 | 91福利免费观看 | 逼特逼视频在线观看 | 毛片视频网站 | 久久免费视频一区二区三区 | 久草热久草视频 |