1. 程式人生 > >【機器學習 吳恩達】CS229課程筆記notes1翻譯-Part I線性迴歸

【機器學習 吳恩達】CS229課程筆記notes1翻譯-Part I線性迴歸

CS229課程筆記

吳恩達

監督學習

      讓我們開始談論一些監督學習的例子。假定我們有一個數據集,給出俄勒岡州波特蘭地區47套房屋的居住面積和價格:

      我們可以在圖上畫出這些點:

      根據這些資料,我們怎麼學習預測波特蘭地區其他房屋的價格,看作房屋居住面積大小的函式?

      下面定義幾個後面使用的符號,我們使用x(i)表示輸入變數(例子中的居住面積),也叫做輸入特徵,y(i)表示輸出變數或目標變數,例中為我們試圖預測的價格。一對(x(i),y(i))叫做訓練樣本,我們用來學習的資料集(包含m個訓練樣本,(x(i),y(i)),i=1,2,…,m)叫做訓練集。注意,符號中的上標(i)僅僅是訓練集的索引,與指數無關。我們也使用X代表輸入空間,Y代表輸出空間,在該例中,X=Y=R。

      為了更加正式地描述監督學習問題,我們的目標是,給定一個訓練集,學習函式:XàY,因此h(x)是相應值y的一個好的預測。出於歷史原因,函式h叫做假設。我們把這個過程更形象地表示如下:

      當我們試圖預測的目標變數是連續的,比如在我們的房屋例子中,我們叫該學習問題是一個迴歸問題。當y僅取一些離散值時(比如說,給定居住面積,我們想要預測該住宅是一套住宅還是一個公寓),我們稱該問題為分類問題。

Part I
線性迴歸

      為了使我們的房屋例子更加有趣,讓我們考慮一個更加豐富的資料集,資料集中還包括每個房屋中臥室的數量:

      這裡,輸入變數是R2中兩維的向量。例如,x1

(i)是訓練集中第i套房屋的居住面積,x2(i)是房屋中臥室的數量。(一般地,當設計學習問題,由你來決定選取哪個特徵,因此如果你在波特蘭地區收集住房資料,你也會考慮包括其他特徵,比如是否有壁爐,衛生間的數量等等。我們之後將討論更多關於特徵選擇的話題,但是現在我們採用已經給定的特徵。)

      為了實現監督學習,我們必須決定怎麼在計算機中表示函式/假設h。作為初始選擇,我們估計y為x的線性函式:

      這裡,θi是引數(也叫做權重),引數化線性函式的空間,該線性函式從X對映到Y。當不會導致混亂時,我們將丟掉hθ(x)中的θ下標,簡單地寫為h(x)。為了簡化我們的符號,我們使得x0=1(這是截距項),因此

      上式右邊我們將θ和x都看作向量,n是輸入變數的個數(不包括x0)。

      現在,給定一個訓練集,我們怎麼挑選,或者學習引數θ?一個合理的方法似乎是使得h(x)靠近y,至少對於我們擁有的訓練樣本是這樣。為了對此形式化,我們將定義一個函式,對於每一個θ值,計算h(x(i))對相應的y(i)的靠近程度,我們定義代價函式:

      如果你之前見過線性迴歸,你可能意識到這是熟悉的最小平方代價函式(least-squares cost function),即一般最小平方迴歸模型(ordinaryleast squares regression model)。不論你之前是否見過,讓我們繼續,我們將最終顯示這是一個更廣泛的演算法家族的特殊例子。

1 LMS演算法

      我們想要選擇θ來最小化J(θ)。我們使用一個搜尋演算法,以θ的某個初始值開始,重複改變θ,使得J(θ)更小,直到我們收斂到一個使得J(θ)最小的θ值。特別地,讓我們考慮梯度下降演算法,以某個初始的θ開始,重複執行更新:

      (對j=0,…,n的所有的值同時執行更新)這裡,α叫做學習率,該演算法重複地向著J的最陡下降方向走一步。

