EM算法 小結

猴子吃果凍

?

4-EM算法原理及利用EM求解GMM參數過程

1.極大似然估計

  原理:假設在一個罐子中放著許多白球和黑球,并假定已經知道兩種球的數目之比為1:3但是不知道那種顏色的球多。如果用放回抽樣方法從罐中取5個球,觀察結果為:黑、白、黑、黑、黑,估計取到黑球的概率為p;

  假設p=1/4,則出現題目描述觀察結果的概率為:(1/4)4?*(3/4) = 3/1024

  假設p=3/4,則出現題目描述觀察結果的概率為:(3/4)4?*(1/4) = 81/1024

  由于81/1024 > 3/1024,因此任務p=3/4比1/4更能出現上述觀察結果,所以p取3/4更為合理

  以上便為極大似然估計的原理

  定義如下圖:(圖片來自浙江大學概率論課程課件)

  

2.知曉了極大似然估計的原理之后,我們可以利用極大似然估計的原理來解決如下問題:

  即,若給定一圈樣本x1,x2.....xn,已知他們服從高斯分布N(μ,σ),要求估計參數均值μ,標準差σ

  (1) 高斯分布的概率密度為:

    

  (2) 利用上述極大似然估計的原理,構建似然函數為:

    

  (3) 為例求解方便我們取對數似然:

    

  (4) 我們的目標是求上述l(x)的最大值,對上式,分別關于μ,σ求二階導數,很容易證明2次倒數均小于0 ,所以上述函數關于μ,和σ均為凹函數,極大值點滿足一階導數等于0,故通過對μ,和σ求偏導并且倒數為0 我們即可得到如下等式:

    

3.EM算法原理推導

  3.1 EM算法與極大似然估計的區別于聯系(直接飲用李航-統計學習方法中的內容)

    概率模型有時即含有觀測變量,又含有隱變量或潛在變量,如果概率模型的變量都是觀測變量,那么給定數據,可以直接用極大似然估計法,或者貝葉斯估計法估計模型參數。但是當模型含有隱量時,就不能簡單的用這些估計方法,EM算法就是含有隱變量的概率模型參數的極大似然估計法

    什么是隱變量?

    舉例:比如現要在一所學校中隨機選取1000個人測量身高,最終我們會得到一個包含1000個身高數據的數據集,此數據集就稱為觀測變量,那這1000個學生中,既有男生又有女生,我們在選取完成以后并不知道男生和女生的比例是多少?此時這1000名學生中男生的占比以及女生的占比就稱為隱變量

  3.2 有了上述簡單的認識之后,下邊解決EM算法的推導過程

    在對EM算法原理進行推導之前,先用一個實例理解一下下文中θ所表示的意義:

    

    假設現有樣本集T= {x1,x2?.....xm},包含m個獨立樣本,其中每個樣本對應的類別z(這里的類別z就可以類比3.1中的男生女生兩種性別去理解)是未知的,所以很難直接用極大似然法去求解。

    以x1為例:x1發生的概率可以表示為:,θ表示的就是我們要估計的參數的一個總稱后續證明過程中的Q(z)也是θ中的一個參數。舉例,如果每一個類別z均符合高斯分布,那么θ中還會包含均值μ和標準差σ,如果對θ的理解不是不到

    整個數據集T的似然函數可以表示為:

          

    為了便于計算我們取對數似然得:

      

    對上上述函數log中有求和運算,求解困難,故我們可以對其形式進行轉化,轉化為易于我們求解的方式如下式:表示第i個樣本第j個類別的概率,則表示的期望

      

    log函數是一個凹函數,故利用jenson不等式的原理可以得出期望的函數值大于等于函數值的期望,故表達如下:

           

    在上述不等式的等號成立時和是等價的,也就是說后式的最大值即為前式的最大值。當log函數的圖像是一條直線時等號成立,故為常數時,等號成立。   ? ?

      

    #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

    E-step:即就是上述的

    M-step:在E-step的基礎上求使得上述函數值的期望取得最大值的參數θ的取值

      ?

    #-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#-#

    對上述E-step和M-step不斷進行迭代,知道我們估計的模型參數收斂(即變化趨近于一個定值)我們即可得到最適合觀測數據集的模型參數,者便是EM算法

4.利用EM原理推導GMM(混合高斯模型)

  隨機變量X是有K個高斯分布混合而成,取各個高斯分布的概率為φ1,φ2...φK,第i個高斯分布的均值為μi,方差為Σi。若觀測到隨機變量X的一系列樣本x1,x2...xn,試估計參數φ,μ,Σ。? ??

