深度理解机器学习15-梯度

文章讨论了神经网络训练中遇到的梯度爆炸和梯度消失现象,以及它们如何影响RNN和CNN的性能。梯度爆炸可能导致权重更新过大,而梯度消失则阻碍权重的有效更新。此外,文章还介绍了RNN的有状态和无状态模式,这两种模式影响着序列数据的处理方式。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

梯度爆炸

在神经网络中,当前面隐藏层的学习速率低于后面隐藏层的学习速率,即随着隐藏层数目的增加,分类准确率反而下降了。 这种现象叫梯度爆炸。

当梯度爆炸到更大的值时,就会发生这种情况。这可能是RNN结构在更大的时间步长下会遇到的问题之一。当每个偏导数大于1时,这种情况可能发生,并且这些偏导数的相乘会导致更大的值。这些较大的梯度值会导致权重值在每

梯度消失

出现在以梯度下降法和反向传播训练人工神经网络的时候。在每次训练的迭代中,神经网路权重的更新值与误差函数的偏导数成比例,然而在某些情况下,梯度值会几乎消失,使得权重无法得到有效更新,甚至神经网络可能完全无法继续训练。

论是RNN还是CNN,如果计算出的损失不得不返回很多,梯度消失可能是个问题。在CNN中,当有许多激活层时,如sigmoid或tanh,就会出现这个问题。损失必须一路返回到初始层,这些激活通常在它们到达初始层时稀释它们,这意味着初始层几乎没有权重更新,从而导致欠拟合。这在RNN中甚至很常见,因为即使一个网络有一个RNN层但有大量的时间步长,由于时间的反向传播,损失也必须在整个时间步长内传播。由于梯度是乘法的,如前面的广义导数表达式所示,这些值趋向于变低,并且权重在某个时间步长后不会更新。这意味着,即使向网络显示更多的时间步长,网络也不会受益,因为梯度不能一直往回传播。RNN中的这种限制是由于梯度消失造成的。

有状态与无状态

RNN有两种可用的操作模式:无状态模式和有状态模式。如果argument stateful=True,则表示你正在使用有状态模式,False表示无状态模式。

无状态模式基本上是说一个批处理中的一个例子与下一个批处理中的任何例子都不相关。也就是说,在给定的情况下,每个例子都是独立的。在每个例子之后,状态被重置。每个示例都有一定数量的时间步长,具体取决于模型结构。

在有状态模式下,批次1的示例i的状态被传递给批处理2的i+1示例。这意味着状态在批处理中从一个例子传递到下一个例子。因此,这些示例必须跨批次连续,不能是随机的

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

五百五。

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值