為了實現該演算法,我們必須計算出右邊的偏導數。如果我們只有一個訓練樣本(x,y),讓我們計算偏導數,以便我們可以忽略J的定義中的和。我們有:

      對於一個單獨的訓練樣本,我們給出下面的更新規則:

      該規則叫做LMS更新規則(LMS代表“least meansquares”,最小均方),也叫做Widrow-Hoff學習規則。該規則有一些自然和直觀的特性,例如,更新的大小與錯誤項(y(i)-hθ(x(i)))成比例。因此,如果我們在訓練樣本上的預測特別接近真實值y(i),那麼我們就不太需要改變引數;相反,如果我們的預測hθ(x(i))離y(i)很遠,我們就需要很大幅度地改變引數。

      我們為僅有一個樣本的時候推導LMS規則。有兩種方式可以修改超過一個樣本的訓練集。第一個是用下面演算法替代它:

      讀者可以容易地驗證在上面的更新規則中的和正好是(如J最初的定義)。因此,這僅僅是梯度下降關於最初的代價函式J。該方法在每一步關注整個訓練集的每一個樣本,叫做批梯度下降。注意到,梯度下降有時會陷入區域性極小值,對於線性迴歸,我們提出的優化方法僅有一個全域性最小值,沒有其他的區域性極小值;因此梯度下降總是收斂(假定學習率α不太大)到全域性最小值。實際上,J是一個二次凸函式。下面是一個梯度下降的例子,使得二次函式最小。

      上面的橢圓是二次函式的輪廓。上圖也示出了梯度下降的軌跡,初始點在(48,30),圖中的×(由直線連起來)標識梯度下降經過的θ的連續值。

      當我們執行批梯度下降演算法在之前的資料集上擬合θ,來學習預測房價,作為居住面積的函式,我們獲得θ0=71.27,θ1=0.1345,。如果我們描述作為x(面積)的函式,將訓練資料描點,會得到下面的圖:

      如果臥室的數量也作為一個輸入特徵,我們得到θ0=89.60,θ1=0.1392,θ2=-8.738。

      上面的結果是通過批梯度下降獲得的。有一個批梯度下降演算法的替代演算法也工作的很好。考慮下面的演算法:

      在該演算法中,我們重複遍歷訓練集,每次我們使用一個訓練樣本更新引數,依據單個訓練樣本錯誤梯度。該演算法叫做隨機梯度下降(也叫做增量梯度下降)。而批梯度下降在走一步之前必須遍歷整個訓練集——如果m很大,將是一個代價很大的操作——隨機梯度下降可以馬上行動,並對於它看到的每一個樣本持續行動。經常,隨機梯度下降得到θ,比批梯度下降更快地靠近最小值。(注意,隨機梯度下降演算法可能永遠不會收斂到最小值,引數θ將一直在最小值J(θ)周圍擺動,但實際上絕大多數靠近最小值的值已經十分接近真實的最小值。)因此,當訓練集特別大時,隨機梯度下降的效能通常超過批梯度下降。

2  等式

      梯度下降給出了一種方式最小化J,我們來討論第二種方式來最小化J,這次我們明確地進行最小化,而不採用迭代演算法。在該方法中,我們將通過明確地對θ求導來最小化J,並將導數設定為0。為了不寫陣列和滿頁的導數矩陣的計算方法,我們引進一些符號來做矩陣的計算。

