正规方程法

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 \]

posted on 2021-08-16 14:08  MrLouis  阅读(597)  评论(0)    收藏  举报