?  第一步:依據3中E-step估計φ用wj(i)?表示,意義是對第i個樣本第j個高斯分布的貢獻率(即第j個高斯分布的占比)

    

  第二步:依據3中的M-step估計μ,和σ ?用?表示σ2

    

    對上述關于μ求偏導得:

    

    對(2)式為0 可得:

    

    同理對方差求偏導,并令導入為0 可得:

    

    對于φj?由于?,故對于φj?必須采用添加極值的方式求解,需構建拉個朗日方程進行求解。

    觀察(1)式,log函數中可以看成是一個常數與φj相乘。由對數函數求導法則指,在求導之后,常數項終被抵消,如f(x) = lnax 關于x求導結果與g(x)=lnx關于x求導結果相同,故對于(1)式在構建拉個朗日函數時,直接去掉log函數中的常數項,如下:

    由于φj?為正在log函數中已有現值,故這里無需構建不等式約束

    

    對朗格朗日函數關于φj求導并取倒數為0 可得:

    

    

       

5.用實例理解GMM的參數估計過程

  5.1 在正式引入GMM(混合高斯模型)前我們以下述情景的求解為例,用實例看先熟悉以下參數更新的過程

    情景:假設從商場隨機選取10位顧客,測量這10位顧客的身高,這些顧客中既包含男性顧客也包含女性顧客,現在我們已知測量數據,T=[x1,x2.....x10]為我們測試的身高數據,即為可觀測數據集。并且知道男性女性顧客的身高均服從高斯分布N(μ11),N(μ22),估計參數μ11,μ22?,以及男女比例?α1,α2

    高斯分布的概率密度函數為:

      

    (1)對于測試數據x1?其產生的概率我們可以表示為:

      

      我們用γ(i,k)來表示男性或者女性在生成數據x1??時所做的貢獻(γ(i,k)就相當于我們初始給定的α1,α2)。或者說表示單由男性或者女性產生數據xi的概率,前后兩個說法所想表達的意思是相同的,那么就有:

      ?

?

      

?

    (2)對于測試數據x2?其產生的概率我們可以表示為:

      

      同(1)可知:

      

      

    (3)依次按照上述(1)(2)的規律我們就可以求出如下表格中的所有值,表中標綠的在上述(1)(2)步已求出

      

      我們在上文2中的(4)已經推導出來了μ和σ2的計算公式,故

      ? ?

   ?   ?

      

      

      ?

   ?   ?

    對于上述α1,α2計算方式的理解:α1,α2表示的是同一次實驗,或者說針對同一個樣本,兩類數據來源(男性,女性)對樣本結果的貢獻率,那么對于每一個樣本來說他們的男性和女性的貢獻率都應該是恒定的,故我們采用取平均的方式更新α1,α2;

    (4)用計算出來的μ1new2new ? ? ?σ21new ??22new ??α1new2new?再次重復迭代上述(1)(2)(3)步驟,直到μ1new2new ? ? ?σ21new ??22new ??α1new2new?收斂我們即得到的關于本次觀測數據最合適的參數

  5.2 有了上述實例以后,我們直接給出GMM的推廣式:(下述式子的正面過程見4中GMM的證明過程)

    隨機變量X是有K個高斯分布混合而成,取各個高斯分布的概率為φ1,φ2...φK,第i個高斯分布的均值為μi,方差為Σi。若觀測到隨機變量X的一系列樣本x1,x2...xn,試估計參數φ,μ,Σ。

    第一步:(如上述實例中(1)和(2))

      

    第二步:(如上述實例中的(3))

      

?

轉載于:https://www.cnblogs.com/cupleo/p/10656370.html

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/news/249239.shtml
繁體地址,請注明出處:http://hk.pswp.cn/news/249239.shtml
英文地址,請注明出處:http://en.pswp.cn/news/249239.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

Vue UI 框架對比 element VS iview

element VS iview (最近項目UI框架在選型 ,做了個分析, 不帶有任何利益相關) 主要從以下幾個方面來做對比 使用率(npm 平均下載頻率,組件數量,star, issue…) API風格 打包優化 與設計師友好性 1&a…

SPSS-回歸分析

回歸分析(一元線性回歸分析、多元線性回歸分析、非線性回歸分析、曲線估計、時間序列的曲線估計、含虛擬自變量的回歸分析以及邏輯回歸分析) 回歸分析中,一般首先繪制自變量和因變量間的散點圖,然后通過數據在散點圖中的分布特點選…

Python教程:Python中的for 語句

Python 中的 for 語句與你在 C 或 Pascal 中可能用到的有所不同。 Python教程 中的 for 語句并不總是對算術遞增的數值進行迭代(如同 Pascal),或是給予用戶定義迭代步驟和暫停條件的能力(如同 C),而是對任意…

二叉樹的基本性質及證明