2.1  矩陣求導

      對於函式f:Rm×n-->R,從m×n的矩陣對映到實數,我們定義f關於A的導數如下:

      因此,梯度是一個m×n的矩陣,其(i,j)元是,例如,假設是一個2×2的矩陣,函式f:R2×2-->R如下給定:

      這裡,Aij代表矩陣A的(i,j)項,那麼,我們有

      我們引進trace操作(求跡),寫作“tr”。對於一個n×n的方陣A,A的跡定義為其對角線的和:

      如果a是一個實數(例如,一個1×1的矩陣),那麼tra=a。(如果你之前沒有見過該操作符,你可以把A的跡看作tr(A),或者將trace函式應用到矩陣A。然而,我們通常的寫法是沒有括號。)

      求跡操作有如下特性,對於兩個矩陣A和B,AB是方陣,我們有trAB=trBA。其有如下推論:

      trABC = trCAB = trBCA,

      trABCD = trDABC = trCDAB = trBCDA

      下面關於求跡操作的特性容易驗證。這裡,A和B是方陣,a是一個實數:

      trA = trAT

      tr(A+B) = trA + trB

      traA = atrA

      我們現在陳述但不證明一些關於矩陣求導的事實。等式(4)僅應用到非奇異方陣A,|A|代表A的行列式。我們有:

      為了使我們的矩陣符號更加具體,我們現在詳細解釋等式(1)的意義。假定我們有某個給定矩陣B∈Rn×m。我們定義函式f:Rm×n-->R,依據f(A) = trAB。注意該定義是有意義的,因為如果A∈Rm×n,那麼AB是一個方陣,我們可以對其應用求跡操作;因此,f實際上從Rm×n對映到R。我們可以應用我們矩陣求導的定義來得到,它是一個m×n矩陣。上面的等式(1)陳述了該矩陣的(i,j)項將如下計算:(i,j)-BT的相應項,或者相當於,Bji

等式(1-3)的證明相當簡單,留作給讀者的練習。等式(4)可以使用矩陣逆的伴隨來推導。

2.2  再說最小平方

      擁有矩陣求導工具,我們現在找出最小的J(θ)中的θ,我們開始在矩陣-向量符號中重寫J。

      給出一個訓練集,定義矩陣X為m×n矩陣(實際是m×n+1,如果我們包括截距項),在行中包含訓練樣本的輸入值:

      為m維的向量,包含所有來自訓練集的目標值:

      現在,由於,我們可以容易地驗證

      因此,對於向量z,我們有

      最後,為了求J的最小值,我們求J關於θ的導數,結合等式(2)和(3),我們得到,

      因此,

      在第三步,我們運用實數的跡仍然是一個實數的事實;第四步運用trA = trAT的事實,第五步使用等式(5),其中,AT=θ, B=BT=XTX, C=I,和等式(1)。為了最小化J,我們設定其導數為0,獲得了等式:

      因此,最小的J(θ)中θ的值表示如下:

3  概率解釋

      對於迴歸問題,為什麼線性迴歸,特別為什麼最小平方代價函式J,是一個合理的選擇?在這一部分,我們將給出一系列概率假設,在這些假設下,可以非常自然地推匯出最小平方迴歸演算法。

      讓我們假設目標變數和輸入通過下面的等式相關:

      其中ε(i)是錯誤項,包括或者未建模的因素(比如是否存在一些特徵與預測房價非常相關,但是我們在迴歸中並沒有使用),或者隨機噪聲。讓我們進一步假設ε(i)是獨立同分布的,依據均值為0、方差為σ2的高斯分佈(也叫做正態分佈)。我們將該假設寫為“ε(i)~N(0, σ2)”,ε(i)的密度通過下式給出:

      這意味著,

      符號“p(y(i)|x(i);θ)”意味著這是給定x(i)的y(i)的分佈,引數為θ。注意,我們不應該以θ為條件(“p(y(i)|x(i),θ)”),由於θ不是隨機變數。我們也可以將y(i)的分佈寫為y(i)|x(i);θ~N(θTx(i)2)。

      給定X(包含所有的x(i))和θ,那麼y(i)的分佈是什麼?資料的概率通過給出。該值被看作(或許X)的函式,對於固定值θ。當我們希望明確地將其視為θ的函式時,我們將其叫做似然函式:

      注意,ε(i)的獨立假設(因此也是給定x(i)的y(i)的獨立假設),這也可以被寫為

      現在,給定與y(i)和x(i)相關的概率模型,我們對引數θ的最好選擇採用什麼方式是合理的呢?最大似然原則說的是我們應該選擇使得似然函式概率儘可能高的θ,例如,我們應該選擇使得L(θ)最大的θ。

      代替最大化L(θ),我們也可以最大化L(θ)的任何嚴格遞增的函式。特別地,如果我們將最大化L(θ)代替為最大化log似然函式l(θ),推導將會簡單一點:

      因此,最大化l(θ)與下式最小化相同:

      我們可以看出它就是J(θ),我們最初的最小平方代價函式。

      總結:在前面的概率假設下,最小平方迴歸相當於尋找θ的最大似然估計。因此這是一個假設集合,在該假設下,最小平方迴歸可以認為是一個自然的方法,僅僅做的是最大似然估計。(注意,概率假設對於最小平方迴歸不是必需的過程,也存在其他的自然假設。)

      在我們之前的討論中,我們最終對θ的選擇不依賴於σ2的值,即使σ2的值未知,我們也會得到相同的結果。我們後面會再次用到這個事實,當我們談論指數家族和生成線性模型。

