1. 程式人生 > >Machine Learning(Stanford)| 斯坦福大學機器學習筆記--第二週(1.多元線性迴歸及多元線性迴歸的梯度下降)

Machine Learning(Stanford)| 斯坦福大學機器學習筆記--第二週(1.多元線性迴歸及多元線性迴歸的梯度下降)

一.Multivariate Linear regression(多元線性迴歸)

現在起將開始介紹一種新的更為有效的線性迴歸形式。這種形式適用於多個變數或者多特徵量的情況。 在之前學習過的線性迴歸中,都是隻有一個單一的特徵量--房屋面積 x,如圖1-1所示,
圖1-1 我們希望用房屋面積這個特徵量來預測房子的價格。但是想象一下如果我們不僅有房屋面積作為預測房屋價格的特徵量,我們還知道臥室的數量,樓層的數量以及房子的使用年限,如圖1-2所示,
圖1-2 這樣就給了我們更多可以用來預測房屋價格的資訊了。接著我們先簡單介紹一下符號記法,一開始的時候就提到過我要用x1,x2x3,x4來表示種情況下的四個特徵量,然後仍然用 y來表示我們所想要預測的輸出變數 。除此之外,我們來看看更多的表示方式,如圖1-3

圖1-3 首先介紹的是特徵數量n,這裡用小寫n來表示特徵量的數目。因此在這個例子中,我們的n等於4(之前我們是用的“m”來表示樣本的數量,現在開始我們用n來表示特徵量的數目)。 接著介紹的是第i個訓練樣本的輸入特徵值x(i)(這裡一定要看清是上標,不要搞混了)。舉個具體的例子來說x(2)就是表示第二個訓練樣本的特徵向量,如圖1-4中用紅色框圈起來的位置,
圖1-4 紅色框圈起來的這四個數字對應了我用來預測第二個房屋價格的四個特徵量,因此在這種記法中,這個上標2就是訓練集的一個索引,而不是x的2次方,這個2就對應著你所看到的表格中的第二行,即我的第二個訓練樣本,同時也是一個四維向量。事實上更普遍
地來說這是n維的向量。 最後介紹的是第i個訓練樣本的第j個特徵量,用來表示。舉個具體的例子來說: ,即對應著圖1-4中第二個訓練樣本的第三個數。
我們最初使用的假設函式只有一個唯一的特徵量,如圖1-5黑色字型,
圖1-5 但現在我們有了多個特徵量,我們就不能再使用這種簡單的表示方式了。取而代之的我們將把線性迴歸的假設改成圖1-5中藍色字型那樣。如果我們有n個特徵量,那麼我們要將所有的n個特徵量相加,而不僅僅是四個特徵量,如圖1-6所示。
圖1-6 接下來,要做的是簡化這個等式的表示方式,為了表示方便我要將x0的(看清楚這裡是下標)值設為1。具體而言,這意味著對於第i個樣本,都有一個等於1。一開始的時候有n個特徵量,由於另外定義了額外的第0個特徵向量,並且它的取值總是1,所以我現在的特徵向量x是一個從0開始標記的n+1維的向量。同時,我也把我的引數θ也都
看做一個n+1維的向量。如圖1-7所示
圖1-7 正是向量的引入,這裡我們的假設函式可以換一種更加高效的方式來寫,如圖1-8,
圖1-8 這裡我把假設函式等式寫成 θ轉置乘以X,這其實就是向量內積。這就為我們提供了一個表示假設函式更加便利的形式,即用引數向量θ以及特徵向量X的內積。這樣的表示習慣就讓我們可以以這種緊湊的形式寫出假設。  以上就是多特徵量情況下的假設形式,另一個名字就是多元線性迴歸。

二.Gradient Descent for Multiple Variables(多元線性迴歸的梯度下降)

在之前我們談到的線性迴歸的假設形式,是一種有多特徵或者是多變數的形式。在這部分我們將會談到如何找到滿足這一假設的引數θ,尤其是如何使用梯度下降法來解決多特徵的線性迴歸問題。

現假設有多元線性迴歸,並約定x0=1,該模型的引數是從θ0θn,如圖2-1所示,

圖2-1

這裡不要認為這是n+1個單獨的引數,我們要把這n+1θ引數想象成一個n+1維的向量θ。

我們一開始的代價函式如圖2-2黑色字型所示,


圖2-2

但同樣地我們不要把函式J想成是一個關於n+1個自變數的函式,而是看成帶有一個n+1維向量的函式。

-----------------------------------------------------------------------------

關於圖2-2的這個公式要深入理解下,見圖2-3的練習


圖2-3

一開始選了2和4,提交後得知應該選擇1和2。分析如下:

選項1.其實這裡的x(i)拆開後是,然後和θ的轉置相乘,結果與是一樣的。

選項2.將括號裡的拆開後就是,可見選項2也是對的。

選項3.從1開始錯誤,我們規定了要從0開始。

選項4.,因為我們的y不像x有x0,x1,x2等等,y是沒有下標只有上標的,所以選項4錯誤。

-----------------------------------------------------------------------------

講完代價函式講梯度下降,如圖2-4所示,


圖2-4

同理這裡把函式J想成是帶有一個n+1維向量的函式。當我們實現梯度下降法後,我們可以仔細觀察一下它的偏導數項,圖2-5是我們當特徵個數n=1時梯度下降的情況。我們有兩條針對引數θ0θ1不同的更新規則,


圖2-5

圖2-5的兩個式子不同點在於對引數θ1我們有另一個更新規則,即在最後多了一項

以上是特徵數量只有1個的情況下的梯度下降法的實現。當特徵數量大於等於1個的時候,我們的梯度下降更新規則,變成了如圖2-6的形式。


圖2-6

其實圖2-5和圖2-6這兩種新舊演算法實際上是一回事兒。考慮這樣一個情況,假設我們有3個特徵數量,我們就會有對θ1θ2θ3的三條更新規則。如圖2-7所示,


圖2-7

仔細觀察θ0的更新規則,就會發現這跟之前圖2-5中n=1的情況是相同的。它們之所以是等價的是因為在我們的標記約定裡有=1。

如果再仔細觀察θ1的更新規則,會發現這裡的這一項是和圖2-5對引數θ1的更新項是等價的。在圖2-7中我們只是用了新的符號來表示我們的第一個特徵。其實當n=1的時候,是一樣的。因為圖2-7的新演算法應用更普遍,更廣泛,所以以後不管是單特徵變數還是多特徵變數我們都用圖2-7的演算法來做梯度下降。