機器學習-極大似然估計法

一、什麼是極大似然估計

機器學習中,概率模型的訓練過程就是**參數估計(Parameter Estimation)**的過程,對於參數估計,統計學界的兩個學派分別提供了不同的解決方案:頻率主義學派認爲參數雖然未知,但卻是客觀存在的固定值,因此可以通過優化似然函數等準則來確定參數值;貝葉斯學派則認爲參數是未觀察到的隨機變量,其本身也可有分佈,因此可假定參數服從一個先驗分佈,然後基於觀測的數據來計算參數的後驗分佈。**極大似然估計(Maximum LikeliHood Estimation)**源自於頻率主義學派,它是一種根據數據採樣來估計概率分佈參數的經典方法。

二、參數訓練過程

DcD_c表示訓練集DD中第cc類樣本組成的集合,假設這些樣本是獨立同分布的,則參數θcθ_c對於數據集DcD_c的似然是
P(Dcθc)=xDcP(xθc)(1) P\left(D_{c} | \theta_{c}\right)=\prod_{x \in D_{c}} P\left(x | \theta_{c}\right)\tag{1}
θc\theta_c進行極大似然估計,就是去尋找能最大化似然P(Dcθc)P\left(D_{c} | \theta_{c}\right)的參數值θc^\hat{\theta_c}。直觀上看,極大似然估計是視圖在θc\theta_c上所有可能的取值中,找到一個能使數據出現的“可能性”最大的值。

式(1)中的連乘操作容易造成下溢,通常使用對數似然(log-likelihood)
L(θc)=logP(Dcθc)=xDclogP(xθc)(2) \begin{aligned} L\left(\theta_{c}\right) &=\log P\left(D_{c} | \theta_{c}\right) \\ &=\sum_{x \in D_{c}} \log P\left(x | \theta_{c}\right) \end{aligned}\tag{2}
此時的參數θc\theta_c的極大似然估計θc^\hat{\theta_c}
θ^c=argmaxθcL(θc)(3) \hat{\theta}_{c}=\underset{\theta_{c}}{\arg \max } L\left(\theta_{c}\right)\tag{3}

【例 1】假設一個袋子裝有白球與紅球,比例未知,現在抽取10次(每次抽完都放回,保證事件獨立性),假設抽到了7次白球和3次紅球,在此數據樣本條件下,採用極大似然估計法求解袋子中白球的比例。

【解】設θ\theta爲袋子中白球的比例,根據公式(1)可以建立實際情況下的概率
P(x1,x2,,x10θ)=P(x1θ)P(x2θ)P(x10θ)(4) P\left(x_1,x_2,\ldots,x_{10} | \theta\right)=P\left(x_1|\theta\right) \cdot P\left(x_2|\theta\right) \ldots P\left(x_{10}|\theta\right)\tag{4}
對數似然爲
L(θ)=lnP(x1,x2,,x10θ)=ln[θ7(1θ)3](5) L(\theta)=\ln P\left(x_1,x_2,\ldots,x_{10} | \theta\right)=\ln \left[\theta^7(1-\theta)^3\right]\tag{5}
θ\theta求導數可以得到
L(θ)=7θ31θ=0θ^=0.7(6) L^{\prime}(\theta)=\frac{7}{\theta}-\frac{3}{1-\theta}=0 \Rightarrow \hat{\theta}=0.7 \tag{6}
由此可得,當抽取白球的概率爲0.7時,最可能產生10次抽取抽到白球7次的事件。

【例 2】假設有一組採樣值(x1,x2,,xn)(x_1,x_2,\ldots,x_n)服從正態分佈N(μ,σ2)N(\mu,\sigma^2),採用極大似然估計法估計參數,使得產生這個採樣值的概率最大。

【解】正態分佈的概率爲
f(x)=12πσexp((xμ)22σ2)(7) f(x)=\frac{1}{\sqrt{2 \pi} \sigma} \exp \left(-\frac{(x-\mu)^{2}}{2 \sigma^{2}}\right)\tag{7}
則產生採樣值(x1,x2,,xn)(x_1,x_2,\ldots,x_n)的概率爲
P(x1,x2,,xnθ)=(12πσ)nexp(12σ2i=1n(xiμ)2)(8) P\left(x_{1}, x_{2}, \ldots, x_{n} | \theta\right)=\left(\frac{1}{\sqrt{2 \pi} \sigma}\right)^{n} \exp \left(-\frac{1}{2 \sigma^{2}} \sum_{i=1}^{n}(x_i-\mu)^{2}\right) \tag{8}
對上式兩邊取對數可以得到
L(θ)=lnP(x1,x2,,xnθ)=nln12πσ12σ2i=1n(xiμ)2(9) L(\theta)=\ln P\left(x_1,x_2,\ldots,x_{n} | \theta\right)=n\ln\frac{1}{\sqrt{2 \pi} \sigma}-\frac{1}{2 \sigma^{2}} \sum_{i=1}^{n}(x_i-\mu)^{2}\tag{9}
θ\theta有兩個參數μ,σ2\mu,\sigma^2,對μ\mu求偏導數得
L(θ)μ=1σ2i=1n(μxi)=0(10) \frac{\partial L(\theta)}{\partial \mu}=-\frac{1}{\sigma_{2}}\sum_{i=1}^{n}(\mu-x_i)=0\tag{10}
可以得到
μ^=1ni=1nxi(11) \hat{\mu}=\frac{1}{n}\sum_{i=1}^{n}x_i\tag{11}
σ2\sigma^2求偏導數得
L(θ)σ2=n+1σ2i=1n(xiμ^)2=0(12) \frac{\partial L(\theta)}{\partial \sigma^{2}}=-n+\frac{1}{\sigma^{2}} \sum_{i=1}^{n}(x_i-\hat{\mu})^{2}=0\tag{12}
可以得到
σ2^=1ni=1n(xiμ^)2(13) \hat{\sigma^{2}}=\frac{1}{n}\sum_{i=1}^{n}(x_i-\hat{\mu})^{2}\tag{13}

三、參考

[1] 周志華. 機器學習, 清華大學出版社

[2] 簡書博客

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章