正规方程
正规方程提供了一种求 θ \theta θ的解析解法,不再需要运行迭代算法,而是可以直接一次性的求解 θ \theta θ的最优解。
利用高等数学知识,我们知道可以利用求导的方法来求解 J ( θ ) J(\theta) J(θ)的最小值,若 θ \theta θ表示的是n+1维向量,则对 θ j \theta_j θj逐个求偏导
举个栗子:
最下面这个方程的结果就是使得代价函数最小化的 θ \theta θ。使用正规方程法求解 J ( θ ) J(\theta) J(θ)的最小值时,不需要进行特征缩放。
如何选择梯度下降法还是正规方程法?
梯度下降的缺点: 需要选择学习速率 α \alpha α,这通常表示要运行很多次来尝试不同的 α \alpha α;需要多次的迭代,就算可能会很慢。
梯度下降的优点: 在特征变量很多的情况下也能运行地相当好。
正规方程的缺点: 计算 ( X T X ) − 1 (X^TX)^{-1} (XTX)−1这一项时,不仅要求 X T X X^TX XTX得到的矩阵满秩,而且计算逆矩阵的代价大概是以矩阵维度的三次方增长,时间复杂度大概是 O ( n 3 ) O(n^3) O(n3)。所以当矩阵维数n过大(通常是上万)时,计算会变得非常缓慢,此时选择梯度下降法效率会更高。
如果 X T X X^TX XTX不可逆怎么办?
不可逆的原因:
(1)矩阵中的两个特征之间存在线性变换关系(线性相关),矩阵不满秩;
(2)n>m(未知数个数>方程个数),方程组有无穷多个解。
Octave里面求逆的函数有两个:pinv和inv,前者是伪逆,后者是逆。数学上可以证明,只要使用pinv就能计算出想要的 θ \theta θ值,即使是在 X T X X^TX XTX不可逆的情况下。
当 X T X X^TX XTX是奇异矩阵时,首先看特征里是否有一些多余的特征可以删除,然后调整特征个数,可以选择删除一些影响不大的特征,防止n>m的情况发生。