1. 程式人生 > >EM(期望最大)演算法詳解(上)

EM(期望最大)演算法詳解(上)

EM演算法(The Expectation-Maximization Algorithm)實質是對含有隱變數的概率模型引數的極大似然估計。EM演算法的推導過程真的灰常容易理解,只需要一點點概率論的知識加上一點點的講解,便可對此演算法瞭然。

學習EM演算法,只需要2個小技能(合計4個小知識點):
1. 概率分佈的引數常用極大似然估計——瞭解極大似然估計以及她的對數形式;在一概率分佈下有一組觀測值:X={x1,x2,...,xn},極大似然估計的工作就是找到一組符合這個概率分佈的引數,使得出現這些觀測值的概率最大,數學表示就是:找到引數θ, 使得P(X|θ)最大。為了計算簡便,通常我們計算的對數似然函式:

L(θ)=lnP(X|θ)(1)注意這個寫法,L(θ)表示的是,在觀測值集合 X 給定的情況下,關於 θ 的函式
2. 知道什麼事凸函式以及凸函式的三個小知識點——
2.1) 凸函式的定義:f,I=[a,b]x1,x2λ[0,1]使<br>f(λx1+(1λ)x2λf(x1)+(1λ)f(x2)(2),比如 y=x2,x[1,1]
凸函式圖示

2.2) 若 f 是凹函式,則 f 是凸函式,比如我們即將用到的 lnx ,在 x(0,) 上,它是凹函式,顯然 lnx 是凸函式;
2.3) 詹森不等式(Jensen’s inequality)
fIx1,x2,...,xn
Iλ1,λ2,...,λn0i=1nλi=1f(i=1nλixi)i=1nλif(xi)(3)
這個不等式的證明也不難——歸納法,證明寫在最後。

接下來該是我們今天的主角出場了:EM演算法的過程——
因為有隱變數的存在,我們無法直接令對數似然函式的導數方程等於零的方式來求引數——需要迭代去計算:
1) E-step:根據觀測資料和對當前的引數估計值,去計算出隱變數的期望值;
2)M-step:根據E-step得到的隱變數的期望值去重新估計引數值,也就是進行新的一次極大似然估計
重複E & M 步驟,直至滿足終止條件(引數估計值沒有多大的變化)

很多時候,我們去學EM演算法,最先接觸到大概就是上面的定義了,往往讓我們摸不著頭腦,瞬間失去學習它的興趣。別急,下面會用簡單的推導去說明這一切~

怎麼去理解”極大似然估計”呢?比如說當我們在 n 次估值後,得到引數估計值為 θn,可能似然函式 L(θn) 已經比以往的都要大了,在這樣的情況下我們仍然希望繼續迭代的更新引數L(θ),使得 L(θ)θn大,

L(θ)>L(θn)(4)
也就是不管在什麼時候,我們希望最大化這樣的差異:L(θ)L(θn)=lnP(X|θ)ln

相關推薦

EM期望演算法()

EM演算法(The Expectation-Maximization Algorithm)實質是對含有隱變數的概率模型引數的極大似然估計。EM演算法的推導過程真的灰常容易理解,只需要一點點概率論的知識加上一點點的講解,便可對此演算法瞭然。 學習EM演算法,

[Network Architecture]DPNDual Path Network演算法(轉)

https://blog.csdn.net/u014380165/article/details/75676216 論文:Dual Path Networks 論文連結:https://arxiv.org/abs/1707.01629 程式碼:https://github.com/cypw/DPN

SVRSupport Vector Regression演算法

Perface 這裡就不講從SVM到SVR了,因為知道SVR怎麼回事後,回過頭便知道SVM其中道理; 工作中的一些心得總結,所有論述均脫敏過,與工作中的專案,技術,專利均無關; 歡迎各位多多指教。 下面按照該演算法的演進思路逐步鋪

【圖割】流/小割演算法Yuri Boykov and Vladimir Kolmogorov,2004

最大流/最小割(Max-Flow/Min-Cut)在解決計算機視覺中的能量方程最小化問題的強大,最早發現是Greig於1989年發表的文章:Exact Maximum A Posteriori Estimation for Binary Images。 最大流最小割演算法求解的能量方程,通常是基於圖結構

這是我見過詳細的十排序演算法介紹了,沒有之一排序演算法