性質1:一棵非空二叉樹的第i層上最多有2^(i-1)個結點,(i>1)。 性質2:一棵深度為k的二叉樹中,最多具有2^k-1個結點,最少有k個結點。 性質3:對于一棵非空的二叉樹,度為…

ACM10.14題解

ACM10.14題解 第一次打周賽,感覺還是比較緊張的,應該開完所有的題再做,而不是硬做,沒必要硬杠英語,還是不要抱有僥幸心理,做對一定是完全理解且會,自己小心邊界問題,不要瞎交。 A&am…

vscode: Visual Studio Code 常用快捷鍵

原文章地址: vscode: Visual Studio Code 常用快捷鍵 官方快捷鍵說明:Key Bindings for Visual Studio Code 主命令框 F1 或 CtrlShiftP: 打開命令面板。在打開的輸入框內,可以輸入任何命令,例如: 按一下 Backspace…

HTML5概要與新增標簽

一、HTML5概要 1.1、為什么需要HTML5 HTML4陳舊不能滿足日益發展的互聯網需要,特別是移動互聯網。為了增強瀏覽器功能Flash被廣泛使用,但安全與穩定堪憂,不適合在移動端使用(耗電、觸摸、不開放)。 HTML5增強了瀏覽器的…

Tomcat啟動失敗錯誤解決Could not publish server configuration for Tomcat v8.0 Server at localhost....

這個問題本質是我們有多個重名項目,為什么我們會有多個重名項目,其實一般都是我們刪除以前的項目,然后再把它重新導進eclipse時以前的項目刪除不徹底造成的,以前的項目在"Servers"里面的"server.xml"文件下的…

二叉樹特性及證明

https://blog.csdn.net/jun2016425/article/details/54581407

Mock.js 和Node.js詳細講解

????原文地址:http://www.manongjc.com/article/10503.html 《一統江湖的大前端》系列是自己的前端學習筆記,旨在介紹javascript在非網頁開發領域的應用案例和發現各類好玩的js庫,不定期更新。如果你對前端的理解還是寫寫頁面綁綁事件&am…

架構圖

負載均衡 分布式 轉載于:https://www.cnblogs.com/jiqing9006/p/10672280.html

網絡操作系統P12頁答案

1.什么是網絡操作系統?網絡操作系統具有哪些基本功能?網絡操作系統:專門為網絡用戶提供操作接口的系統軟件,除了管理計算機的軟件和硬件資源具備單機操作系統,并且為網絡用戶提供各種網絡服務。當然網絡操作系統不僅要…

如何將存儲在MongoDB數據庫中的數據導出到Excel中?

將MongoDB數據庫中的數據導出到Excel中,只需以下幾個步驟: (1)首先,打開MongoDB安裝目錄下的bin文件夾,(C:\Program Files (x86)\MongoDB\Server\3.2\bin);此處視個人安裝…

vue 項目初始化時,npm run dev報錯解決方法

錯誤如下: npm ERR! code ELIFECYCLE npm ERR! errno 1 npm ERR! travel1.0.0 dev: webpack-dev-server --inline --progress --config build/webpack.dev.conf.js npm ERR! Exit status 1 npm ERR! npm ERR! Failed at the travel1.0.0 dev script. npm ERR…

JDK源碼分析

https://www.jianshu.com/p/f1f1f14e7fbe

VSCode 初次寫vue項目并一鍵生成.vue模版

1.安裝vscode 官網地址:https://code.visualstudio.com/2.安裝一個插件,識別vue文件 插件庫中搜索Vetur,下圖中的第一個,點擊安裝,安裝完成之后點擊重新加載微信圖片_20180723174649.png 3.新建代碼片段 文件-->…

文本聊天室(TCP-中)

開始我們今天的代碼實現,我們接著上一回,上回實現了服務器的代碼這次實現客戶端的UI(界面)層, 我們界面層采用javafx來進行繪制,首先有個登錄服務器的界面然后切換到聊天界面運行結果如下.源代碼如下: 1 package jffx.blogs.net;2 3 import javafx.appli…

Oracle 查詢庫中所有表名、字段名、字段名說明,查詢表的數據條數、表名、中文表名...

查詢所有表名:select t.table_name from user_tables t;查詢所有字段名:select t.column_name from user_col_comments t;查詢指定表的所有字段名:select t.column_name from user_col_comments t where t.table_name BIZ_DICT_XB;查詢指定表…

lucene原理

https://www.jianshu.com/p/0cfe042412a2

電商網站前端架構 學習筆記(全是干貨)

1:前端架構的基本知識 1: 前端工程師必須會的一些技能 前端工程師基本技能圖.PNG 2: 前端架構基本知識 什么是前端架構? 每個人對每個架構有不同的認識和一些想法。沒有一個架構是完美的,只有一個架構是不是適合你的。哪個個架構符合你的需求的時候&#xff0c…