正规方程
一、什么是正规方程
梯度下降法计算参数最优解,过程是对代价函数的每个参数求偏导,通过迭代算法一步步更新,直到收敛到全局最小值,从而得到最优参数。
正规方程是一次性求得最优解。
思想:对于一个简单函数,对参数求导,将其值置为0,就得到参数的值。像下面这样:
现实例子有很多参数,我们要对这些参数都求偏导数,得到各个参数的最优解,也就是全局最优解。但是困难在于,这样做非常浪费时间。
二、正规方程的使用
举例如下:
这里4个样本,以及4个特征变量x1,x2,x3,x4,观测结果是y,在列代价函数的时候,需要加上一个末尾参数x0,如下:
再将特征参数保存在X矩阵中,对观测结果做同样的操作并保存在向量y中,如图:
然后我们通过下面这个公式得出参数θ最优解。
关于这个式子推到:
对于一个训练样本的所有特征参数可以用x(i)向量来表示(注意x0(i)要加上) ,而设计矩阵就可以表示为X,是所有样本向量的转置,y是观测结果的向量,这样表示之后可以用上面那个公式直接计算Θ的最优解。
三、不可逆情况
注意到正规方程有一个求逆矩阵的过程,当矩阵不可逆,一般有两种原因:
- 多余特征(线性相关)
- 太多特征(例如:m≤n),解决办法:删除一些特征,或正则化
其实,本质原因还是线性知识:
首先,这是两个必要条件,
根据性质:r(ATA) = r(A),ATA可逆性可转化为A的可逆性。
第一种:实际上是线性相关的列向量,矩阵的秩 < 矩阵的维度,不可逆;
第二种:
- m < n时,也就是维度小于向量个数,在这里也就是样本数小于特征数,线性相关
- m = n时,当|A| = 0时不可逆,|A| != 0时可逆
四、正规方程与梯度下降法的比较
梯度下降法:
缺点:
- 需要选择学习率α
- 需要多次迭代
优点:
- 当特征参数大的时候,梯度下降也能很好工作
正规方程:
缺点:
- 需要计算,计算量大约是矩阵维度的三次方,复杂度高。
- 特征参数大的时候,计算缓慢
优点:
- 不需要学习率α
- 不需要多次迭代
总结:取决于特征向量的个数,数量小于10000时,选择正规方程;大于10000,考虑梯度下降或其他算法。