小白对斯坦福大学机器学习中的几个点的理解(一)

来源:互联网 发布:供应商管理商业数据库 编辑:程序博客网 时间:2024/06/07 03:57

小白对斯坦福大学机器学习中的几个点的理解(一)
1、块梯度下降(批梯度下降)以及随机梯度下降
对于线性回归(及logistic回归),以及感知机,SVM等方法来说,本质就是要找出一个超平面,不同的方式是用不同的算法,不同的策略去寻找这个超平面,也就是说,他们的模型,应该是相同的。
既然有相同的模型:超平面,那么对于损失函数,是类似的:用所有的点到该超平面的距离进行衡量。当然,点的选取也有所不同:感知机是误分类点到该超平面的距离,而线性回归则是利用实际值到超平面的距离。这种不同不会影响损失函数的选择,实际上,选择的损失函数都类似于:

J(Θ)=i=1n(θxiyi)21

然后就是最小化损失函数。
该问题数据非约束问题的最小化方法,对于该类问题,通常用的方法就是梯度下降方法(以及牛顿法)。
了解梯度下降方法,首先是要了解非约束方法中的一维搜索方法。
梯度下降算法实际是最优化理论中,一维搜索算法的一种。那么什么是一维搜索呢?
摘自《最优化理论与算法》 陈宝林
而梯度下降算法,则是一维搜索算法中的一种方向的选择:选择一种下降速度最快的方向,用安德鲁的话就是:寻找下山最快的方向,然后移动到下一个点。
即:
θ:=θϕJ(θ)ϕθ2

其中,θ是个向量,里面包括多个维度,每个维度的θ值都按照这个方法来求,将1代入2中,即可求得迭代下降中,下一步前进的方向。

但是,对于2来说,通常情况下,我们看的是多个样例点的误差的和,在样例点很多的情况下,就会导致每次迭代,都要遍历所有的点进行计算,求和,这无疑会很大的影响效率。于是就有了随机梯度下降算法。
对于随机梯度下降算法来说,理解起来并不难:只是选择一个点,去求下一步的的θ值。这样的话,就可以很快的计算了。
但是,有一个问题:在批梯度下降算法中,我们是通过求导的方法,求出下降的方向,来保证我们前进的方向是可以使目标函数下降的。但是随机梯度下降算法,怎么保证是下降的呢?
http://www.cnblogs.com/murongxixi/p/3467365.html
上述博客对该问题进行了论证,该方法是依期望进行收敛的。因此,该方法是可行的。
2、梯度下降算法的求解
在安德鲁的课中,安德鲁用矩阵对梯度下降的求导方法就行了变换,将求导的过程转变了求矩阵的值。比如使用python来说,使用numpy可以快速的进行求值。但是里面有一部分是比较不明白的:在使用迹tr来进行变换的时候,为什么说tr后面的那个函数是实数呢? 这个点没有搞懂。

3、局部线性加权算法:
局部线性加权,并不会使用所有的值来进行预测,而是利用他临近的值。至于临近的范围,对于临近的值如何赋予权重,都由权重函数来进行限制。当有要预测的点事,用临近的点来进行预测,看起来也是比较不错的。
但是这个方法有个缺点,那就是每次进行预测时,都会需要重新的计算。对于线性回归来说,我利用所有的点进行拟合,得到参数之后,后面的预测我用该参数就行了。但是对于局部线性加权是不行的,因为局部线性加权是利用周围的点来判断你的拟合情况,来新的点时候,我需要根据你的周围值来进行计算,不存在实现就已经计算好的情况。

0 0
原创粉丝点击