标准方程 Normal Equations

标准方程

线性回归里的梯度下降算法,通过不停地迭代求参数,从而不停地逼近成本函数的最小值来求解。另外一个方法是直接计算成本函数的微分,令微分算子为零,求解这个方程,即可得到线性回归的解。

回忆一下线性回归算法的成本函数:

$$ J(\theta) = \frac{1}{2m} \sum_{(i=0)}^n \left( h_\theta(x^{(i)}) - y^{(i)} \right)^2 $$

我们让 $\frac{\delta}{\delta \theta} J(\theta) = 0$,求解这个方程最终可以得到:

$$ \theta = \left( X^T X \right)^{-1} X^T y $$

这个就是我们的标准方程。它通过矩阵运算,直接从训练样本里求出参数 $\theta$ 的值。

  • 从成本函数的微分方程推导出标准议程的过程比较复杂,涉及到较多的矩阵运算和矩阵微分运算。感兴趣的可以参考 cs229-notes1.pdf。另外 里面有线性代数的复习资料。
  • $X$ 是训练样本的变量,它是个 m x n 矩阵。其中 m 是训练样本的个数,n 是变量个数。
  • $y$ 是训练样本的结果数据,它是个 m x 1 的列向量。

奇异矩阵

当训练数据集较少时,利用矩阵运算可以较快的算出参数 $\theta$ 的值。但如果 $X^T X$ 是奇异矩阵的话,它就没有逆矩阵存在,这个时候通用方程的解是什么呢?答案是,在 octave 里用 pinv 来代替 inv 来计算逆矩阵。这样即使 $X^T X$ 是奇异矩阵,pinv 也能算出其”伪”逆矩阵,从而顺利算出通用方向的解。

那么,物理上讲,$X^T X$ 如果为奇异矩阵的话,到底代表什么意思呢?

  • 模型变量之间线性相关 比如,在房价预测模型里,$x_1$ 代表房子的长度,$x_2$ 代表房子的宽度,而 $x_3$ 代表房子的面积,这里假设房子是方形的,那么实际上 $x_3$ 和 $x_1, x_2$ 是线性相关的。
  • 训练样例少于变量个数,即 m < n 这种情况下,需要减少变量个数来解决问题

然后,如果 $\left( X^T X \right)$ 是奇异矩阵的话,在其他编程语言里是没有办法逆的。所以需要其他的办法来解决这个问题。在逻辑回归算法里,使用了另外一个方法来解决奇异矩阵的问题,即正则化 (Regularization) 。有关正则化的信息后文写到逻辑回归算法时再来详细介绍。


Post by Joey Huang under ml on 2015-09-29(Tuesday) 23:20. Tags: machine-learning,


Powered by Pelican and Zurb Foundation. Theme by Kenton Hamaluik.