Stanford機器學習課程筆記——單變數線性迴歸和梯度下降法
Stanford機器學習課程筆記——單變數線性迴歸和梯度下降法
1. 問題引入
單變數線性迴歸就是我們通常說的線性模型,而且其中只有一個自變數x,一個因變數y的那種最簡單直接的模型。模型的數學表示式為y=ax+b那種,形式上比較簡單。Stanford的機器學習課程引入這個問題也想讓我們親近一下machine learning這個領域吧~吳恩達大神通過一個房屋交易的問題背景,帶領我們理解Linear regression with one variable。如下:
不要看這個問題簡答,大神就是大神,吳大神通過房屋問題引出了代價函式和梯度下降法。
2. 代價函式 cost function
首先,我們明確一下,單變數線性迴歸模型的表示式是:。
那麼代價函式就是:我們模型預測的值(預測的房屋價格)和樣本真實的值(真實價格)之間誤差的平方和。數學表達就是:
後面誤差的平方項比較好理解,sigma求和就是所有訓練樣本的誤差平方項之和,前面1/m是求均值,為啥分母上還有2呢?這是為了後面梯度下降法求導代價函式方便。
好了,我們定義了代價函式,那麼後面的任務就是如何最小化這個代價函式值,換句話說,求解一個最優化問題,得到代價函式最小時的theta_0和theta_1的組合引數。
3. 簡單的梯度下降法
有了上面的最優化問題,我們使用梯度下降法求解。需要解釋的是,這種方法只能是迭代解出區域性優化,無法得到解析解的全域性最優。
首先我們看上面代價函式,其中有兩個變數,我們要判斷這個目標函式是否是凸的,我們可以畫出關於theta_0, theta_1, J(theta_0, theta_1)的三維曲面。(如果不是三維的,我們可以理論上判斷是否為凸規劃)
我們發現,圖中是存在最低點的,說明該優化問題是有最優解的。
梯度下降法的基本思想:開始時我們隨機一個引數組合,計算代價函式;然後我們尋找下一個能讓代價函式值下降很多的引數組合,這個時候我們需要通過求導來尋找下降最快的方向。我們持續這麼做直到到達一個區域性最小值,因為我們沒有嘗試完所有的引數組合,所以我們不能確定我們得到的區域性最小值是否是全域性最小值。而且,選擇不同的初始引數組合,可能會得到不同的區域性最小值。圖示如下:
梯度下降法的基本演算法為:
其中alpha是學習步長,或者稱為學習率,這是在我們找到下降最快的方向之後,確定著我們到底要下降多少的問題。看來,初始引數的選擇和學習步長是梯度下降法中比較重要的兩個引數,我們這個先不提如何選擇。
在這道題目中,我們梯度下降法求出代價函式的導數作為下降最快的方向,求導如下:
那麼我們的模型中只有兩個theta, 於是我們需要分別對它們求導。
(都是二次函式的求導,比較簡單。要注意j=1時的求導,後面還有一個x_i)
得到梯度下降方向之後,我們的演算法就是:
詳細來說,我們先把theta_0和theta_1的初始值帶入,把所有的訓練樣本帶入,就得到了上面等式右邊的所有元素的值,其中的h_theta_x_i是初始引數構建的模型求得的值。注意,所有的theta都是需要同時學習,同時更新的!絕對不可以先更新theta_0,然後後面在更新其餘的theta的時候就使用新的theta_0在模型中,一定要使用老的theta。這裡我們就說的比較粗俗一點啦~~吳大神的Slide中尤其提到了simultaneously的重要性!如下:
這樣子不斷更新,如果達到了一定更新的次數,或者是模型預測的值和樣本真實值差異小於tolerated value,那麼我們就可以停止更新了。
這樣我們就介紹完了單變數線性迴歸模型和簡單的梯度下降法。
參考:
https://class.coursera.org/ml/class/index
http://blog.csdn.net/abcjennifer/article/details/7691571
Coursera機器學習筆記
相關文章
- Stanford機器學習課程筆記——多變數線性迴歸模型機器學習筆記變數模型
- 吳恩達機器學習筆記 —— 2 單變數線性迴歸吳恩達機器學習筆記變數
- Stanford機器學習課程筆記——SVM機器學習筆記
- 吳恩達機器學習筆記 —— 5 多變數線性迴歸吳恩達機器學習筆記變數
- 機器學習筆記(1):線性迴歸機器學習筆記
- 機器學習——簡單線性迴歸(下)機器學習
- 機器學習(課堂筆記)Day04:線性迴歸法機器學習筆記
- 機器學習--線性迴歸--梯度下降的實現機器學習梯度
- 吳恩達機器學習系列1——單變數線性迴歸吳恩達機器學習變數
- 機器學習:線性迴歸(下)機器學習
- 梯度下降法實現最簡單線性迴歸問題python實現梯度Python
- 機器學習入門:多變數線性迴歸機器學習變數
- 機器學習程式碼筆記-2-簡單線性迴歸機器學習筆記
- 【機器學習筆記】:大話線性迴歸(一)機器學習筆記
- 【機器學習筆記】:大話線性迴歸(二)機器學習筆記
- 機器學習筆記(2):線性迴歸-使用gluon機器學習筆記
- 機器學習——簡單線性迴歸(上)機器學習
- 機器學習(二):理解線性迴歸與梯度下降並做簡單預測機器學習梯度
- Stanford機器學習課程筆記——神經網路的表示機器學習筆記神經網路
- Stanford機器學習課程筆記——神經網路學習機器學習筆記神經網路
- 機器學習-線性迴歸機器學習
- 機器學習:線性迴歸機器學習
- numpy梯度回傳線性迴歸梯度
- 機器學習之梯度下降法機器學習梯度
- 吳恩達機器學習筆記 —— 3 線性迴歸回顧吳恩達機器學習筆記
- 機器學習之線性迴歸機器學習
- 機器學習整理(線性迴歸)機器學習
- 使用梯度下降法實現多項式迴歸梯度
- 機器學習 | 線性迴歸與邏輯迴歸機器學習邏輯迴歸
- 機器學習中的數學(1):迴歸、梯度下降機器學習梯度
- 機器學習方法(一)——梯度下降法機器學習梯度
- Python數模筆記-Sklearn(4)線性迴歸Python筆記
- 【機器學習】線性迴歸預測機器學習
- 機器學習5-線性迴歸機器學習
- 機器學習課程筆記機器學習筆記
- 李巨集毅機器學習課程筆記-3.梯度下降精講機器學習筆記梯度
- 機器學習之隨機梯度下降法機器學習隨機梯度
- 【機器學習】線性迴歸原理介紹機器學習