> **作者:** C you again,從事軟體開發 努力在IT搬磚路上的技術小白 > **公眾號:** 【**[C you again](https://cyouagain.cn/)**】,分享計算機類畢業設計原始碼、IT技術文章、遊戲原始碼、網頁模板、程式人生等等。公眾號回覆 【**粉絲

短路dijkstra演算法:dijkstra圖解

本人小白,如果有寫的不恰當的地方,還請大家指出,共同進步學習。 ---------------------------------------------------------------------------------------------------------

區間dp的總結乘積

logs 數組 str 區間dp 方程 style nbsp span 乘號 #include <iostream> #include <cstdio> #include <algorithm> #include <cstrin

深度學習 --- 卷積神經網路CNNLeNet-5網路學習演算法

上一節我們詳細探討了LeNet-5網路的架構,但是還沒有解釋該網路是如何進行學習的,如何更新權值的,本節將接著上一節進一步CNN的學習機制和權值更新過程,這裡請大家一定要對CNN網路有一個清晰的認識,知道每一層是做什麼的,為什麼這樣設定。原因在哪等。大家在學習的過程中需要多問自己幾個為什麼,這樣

希爾排序java實現演算法

希爾排序也是一種插入排序演算法,也叫作縮小增量排序,是直接插入排序的一種更高效的改進演算法。 希爾排序因其設計者希爾(Donald Shell)的名字而得名,該演算法在 1959 年被公佈。一些老版本的教科書和參考手冊把該演算法命名為 Shell-Metzner,包含了 Marlene Metzner No

SegLinkDetecting Oriented Text in Natural Images by Linking Segments演算法

《Detecting Oriented Text in Natural Images by Linking Segments》是和EAST同年的一篇發表在CVPR2017的OCR論文。程式碼地址:https://github.com/bgshih/seglink,這是該文章其中一個作者提供的

SWTDetecting Text in Natural Scenes with Stroke Width Transform演算法

《Detecting Text in Natural Scenes with Stroke Width Transform》,這是微軟公司的一篇發表於CVPR2010的文章,使用傳統方法來檢測自然場景中的文字。程式碼地址:https://github.com/aperrau/DetectTe

KNNK鄰近演算法

kNN演算法簡介: kNN(k Nearest Neighbors)演算法又叫k最臨近方法, 總體來說kNN演算法是相對比較容易理解的演算法之一,假設每一個類包含多個樣本資料,而且每個資料都有一個唯一的類標記表示這些樣本是屬於哪一個分類, kNN就是計算每個樣本資料到待分類資料的距離,取和待分類資料最近的

並查集union-find演算法

之前很多連通性問題,其實都是可以通過並查集演算法去實現的,比如城鎮的修路問題: 首先在地圖上給你若干個城鎮,這些城鎮都可以看作點,然後告訴你哪些對城鎮之間是有道路直接相連的。最後要解決的是整幅圖的連通性問題。比如隨意給你兩個點,讓你判斷它們是否連通,或者問你整

DESDetection with Enriched Semantics演算法

DES演算法詳解 論文背景 實驗結果 演算法簡介 演算法結構 語義資訊增強過程 與之前演算法的區別 演算法細節 Semantic enrichm

機器學習教程 四.KNNk近鄰演算法理解和應用

import numpy as np import warnings from collections import Counter import pandas as pd import random def k_nearest_neighbors(data, predict, k=3):     if l

YOLOYou Only Look Once演算法

這篇部落格主要介紹下YOLO v1演算法(CVPR2016的文章)。YOLO是目前比較流行的object detection演算法,速度快且結構簡單,其他的object detection演算法如faster RCNN,SSD相信大家也不陌生,以後有機會再介紹。

PTAL1-054 福到了15 分演算法與坑點分析

“福”字倒著貼,寓意“福到”。不論到底算不算民俗,本題且請你編寫程式,把各種漢字倒過來輸出。這裡要處理的每個漢字是由一個 N x N 的網格組成的,網格中的元素或者為字元“@”或者為空格。而倒過來的漢字所用的字元由裁判指定。 輸入格式: 輸入在第一行中給出倒過來的漢字所用的字

機器學習之KNNk近鄰演算法

1-1 機器學習演算法分類 一、基本分類: ①監督學習(Supervised learning) 資料集中的每個樣本有相應的“正確答案”, 根據這些樣本做出 預測, 分有兩類: 迴歸問題和分類問題。 步驟1: 資料集的建立和分類 步

隨機抽樣一致性RANSAC演算法

隨機抽樣一致性(RANSAC)演算法能夠有效的剔除特徵匹配中的錯誤匹配點。 實際上,RANSAC能夠有效擬合存在噪聲模型下的擬合函式。實際上,RANSAC演算法的核心在於將點劃分為“內點”和“外點”。在一組包含“外點”的資料集中,採用不斷迭代的方法,尋找最優引數模型,不符合最優模型的點,被定義為“外點”。這就

DPMDeformable Part Model原理匯總

特征向量 成就 算法思想 filter people tell 梯度 錨點 精度 寫在前面: DPM(Deformable Part Model),正如其名稱所述,可變形的組件模型,是一種基於組件的檢測算法,其所見即其意。該模型由大神Felzenszwalb在2008年提