斯坦福機器學習公開課筆記(一)–單變數線性迴歸

來源:互聯網
上載者:User

公開課地址:https://class.coursera.org/ml-003/class/index 

授課老師:Andrew Ng

1、model representation(建立模型)

考慮一個問題,如果給定一些房屋售價和房屋面積的資料,現在要預測給定其他面積時的房屋售價,那該怎麼辦?其實這是一個線性迴歸問題,給定的資料作為訓練樣本,用其訓練得到一個表示售價和面積關係的模型(其實是一個函數),然後用這個函數進行預測。基本流程如下:

2、cost function(代價函數)

ps:其實這一節中代價函數並未出現代價函數

既然我們已經明確了只需要訓練得到一個函數,那我們首先要做的就是對函數的形式進行假設。這裡我們可以假設是最簡單的線性函數:

下面問題就轉變為如何求出theta值。由於我們已經有一些訓練資料,雖然不知道資料之間是不是像假設那樣成線性關係,但存在一點偏差我們並不介意,只需要讓函數值儘可能接近真實值即可。這裡我們讓x表示面積,y表示售價,在二維平面上描出一系列的點。


3、cost function intuition 1(代價函數初步1)

前面已經說明了需要讓h函數值和真實值之間誤差儘可能小,這裡給出一個更清晰的說明:


代價函數J就代表了上面提到的誤差,這裡為了後面求導方便函數被寫成了這種形式,我們的目標就是讓代價函數J值最小,注意在J中theta變成了變數,m代表訓練樣本的數目(也就是座標系中點的個數)。

4、cost function intuition 2(代價函數初步2)

在給定一個theta0和theta1時,我們能找到相應的h函數(一條線)和代價J(一個值),當把這兩者放在一起對比觀察時,就能清楚的看到代價值在h函數和樣本點擬合的很好時是最小的,而且存在全域唯一的最小值。代價函數J用三維表示大概就如所示:




從可以看出,此時h函數與樣本點擬合的情況最好,而代價函數J也取到了最小值,theta0和theta1此時的取值可以從J的橫縱座標上看出。

5、gradient descent(梯度下降)

為了讓J最小,我們的想法是通過改變theta的取值來改變J的取值。這裡對theta的初始值不做要求,只考慮改變時的變化。梯度下降在這裡的意思也就是沿著J函數的梯度方向改變theta讓J取值減小,形象化的表示如下:


如果懂一點微積分知識,我們就可以把這個下降過程用數學式子像下面這樣表達出來:

其中alpha是學習率(大於0),可以理解為每一次下降的步長,需要人為設定。

6、gradient descent intuition(梯度下降初步)

我們可以對上面梯度下降的公式進行一下簡單的驗證,如,當theta值過大時,梯度為正值,每一次迭代theta減小,J值也減小,同理theta值過小時,迭代讓theta增大,J值也減小。所以梯度下降的思想是正確的。


相比之下,alpha的選擇就不那麼簡單了,alpha選擇要求適中,過大過小都不好:


如所說的,alpha取值太小步長太小,要走很多步才能下降到最小值,處理速度太慢。當alpha取值較大時,步長太大,會在最小值左右發生震蕩,而永遠也達不到最小值。不過,即使alpha取值適中,我們也可能會陷入到局部最小值,達不到全域最小。


補充一點,即使alpha值固定了,在梯度下降的過程中步長也會自動逐漸減小,所以我們不需要在函數逼近最小值的時候減小alpha的取值,以防止步長過大可能會跳過最低點。

7、gradient descent for linear regression(針對線性迴歸的梯度下降)

針對線性迴歸,由於我們已經有了代價函數J的形式,只需要代入即可:


寫的更好看一點就是這樣:

通過迭代,我們就能到達一個J的最小值,這裡並不保證是全域最小。


--------------------------------------------弱弱的分割線--------------------------------------------------------------

以上就是第一講單變數線性迴歸的內容,思想還是很明確的。首先根據訓練資料定義出模型函數形式,通過與真實值求誤差得到代價函數,然後通過對代價函數梯度下降確定出模型函數的參數。確定好參數,下面就可以拿這個模型進行預測了,不過由於這裡是線性,變數只有一個,不是很准。自然下面就該引入多變數,非線性情況了,那個肯定要複雜一些。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在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.