1. 程式人生 > >極大似然估計和EM算法

極大似然估計和EM算法

tle 標準 rod 獨立 ble com 評估 n) date


title: 最大似然估計和EM算法
date: 2018-06-01 16:17:21
tags: [算法,機器學習]
categories: 機器學習
mathjax: true
---

本文是對最大似然估計和EM算法做的一個總結。

一般來說,事件A發生的概率與某個未知參數$\theta?$有關,$\theta?$取值不同,則事件A發生的概率$p(A|\theta)?$也不同。當我們在一次實驗中事件A發生了,則認為此時的$\theta?$值應是t的一切可能取值中使$p(A|\theta)?$最大的那個。最大似然估計就是要選取這樣的t值作為參數t的估計值,使所選取的樣本在被選的總體中出現的可能性為最大。

EM算法是在有潛變量的情況下,通過不斷進行最大似然估計來求解參數的過程。

最大似然估計

最大似然估計/極大似然估計(Maximum Likelihood Estimation,簡稱MLE)

前言

利用已知的樣本的結果,在使用某個模型的基礎上,反推出最有可能導致這種結果的模型參數值。是一種參數估計方法。

例子:

定義有些繞口,下面我們通過例子來理解一下。

我們知道,現實中的硬幣是均勻的,即拋出後正面朝上和反面朝上的概率是一樣的。
但是現在假設有兩枚不均勻的硬幣,這兩枚硬幣正面朝上的概率都不是0.5,分別記為$p_1$和$p_2$
記每選用一枚硬幣拋5次為一個實驗,得到實驗結果如下:

實驗所選硬幣 實驗結果
1 3正、2反
1 1正、4反
1 2正、3反
2 2正、3反
2 1正、4反

好!那麽我現在問,根據實驗結果你可以得到$p_1$和$p2$的值嗎?你應該會這樣算:

$p1=(3+1+2)/15=0.4$

$p2=(2+1)/10=0.3$

然後你就說了,$p1$最有可能是0.4,$p2$最有可能是0.3。

現在我們就完成了一次最大似然估計!


  • 什麽是似然估計?---根據實驗結果,反推出實驗參數。
  • 什麽是最大似然估計?---根據實驗結果,反推出最有可能導致這個結果的實驗參數。
  • 什麽是概率?---根據參數,推出可能的實驗結果。

用數學的語言來描述就是:

概率:$p(x|\theta)$ 在參數$\theta$確定

的情況下,$x$出現的概率

似然:$L(\theta|x_1,x_2,...)$ 根據結果,反推參數

定義

最大似然估計提供了一種給定觀察數據來評估模型參數的方法,即:“模型已定,參數未知”。

假設我們要統計全國人口的身高,首先假設這個身高服從正態分布,但是該分布的均值與方差未知。一種解決辦法是:通過采樣,獲取部分人的身高,然後通過最大似然估計來獲取上述假設中的正態分布與均值。

最大似然估計中采樣需要滿足:所有的采樣都是獨立同分布的。下面具體描述最大似然估計:

首先,假設$x_1,x_2,...,x_n$是獨立同分布的采樣,$\theta$是模型的參數,$f$為我們使用的模型。所以,參數為$\theta$的模型產生上述采樣可以表示為:

$f(x_1,x_2,...,x_n)=f(x_1|\theta)\times f(x_2|\theta)\times ... \times f(x_n|\theta)$

回到上面“模型已定,參數未知”的說法,此時,我們已知的為$x_1,x_2,...,x_n$,未知參數$\theta$,所以似然定義為:

$L(\theta|x_1,x_2,...,x_n)=f(x_1,x_2,...,x_n)=\prod\limits_{i=1}^nf(x_i|\theta)$

最大似然估計就是求上式的極值點。所以自然想到求導了,因為右邊是連乘,為了計算簡便,同時對等號兩邊取對數,有:

$\ln L(\theta|x_1,...,x_n)=\sum\limits_{i=1}^n\ln f(x_i|\theta)$ $\hat l = \frac 1n\ln L$

其中 $\ln L(\theta|x_1,...,x_n)$稱為對數似然,$\hat l$為平均對數似然。通常所說的最大似然指的是最大的平均對數似然:

$\hat{\theta}{mle}=\arg\limits{\theta\in\Theta}\max\hat l(\theta|x_1,...,x_n)$

例子1

舉一個在很多博客都看到過的例子:

盒子裏總共有若幹個除顏色外均相同的球,進行100次有放回的隨機摸球實驗,摸到紅球和白球的次數分別是30和70。用最大似然估計法求盒子中紅球和白球比例。

解:

設紅球比例為p,則白球為(1-p)。

則出現題目中結果(30次紅,70次白)的概率可以寫成:

$f(x_1,x_2,...,x_{100}|\theta)=f(x_1|\theta)\times f(x_2|\theta)\times ...\times f(x_{100}|\theta)$

$=p^{30}(1-p)^{70}$---------------------------式1

其中$x_i$代表第i次實驗結果。

ps: 我一直覺得上面這個式子有問題....這是問題不考慮紅球白球取出的次序,計算概率時不是應該再乘以一個$C_{100}^{30}$嗎? 因為常數系數不影響之後的求導結果,所以這個問題不影響下面計算,但還是很想知道為什麽。。。

好,實驗結果(抽100次,有30次紅70次白)我們已經知道了,所以當理論上這個概率(上式的值)越大,說明實際情況發生的可能性也越大,實驗結果符合預期豈不是美滋滋:happy:。

So,我們希望式1的值盡可能大。即讓式1取最大值時,此時參數p的取值就時我們對p的最大似然估計。

那麽,直接對式1求導就行了:$f^{‘} =0\Longrightarrow p =0.3 $。也就是說當p=0.3時,出現這種實驗結果(30,70)的可能性最大。這和我們常識的推測一致。所以0.3是我們求得的參數p的最大似然值。

例子2 正態分布

假如有一組采樣值$(x_1,x_2,...,x_n)$,我們知道其服從正態分布,且標準差已知。當這個正態分布的期望為多少時,產生這個采樣數據的概率為最大?

這個例子中正態分布就是模型M,而期望就是前文提到的未知參數$\theta$。

似然:$L(\theta|x_1,x_2,...,x_n)=f(x_1,x_2,...,x_n|\theta)=\prod\limits_{i=1}^nf(x_i|\theta)$

正態分布的公式:$M=f(x)=\frac1{\sqrt{2\pi}\sigma}\exp \left(-\frac{(x-\mu)^2}{2\sigma^2}\right)$ $N(\mu,\sigma^2)$

似然值:$f(x_1,x_2,...,x_n|\theta)=\left(\frac1{\sqrt{2\pi}\sigma}\right)^n\exp\left(-\frac1{2\sigma^2}\sum\limits_{i=1}^n(x-\mu)^2\right)$

對上面式子求導可得:$l^{‘}=0\Longrightarrow \sum\limits_{i=1}^n(x_i-\mu)=0\Longrightarrow\mu=\frac1n\sum\limits_{i=1}^nx_i$

最大似然算法推導出的正態分布的期望和我們嘗試算出來的一樣。

總結

我們可以得到最大似然估計的算法步驟如下:

  1. 寫出似然函數;
  2. 如果直接求導困難,則兩邊同時取$\ln$對數,化成對數似然函數;
  3. 求導;
  4. 根據導數=0,求出極值點。

EM算法

EM(Expectation Maximal)算法,也稱最大期望算法。

很接地氣的EM算法解讀

強烈推薦看上面這篇博客看,我覺得算法就是需要這種通俗的講解才能真正吃透。這裏就不累述了。

極大似然估計和EM算法