線性迴歸(Linear Regression)

斯坦福大學 Andrew Ng老師的課程筆記。
假設我們得到一些房價的數據。
在這裏插入圖片描述
這裏的房價與兩個參數有關,一個是房子的面積與房子中臥室的數量。
所以我們設置學習函數h如下:
在這裏插入圖片描述
θ表示要學習的參數(權重),x爲提取的數據特徵。這裏x1就表示房子的面積,x2表示房子中的臥室數量。其中人爲規定x0爲1。
爲了後面推導方便,這裏簡化公式。
在這裏插入圖片描述
將數據特徵x帶入h函數中即可得到預測值y’。但是我們如何學習θ,如何讓預測值y’儘可能接近真實房價?
這裏需要定義一個損失函數(cost function)J(θ)。
在這裏插入圖片描述
我們現在的目標是找到最優的θ值去最小化J(θ)。
使用最小均方算法(Least Mean Square)來更新θ的值。更新公式如下:
在這裏插入圖片描述
有點像梯度下降法,簡單介紹一下梯度下降法,類似於下山。人身處於山上的一個隨機位置,環顧四周後,選擇坡度最陡的地方下山,每走一步就環顧一下四周,走下一步。每一步的步長就是α(學習率)。
梯度爲在這裏插入圖片描述,因爲是下山所以應該是負號,再加上原來的θ值。
下面是梯度公式的推導過程。
在這裏插入圖片描述
其中xj爲數據的第j個特徵,對應第j個權重θ。
所以θ最終的更新公式爲:在這裏插入圖片描述

我其實並太不清楚LMS算法與GD算法之間的區別。。。

梯度下降法(Gradient Descent,GD)

梯度下降法不一定能夠找到全局的最優解,有可能是一個局部最優解。當然,如果損失函數是凸函數,梯度下降法得到的解就一定是全局最優解。
批梯度下降(Batch Gradient Descent,BGD):
在這裏插入圖片描述
m爲樣本總量,BGD能最快的收斂到全局最優處,但是收斂時間太長,而且有些時候,我們只需要收斂在全局最優處就行,這樣的結果泛化程度比較好。

爲了縮短訓練的時間,於是有了下面這一種梯度下降法。
隨機梯度下降(Stochastic Gradient Descent,SGD):
在這裏插入圖片描述
每次更新權重,只選取樣本數據中的一條。可以隨機選取,也可以順序選取。
雖然收斂的速度比較慢,甚至還會出現向高處收斂的情況,但是訓練次數足夠,也能收斂到全局最優處附近。

小批量梯度下降(Mini-Batch Gradient Descent, MBGD)
與第一種批量梯度下降法公式可以說相同,只不過m的取值可以自己定義,不需要每次都遍歷完所有的樣本數據。這樣不僅可以加快收斂速度,也不產生太大誤差。

在這裏插入圖片描述

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