Coursea-吳恩達-machine learning學習筆記(二)【week 1之Linear Regression with One Variable】

線性迴歸算法中特定的符號表示:
m :表示訓練樣本的數目;
x :表示輸入的特徵;
y :表示輸出變量或目標變量;
(x,y) :表示一個訓練樣本;
(x(i),y(i)) :表示第i 個訓練樣本;
h :表示假設函數,表示從xy 的函數映射;

單變量的線性迴歸模型:hθ(x)=θ0+θ1x
其中,θ0,θ1 爲模型參數;

線性迴歸算法的目標爲選擇θ0,θ1 ,使hθ(x) 最接近樣本對應的y 值,即尋找θ0θ1 ,使

12mi=1m(hθ(x(i))y(i))2

12mi=1m(hθ(x(i))y(i))2 表示平均誤差,其中,12 是爲了方便後續梯度下降算法的計算。

引入代價函數的概念:

J(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2
代價函數也稱平方誤差函數或平方誤差代價函數,爲了評價hθ(x) 的準確性,算法的目的是讓J(θ0,θ1) 儘可能小。

平方誤差代價函數是解決迴歸問題最常用的手段。

算法簡化:
θ0=0 ,則hθ(x)=θ1x ,模型參數只剩下θ1 ,代價函數變爲

J(θ1)=12mi=1m(hθ(x(i))y(i))2
算法目標變爲求
minθ1J(θ1)

帶入訓練集樣本數據,發現J(θ1) 是一個下凸曲線,找到令J(θ1) 取值最小的θ1

J(θ1,θ0) 同理,可用輪廓圖表示:
輪廓圖中同一個圓圈表示$J(\theta_1,\theta_0)$取值相同

梯度下降算法:可以使代價函數最小化。
算法定義:
repeat until convergence{

θj:=θjαθjJ(θ0,θ1)(for j=0 and j=1)
}
:=爲賦值運算符;
α 爲一個數字,稱爲學習速率,控制梯度下降步幅。

θ0,θ1 正確的更新方法:
temp0:=θ0αθ0J(θ0,θ1)
temp1:=θ1αθ1J(θ0,θ1)
θ0:=temp0
θ1:=temp1
θ0,θ1 要同時更新。

通常將θ0,θ1 均初始化爲0。

注:x 爲偏導數符號,ddx 爲導數符號

梯度下降算法中,若α 的值取得太小,梯度下降過於緩慢;若α 的值取得太大,可能導致無法收斂,甚至發散。
在梯度下降法中,當我們接近局部最低點時,梯度下降法會自動採取更小幅度,因爲當接近局部最低點時,θjJ(θ0,θ1) 導數值自動變得越來越小。

線性迴歸算法的梯度下降:
θjJ(θ0,θ1)=θj12mi=1m(hθ(x(i))y(i))2=θj12mi=1m(θ0+θ1x(i)y(i))2
j=0θ0J(θ0,θ1)=1mi=1m(hθ(x(i))y(i))=1mi=1m(θ0+θ1x(i)y(i))
j=1θ1J(θ0,θ1)=1mi=1m(hθ(x(i))y(i))x(i)=1mi=1m(θ0+θ1x(i)y(i))x(i)
即:
repeat until convergence{

θ0:=θ0α1mi=1m(hθ(x(i))y(i))θ1:=θ1α1mi=1m(hθ(x(i))y(i))x(i)θ0,θ1
}

批量梯度下降法(Batch Gradient Descent):梯度下降法最常用的形式,具體做法是在更新參數時使用所有的樣本來進行更新。

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