參數線性迴歸和梯度下降

本文大量摘自Rachel-Zhang的CSDN博客,侵聯刪。

背景

作爲一枚本科木有接觸過機器學習而第一份工作就是機器學習相關的本科渣渣。目前硬着頭皮邊學邊用一些機器學習相關的基礎內容,寫到博客裏mark一下,會大量摘抄各位神犇的博客,如有侵權,請聯繫我,我會及時刪除。

單參數線性迴歸

參數線性迴歸是給出一系列點假設擬合直線爲h(x)=theta0+theta1*x, 記Cost Function爲:
m是樣本數量, xi代表第i個樣本的特徵, yi代表第i個樣本的實際值(0或者1)。
看着很像方差吧,如何評價這個直線是否擬合得好呢,就是求這個J的最小值。我們的目的就是找到合適的theta0 和 theta1使得J最小。我們假設theta0=0,那麼這個就變成了一個二次函數。

二次函數求極值大家應該都知道怎麼求。
如果theta != 0,是一個二元二次函數。就是一個三維的

此處盜圖

啊這是兩個參數的情況,像是一個3D的碗型。在實際情況中,會有很多參數,就不是圖形能體現的了。大家懂這個意思就行了。

梯度下降


那麼我們如何求這個J函數的最小值呢?其實就像下山一樣,我們在山上也沒法直接到谷底啊,除非你跳崖,問題是就算你能保證你跳崖之後完好無損,你能保證你跳崖的姿勢正確能跳到谷底麼?所以我們還是一小步一小步地走到谷底吧,步子別太大了,容易扯到蛋。
我們先在山上選一個點,其實這個點就是由theta0 和 theta1 組成的座標點,然後往下山的方向走一小步,別往山上走啊。

就這樣摩擦摩擦,似魔鬼的步伐,一步兩步、一步兩步,慢慢下山了。
那麼現在問題來了:

如果你步子邁得太小了,走到猴年馬月啊。


如果你步子邁得太大了。各種來回晃悠,所以這個步長的選擇很重要。


求導過程就省略了,看不懂的就自行先補習高等數學吧。




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