吳恩達機器學習(二)線性迴歸 1/3 —— 單變量線性迴歸

機器學習分爲監督學習和無監督學習, 監督學習又分爲 迴歸問題 和 分類問題, 本文主要介紹監督學習-迴歸問題 中的 單變量線性迴歸,包括假設函數、代價函數、梯度下降等概念。

在這裏插入圖片描述

單變量線性迴歸

(Linear Regression with One Variable)

1. 假設函數

(Hypothesis)

以上述預測房價的迴歸模型爲例,由於只有一個輸入變量/特徵,我們可以定義假設函數Hypothesis爲:hθ(x)=θ0+θ1xh_θ(x)=θ_0+θ_1x顯然,hθ(x)h_θ(x) 是一條斜率爲 θ1θ_1 ,且在 yy 軸上截距爲 θ0θ_0 的直線,我們要做的就是用這條直線來擬合數據。
在這裏插入圖片描述

2. 代價函數

(Cost Function)

爲了使 Hypothesis 具有最好的預測效果,即 h(x)y|h(x)-y|的值最小,就要爲模型選擇合適的參數(parameters)θ0θ1θ_0和θ_1它們決定了直線相對於訓練集的準確程度 ,模型所預測的值與訓練集中實際值之間的差距(下圖藍線所指)就是 建模誤差(modeling error)
在這裏插入圖片描述

我們可以定義代價函數來表示建模誤差:J(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2 J(θ_0,θ_1)=\frac{1}{2m} \displaystyle\sum_{i=1}^{m} ( h_θ( x^{(i)} ) - y^{(i)}) ^2 代價函數也被稱作 平方誤差代價函數(Squared Error Cost Function),是解決迴歸問題最常用的手段。

  • θ0=0θ_0=0 時,代價函數即爲關於 θ1θ_1 的二次函數:
    J(θ0,θ1)=12mi=1m(hθ(x(i))y(i))2=12mi=1m(θ1x(i)y(i))2=J(θ1) J(θ_0,θ_1)=\frac{1}{2m} \displaystyle\sum_{i=1}^{m} ( h_θ( x^{(i)} ) - y^{(i)}) ^2 =\frac{1}{2m} \displaystyle\sum_{i=1}^{m} ( θ_1 x^{(i)} - y^{(i)}) ^2=J(θ_1) θ0=0θ_0=0 時,假設函數 hθ(x)h_θ(x) 就是一條過原點的直線,通過改變斜率θ1θ_1可以畫出其代價函數即爲一個二次函數:
    在這裏插入圖片描述
  • θ0θ_0θ1θ_1 都在變化時,我們繪製一個表示代價函數的三維圖,三個座標分別爲 θ0θ_0θ1θ_1J(θ0,θ1)J(θ_0,θ_1)
    在這裏插入圖片描述
    則可以看出在三維空間中存在一個使得 J(θ0,θ1)J(θ_0,θ_1) 最小的點。

3. 梯度下降

(Gradient Descent)

爲了找出使代價函數 J(θ0,θ1)J(θ_0,θ_1) 取最小值的參數 θ0θ_0θ1θ_1,我們可以使用梯度下降法。 梯度下降背後的思想如下圖所示:

想象一下你正站立在山的這一點上,在梯度下降算法中,我們要做的就是旋轉360度,看看我們的周圍,並問自己要在哪個方向上,能用小碎步儘快下山

  • 當你站在山坡上的這一點,看一下週圍,你會發現最佳的下山方向,然後你按照自己的判斷邁出一步;
  • 你再看看周圍,然後再一次想想,我應該從什麼方向邁着小碎步下山?然後你按照自己的判斷又邁出一步;
  • 重複上面的步驟,並依此類推,直到你接近局部最低點的位置。
    在這裏插入圖片描述
  • 開始時隨機選擇一個參數的組合(θ0,θ1)(θ_0,θ_1),計算代價函數J(θ0,θ1)J(θ_0,θ_1)的值;
  • 然後在初始參數組合的周圍尋找下一個能讓代價函數值下降最多的參數組合;
  • 持續這麼做直到找到一個 局部最小值(local minimum),因爲我們並沒有嘗試完所有的參數組合,所以不能確定我們得到的局部最小值是 全局最小值(global minimum),選擇不同的初始參數組合,可能會找到不同的局部最小值。

4.梯度下降的直觀理解

首先看梯度下降算法的公式:

重複直至擬合
公式解釋如下:

  • αα學習率(learning rate),決定了我們沿着能讓代價函數下降程度最大的方向向下邁出的步子有多大
  • θjJ(θ0,θ1)\frac{\partial}{\partial \theta_{j}} J\left(\theta_{0}, \theta_{1}\right):代價函數 J(θ0,θ1)J(θ_0,θ_1)θ0θ_0θ1θ_1的偏導數

爲了直觀理解,還是以 θ0=0θ_0=0 爲例,此時代價函數爲關於 θ1θ_1 的二次函數,θjJ(θ0,θ1)\frac{\partial}{\partial \theta_{j}} J\left(\theta_{0}, \theta_{1}\right) 就可以理解爲二次函數在某個θ1θ_1點上切線的斜率,那麼:

               斜率 × 學習率 = 每進行一次梯度下降所降的高度

如下圖所示,當θ1θ_1逐漸向左移動,切點斜率也在變小,因此 越接近代價函數的最低點,每次梯度下降的高度也越小,直到到達最低點斜率爲零,此時θ1θ_1不再更新賦值,即收斂到局部最低點。
在這裏插入圖片描述
注意:線性迴歸模型中的代價函數,總是一個凸函數(convex function),這個函數沒有局部最優解,只有一個全局最優解,例如下圖中的碗狀:
在這裏插入圖片描述

5. 線性迴歸中的梯度下降算法

(Gradient Descent for Linear Regression)

總結一下梯度下降算法和線性迴歸模型:

在這裏插入圖片描述
對線性迴歸問題運用梯度下降法,關鍵在於求出代價函數的導數,即:
在這裏插入圖片描述則算法改寫成:
在這裏插入圖片描述由於在梯度下降的每一步中,都要計算微分求導項,這個項需要對所有mm個訓練樣本求和。因此,我們也稱這種梯度下降爲 批量梯度下降法(Batch Gradient Descent)

本章介紹了只含有一個參數的單變量線性迴歸,關於多變量線性迴歸見下一章(3)多變量線性迴歸與特徵縮放

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