【Pytoch】8. 梯度消失和学习速率下降

上一节讲了神经网络的优化办法,这节讲神经网络会遇到的其他问题

梯度消失

看一下sigmoid激活函数的图像,在两端的导数都非常的小

在这里插入图片描述

那么在多层感知机中,反向传播计算梯度的时候,这种情况尤为明显

在这里插入图片描述

这也就意味着,我们在梯度下降的时候,迈的步子非常非常小,可能永远也无法从山上下来,这种现象就叫做梯度消失

在这里插入图片描述

如何解决这个问题呢?

使用其他激活函数

一个方法就是使用其他激活函数,比如说双曲正切

在这里插入图片描述

Relu函数,这个函数也是除了sigmoid之外最常用的,我们可以在前面的一些单元使用relu函数,最后使用sigmoid函数,因为sigmoid会返回0~1的值

在这里插入图片描述

动量

还有一个方法就是动量,动量β是一个0~1之间的数,每次的步长跟前几次的步长有关系,上一步×1,再上一步×β,再再上一步×β²……,越往前的影响越小,这种方法在实际应用中效果很好

在这里插入图片描述

批次与随机梯度下降

在计算的时候,每次都需要把所有的数据带入吗?这样会导致非常庞大的矩阵运算。

如果数据分布合理,那么只要其中一小部分的数据,就可以得到梯度下降的方向,最然不是最准确的梯度估算结果,但是这样计算很快。

比如我们有24个点,就分成4个batch,每个batch 6个点,先拿出第一个batch的数据,正向传播反向传播之后得到更新的weights,然后再用更新的weights拿出第二batch的数据完成相同的流程,得出更好的权重和更好的boundary界限区域……

学习速率衰退

如果学习速率太大,那么可能最后会在最小值附近震荡,如果速率太小,速度又很慢

在这里插入图片描述

我们可以使用学习速率衰减的方法

本系列笔记来自Udacity课程《Intro to Deep Learning with Pytorch》

全部笔记请关注微信公众号【阿肉爱学习】,在菜单栏点击“利其器”,并选择“pytorch”查看

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值