什么是正规方程

梯度下降法计算参数最优解,过程是对代价函数的每个参数求偏导,通过迭代算法一步步更新,直到收敛到全局最小值,从而得到最优参数。而正规方程是一次性求得最优解

思想:对于一个简单函数,对参数求导,将其值置为0,就得到参数的值。

但现实例子有很多参数,我们要对这些参数都求偏导数,得到各个参数的最优解,也就是全局最优解。但是困难在于,这样做非常浪费时间。

正规方程的使用

矩阵可逆

mm 个训练样本:(x(1),y(1)),  (x(2),y(2)),  ,  (x(m),y(m))(x^{(1)},y^{(1)}),\;(x^{(2)},y^{(2)}),\;\ldots,\;(x^{(m)},y^{(m)})nn 个特征向量

对于每一个训练样本 x(i)x^{(i)} 都可能是这样的一个 n+1n+1 维特征向量,以及yy

x(i)=[x0(i)x1(i)x2(i)xn(i)]y=[y(1)y(2)y(3)y(m)]x^{(i)}=\begin{bmatrix} x_{0}^{(i)} \\ x_{1}^{(i)} \\ x_{2}^{(i)} \\ \ldots \\ x_{n}^{(i)} \end{bmatrix} \quad\quad y=\begin{bmatrix} y^{(1)} \\ y^{(2)} \\ y^{(3)} \\ \ldots \\ y^{(m)} \end{bmatrix}

根据 xix^i 这个向量构造出 XX 矩阵,也就是取出每一个向量然后进行转置:

X=[(x(1))T(x(2))T(x(m))T]X=\begin{bmatrix} (x^{(1)})^T \\ (x^{(2)})^T \\ \ldots \\ (x^{(m)})^T \end{bmatrix}

然后再通过这个XX矩阵求解参数θ\theta

θ=(XTX)1XTy\theta=(X^{T}X)^{-1}X^{T}y

最后这个 θ\theta 值会最小化:minθJ(θ)\min\limits_{\theta}J(\theta) ,最终就使得代价函数J(θ)J(\theta)最小

例如:
如果 x(i)=[1x1(i)]x^{(i)}=\begin{bmatrix} 1 \\ x_1^{(i)} \end{bmatrix},也就是只有一个特征向量,假设有m个训练样本

XX矩阵为[1x(1)1x(2)1x(m)]\begin{bmatrix} 1 \quad x^{(1)} \\ 1 \quad x^{(2)} \\ \ldots \\ 1 \quad x^{(m)} \end{bmatrix} ,y向量为[y(1)y(2)y(m)]\begin{bmatrix} y^{(1)} \\ y^{(2)} \\ \ldots \\ y^{(m)} \end{bmatrix}

最后再代入公式求解参数即可

矩阵不可逆

在计算 θ\theta 时,存在一个求逆矩阵的过程 (XTX)1(X^TX)^{-1} ,则会存在矩阵不可逆的情况,一般有以下两种原因:

  1. 存在多余的特征

    也就是一个特征可以用另一个特征线性表达,那么此时这个矩阵就是不可逆的。用线性代数的知识点来解释就是 矩阵的秩 < 矩阵的维度,不可逆。

  2. 特征的数量过多(例如 mnm\le n),解决方法是删除一些特征,或进行正则化

    • m<nm<n:样本数小于特征数,也就是矩阵的维度小于向量的个数,线性相关
    • m=nm=n:当A=0|A|=0时不可逆,当A0|A|\neq 0时可逆

正规方程和梯度下降

正规方程

优点:

  1. 不需要学习率 α\alpha
  2. 不需要多次迭代
  3. 不需要进行特征缩放

缺点:

  1. 需要计算(XTX)1(X^TX)^{-1},计算复杂度为O(n3)O(n^3),比较高
  2. 特征参数比较大的时候,计算缓慢

梯度下降

优点:

  1. 无论特征参数大还是小,梯度下降都能够很好的工作

缺点:

  1. 需要选择学习率 α\alpha
  2. 需要多次迭代

总结

取决于特征向量的个数,数量小于10000时,选择正规方程;大于10000,考虑梯度下降或其他算法