1. 程式人生 > >機器學習經典演算法總結 一.線性迴歸

機器學習經典演算法總結 一.線性迴歸

一.基本形式 hθ(x)=θ0+θ1x1+θ2x2+....+θnxn=θTxh_θ(x)=θ_0+θ_1x_1+θ_2x_2+....+θ_nx_n=θ^Tx

二.損失函式

最常用的效能度量是均方誤差(Mean Square Error) MSE=1mi=1m(hθ(x(i))y(i))2MSE=\frac{1}{m}\sum_{i=1}^{m}(h_θ(x^{(i)})-y^{(i)})^2

為了求解引數方便起見,設損失函式為J(θ),令J(θ)=12

i=1m(hθ(x(i))y(i))2J(θ)=\frac{1}{2}\sum_{i=1}^{m}(h_θ(x^{(i)})-y^{(i)})^2

目標就是通過最小化該損失函式minθJ(θ)min_θJ(θ),從而求得引數θ,進而得到線性迴歸模型。

三.推導過程

最小二乘法(Least Square Method) 這裡的損失函式之所以使用平方形式,是因為使用了"最小二乘法"的思想。這裡的“二乘”指的是用平方來度量觀測點與估計點的距離(遠近),“最小”指的是引數值要保證各個觀測點與估計點的距離的平方和達到最小。

最小二乘法以估計值與觀測值的平方和作為損失函式,在誤差服從正態分佈的前提下,與極大似然估計的思想在本質上是相同。

接下來從概率的角度來討論下為什麼損失函式要採用上面的形式

設真實值與預測值之間的誤差為ϵ(i)=hθ(x(i))y(i)\epsilon^{(i)}=h_θ(x^{(i)})-y^{(i)}

我們把輸入y看成是隨機變數。此時, y(i)=θTx(i)+ϵ(i)y^{(i)}=θ^T x^{(i)}+ϵ^{(i)}。

ϵ可以代表各種誤差,比如測量誤差,或者因為其他未知的特徵x引起的誤差。假設這些誤差都是獨立同分布的,那麼由大數定律可知ϵ

(i)N(0σ2),ϵ^{(i)}∼N(0,σ^2), p(ϵ(i))=12πσexp((ϵ(i))22σ2)p(ϵ^{(i)})=\frac{1}{\sqrt{2π}σ}exp(−\frac{(ϵ^{(i)})^2}{2σ^2})。

將誤差代入以上公式,可以得y(i)x(i);θN(θTx(i)σ2)y^{(i)}|x^{(i)};θ∼N(θ^Tx^{(i)},σ^2) p(y(i)x(i);θ)=12πσexp((y(i)θTx(i))22σ2)p(y^{(i)}|x^{(i)};θ)=\frac{1}{\sqrt{2π}σ}exp(−\frac{(y^{(i)}−θ^Tx^{(i)})^2}{2σ^2})。

注意,這裡p(y(i)x(i);θ)p(y^{(i)}|x^{(i)};θ)不等同於p(y(i)x(i)θ)p(y^{(i)}|x^{(i)},θ),前者θ預設為是一個固定的值,一個本身就存在的最佳引數矩陣;而後者認為θ是一個變數(統計學中Frequentist和Bayesian 的差別)。

此時,我們已知了y的概率分佈,因為ϵ是獨立同分布的,所以每個樣本的輸出y也是獨立同分布的。那麼就可以用極大似然估計(MLE)來估計θ。似然函式為 L(θ)=i=1mp(y(i)x(i);θ)=i=1m12πexp((y(i)θTx(i))22σ2)L(θ)=\prod_{i=1}^mp(y^{(i)}|x^{(i)};θ)=\prod_{i=1}^m\frac{1}{\sqrt{2π}}exp(−\frac{(y^{(i)}−θ^Tx^{(i)})^2}{2σ^2})

ln似然函式得 (θ)=logL(θ)=mlog12π1σ212i=1m(y(i)θTx(i))2ℓ(θ)=logL(θ)=mlog\frac{1}{\sqrt{2π}}−\frac{1}{σ^2}⋅\frac{1}{2}\sum_{i=1}^m(y^{(i)}−θ^Tx^{(i)})^2。

可以看出,MLE的最終結果就是要最小化 12i=1m(y(i)hθ(x(i)))2\frac{1}{2}\sum_{i=1}^m(y^{(i)}-h_θ(x^{(i)}))^2,

這恰好就是前面的損失函式。

四.求解引數

梯度下降(Gradient Descent)

θ:=θαθJ(θ)θ:=θ-\alpha\cdot\nabla_θJ(θ) J(θ)θj=i=1m(hθ(x(i)y(i))xj(i)\frac{\partial{J(θ)}}{\partial{θ_j}}=\sum_{i=1}^m(h_θ(x^{(i})-y^{(i)})x^{(i)}_j