更新、更全的《機器學習》的更新網站,更有python、go、數據結構與算法、爬蟲、人工智能教學等着你:http://www.javashuo.com/article/p-vozphyqp-cm.htmlpython
極大似然估計是創建在最大似然原理的基礎上的一個統計方法。極大似然估計提供了一種給定觀察數據來評估模型參數的方法,即「模型已定,參數未知」。經過觀察若干次實驗的結果,利用實驗結果獲得某個參數值可以使樣本出現的機率最大,則稱爲極大似然估計。算法
簡而言之,極大似然估計的目的是利用已知的樣本結果,反推最有可能致使這樣結果的參數值。數據結構
假設一個樣本集\(D\)的\(n\)個樣本都是獨立同分布的,而且該樣本集爲
\[ D={x_1,x_2,\ldots,x_n} \]
似然函數(likelihood function):聯合機率密度函數\(p(D|\theta)\)稱爲相對於\({x_1,x_2,\ldots,x_n}\)的\(\theta\)的似然函數。
\[ l(\theta) = p(D|\theta) = p(x_1,x_2,\ldots,x_n|\theta) = \prod_{i=1}^n p(x_i|\theta) \]機器學習
若是\(\hat{\theta}\)是\(\theta\)參數空間中能使似然函數\(l(\theta)\)最大的\(\theta\)值,則\(\hat{\theta}\)是最可能的參數值,那麼\(\hat{\theta}\)是\(\theta\)的最大似然估計量,記做
\[ \hat{\theta} = d(x_1,x_2,\ldots,x_n) = d(D) \]
而且\(\hat{\theta}(x_1,x_2,\ldots,x_n)\)稱做極大似然函數估計值。函數
給出求解最大\(\theta\)值的公式
\[ \hat{\theta} = arg \underbrace{max}_\theta l(\theta) = arg \underbrace{max}_\theta \prod_{i=1}^n p(x_i|\theta) \]
爲了方便計算,定義對數似然函數\(H(\theta)\),即對似然函數求對數
\[ H(\theta) = \ln{l(\theta)} \]
所以求最大\(\theta\)值的公式變成了
\[ \hat{\theta} = arg \underbrace{max}_\theta H(\theta) = arg \underbrace{max}_\theta \ln{l(\theta)} = arg \underbrace{max}_\theta \prod_{i=1}^n \ln{p(x_i|\theta)} \]
而且能夠發現公式中只有一個變量\(\theta\)學習
若是\(\theta\)爲標量,在似然函數知足連續、可微的狀況下,則極大似然估計量是下面微分方程的解
\[ {\frac{dH(\theta)}{d\theta}} = {\frac{d\ln{l(\theta)}}{d\theta}} = 0 \]網站
若是\(\theta\)爲\(k\)維向量,能夠把\(\theta\)記做\(\theta = [\theta_1,\theta_2,\ldots,\theta_k]^T\),對\(\theta_1,\theta_2,\ldots,\theta_k\)求梯度,可得
\[ \Delta_\theta=[{\frac{\partial}{\partial_{\theta_1}}},{\frac{\partial}{\partial_{\theta_2}}},\cdots,{\frac{\partial}{\partial_{\theta_s}}}]^T \]
若是似然函數知足連續、可導的狀況下,則最大似然估計量就是以下方程的解:
\[ \Delta_\theta{H(\theta)} = \Delta_\theta\ln{l(\theta)} = \sum_{i=1}^n \Delta_\theta \ln(p(x_i|\theta)) = 0 \]人工智能
方程的解只是一個估計值,只有在樣本趨於無限多的時候,纔會逐漸接近真實值。spa