1. 程式人生 > >機器學習之線性迴歸極大似然估計法

機器學習之線性迴歸極大似然估計法

leboop文章,禁止轉載!

請閱讀《機器學習之矩陣微積分及其性質》和《機器學習之線性迴歸公式推導》。首先我們還是使用如下的資料:

  feature_1 feature_2   feature_n value
1 x_{11} x_{12} ... x_{1n} y_1
2 x_{21} x_{22} ... x_{2n} y_2

     .

     .

     .

           .

           .

           .

           .

           .

           .

 

           .

           .

           .

           .

           .

           .

m x_{m1} x_{m2} ... x_{mn} y_m

 假設現在y和特徵(x_1,x_2,...,x_n)之間不再是簡單的線性組合,除了線性關係外,還存在一種噪聲,數學表述如下: y=c_0+c_1x_1+...+c_nx_n+\varepsilon,其中\varepsilon服從期望為0,方差為\sigma^2的正態分佈,即\varepsilon \sim N(0,\sigma^2).

因為c_0+c_1x_1+...+c_nx_n對於\varepsilon來說是常量,如果\varepsilonx_i之間相互獨立,那麼y也是一個隨機變數,且服從正態分佈,又因為y的期望Ey和方差Dy

Ey\\ =E(c_0+c_1x_1+...+c_nx_n+\varepsilon)\\ =E(c_0+c_1x_1+...+c_nx_n)+E\varepsilon\\ =c_0+c_1x_1+...+c_nx_n+0\\ =c_0+c_1x_1+...+c_nx_n

Dy\\ =D(c_0+c_1x_1+...+c_nx_n+\varepsilon)\\ =D(c_0+c_1x_1+...+c_nx_n)+D\varepsilon\\ =0+\sigma^2\\ =\sigma^2

所以y服從的是期望為c_0+c_1x_1+...+c_nx_n,方差為\sigma^2的一個正態分佈,即y \sim N(c_0+c_1x_1+...+c_nx_n,\sigma^2)

m次獲得的資料代入,有y_i \sim N(c_0+c_1x_{i1}+...+c_nx_{in},\sigma^2)。也就是說每一次獲得的資料y_i服從正態分佈,那麼肯定有人會問,那表格中的y_i是什麼?應該這樣來理解:y_i是一個服從正態分佈的隨機變數,而表中的y_i只是一次觀察值,而該次觀測值為y_i的概率

P(y_i)=f(y_i)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{[y_i-(c_0+c_1x_{i1}+...+c_nx_{in})]^2}{2\sigma^2}}

(正態分佈密度函式:f(x)=\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{(x-\mu )^2}{2\sigma^2}}

按照《機器學習之線性迴歸公式推導》一文中符號約定:

m個數據矩陣:

\mathbf{X}=\begin{bmatrix} 1 &x_{11} &... &x_{1n} \\ 1&x_{21} &... &x_{2n} \\ \vdots &\vdots & &\vdots \\ 1&x_{m1} &... &x_{mn} \end{bmatrix}

真實值:

\mathbf{y}=\begin{bmatrix} y_1\\ \vdots\\ y_m \end{bmatrix}

預測值:

\mathbf{\hat{y}}=\begin{bmatrix} \hat{y_1}\\ \vdots\\ \hat{y_m} \end{bmatrix}

係數:

\mathbf{c }=\begin{bmatrix} c_0\\ \vdots\\ c_n \end{bmatrix}

考慮到y_i之間是相互獨立的,所以m個觀測值取值為\mathbf{y}的概率為

P(\mathbf{y})=\prod_{i=1}^{m}P(y_i).

注意到P(\mathbf{y})是關於\mathbf{c}\sigma^2的函式。直覺告訴我們,使P(\mathbf{y})取最大值的\mathbf{c}\sigma^2應該是我們需要的,從概率統計角度來說,滿足P(\mathbf{y})取最大值的\mathbf{c}\sigma^2會使我們的觀測資料等於y_i的概率最大,獲得像表格這樣的資料具有更大的可能性。所以優化問題變為:

                                                                                         \max_{\mathbf{c},\sigma^2}P(\mathbf{y})

現在我們就來求解這個優化問題。

P(\mathbf{y})=\prod_{i=1}^{m}P(y_i)=\prod_{i=1}^{m}\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{||\mathbf{y}-\hat{\mathbf{y}}||_2^2}{2\sigma^2}}

兩邊取對數,有

lnP(\mathbf{y})=\sum_{i=1}^{m}ln(\frac{1}{\sqrt{2\pi}\sigma}e^{-\frac{||\mathbf{y}-\hat{\mathbf{y}}||_2^2}{2\sigma^2}})\\ =\sum_{i=1}^{m}(ln\frac{1}{\sqrt{2\pi}\sigma}-\frac{||\mathbf{y}-\hat{\mathbf{y}}||_2^2}{2\sigma^2})

所以優化問題\max_\mathbf{c}P(\mathbf{y})等價於\min_\mathbf{c}||\mathbf{y}-\hat{\mathbf{y}}||^2_2,根據《機器學習之線性迴歸公式推導》,我們得到\mathbf{c}的估計值\mathbf{\hat{c}}

\mathbf{\hat{c}}=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y}

這個結果與我們未引入噪聲項是一樣的,但是請注意,這裡\mathbf{\hat{c}}只是\mathbf{c}的一個估計值。實際上它是一個由隨機變數組成的向量。因為

\mathbf{y}=\mathbf{Xc+\varepsilon },限於CSDN無法用黑體表示向量\varepsilon,暫且記住\varepsilon是一個向量,

\mathbf{\hat{c}}=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\mathbf{y}=(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T(\mathbf{Xc+\varepsilon })=\mathbf{c}+(\mathbf{X}^T\mathbf{X})^{-1}\mathbf{X}^T\varepsilon

所以\mathbf{\hat{c}}確實是一個隨機變數,因為這裡涉及到比較複雜的概率論知識,暫且不詳細討論。

\max_{\sigma^2}P(\mathbf{y})優化只需要lnP(\mathbf{y})\sigma^2求偏導,所以

\frac{\partial lnP(\mathbf{y})}{\partial \sigma^2}=0

可以求得\sigma^2的估計值\hat{\sigma^2}=||\mathbf{X\hat{c}-y}||_2^2

 

再次提醒:這裡\mathbf{c}\sigma^2都是隨機變數,其中\mathbf{c}是由隨機變數組成的隨機向量。