什么是正规方程
梯度下降法计算参数最优解,过程是对代价函数的每个参数求偏导,通过迭代算法一步步更新,直到收敛到全局最小值,从而得到最优参数。而正规方程是一次性求得最优解。
思想:对于一个简单函数,对参数求导,将其值置为0,就得到参数的值。
但现实例子有很多参数,我们要对这些参数都求偏导数,得到各个参数的最优解,也就是全局最优解。但是困难在于,这样做非常浪费时间。
正规方程的使用
矩阵可逆
有 m 个训练样本:(x(1),y(1)),(x(2),y(2)),…,(x(m),y(m)),n 个特征向量
对于每一个训练样本 x(i) 都可能是这样的一个 n+1 维特征向量,以及y:
x(i)=⎣⎢⎢⎢⎢⎢⎢⎡x0(i)x1(i)x2(i)…xn(i)⎦⎥⎥⎥⎥⎥⎥⎤y=⎣⎢⎢⎢⎢⎢⎡y(1)y(2)y(3)…y(m)⎦⎥⎥⎥⎥⎥⎤
根据 xi 这个向量构造出 X 矩阵,也就是取出每一个向量然后进行转置:
X=⎣⎢⎢⎢⎡(x(1))T(x(2))T…(x(m))T⎦⎥⎥⎥⎤
然后再通过这个X矩阵求解参数θ:
θ=(XTX)−1XTy
最后这个 θ 值会最小化:θminJ(θ) ,最终就使得代价函数J(θ)最小
例如:
如果 x(i)=[1x1(i)],也就是只有一个特征向量,假设有m个训练样本
则X矩阵为⎣⎢⎢⎢⎡1x(1)1x(2)…1x(m)⎦⎥⎥⎥⎤ ,y向量为⎣⎢⎢⎢⎡y(1)y(2)…y(m)⎦⎥⎥⎥⎤
最后再代入公式求解参数即可
矩阵不可逆
在计算 θ 时,存在一个求逆矩阵的过程 (XTX)−1 ,则会存在矩阵不可逆的情况,一般有以下两种原因:
-
存在多余的特征
也就是一个特征可以用另一个特征线性表达,那么此时这个矩阵就是不可逆的。用线性代数的知识点来解释就是 矩阵的秩 < 矩阵的维度,不可逆。
-
特征的数量过多(例如 m≤n),解决方法是删除一些特征,或进行正则化
- m<n:样本数小于特征数,也就是矩阵的维度小于向量的个数,线性相关
- m=n:当∣A∣=0时不可逆,当∣A∣=0时可逆
正规方程和梯度下降
正规方程
优点:
- 不需要学习率 α
- 不需要多次迭代
- 不需要进行特征缩放
缺点:
- 需要计算(XTX)−1,计算复杂度为O(n3),比较高
- 特征参数比较大的时候,计算缓慢
梯度下降
优点:
- 无论特征参数大还是小,梯度下降都能够很好的工作
缺点:
- 需要选择学习率 α
- 需要多次迭代
总结
取决于特征向量的个数,数量小于10000时,选择正规方程;大于10000,考虑梯度下降或其他算法