@dongxi
2017-07-29T23:20:17.000000Z
字数 3619
阅读 1404
机器学习
CS229
正规方程组(Normal Equation)在机器学习中是一种比较常见的求权重向量 较为常见的方法,相对于梯度下降不需要迭代过程,也不需要进行特征缩放。
正规方程组与梯度下降不同,需要较多的数学知识作为支撑,关于矩阵方面的知识很多都忘记了,也算是顺便复习下。
首先,我们定义一个函数 表示从 矩阵到实数的映射,我们再定义一个 如下:
公式1和公式2不要太好证明,这里我们就简单说明下公式3和公式4。
上面主要运用了乘法求导法则(虽然我感觉好像有点问题,在第二个等式我不是很理解,如果您理解,希望您能跟我联系)和迹的性质。对于公式4,我们需要借助一点伴随矩阵的知识,我们将伴随矩阵记为 ,则对于任意非奇异矩阵我们有, 。对于行列式,我们有这样的性质,所以很显然公式4右侧就是 ,将公式4左侧展开我们很容易能够发现,公式左侧也是 ,所以公式4也是正确的。
到此为止,我们的知识储备已经足够了,接下来就是核心部分了。
对于一组训练数据,我们很明显可以将输入矩阵和输出向量用下列形式表示:
知乎上有一个关于正规方程组很好理解,也很容易证明的解释,我认为还是有必要在此简单介绍一下。
假设 、 和 均为列向量,我们希望用 和 表示 ,那么当三者不共面时,一定无解,无法求出相应的 使 成立。
最后再墨迹墨迹,到此为止我们只是知道了正规方程组的证明推导过程,我们为什么要使用它,它和梯度下降相比有什么优势或者劣势,这些都没去讨论,以下就是对这些内容的一些理解(实际上应该说是整合)。(待研究 只有在解释变量之间没有完美的多重共线性)
首先,最小二乘法求得的是全局最小值(对于非线性不存在密闭解,需要进行迭代),不需要迭代,避免了梯度下降求得的是局部最优点的问题,同时接近最小点时迭代速度变慢(如果 是自适应的,那就更慢了),对于初始点的选择依赖比较严重。最小二乘法同样需要注意的是 需要是非奇异矩阵,一般来说只要 ,同时特征之间的依赖性不是很强的条件下就不会出现矩阵为非奇异矩阵的情况。
但是,这并不是说梯度下降计算速度慢于最小二乘法,计算一个矩阵的逆是极其耗时的(复杂度大概是 ),所以如果特征数目的数量比较大的时候(在Andrew Ng的Coursera中给出的临界值为 ),最后还是选择梯度下降比较好。同样,梯度下降也并不是不能够达到全局最优点。批量梯度下降法每次会考虑所有的训练样本,所以得到的就是全局最优点,但是这种方式很慢。(待研究 Gram矩阵优化)
在投影方法中,我们可以很不负责的认为二次投影不会对整个求解过程造成任何影响,至少从投影的角度上,我们可以这样认为(这里需要注意二次投影,第二次投影的 被替换为了 ):
本来以为这篇文章很快就能够结束了,结果在自己证明时,还是遇到了各种各样的问题,感觉自己的数学基础实在有点差,准备找时间弥补一下。
With(out) A Trace Matrix Derivatives the Easy Way
线性规划、梯度下降、正规方程组——斯坦福ML公开课笔记1-2
掰开揉碎推导Normal Equation