您的位置:首页 > 其它

梯度下降

2016-04-17 19:11 357 查看
参考了Udacity的一个梯度下降pdf

理解梯度下降可以,先联想一下自己下山的过程。

我们下山的过程是怎样的?

想象一下下图红点下山的目标是什么,就是下到哪里?





为了让函数来理解如何下山,我们来回忆一下导数。

一个自变量的导数:





两个自变量的导数,这里求的是偏导数,即对某一变量求导:





可以来理解梯度了:

看下梯度怎么求:

(理解下求导后的负号)

一个简单的例子:





难一点的例子:





我们为什么关心梯度呢?

梯度由对函数的各个变量求导得到,可以用来表示函数增加最快的方向,也就是变量往梯度方向改变,那么函数会增加最快。

梯度能够指示我们如何下山,忘哪个方向走的问题,梯度指示最快上山的方向,那么最快下山就是反方向了。

然后我们又会想,知道了方向,我们还需要知道走多大的步子,走到什么时候停止。回忆下,梯度是一个各个分量可能含有变量的向量,

如果向量的代入当前的坐标值时候,就可以用来指示当前增长最快的方向了,向量各个分量是一个值,那么给向量乘上一个系数就可以用来控制步长。





需要注意的问题:

1、a是用来控制步长的,注意点就是a的大小。a过小可能很久都走不到最低点,a过大可能一下就跨过了最低点。所以我们可能需要找一些方法动态的控制a到合适的值。

2、梯度用到了导数,那么也就是说原函数要是可微的。如果像线性回归找最小cost函数的时候,加上绝对值时,要考虑是否可微。 这也是用平方来替代绝对值的原因。





让我们看两个例子加深理解:

一个参数的例子:





两个参数的例子:











内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: