转梯度算法的理解


梯度

从数学的角度理解:就是对多元函数进行分别的求偏导数,把各个的参数对应的偏导数一起以向量的形式表示出来。向量即(x,y),几何上就是有一定的方向也(假设在二维平面上)。沿着这个方向上的函数是变化最快的。

特例:梯度下降


换成人话就是:比如我们正在山顶上,我要以最快的速度走到山底去,咋办?肯定是找向下的一步一步的走下坡路且是下降最厉害的那个方向下去,才能是最快到达山底。

这里的下坡路就是梯度为负值,而且上面说了梯度的特点就是函数变化最快的。所以我们每走一步,就重新定位到当前的梯度方向,沿着梯度这个方向走最陡,也会是下降的高度最大,这样每一步都是下降最快的方向下降,最终累加起来肯定是最快到达最低点的。有点像局部最优解,最终导致总体最优解的贪心算法。

但是有时候你也可能到不了山底,为什么?如右图,因为你沿着梯度方向走没错,是最陡的方向下降也最快,可是因为你起点不同,起点地方的梯度也就不同了,这样一步步按照梯度方向走,最终实际上确找不到最底点。而是一个局部的最底点,而我们是要走到整个大山的最底点啊,对的,有时候梯度下降方法理论没错,但有时候也还是走不到真正的最底点。

总结:利用梯度法不一定能找的到整体最优解。但是如果此函数是凸函数(即只有一个山峰)那就还是能够找到最优解。然后影响因素还有你的起点,你起点不同,用的梯度下降法,最终也可能导致找不到最底点,这就有点看运气了。还有就是,你的步长大小,在左一图中,如果你迈开步子比较大的话,在快接近最低点的时候,正好被你跨过去了,所以错失了最低点。

在深层学习里面,为了使得loss函数最小,会用梯度算法来找最底点。但是有时候找到的可能是局部最底点,不一定是整体最低点。没关系,举吴恩达统计说,其实最终2着相差不大,所以可以忽略不计。

所以在反向传播时候,就是用梯度下降法,来使得loss函数最小,loss函数就是山的最底点。每经过反向传播到达一层网络,就像是在山顶向下走了一步,然后又往前面一层传播用梯度下降法,又相当于在当前脚下沿着最陡方向下降了一步。所以影响loss函数的因素就是:你迈开步子的大小(即学习率),太大会错过最底点,太小走的慢费时间。还有,就是你的初始值(即你的起始点),前面分析了。梯度下降法,保证了你就是沿着最陡的方向走,每一步当前最陡的方向,所以你不用担心每个地方的最陡方向不同。梯度下降法就是找当前脚下最陡的那个方向,你沿着那个方向走下去就没事的。



https://blog.csdn.net/woxincd/article/details/7040944

http://www.360doc.com/content/12/0529/22/4617781_214618453.shtml

http://www.cnblogs.com/pinard/p/5970503.html

http://blog.sina.com.cn/s/blog_a89e19440101bkc6.html

https://www.zhihu.com/question/20822481


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值