梯度消失问题
普通 RNN 为何会遗忘
梯度消失问题 是 CoddyKit 上的免费 NLP Academy 课时。 这是第 4 节课,共 4 节。 你可以在下方免费阅读本课时的完整内容 — 然后在浏览器中使用内置代码编辑器和全天候 AI 导师进行实践。 这是 NLP Academy 学习路径的一部分,你的进度在网页和 CoddyKit 应用中同步。 NLP Academy 课程共包含 4 节课。
令人沮丧的限制
普通 RNN 看似功能强大,却难以记住长距离上下文。原因在于梯度消失问题。
学习意味着梯度
网络通过将称为梯度的错误信号沿时间反向传递来学习,从而将每个权重向正确的方向微调。
时间反向传播
对于 RNN,这个反向传递会跨越每一个步骤展开,因此长句子意味着一条非常长的乘法链。
小数会迅速变小
当您将许多个小于 1 的值相乘时,结果会迅速趋近于零。梯度还没传到较早的词语,就已经消失了。
较早的词语被忽略
由于信号消失,网络几乎不会更新与最初标记相关的权重,因此较远的上下文实际上丢失了。
快速直觉理解
想象一下将 0.5 连乘 20 次。这个数值几乎会消失,而深层步骤中的梯度也会发生同样的情况。
g = 0.5
for _ in range(20): g *= 0.5
print(g) # tiny相反的危险
当数值超过 1 时,梯度也可能爆炸,变得非常大,并通过剧烈的权重波动使训练不稳定。
控制梯度爆炸
梯度爆炸有一个简单的补救方法:梯度裁剪会限制梯度的大小,使单个步骤无法让您的模型失控。
梯度消失更难处理
梯度消失难以通过简单方法修复,因此普通 RNN 会不断遗忘。我们需要一种更智能的单元,让记忆能够跨越许多步骤保留下来。
真正的解决方案即将出现
带有门控的特殊架构(例如 LSTM 和 GRU)可以控制保留和遗忘的内容,从而保留长距离信号。
为什么这很重要
理解这一限制,就能明白现代序列模型为何会出现:它们的设计目标就是让梯度能够跨越较长距离持续存在。💡
快速检查
为什么普通 RNN 会遗忘长序列中的较早词语?
回顾
在长序列中,普通 RNN 的梯度会消失,从而抹去较远的上下文。像 LSTM 和 GRU 这样的门控单元就是解决方案,我们接下来将探索它们。🎯
用 AI 导师学习 Python — 免费
在浏览器中编写并运行真实代码,获得全天候 AI 导师的即时帮助,并在网页或应用中继续学习。
- 课程
- 30
- 课程
- 120
常见问题解答
「梯度消失问题」课时是免费的吗?
是的 — 「梯度消失问题」的完整文本可在网页上免费阅读。要进行交互式练习(内置代码编辑器和全天候 AI 导师)并解锁 NLP Academy 课程的其余内容,请升级到 CoddyKit PRO。 NLP Academy 课程共包含 4 节课。
「梯度消失问题」这节课中我会学到什么?
普通 RNN 为何会遗忘 你通过在浏览器中直接运行的动手代码来练习 NLP Academy,全天候 AI 导师会在你学习这节课的过程中回答你的问题。
学习 NLP Academy 需要有经验吗?
无需任何先前经验。CoddyKit 上的 NLP Academy 课程适合初学者到高级学习者,你可以从这里开始或从头开始,按照自己的节奏学习。 这是第 4 节课,共 4 节。
「梯度消失问题」课时需要多长时间?
大多数 CoddyKit 课程大约需要 5–10 分钟。每节课都很精短且互动,所以你能稳步进步,并在网页和应用中从离开的地方继续。
我能在这节 NLP Academy 课中编写并运行代码吗?
能。每节 NLP Academy 课都包含内置代码编辑器,你可以在浏览器中直接编写并运行真实代码,并获得即时 AI 反馈 — 无需本地设置。