機器學習筆記1——單變量線性迴歸

關鍵字:代價函數,梯度下降,學習速率,batch梯度下降法

話說這個梯度下降法我們的專業課數值線性代數是有的,突然發現數值線性代數果然是有用的啊

1、梯度下降法

算法(一個形象的說法:盲人下山)

注意點:所有的參數都要同時更新

1.1 代價函數

J爲代價函數,吳恩達老師舉例:平方差代價函數

如果想求代價函數J的最小值,可以採用梯度下降法

1.2 .學習速率

這裏的參數alpha稱爲學習速率,爲正數,控制每次的步長

alpha的大小需要控制,如果太大的話最後不會收斂甚至可能發散

alpha爲常數:接近局部最優解時,不需要減小alpha,因爲到達最優解時導數越來越趨近於0,此時alpha不動,會自動越來越小,就是每一步越來越小,與我們的常識是一致的。如圖所示:


學習速率的選取:

    可以畫出迭代次數與代價函數的圖像

    1.良好情況下,代價函數會降低,最後趨向平穩,這個時候的alpha的選擇就比較好。

    2.但是如果alpha太大,那麼圖像就像這樣

    這個時候就是步長太大了,對於一個圖像爲的原函數,顯然就是步      長太大造成的錯誤

    3.如果代價函數如下

    那麼應該選擇較小的alpha

1.3 應用:不僅可以應用於線性迴歸,也可以應用於非線性迴歸模型。

2.線性迴歸模型

線性方程 和 平方和代價函數

3、Batch梯度下降法

3.1 算法

線性迴歸模型化簡後的梯度下降法如下,這裏的J採用平方差代價函數


不斷的更新參數

分析:

右邊的圖像一個等高線圖,在同一圈上的參數對應的代價函數的值都一樣的

右圖實際上是一個3D圖,第三維是代價函數J,在最裏面的小圓點J是最小的,就像碗的碗底,這是一個凸函數,從碗底往上依次J變大,這個形狀就像一個碗

左圖的點是一些已知數據,要做的就是儘可能貼合他們,即使得J最小

藍線爲線性模型,包含參數seta1和seta2

目標:使得藍線儘可能擬合數據

過程:通過seta1 seta2不斷接近底部,代價函數達到最小,那麼擬合的效果就達到最小,對應左邊有一個最佳擬合直線

如下圖爲最終結果


3.2 總結

顯然這個方法用到了所有的數據,因爲J是根據所有的數據求來的,適用於較大的數據集

懸念:還可以用高等代數的正規劃方程組的方法求得最佳參,此時不需要遍歷整個訓練集的樣本

4.正則化方程組(用於求得最佳參數)

這個方法可以一次性求得最佳參數,不需要經過迭代,是數值線性代數裏面的直接法而不是迭代法。



當特徵小於10000時比較適合


這是觀看吳恩達網易雲機器學習系列做的筆記

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