1.2 线性回归与梯度下降-机器学习笔记-斯坦福吴恩达教授
線性回歸
首先,我們明確幾個常用的數學符號:
- 特征(feature):xix_ixi? , 比如,房屋的面積,臥室數量都算房屋的特征
- 特征向量(輸入):xxx ,一套房屋的信息就算一個特征向量,特征向量由特征組成, xj(i)x^{(i)}_jxj(i)? 表示第 iii 個特征向量的第 jjj 個特征。
- 輸出向量: yyy , y(i)y^{(i)}y(i) 表示了第 iii 個輸入所對應的輸出
- 假設(hypothesis):也稱為預測函數,比如一個線性預測函數是:
hθ(x)=θ0+θ1x1+θ2x2+?+θnxn=θTxh_θ(x)=θ_0+θ_1x_1+θ_2x_2+?+θ_nx_n=θ^Txhθ?(x)=θ0?+θ1?x1?+θ2?x2?+?+θn?xn?=θTx
上面的表達式也稱之為回歸方程(regression equation), θθθ 為回歸系數,它是我們預測準度的基石。
誤差評估
之前我們說到,需要某個手段來評估我們的學習效果,即評估各個真實值 y(i)y^{(i)}y(i) 與預測值 hθ(x(i))h_θ(x^{(i)})hθ?(x(i)) 之間的差異。最常見的,我們通過最小均方(Least Mean Square) 來描述誤差:
J(θ)=12m∑i=1m(hθ(x(i))?y(i))2,m為樣本數J(θ)=\frac{1}{2m}∑_{i=1}^m(h_θ(x^{(i)})?y^{(i)})^2,\quad m 為樣本數J(θ)=2m1?i=1∑m?(hθ?(x(i))?y(i))2,m為樣本數
其矩陣表達為:
J(θ)=12m(Xθ?y)T(Xθ?y)J(θ)=\frac {1}{2m}(Xθ?y)^T(Xθ?y)J(θ)=2m1?(Xθ?y)T(Xθ?y)
誤差評估的函數在機器學習中也稱為代價函數(cost function)。
批量梯度下降
在引入了代價函數后,解決了“有手段評估學習的正確性”的問題,下面我們開始解決“當學習效果不佳時,有手段能糾正我們的學習策略”的問題。
首先可以明確的是,該手段就是要反復調節 θθθ 是的預測 J(θ)J(θ)J(θ) 足夠小,以及使得預測精度足夠高,在線性回歸中,通常使用梯度下降(Gradient Descent) 來調節 θθθ :
θj=θj?α??θjJ(θ),α為學習率θ_j=θ_j?\alpha \frac {?}{?θ_j}J(θ), \quad α 為學習率θj?=θj??α?θj???J(θ),α為學習率
數學上,梯度方向是函數值下降最為劇烈的方向。那么,沿著 J(θ)J(θ)J(θ) 的梯度方向走,我們就能接近其最小值,或者極小值,從而接近更高的預測精度。學習率 α\alphaα 是個相當玄乎的參數,其標識了沿梯度方向行進的速率,步子大了容易扯著蛋,很可能這一步就邁過了最小值。而步子小了,又會減緩我們找到最小值的速率。在實際編程中,學習率可以以 3 倍,10 倍這樣進行取值嘗試,如:
α=0.001,0.003,0.01…0.3,1α=0.001,0.003,0.01…0.3,1α=0.001,0.003,0.01…0.3,1
對于一個樣本容量為 mmm 的訓練集,我們定義 θθθ 的調優過程為:
\quad\quad重復直到收斂(Repeat until convergence):
θj=θj+α1m∑i=1m(y(i)?hθ(x(i)))xj(i)θ_j=θ_j+\alpha \frac1{m}∑_{i=1}^m(y^{(i)}?h_θ(x^{(i)}))x^{(i)}_jθj?=θj?+αm1?i=1∑m?(y(i)?hθ?(x(i)))xj(i)?
該函數的矩陣(向量)表達如下:
θj=θj+α1m(y?Xθ)Txjθ_j=θ_j+\alpha \frac{1}{m}(y-Xθ)^Tx_jθj?=θj?+αm1?(y?Xθ)Txj?
其中,代價函數為:
θj=12m∑i=1m(hθ(x(i))?y(i))2θ_j=\frac1{2m}∑_{i=1}^m(h_θ(x^{(i)})?y^{(i)})^2θj?=2m1?i=1∑m?(hθ?(x(i))?y(i))2
我們稱該過程為基于最小均方(LMS)的批量梯度下降法(Batch Gradient Descent),一方面,該方法雖然可以收斂到最小值,但是每調節一個 θjθ_jθj? ,都不得不遍歷一遍樣本集,如果樣本的體積 mmm 很大,這樣做無疑開銷巨大。但另一方面,因為其可化解為向量型表示,所以就能利用到并行計算優化性能。
隨機梯度下降
鑒于批量梯度下降的性能問題,又引入了隨機梯度下降(Stochastic Gradient Descent):
重復直到收斂(Repeatuntilconvergence):重復直到收斂(Repeat \quad until\quad convergence):重復直到收斂(Repeatuntilconvergence):
fori=1tom:for \quad i=1\quad to\quad m:fori=1tom:
θj=θj+α(y(i)?hθ(x(i)))xj(i)θ_j=θ_j+\alpha (y^{(i)}?h_θ(x^{(i)}))x^{(i)}_jθj?=θj?+α(y(i)?hθ?(x(i)))xj(i)?
可以看到,在隨機梯度下降法中,每次更新 θjθ_jθj? 只需要一個樣本: (x(i),y(i))(x^{(i)},y^{(i)})(x(i),y(i)) 。即便在樣本集容量巨大時,我們也很可能迅速獲得最優解,此時 SGD 能帶來明顯的性能提升。
總結
以上是生活随笔為你收集整理的1.2 线性回归与梯度下降-机器学习笔记-斯坦福吴恩达教授的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 1.1 回归问题-机器学习笔记-斯坦福吴
- 下一篇: 1.3 程序示例--梯度下降-机器学习笔