Andrew Ng 机器学习笔记(二)

监督学习的应用:梯度下降


梯度下降算法思想:

Andrew Ng 机器学习笔记(二)_第1张图片

先选取一个初始点,他可能是0向量,也可能是个随机点。在这里选择图中这个+点吧。

然后请想象一下:如果把这个三位图当成一个小山公园,而你整站在这个+的位置,这时你想下山,并且要用最快的速度下山,于是你环视了一圈周围的地形,找了个坡度最大的位置走了一步。随后继续环视一圈,再走你认为能最快下山的一步,以此类推,路线如下图所示:

Andrew Ng 机器学习笔记(二)_第2张图片

可以看到我们走到了最下面的一个点。然而我们换一个起始点会产生另一种路线:

Andrew Ng 机器学习笔记(二)_第3张图片

这是梯度下降的一个性质,不同的输入,梯度下降的路线有可能不同。

(然后老师讲了一堆看不太懂的公式,大致思路明白就不细说了,反正是不会求~)

实际上我们现有的数据的模型不会像那个彩色小山图那么复杂,应该会像一个下凹的碗状图,从边缘走到碗的地步一般也只需要迭代六七次就行了。

看一下房屋面积和房价的关系通过梯度下降是如何推导的:

Andrew Ng 机器学习笔记(二)_第4张图片

经过几次迭代后,通过训练集找到了房价和房屋面积的一次函数关系。


但是,这种传统的梯度下降算法每运行一次的时候都会遍历一次与那时数据集并求和(这样做应该是梯度下降公式导致的),如果遇到100w这么多的数据集,每次计算机都要遍历一遍,时间复杂度可想而知。因此当训练集太大的时候,我们需要更新我们的算法,他叫随机梯度下http://offlintab.firefoxchina.cn/private.html?cachebust=20150714降。


随机梯度下降:

开始低度下降的时候只需要查看第一个训练样本,并且利用第一个训练样本进行更新;之后使用第二个样本,进行第二次更新,而不用遍历整个数据库。

对于大量数据而言,随机梯度下降确实会大大降低时间复杂度,但是他不会精确的收敛到全局最小值,有可能会在全局最小值附近持续徘徊。用精度换时间的办法。




你可能感兴趣的:(机器学习,梯度下降,机器学习)