斯坦福第二課:單變數線性迴歸(Linear Regression with One Variable)

來源:互聯網
上載者:User

標籤:

2.1  模型表示

     之前的房屋交易問題為例,假使我們迴歸問題的訓練集(Training Set)如下表所示:

 

    我們將要用來描述這個迴歸問題的標記如下:

    m                代表訓練集中執行個體的數量

    x                 代表特徵/輸入變數

    y                 代表目標變數/輸出變數

    (x,y)            代表訓練集中的執行個體

   (x(i),y(i)  )    代表第 i 個觀察執行個體

     h                代表學習演算法的解決方案或函數也稱為假設(hypothesis)


     因而,要解決樓價預測問題,我們實際上是要將訓練集“喂”給我們的學習演算法,進而學習得到一個假設 h,然後將我們要預測的房屋的尺寸作為輸入變數輸入給 h,預測出該房屋的交易價格作為輸出變數輸出為結果。那麼,對於我們的樓價預測問題,我們該如何表達 h?

     一種可能的表達方式為:, 因為只含有一個特徵/輸入變數,因此這樣的問題叫作單變數線性迴歸問題。

2.2  代價函數

   

 

    我們現在要做的便是為我們的模型選擇合適的參數(parameters)θ0 和 θ1,在樓價問題 這個例子中便是直線的斜率和在 y 軸上的截距。

    我們選擇的參數決定了我們得到的直線相對於我們的訓練集的準確程度,模型所預測的值與訓練集中實際值之間的差距(中藍線所指)就是建模誤差(modeling error)。

    我們的目標便是選擇出可以使得建模誤差的平方和能夠最小的模型參數。 即使得代價函數  最小。

    我們繪製一個等高線圖,三個座標分別為 θ0 和 θ1 和 J(θ0,θ1):

   

    則可以看出在三維空間中存在一個使得 J(θ0,θ1)最小的點。

 

2.3  代價函數的直觀理解 I

 

 

2.4  代價函數的直觀理解 II

代價函數的樣子

 

2.5  梯度下降

       梯度下降是一個用來求函數最小值的演算法,我們將使用梯度下降演算法來求出代價函數J(θ0,θ1) 的最小值。 梯度下降背後的思想是:開始時我們隨機播放一個參數的組合(θ0,θ1,...,θn),計算代價函數,然後我們尋找下一個能讓代價函數值下降最多的參數組合。我們持續這麼做直到到到一個局部最小值(local minimum),因為我們並沒有嘗試完所有的參數組合,所以不能確定 我們得到的局部最小值是否便是全域最小值(global  minimum),選擇不同的初始參數組合,可能會找到不同的局部最小值。

     

    批量梯度下降(batch gradient descent)演算法的公式為:

   

    其中 α 是學習率(learning rate),它決定了我們沿著能讓代價函數下降程度最大的方向向下邁出的步子有多大,在批量梯度下降中,我們每一次都同時讓所有的參數減去學習速率乘以代價函數的導數。

    

    注意:要同時更新θ0,θ1才可以,千萬不要忘記

 

2.6  梯度下降的直觀理解

       梯度下降演算法如:

 

     描述:對θ賦值,使得 J(θ)按梯度下降最快方向進行,一直迭代下去,最終得到局部最小值。

     其中 α 是學習率(learning rate),它決定了我們沿著能讓代價函數下降程度最大的方向向下邁出的步子有多大。

 

2.7  梯度下降的線性迴歸

     梯度下降演算法和線性迴歸演算法比較

   

     對我們之前的線性迴歸問題運用梯度下降法,關鍵在於求出代價函數的導數,即:

  

     j=0  時:

     j=1 時:

    則演算法改寫成:

 

2.8  接下來的內容

      在接下來的一組視頻中,我會對線性代數進行一個快速的複習回顧。如果你從來沒有接 觸過向量和矩陣,那麼這課件上所有的一切對你來說都是新知識,或者你之前對線性代數有所瞭解,但由於隔得久了,對其有所遺忘,那就請學習接下來的一組視頻,我會快速地回顧 你將用到的線性代數知識。

     通過它們,你可以實現和使用更強大的線性迴歸模型。事實上,線性代數不僅僅線上性 迴歸中應用廣泛,它其中的矩陣和向量將有助於協助我們實現之後更多的機器學習模型,並在計算上更有效率。正是因為這些矩陣和向量提供了一種有效方式來組織大量的資料,特別是當我們處理巨大的訓練集時,如果你不熟悉線性代數,如果你覺得線性代數看上去是一 個複雜、可怕的概念,特別是對於之前從未接觸過它的人,不必擔心,事實上,為了實現機 器學習演算法,我們只需要一些非常非常基礎的線性代數知識。通過接下來幾個視頻,你可以 很快地學會所有你需要瞭解的線性代數知識。具體來說,為了協助你判斷是否有需要學習接 下來的一組視頻,我會討論什麼是矩陣和向量,談談如何加 、減 、乘矩陣和向量,討論逆 矩陣和轉置矩陣的概念。

      如果你十分熟悉這些概念,那麼你完全可以跳過這組關於線性代數的選修視頻,但是如果你對這些概念仍有些許的不確定,不確定這些數字或這些矩陣的意思,那麼請看一看下一組的視頻,它會很快地教你一些你需要知道的線性代數的知識,便於之後編寫機器學習演算法 和處理大量資料。

 

 

斯坦福第二課:單變數線性迴歸(Linear Regression with One Variable)

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.