吳恩達機器學習(二)線性迴歸 3/3 —— 向量化及正規方程

1. 模型向量化(重要)

(Model Vectorization)

爲了在實際應用中計算更爲方便,例如在編程中都是使用矩陣進行計算(參考 編程作業(1)線性迴歸),我們可以將整個模型向量化。

在這裏插入圖片描述
對於整個訓練集而言:

1.1 輸入輸出及參數

可以用 特徵矩陣 XX 來描述所有特徵,用參數向量 θ\theta 來描述所有參數,用輸出向量 yy 表示所有輸出變量:
X=[x0(1)x1(1)x2(1)xn(1)x0(2)x1(2)x2(2)xn(2)::::x0(m)x1(m)x2(m)xn(m)] , θ=[θ0θ1:θn] , y=[y(1)y(2):y(m)]X=\begin{bmatrix} x_0^{(1)}&x_1^{(1)}&x_2^{(1)}&···&x_n^{(1)}\\ \\ x_0^{(2)}&x_1^{(2)}&x_2^{(2)}&···&x_n^{(2)}\\ \\:&:&:&···&:\\ \\ x_0^{(m)}&x_1^{(m)}&x_2^{(m)}&···&x_n^{(m)}\\ \end{bmatrix}\ ,\ \theta=\begin{bmatrix} \theta_0\\ \\ \theta_1\\ \\:\\ \\ \theta_n \end{bmatrix}\ ,\ y=\begin{bmatrix} y^{(1)}\\ \\ y^{(2)}\\ \\:\\ \\ y^{(m)} \end{bmatrix}XX 的維度是 m(n+1)m*(n+1)x0=1x_0=1θ\theta 的維度爲 (n+1)1(n+1)*1yy 的維度爲 m1m*1

1.2 假設函數

整個訓練集所有假設結果 也可以用一個 m1m*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))]h_\theta(x)=X\theta=\begin{bmatrix} x_0^{(1)}\theta_0+x_1^{(1)}\theta_1+x_2^{(1)}\theta_2+···+x_n^{(1)}\theta_n\\ \\ x_0^{(2)}\theta_0+x_1^{(2)}\theta_1+x_2^{(2)}\theta_2+···+x_n^{(2)}\theta_n\\ \\:\\ \\ x_0^{(m)}\theta_0+x_1^{(m)}\theta_1+x_2^{(m)}\theta_2+···+x_n^{(m)}\theta_n\\ \end{bmatrix}=\begin{bmatrix}h_\theta(x^{(1)})\\ \\ h_\theta(x^{(2)})\\ \\:\\ \\ h_\theta(x^{(m)}) \end{bmatrix}

1.3 代價函數

對於代價函數,也可以向量化,先看原始的公式:
J(θ)=12mi=1m(hθ(x(i))y(i))2J(θ)=\frac{1}{2m} \displaystyle\sum_{i=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)](X θ - y)=\begin{bmatrix}h_\theta(x^{(1)})-y^{(1)}\\ \\ h_\theta(x^{(2)})-y^{(2)}\\ \\:\\ \\ h_\theta(x^{(m)})-y^{(m)} \end{bmatrix}是一個 m1m*1 的矩陣,故 (Xθy)T(X θ - y)^T是一個1m1*m的矩陣,因此:
(Xθy)T(Xθy)=i=1m(hθ(x(i))y(i))2=(Xθy)(Xθy)(X θ - y)^T(X θ - y)=\sum_{i=1}^m(h_θ( x^{(i)} ) - y^{(i)})^2=(X θ - y)·(X θ - y)其中最後一項表示向量(Xθy)(X θ - y)自身的內積(注意:內積是該向量每一項的平方之和,結果是標量

因此代價函數就可以化簡爲:J(θ)=12mi=1m(hθ(x(i))y(i))2=12m(Xθy)T(Xθy)=12m(Xθy)(Xθy)J(θ)=\frac{1}{2m} \sum_{i=1}^{m} ( h_θ( x^{(i)} ) - y^{(i)})^2 =\frac{1}{2m} (X θ - y)^T(Xθ - y)=\frac{1}{2m} (X θ - y)·(X θ - y)

1.4 梯度下降函數

最後,用向量來表示梯度下降,原公式爲:
θj:=θjα1mi=1m(hθ(x(i))y(i))xj(i)\theta_j:=\theta_j-\alpha\frac{1}{m}\sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_j^{(i)}現用向量來表示所有參數的更新過程:θ=θαδ\theta=\theta-\alpha\delta其中:θ=[θ0θ1:θn]  ,  δ=1m[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)]\theta=\begin{bmatrix} \theta_0\\ \\ \theta_1\\ \\:\\ \\ \theta_n \end{bmatrix}\ \ ,\ \ \delta=\frac{1}{m} \begin{bmatrix} \sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_0^{(i)}\\ \\ \sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_1^{(i)}\\ \\······\\ \\ \sum_{i=1}^{m}(h_\theta(x^{(i)})-y^{(i)})x_n^{(i)} \end{bmatrix}

