吳恩達機器學習系列1——單變數線性回歸

  今天是第二部分——單變數線性回歸,即監督學習中基於單個特徵輸入的線性回歸演算法。該部分主要了解的內容是單變數線性回歸演算法的模型表示,損失函數以及用於求解的梯度下降方法,這實際上也展示了一個完整的監督學習過程。

 

1、Model Representation

       在了解模型表示之前,我們需要明確監督學習演算法的工作方式。正如之前所言,學習演算法就是從數據中產生模型的演算法,因此我們首先需要有一個數據集即訓練集,然後將訓練集餵給預先設計好的演算法,也就是利用訓練集對演算法進行監督訓練,進而可以得到一個與原始數據擬合度最好的模型,也稱為假設(hypothesis),最後利用這個假設函數並輸入特徵值便可進行預測。

以基於房子面積的房價預測問題為例,首先我們獲取到了含有m條有關房子規格-價格(Size/x-Price/y)記錄的數據集(如圖)作為訓練集,其中Size為輸入特徵,Price為Size對應的標籤,一條記錄便是一個訓練實例,如第二個訓練實例(x^((2)),y^((2)))=(1416,232);

然後利用這些訓練實例對學習演算法進行監督,不斷修正模型的參數,便可得到最終的假設模型h。根據對數據集的可視化,可能適用於該房價預測問題的假設模型h的一種表達式就是h_θ (x)= θ_0+ θ_1 x,由於只含有一個特徵變數,所以又稱為單變數線性回歸問題。

 

2、Cost Function

       那麼,針對於假設函數h_θ (x)= θ_0+ θ_1x,我們應該如何去選擇合適的參數(θ_0與θ_1的取值)使得其與問題的特徵更加吻合呢?這就需要去衡量不同參數取值下,假設函數基於輸入特徵值所計算出來的預測值與實際值的差異程度,一般而言,我們會通過建立代價函數(Cost Function)來表示這種差異。其中,均方誤差是解決回歸問題時最常用的代價函數,即:

我們只需要求得使J(θ_0,θ_1 )的取值最小時的θ_0與θ_1即可,這時模型所得預測值與實際值的差異最小,J(θ_0,θ_1 )的值無限趨近於0。以θ_0,θ_1,J(θ_0,θ_1 )為坐標繪製等高線圖,則可以看出在代價函數的三維空間中存在J(θ_0,θ_1 )的最小值點(如圖)。

  

3、Gradient Descent

       梯度下降法是求解函數最小值的演算法,其思想是先設置初始的參數值組合併計算代價函數,然後尋找使代價函數的取值減小最多的下一個參數值組合(梯度的反方向是函數值減小最快的方向),不斷迭代直至符合精度要求,得到代價函數取局部極小值時的參數值組合(初始值不同結果可能不一)。

梯度下降演算法的公式如下:

梯度下降演算法迭代的關鍵有兩個,一是迭代的方向,即梯度的反方向-∂J(θ)/(∂θ_j ),這是使J(θ)下降最快的方向;二是學習率α,決定了下降長度的大小α過大可能導致越過最低點無法收斂,α過小可能導致迭代次數太多效率低下,可以根據迭代進行的次數合理設置。

       結合線性回歸模型、代價函數與梯度下降,我們就得到了線性回歸演算法:

  

4、Summary

       監督學習中的線性回歸問題的解決大致可以分為如下步驟,獲取訓練集,提出假設模型,明確代價函數,求解最優參數。其中代價函數一般使用均方誤差,求解最優參數需要代價函數取值最小,決定了學習演算法的預測精度,梯度下降法是求解函數最小值比較常用的方法,基於下降方向與學習率的迭代最終可得使代價函數局部最小的參數組合。