吴恩达机器学习(第二章)——单变量线性回归
第二章-單變量線性回歸
文章目錄
- 第二章-單變量線性回歸
- 模型描述
- 代價函數
- 梯度下降
- 梯度下降的思想
- 梯度下降算法的公式
- 梯度下降的運動方式
- 線性回歸的梯度下降
模型描述
在監督學習中我們有一個數據集,這個數據集被稱訓練集(Traning Set)
以房價預測為例,我們回歸問題的訓練集為:
我們將要用來描述這個回歸問題的標記如下:
- m 代表訓練集中實例的數量
- x 代表特征/輸入變量
- y 代表目標變量/輸出變量
- (x ,y)代表訓練集中的實例
- (x(i),y(i))({{x}^{(i)}},{{y}^{(i)}})(x(i),y(i)) 代表第 i 個觀察實例
- h 代表學習算法的解決方案或函數也稱為假設 (hypothesis)
這就是一個監督學習算法的工作方式,我們把訓練集中的房屋價格喂給我們的學習算法,學習算法工作了,然后輸出一個函數 h ,h 根據輸入的 x 值來得出 y 值,h 是一個從 x 到 y 的函數映射
對于房價預測問題,我們表達 h 的一種可能的方式是 hθ(x)=θ0+θ1xh_\theta \left( x \right)=\theta_{0} + \theta_{1}xhθ?(x)=θ0?+θ1?x
預測 y 是關于 x 的線性函數,這個模型被稱為線性回歸。因為只含有一個特征/輸入變量,這樣的問題叫做單變量線性回歸問題
代價函數
對于線性函數 hθ(x)=θ0+θ1xh_\theta \left( x \right)=\theta_{0} + \theta_{1}xhθ?(x)=θ0?+θ1?x ,我們要做的是為我們的模型尋找合適的參數(parameters)θ0\theta_{0}θ0? 和 θ1\theta_{1}θ1? 。參數決定了我們得到的直線相對于訓練集的準確程度,模型所預測的值與訓練集中實際值之間的差距就是建模誤差,我們的目標便是選擇出可以使得建模誤差的平方和的 1/2m 能夠最小的模型參數。
定義代價函數: J(θ0,θ1)=12m∑i=1m(hθ(x(i))?y(i))2J \left( \theta_0, \theta_1 \right) = \frac{1}{2m}\sum\limits_{i=1}^m \left( h_{\theta}(x^{(i)})-y^{(i)} \right)^{2}J(θ0?,θ1?)=2m1?i=1∑m?(hθ?(x(i))?y(i))2
代價函數也被稱為平方誤差函數,是解決回歸問題最常用的手段。
我們繪制一個3D曲面圖,三個坐標分別為θ0\theta_{0}θ0?和θ1\theta_{1}θ1? 和J(θ0,θ1)J(\theta_{0}, \theta_{1})J(θ0?,θ1?) ,這個類似碗的形狀就是代價函數的形狀。可以看出在三維空間中存在一個使得J(θ0,θ1)J(\theta_{0}, \theta_{1})J(θ0?,θ1?)最小的點。這里我們通過求 J(θ0,θ1)J(\theta_{0}, \theta_{1})J(θ0?,θ1?) 的最小值來滿足需求。
我們使用等高線圖來展示這些曲面,通過這些圖形,更好地理解這些代價函數所表達的值是什么樣的,它們對應的假設是什么樣的,以及什么樣的假設對應的點,更接近于代價函數的最小值。
當然,我們真正需要的是一種有效的算法,能夠自動地找出這些使代價函數 J(θ0,θ1)J(\theta_{0}, \theta_{1})J(θ0?,θ1?) 取最小值的參數θ0\theta_{0}θ0?和θ1\theta_{1}θ1? 來。
梯度下降
梯度下降是一個用來求函數最小值的算法,我們將使用梯度下降算法來求出代價函數 J(θ0,θ1)J(\theta_{0}, \theta_{1})J(θ0?,θ1?) 的最小值。
梯度下降的思想
我們并沒有嘗試完所有的參數組合,所以不能確定我們得到的局部最小值是否便是全局最小值(global minimum),選擇不同的初始參數組合,可能會找到不同的局部最小值。
梯度下降算法的公式
其中 :=這個符號表示賦值運算符; α 是學習率(learning rate),它決定了我們沿著能讓代價函數下降程度最大的方向向下邁出的步子有多大
梯度下降中,我們要同時更新 θ0\theta_{0}θ0?和 θ1\theta_{1}θ1?,當 j=0 和 j=1 時,會產生更新,所以你將同時更新 J(θ0)J(\theta_{0})J(θ0?)和 J(θ1)J(\theta_{1})J(θ1?)。
實現方法是:你應該計算公式右邊的部分,通過那一部分計算出 θ0\theta_{0}θ0?和 θ1\theta_{1}θ1?的值,然后同時更新 θ0\theta_{0}θ0?和 θ1\theta_{1}θ1?。
梯度下降的運動方式
- 如果 α 太小,即學習速率太小,梯度下降法會收斂得很慢
- 如果 α 太大,梯度下降法每次下降很快,可能會越過最小值,甚至可能無法收斂
假設我們將 θ1\theta_{1}θ1?初始化在局部最低點,結果是局部最優點的導數將等于零,它使得 θ1\theta_{1}θ1?不再改變,那么梯度下降法更新其實什么都沒做
在梯度下降法中,當我們接近局部最低點時,導數值會自動變得越來越小,梯度下降法會自動采取更小的幅度,這就是梯度下降的做法,所以實際上沒有必要再另外減小 α。
線性回歸的梯度下降
梯度下降算法和線性回歸算法比較如圖:
對我們之前的線性回歸問題運用梯度下降法,關鍵在于求出代價函數的導數
我們使用的算法,有時也稱為批量梯度下降算法(batch gradient descent)。這個名字”批量梯度下降”,指的是在梯度下降的每一步中,我們都用到了所有的訓練樣本。在每一個單獨的梯度下降中,我們最終都要計算這樣一個東西,這個項需要對所有個訓練樣本求和。
我們應該已經掌握了批量梯度算法,并且能把它應用到線性回歸中了,這就是用于線性回歸的梯度下降法。
在高等線性代數中有一種被稱為 正規方程(normal equations) 的數值計算方法,它不需要多步梯度下降,也可以計算出代價函數的最小值,這個方法我們在之后會介紹。實際上在數據量比較大的情況下,梯度下降法比正規方程更使用一些。
到這里,我們就成功學會了自己的第一個機器學習算法–線性回歸算法。
總結
以上是生活随笔為你收集整理的吴恩达机器学习(第二章)——单变量线性回归的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 吴恩达机器学习(第一章)——初识机器学习
- 下一篇: 吴恩达机器学习(第三章)——线性代数回顾