又因爲:δ=1m[x0(1)x0(2)x0(m)x1(1)x1(2)x1(m):::x0(1)x0(2)x0(m)][hθ(x(1))y(1)hθ(x(2))y(2)hθ(x(m))y(m)]=1mXT(Xθy)\delta=\frac{1}{m} \begin{bmatrix} x_0^{(1)}&x_0^{(2)}&···&x_0^{(m)}\\ \\ x_1^{(1)}&x_1^{(2)}&···&x_1^{(m)}\\ \\:&:&···&:\\ \\ x_0^{(1)}&x_0^{(2)}&···&x_0^{(m)}\\ \end{bmatrix} \begin{bmatrix} h_\theta(x^{(1)})-y^{(1)}\\ \\ h_\theta(x^{(2)})-y^{(2)}\\ \\······\\ \\ h_\theta(x^{(m)})-y^{(m)} \end{bmatrix}=\frac{1}{m}X^T(X\theta-y)
因此,梯度下降可以表示爲:
θ=θα1mXT(Xθy)\theta=\theta-\alpha\frac{1}{m}X^T(X\theta-y)

2. 正規方程

(Normal Equation)

到目前爲止,我們都在使用 梯度下降算法 來求解 線性迴歸問題,即求偏導來尋找使代價函數得到最優解的參數。現介紹另外一種求 參數θθ的方法,即正規方程(Normal Equation):

假設我們的訓練集特徵矩陣爲 XX(包含了x0x_0),並且我們的訓練集結果爲向量 yy,則利用正規方程可以直接解出最優的 參數向量 θθ
θ=(XTX)1XTyθ=(X^TX)^{-1}X^Ty上標 TT 代表矩陣轉置,上標 1-1 代表矩陣的逆。

注:對於那些不可逆的矩陣(通常是因爲特徵之間不獨立,如同時包含英尺爲單位的尺寸和米爲單位的尺寸兩個特徵,也有可能是特徵數量大於訓練集的數量),正規方程方法是不能用的。

2.1 正規方程的推導過程

在模型向量化中,我們得到代價函數:
J(θ)=12mi=1m(hθ(x(i))y(i))2=12m(Xθy)T(Xθy)J(θ)=\frac{1}{2m} \sum_{i=1}^{m} ( h_θ( x^{(i)} ) - y^{(i)})^2 =\frac{1}{2m} (X θ - y)^T(Xθ - y)化簡得:
J(θ)=12m(Xθy)T(Xθy)=12m(θTXTyT)(Xθy)=12m(θTXTXθθTXTyyTXθ+yTy) \begin{aligned} J(θ)&=\frac{1}{2m} (X θ - y)^T(Xθ - y) \\&=\frac{1}{2m}(θ^TX^T-y^T)(Xθ - y) \\&=\frac{1}{2m}(θ^TX^TXθ-θ^TX^Ty-y^TXθ+y^Ty) \end{aligned} 接下來對 J(θ)J(θ) 求偏導,需要用到以下幾個矩陣的求導法則:

  • dABB=AT\dfrac{dAB}{B}=A^T
  • dXTAXX=2AX\dfrac{dX^TAX}{X}=2AX

J(θ)J(θ) 求導得:
J(θ)θ=12m(2XTXθXTy(yTX)T0)=12m(2XTXθXTyXTy0)=12m(2XTXθ2XTy)=1m(XTXθXTy) \begin{aligned} \frac{\partial J(θ)}{\partial θ}&=\frac{1}{2m}(2X^TXθ - X^Ty-(y^TX)^T-0) \\&=\frac{1}{2m}(2X^TXθ - X^Ty-X^Ty-0) \\&=\frac{1}{2m}(2X^TXθ - 2X^Ty) \\&=\frac{1}{m}(X^TXθ - X^Ty) \end{aligned} J(θ)θ=0\dfrac{\partial J(θ)}{\partial θ}=0,則有:
θ=(XTX)1XTyθ=(X^TX)^{-1}X^Ty

2.2 梯度下降和正規方程的比較

梯度下降 正規方程
需要選擇學習率αα 不需要
需要多次迭代 一次運算得出,不需要迭代
當特徵數量 nn 很大時也能正常運行 不適合特徵數量 nn 很大的情況,因爲逆矩陣(XTX)1(X^TX)^{-1}的計算複雜度高,運算代價大,一般 nn 小於10000 可接受
適用於各種類型的模型 只適用於線性模型,不適合邏輯迴歸模型等其他模型

2.3 正規方程之不可逆性

θ=(XTX)1XTyθ=(X^TX)^{-1}X^Ty 通常有以下兩種原因會使矩陣 XTXX^TX不可逆(即奇異矩陣):

  • 模型中有多餘的特徵(Redundant features),使得矩陣 XTXX^TX線性相關(linearly dependent),例如兩個特徵都是面積,但是用了不同的單位(1 m = 3.28 feet):
    • x1=size in feet2x_1=size\ in\ feet^2
    • x1=size in m2x_1=size\ in\ m^2
  • 模型的特徵數量過多,例如 mnm\leq nmm爲樣本數量,nn爲特徵數量
    • 一般通過刪除某些特徵,或者使用正則化方法來解決mnm\leq n的問題,見下一章 過擬合與正則化
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章