4  區域性加權線性迴歸

      考慮從x∈R到y的預測問題,下面的最左圖顯示了擬合y=θ01x到一個數據集的結果。我們看到資料並不真正靠近一條直線,因此擬合不是非常好。

      如果我們增加了一個額外的特徵x2,用y=θ01x+θ2x2作擬合,我們將獲得該資料一個更好的擬合(見中圖)。似乎我們新增越多的特徵越好,然而,新增太多的特徵未必是一件好事:最右圖是擬合5階多項式的結果。我們看到即使擬合的曲線完美地穿過了資料,我們仍然不認為這是一個非常好的預測,例如,對於不同居住面積(x)的房價的預測(y)。還沒有正式定義這些項的意義,我們說左邊的圖是欠擬合的例子,右邊的圖是過擬合的例子。(之後的課上,我們將討論學習理論,我們將規範化這些概念,並更加詳細地定義假設好或壞意味著什麼)。

      像前面討論的,像上例中所示,特徵的選擇對於確保學習演算法的好效能十分重要。(當我們談論模型選擇,我們也將看到自動選擇一系列特徵的演算法。)在這一部分,讓我們簡要談論區域性加權線性迴歸(LWR, locally weighted linear regression)演算法,假設我們有足夠的訓練資料,使得特徵的選擇不太嚴格。這個做法很簡單,你可以在作業中探索LWR演算法的一些特性。

      在最初的線性迴歸演算法中,為了在一個查詢點x做出預測(例如,為了計算h(x)),我們將:

      1.      擬合θ來最小化

      2.      輸出θTx

      相反,區域性加權線性迴歸演算法這樣做:

      1.      擬合θ來最小化

      2.      輸出θTx

      這裡,w(i)是非負權重。直觀地,如果對於i的特定值,w(i)很大,那麼我們挑選θ,試圖使得(y(i)Tx(i))2較小,如果w(i)較小,在擬合的時候,(y(i)Tx(i))2錯誤項可以忽略。

      對於權重,一個比較標準的選擇是:

      注意,權重依賴於特殊點x,此外,如果|x(i)-x|很小,那麼w(i)接近1;如果|x(i)-x|很大,那麼w(i)很小。因此,θ被選擇給出一個更高的權重對靠近查詢點x的訓練樣本。(注意,儘管該權重公式的形式類似於高斯分佈的密度函式公式,w(i)與高斯公式沒有直接的關係,w(i)不是隨機變數,不是服從正態分佈的變數。)引數τ控制著一個訓練樣本的權重多快從x(i)下降x距離;τ叫做頻寬引數,你可以在作業中做實驗。

      區域性加權線性迴歸是我們看到的第一個非引數演算法的例子。我們前面看到的非加權線性迴歸演算法是一個引數的學習演算法,因為它有一些固定的有限數量的引數(θi)進行資料擬合。一旦我們擬合了θi並存儲,我們不再需要儲存訓練資料來做出未來的預測。相反,為了使用區域性加權線性迴歸做出預測,我們需要儲存整個的訓練集。非引數項指的是我們需要儲存大量的資料以便假設h隨著訓練集的大小線性增長。

相關推薦

no