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

Linear regression with one variable

本文主要介紹單變量線性迴歸的解決方法以及方法的思想。

綜述

以預測房價爲例,我們要進行如下步驟:

在這裏插入圖片描述
簡單來說,我們把數據集(訓練集)在二維平面上標記出來,嘗試用一條直線去擬合數據並儘量擬合的好,那麼我們預測房價時,只需輸入x(某一特徵,比如面積),就可根據那條直線得出預測的房價(y)。比如:

在這裏插入圖片描述
假設上面圖中那條黑線就是擬合最好的直線,那麼如果我們想知道一間面積爲750單位的房子價格爲多少,通過線性迴歸後我們就可以得出大概:
在這裏插入圖片描述
以上,就是對線性迴歸的大體認識,接下來開始進行一步一步的分析。

代價函數(Cost Function)

代價函數:又叫損失函數或成本函數,它是將一個或多個變量的事件閾值映射至直觀地表示該事件。如果不懂,沒有關係,我們只需要知道它是用來找到最優解地目的函數就行了。

在單變量線性迴歸中,以上面的例子爲例,我們只有一個特徵即房價,用來擬合數據的是一條直線,那麼我們可以得出假設函數(Hypothesis):

在這裏插入圖片描述

而我們要做的,就是找出兩個參數的值,使假設函數更好地擬合訓練集。
在單變量線性迴歸中,我們定義代價函數如下:

在這裏插入圖片描述

在線性迴歸中,我們要解決的就是一個最小化問題,即減小來自訓練集的真實值y與我們假設函數輸出的預測值h(x)的差的平方,對所有訓練集中的樣本進行以上操作,即公式中的求和部分。不要忘了我們的目標:找到能使預測值和真實值的差的平方和的1/2m最小的兩個θ值。

梯度下降(Gradient descent)

我們已經有了代價函數J,我們想要找到使J最小的兩個θ值,那麼我們如何做呢?這裏要介紹一下一種常見的算法——梯度下降,它不僅被用在線性迴歸中,還被廣泛適用於機器學習的衆多領域。
那麼梯度下降到底是什麼呢?
梯度下降的思想是:

  • 我們給定兩個θ的初始值,通常令兩個θ等於0;
  • 我們不停地一點點改變兩個θ值,使J變小,直到找到J的最小值或者局部最小值。

用例子來解釋一下:

在這裏插入圖片描述
假如這是我們想要進行梯度下降優化的函數,假設我們此時站在左邊的頂部紅色區域,我們現在想要下去,我們站在頂部,環顧四周,如果要在某個方向上走一步,我應該走哪裏呢?重複這個問題,直到我們下去爲止,路徑是這樣的:

在這裏插入圖片描述

就是:重複至收斂
給出公式:
在這裏插入圖片描述

其中“:=”是一個賦值運算符,其中α爲學習率:它用來控制梯度下降時,我們邁出多大的“步子”,若α很大,梯度下降會很快。對於高數好一點的同學來講,這個公式這並不難懂,我們用單變量來理解一下:

在這裏插入圖片描述
紅框的部分代表的就是那一點的斜率,此時斜率爲負值,那麼θ會變大,即往右邊挪,這不正是我們想要的嗎?讓θ挪動至那個“碗底”。再來看一個例子:

在這裏插入圖片描述
此時,斜率爲正數,隨着迭代次數的增長,θ會變小,最終我們得到使J(θ)最小的θ值。

以上,就是梯度下降的基本思想,接下來我們就把梯度下降帶到線性迴歸中吧!

單變量線性迴歸的梯度下降

我們結合梯度下降和代價函數即可得到一個線性迴歸算法,用直線模型來擬合數據。
結合上面那兩個公式,我們可以得到:

在這裏插入圖片描述
如果有興趣可以進一步算下去,畢竟這是微積分的知識,如果不會算,直接看下面然後掌握就行了:
在這裏插入圖片描述
記住在梯度下降時要同步更新!
另外一點:不用擔心陷入局部最優的問題(即從不同的點出發會得到不同的結果),因爲線性迴歸的代價函數總是像下圖一樣的弓狀函數,這個函數無局部最優解,只有一個全局最優,只要使用梯度下降,它總會收斂至全局最優:

在這裏插入圖片描述
單變量線性迴歸的介紹就到這裏啦!手打公式真的太麻煩了,如果覺得有用就給我個贊吧,下一次我會帶大家做一個實例來更深的認識線性迴歸,我也會盡快更新多變量線性迴歸的。
我也是一名學生,如果有建議或者問題請聯繫[email protected],同時還請您關注我的公衆號以便第一時間獲取最新文章,我們一起進步!
在這裏插入圖片描述

感謝您的閱讀!如需轉載,請註明原文出處,作者:vergilben

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