正规方程法
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号