1. 模型向量化(重要)
(Model Vectorization)
爲了在實際應用中計算更爲方便,例如在編程中都是使用矩陣進行計算(參考 編程作業(1)線性迴歸),我們可以將整個模型向量化。
對於整個訓練集而言:
1.1 輸入輸出及參數
可以用 特徵矩陣 X 來描述所有特徵,用參數向量 θ 來描述所有參數,用輸出向量 y 表示所有輸出變量:
X=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡x0(1)x0(2):x0(m)x1(1)x1(2):x1(m)x2(1)x2(2):x2(m)⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅xn(1)xn(2):xn(m)⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤ , θ=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡θ0θ1:θn⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤ , y=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡y(1)y(2):y(m)⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤X 的維度是 m∗(n+1) 且 x0=1,θ 的維度爲 (n+1)∗1,y 的維度爲 m∗1
1.2 假設函數
整個訓練集 的 所有假設結果 也可以用一個 m∗1 維的向量表示:
hθ(x)=Xθ=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡x0(1)θ0+x1(1)θ1+x2(1)θ2+⋅⋅⋅+xn(1)θnx0(2)θ0+x1(2)θ1+x2(2)θ2+⋅⋅⋅+xn(2)θn:x0(m)θ0+x1(m)θ1+x2(m)θ2+⋅⋅⋅+xn(m)θn⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡hθ(x(1))hθ(x(2)):hθ(x(m))⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤
1.3 代價函數
對於代價函數,也可以向量化,先看原始的公式:
J(θ)=2m1i=1∑m(hθ(x(i))−y(i))2由於 (Xθ−y)=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡hθ(x(1))−y(1)hθ(x(2))−y(2):hθ(x(m))−y(m)⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤是一個 m∗1 的矩陣,故 (Xθ−y)T是一個1∗m的矩陣,因此:
(Xθ−y)T(Xθ−y)=i=1∑m(hθ(x(i))−y(i))2=(Xθ−y)⋅(Xθ−y)其中最後一項表示向量(Xθ−y)自身的內積(注意:內積是該向量每一項的平方之和,結果是標量)
因此代價函數就可以化簡爲:J(θ)=2m1i=1∑m(hθ(x(i))−y(i))2=2m1(Xθ−y)T(Xθ−y)=2m1(Xθ−y)⋅(Xθ−y)
1.4 梯度下降函數
最後,用向量來表示梯度下降,原公式爲:
θj:=θj−αm1i=1∑m(hθ(x(i))−y(i))xj(i)現用向量來表示所有參數的更新過程:θ=θ−αδ其中:θ=⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡θ0θ1:θn⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤ , δ=m1⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡∑i=1m(hθ(x(i))−y(i))x0(i)∑i=1m(hθ(x(i))−y(i))x1(i)⋅⋅⋅⋅⋅⋅∑i=1m(hθ(x(i))−y(i))xn(i)⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤
又因爲:δ=m1⎣⎢⎢⎢⎢⎢⎢⎢⎢⎢⎡x0(1)x1(1):x0(1)x0(2)x1(2):x0(2)⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅⋅x0(m)x1(m):x0(m)⎦⎥⎥⎥⎥⎥⎥⎥⎥⎥⎤⎣⎢⎢⎢⎢⎢⎢⎢⎢⎡hθ(x(1))−y(1)hθ(x(2))−y(2)⋅⋅⋅⋅⋅⋅hθ(x(m))−y(m)⎦⎥⎥⎥⎥⎥⎥⎥⎥⎤=m1XT(Xθ−y)
因此,梯度下降可以表示爲:
θ=θ−αm1XT(Xθ−y)
2. 正規方程
(Normal Equation)
到目前爲止,我們都在使用 梯度下降算法 來求解 線性迴歸問題,即求偏導來尋找使代價函數得到最優解的參數。現介紹另外一種求 參數θ的方法,即正規方程(Normal Equation):
假設我們的訓練集特徵矩陣爲 X(包含了x0),並且我們的訓練集結果爲向量 y,則利用正規方程可以直接解出最優的 參數向量 θ:
θ=(XTX)−1XTy上標 T 代表矩陣轉置,上標 −1 代表矩陣的逆。
注:對於那些不可逆的矩陣(通常是因爲特徵之間不獨立,如同時包含英尺爲單位的尺寸和米爲單位的尺寸兩個特徵,也有可能是特徵數量大於訓練集的數量),正規方程方法是不能用的。
2.1 正規方程的推導過程
在模型向量化中,我們得到代價函數:
J(θ)=2m1i=1∑m(hθ(x(i))−y(i))2=2m1(Xθ−y)T(Xθ−y)化簡得:
J(θ)=2m1(Xθ−y)T(Xθ−y)=2m1(θTXT−yT)(Xθ−y)=2m1(θTXTXθ−θTXTy−yTXθ+yTy)接下來對 J(θ) 求偏導,需要用到以下幾個矩陣的求導法則:
- BdAB=AT
- XdXTAX=2AX
對 J(θ) 求導得:
∂θ∂J(θ)=2m1(2XTXθ−XTy−(yTX)T−0)=2m1(2XTXθ−XTy−XTy−0)=2m1(2XTXθ−2XTy)=m1(XTXθ−XTy)令∂θ∂J(θ)=0,則有:
θ=(XTX)−1XTy
2.2 梯度下降和正規方程的比較
梯度下降 |
正規方程 |
需要選擇學習率α |
不需要 |
需要多次迭代 |
一次運算得出,不需要迭代 |
當特徵數量 n 很大時也能正常運行 |
不適合特徵數量 n 很大的情況,因爲逆矩陣(XTX)−1的計算複雜度高,運算代價大,一般 n 小於10000 可接受 |
適用於各種類型的模型 |
只適用於線性模型,不適合邏輯迴歸模型等其他模型 |
2.3 正規方程之不可逆性
θ=(XTX)−1XTy通常有以下兩種原因會使矩陣 XTX不可逆(即奇異矩陣):
- 模型中有多餘的特徵(Redundant features),使得矩陣 XTX線性相關(linearly dependent),例如兩個特徵都是面積,但是用了不同的單位(1 m = 3.28 feet):
- x1=size in feet2
- x1=size in m2
- 模型的特徵數量過多,例如 m≤n,m爲樣本數量,n爲特徵數量
- 一般通過刪除某些特徵,或者使用正則化方法來解決m≤n的問題,見下一章 過擬合與正則化