码迷,mamicode.com
首页 > 其他好文 > 详细

梯度下降

时间:2016-04-17 22:58:46      阅读:311      评论:0      收藏:0      [点我收藏+]

标签:

参考了Udacity的一个梯度下降pdf


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

我们下山的过程是怎样的?
想象一下下图红点下山的目标是什么,就是下到哪里?
技术分享
技术分享

为了让函数来理解如何下山,我们来回忆一下导数。
一个自变量的导数:
技术分享
技术分享
两个自变量的导数,这里求的是偏导数,即对某一变量求导:
技术分享
技术分享

可以来理解梯度了:
看下梯度怎么求:
(理解下求导后的负号)
一个简单的例子:
技术分享
技术分享
难一点的例子:
技术分享
技术分享

我们为什么关心梯度呢?
梯度由对函数的各个变量求导得到,可以用来表示函数增加最快的方向,也就是变量往梯度方向改变,那么函数会增加最快。
梯度能够指示我们如何下山,忘哪个方向走的问题,梯度指示最快上山的方向,那么最快下山就是反方向了。
然后我们又会想,知道了方向,我们还需要知道走多大的步子,走到什么时候停止。回忆下,梯度是一个各个分量可能含有变量的向量,
如果向量的代入当前的坐标值时候,就可以用来指示当前增长最快的方向了,向量各个分量是一个值,那么给向量乘上一个系数就可以用来控制步长
技术分享
技术分享

需要注意的问题:
1、a是用来控制步长的,注意点就是a的大小。a过小可能很久都走不到最低点,a过大可能一下就跨过了最低点。所以我们可能需要找一些方法动态的控制a到合适的值。
2、梯度用到了导数,那么也就是说原函数要是可微的。如果像线性回归找最小cost函数的时候,加上绝对值时,要考虑是否可微。 这也是用平方来替代绝对值的原因。
技术分享
技术分享


让我们看两个例子加深理解:
一个参数的例子:
技术分享
技术分享
两个参数的例子:
技术分享技术分享技术分享
技术分享
技术分享
技术分享

梯度下降

标签:

原文地址:http://blog.csdn.net/guoguo_dreamfly/article/details/51174620

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!