正規方程法
1.方法介紹
對于一個凸優化問題,梯度下降法是采用不斷迭代的算法逐步得到最優解,而正規方程法是通過求解代價函數的導數為0的點得到最優解。
假設學習過程中的預測函數只有一個\(\theta\)參數,損失函數是一個二次方程:
\[J(\theta)=a\theta^2+b\theta+c
\]
若采用正規方程法求解是該方程最下的\(\theta\)值,只需要令損失函數對\(\theta\)求導,并令導數為0即可。該例子中的未知參數是一個標量,若\(\theta\)是一個n維向量,對應的損失函數可表示為:
\[J(\theta_0,\theta_1,...,\theta_m) = \frac{1}{2m}\sum_{i=1}^{m}(h_\theta (x^{(i)})-y^i)^2 \\
h_\theta(x)=\theta^{T}X=\theta_0 x_0+\theta_1 x_1+...+\theta_n x_n
\]
對于這樣一個函數,我們仍采用求偏導的方法來得到最優解,即分別對\(\theta_i\)求偏導,并且令偏導為00.得到n個方程組,這樣聯立方程組在計算時是比較復雜的,于是引入矩陣向量進行計算。
2.公式推導
假設有m個訓練實例,每個實例n個特征,則訓練實例集用矩陣表示為:
\[X=
\begin{bmatrix}
x_0^{1}&...&x_n^{1}\\
...&...&...\\
x_0^{m}&...&x_n^{m}
\end{bmatrix}
\]
其中,\(x_j^{(i)}\)表示第i個實例的第j個特征。
特征參數為:
\[\theta = [\theta_0,\theta_1,...,\theta_n]^T
\]
輸出變量:
\[Y=
\begin{bmatrix}
y^{(1)},y^{(2)},...,y^{(m)}
\end{bmatrix}
\]
代價函數用矩陣表示為:
\[\begin{aligned}
J(\theta_0,\theta_1,...,\theta_n)&=\frac{1}{2m}(X*\theta-Y)^T(X*\theta-Y)\\
&=\frac{1}{2m}(\theta^TX^T-Y^T)(X\theta-Y)\\
&=\frac{1}{2m}(\theta^TX^TX\theta-\theta^TX^TY-Y^TX\theta+Y^TY)
\end{aligned}
\]
對\(\theta\)求導,可得:
\[\frac{\partial{J}}{\partial \theta}=\frac{1}{2m}(\frac{\partial \theta^TX^TX\theta}{\partial \theta}-\frac{\partial \theta^TX^TY}{\partial \theta}-\frac{\partial Y^TX\theta}{\partial \theta}+\frac{\partial Y^TY}{\partial \theta})
\]
其中,
\[\frac{\partial Y^TY}{\partial \theta} = 0 \\
\frac{\partial \theta^TX^TX\theta}{\partial \theta} = 2X^TX\theta\\
\frac{\partial \theta^TX^TY}{\partial \theta}=X^TY\\
\frac{\partial Y^TX\theta}{\partial \theta}=X^TY
\]
綜上,正規方程為:
\[\frac{1}{2m}(-2X^TY+2X^TX\theta)=0 \\
\theta = (X^TX)^{-1}X^TY
\]
浙公網安備 33010602011771號