机器学习笔记(5)正规方程

/*本课程笔记依托于Machine Learning——Andrew Ng(Stanford University)*/

这篇笔记中我想记录一下关于正规方程(Normal Equation)也叫标准方程法的相关知识

之前在梯度下降部分的笔记中提到过,求解函数的最小值有梯度下降方法和正规方程方法。梯度下降方法之前的笔记内容已经做了比较深入的探讨,今天主要来阐述一下正规方程的一些问题以及正规方程和梯度下降各自适用的情况

(咦,之前好像都没有写类似导语的东西0.0)

梯度下降方法是一步一步慢慢接近最低点,而正规方程抛弃了一步一步走的惯例,一步求解最后的结果,听起来貌似很神奇的样子。,首先我们先定义一个代价函数,正规方程的做法就是对定义的代价函数直接求导数,将导数置为0,可以直接求解极值点,这看起来就和高中数学差不多。但这里还存在一个问题,就是当θ不是常数而是向量的时候,这样的求导就变得很困难,但也不是不可解,我们可以分别对向量里的每一个分量单独求导,然后组合,这样明显不符合上一篇笔记中提到的简洁,而且这个微分项会很复杂

我们还是引入这个例子,和上一篇笔记中的思想一致,我们在所有特征量的前面加上一行x0特征量,这样就可以用到上篇笔记中的向量表示方法

所有的x可以统一的写在一个向量里,这样就将数据进行了向量化

同理y也可以进行向量化,那么现在我们如何使用这两个向量呢?

这里我们就需要用到正规方程来来对这个向量进行求导操作,但是正如前面所叙述的,对于向量的求导很困难,幸好数学家帮我们解决了这个难题,经过推到可以得出,因此将两个向量带入计算式中进行计算可以很方便的算出结果

既然梯度下降方法和正规方程法都可以得出参数θ,那么这两个方法再选择上有什么区别

这里完整的罗列出了梯度下降和正规方程的优缺点,因此我们能看出在各种情况下,梯度下降方法都可以很好的工作,但在特征数量很大的时候正规方程法则会产生很大的时间复杂度,而且正规方程法只适用于线性模型,而不是用于逻辑回归模型或者其他模型

当然下面要提的这个问题就比较有意思了,因为正规方程需要需要对矩阵求逆矩阵,当然这里你可能就会好奇,如果一个矩阵是奇异矩阵那么怎么求逆矩阵。实际上在线性代数和矩阵论中,奇异矩阵只有广义逆矩阵,在现阶段我们可以直接理解为奇异矩阵没有逆矩阵。那么如果我们的输入是一个奇异矩阵该怎么求逆,在MATLAB或者OCTAVE中inv()可以求非奇异矩阵的逆矩阵,而pinv()则可以求所有矩阵的逆矩阵(不论矩阵式奇异矩阵还是非奇异矩阵,都可以求逆,也成为伪逆函数),至于具体实现这里我们不纳入考虑的范围,我们只需要知道在MATLAB或者OCTAVE的编程中,我们需要使用pinv()来保证可以对任何形式的矩阵求逆。这里我们不应该过多关注是否可逆的问题,因为这并不是本质问题

About the author

NOBUG.IN

Add comment

By NOBUG.IN

Your sidebar area is currently empty. Hurry up and add some widgets.