人工智能-循环神经网络通过时间反向传播

到目前为止,我们已经反复提到像梯度爆炸梯度消失 , 以及需要对循环神经网络分离梯度 。 例如,我们在序列上调用了detach函数。 为了能够快速构建模型并了解其工作原理, 上面所说的这些概念都没有得到充分的解释。 本节将更深入地探讨序列模型反向传播的细节, 以及相关的数学原理。

当我们首次实现循环神经网络时, 遇到了梯度爆炸的问题。 如果做了练习题,就会发现梯度截断对于确保模型收敛至关重要。 为了更好地理解此问题,本节将回顾序列模型梯度的计算方式, 它的工作原理没有什么新概念,毕竟我们使用的仍然是链式法则来计算梯度。

循环神经网络中的前向传播相对简单。 通过时间反向传播(backpropagation through time,BPTT)(Werbos, 1990)实际上是循环神经网络中反向传播技术的一个特定应用。 它要求我们将循环神经网络的计算图一次展开一个时间步, 以获得模型变量和参数之间的依赖关系。 然后,基于链式法则,应用反向传播来计算和存储梯度。 由于序列可能相当长,因此依赖关系也可能相当长。 例如,某个1000个字符的序列, 其第一个词元可能会对最后位置的词元产生重大影响。 这在计算上是不可行的(它需要的时间和内存都太多了), 并且还需要超过1000个矩阵的乘积才能得到非常难以捉摸的梯度。 这个过程充满了计算与统计的不确定性。 在下文中,我们将阐明会发生什么以及如何在实践中解决它们。

完全计算

计算全部总和, 然而,这样的计算非常缓慢,并且可能会发生梯度爆炸, 因为初始条件的微小变化就可能会对结果产生巨大的影响。 也就是说,我们可以观察到类似于蝴蝶效应的现象, 即初始条件的很小变化就会导致结果发生不成比例的变化。 这对于我们想要估计的模型而言是非常不可取的。 毕竟,我们正在寻找的是能够很好地泛化高稳定性模型的估计器。 因此,在实践中,这种方法几乎从未使用过。

截断时间步

在实践中,这种方式工作得很好。 它通常被称为截断的通过时间反向传播 (Jaeger, 2002)。 这样做导致该模型主要侧重于短期影响,而不是长期影响。 这在现实中是可取的,因为它会将估计值偏向更简单和更稳定的模型。

比较策略

****比较RNN中计算梯度的策略,3行自上而下分别为:随机截断、常规截断、完整计算

当基于循环神经网络使用通过时间反向传播 分析《时间机器》书中前几个字符的三种策略:

  • 第一行采用随机截断,方法是将文本划分为不同长度的片断;

  • 第二行采用常规截断,方法是将文本分解为相同长度的子序列。 这也是我们在循环神经网络实验中一直在做的;

  • 第三行采用通过时间的完全反向传播,结果是产生了在计算上不可行的表达式。

遗憾的是,虽然随机截断在理论上具有吸引力, 但很可能是由于多种因素在实践中并不比常规截断更好。 首先,在对过去若干个时间步经过反向传播后, 观测结果足以捕获实际的依赖关系。 其次,增加的方差抵消了时间步数越多梯度越精确的事实。 第三,我们真正想要的是只有短范围交互的模型。 因此,模型需要的正是截断的通过时间反向传播方法所具备的轻度正则化效果。

相关推荐
程序员清洒36 分钟前
CANN模型安全:从对抗防御到隐私保护的全栈安全实战
人工智能·深度学习·安全
User_芊芊君子1 小时前
CANN_PTO_ISA虚拟指令集全解析打造跨平台高性能计算的抽象层
人工智能·深度学习·神经网络
HyperAI超神经1 小时前
在线教程|DeepSeek-OCR 2公式/表格解析同步改善,以低视觉token成本实现近4%的性能跃迁
开发语言·人工智能·深度学习·神经网络·机器学习·ocr·创业创新
空白诗1 小时前
CANN ops-nn 算子解读:Stable Diffusion 图像生成中的 Conv2D 卷积实现
深度学习·计算机视觉·stable diffusion
User_芊芊君子2 小时前
CANN图编译器GE全面解析:构建高效异构计算图的核心引擎
人工智能·深度学习·神经网络
爱吃大芒果2 小时前
CANN神经网络算子库设计思路:ops-nn项目的工程化实现逻辑
人工智能·深度学习·神经网络
哈__2 小时前
CANN加速VAE变分自编码器推理:潜在空间重构与编码解码优化
人工智能·深度学习·重构
觉醒大王3 小时前
哪些文章会被我拒稿?
论文阅读·笔记·深度学习·考研·自然语言处理·html·学习方法
禁默3 小时前
Ops-Transformer深入:CANN生态Transformer专用算子库赋能多模态生成效率跃迁
人工智能·深度学习·transformer·cann
杜子不疼.3 小时前
基于CANN GE图引擎的深度学习模型编译与优化技术
人工智能·深度学习