热门标签 | HotTags
当前位置:  开发笔记 > 人工智能 > 正文

反向算法_LSTM介绍及反向传播算法推导

1.长短期记忆网络LSTMLSTM(Longshort-termmemory)通过刻意的设计来避免长期依赖问题,是一种特殊的RNN。长时间记住信息实际上是LSTM的默
1.长短期记忆网络LSTMLSTM(Long short-term memory)通过刻意的设计来避免长期依赖问题,是一种特殊的RNN。长时间记住信息实际上是 LSTM 的默认行为,而不是需要努力学习的东西!所有递归神经网络都具有神经网络的链式重复模块。在标准的RNN中,这个重复模块具有非常简单的结构,例如只有单个tanh层,如下图所示。
b27c5b5bcd5edabbc164601468b4e63a.png图1 RNN结构图
LSTM具有同样的结构,但是重复的模块拥有不同的结构,如下图所示。与RNN的单一神经网络层不同,这里有四个网络层,并且以一种非常特殊的方式进行交互。
7a6cc7399e73a5e409493dc5befef7a5.png图2 LSTM结构图

c0e546b8868f43faec525c0aa35f8fb3.png  1.1 LSTM--遗忘门
cae0df13862b7a033cf5c3bab15bcdf4.png图3 遗忘门
LSTM 的第一步要决定从细胞状态中舍弃哪些信息。这一决定由所谓“遗忘门层”的 S 形网络层做出。它接收 99575854-de55-eb11-8da9-e4434bdf6706.svg和 9e575854-de55-eb11-8da9-e4434bdf6706.svg,并且对细胞状态 a1575854-de55-eb11-8da9-e4434bdf6706.svg中的每一个数来说输出值都介于 0 和 1 之间。1 表示“完全接受这个”,0 表示“完全忽略这个”。c0e546b8868f43faec525c0aa35f8fb3.png  1.2 LSTM--输入门
a4dafaa380c62023ff904bb14b508c1a.png图4 输入门
下一步就是要确定需要在细胞状态中保存哪些新信息。这里分成两部分。第一部分,一个所谓“输入门层”的 S 形网络层确定哪些信息需要更新。第二部分,一个 a7575854-de55-eb11-8da9-e4434bdf6706.svg形网络层创建一个新的备选值向量—— a8575854-de55-eb11-8da9-e4434bdf6706.svg,可以用来添加到细胞状态。在下一步中我们将上面的两部分结合起来,产生对状态的更新。

c0e546b8868f43faec525c0aa35f8fb3.png  1.3 LSTM--细胞状态更新
15f52f632b292b1de3d05f55c4f476d6.png图5 细胞状态更新
现在更新旧的细胞状态 a1575854-de55-eb11-8da9-e4434bdf6706.svg更新到 af575854-de55-eb11-8da9-e4434bdf6706.svg。先前的步骤已经决定要做什么,我们只需要照做就好。我们对旧的状态乘以 b0575854-de55-eb11-8da9-e4434bdf6706.svg,用来忘记我们决定忘记的事。然后我们加上 b3575854-de55-eb11-8da9-e4434bdf6706.svg,这是新的候选值,根据我们对每个状态决定的更新值按比例进行缩放。

c0e546b8868f43faec525c0aa35f8fb3.png  1.4 LSTM--输出门
d27b74a931fac6a136029f3d28468dfa.png图6 输出门
最后,我们需要确定输出值。输出依赖于我们的细胞状态,但会是一个“过滤的”版本。首先我们运行 S 形网络层,用来确定细胞状态中的哪些部分可以输出。然后,我们把细胞状态输入 tanh(把数值调整到 −1 和 1 之间)再和 S 形网络层的输出值相乘,部这样我们就可以输出想要输出的分。

2. LSTM的变种以及前向、反向传播目前所描述的还只是一个相当一般化的 LSTM 网络。但并非所有 LSTM 网络都和之前描述的一样。事实上,几乎所有文章都会改进 LSTM 网络得到一个特定版本。差别是次要的,但有必要认识一下这些变种。

c0e546b8868f43faec525c0aa35f8fb3.png  2.1 带有"窥视孔连接"的LSTM一个流行的 LSTM 变种由 Gers 和 Schmidhuber 提出,在 LSTM 的基础上添加了一个“窥视孔连接”,这意味着我们可以让门网络层输入细胞状态。
c72e4652cf337af4c52a08edeef13945.png图7 添加“窥视孔连接”的LSTM
上图中我们为所有门添加窥视孔,但许多论文只为部分门添加。为了更直观的推导反向传播算法,将上图转化为下图:
bb208582103d18cf4fa620d5bea38c3e.png图8 转化后的窥视孔LSTM
前向传播:在t时刻的前向传播公式为:cb575854-de55-eb11-8da9-e4434bdf6706.svg反向传播:对反向传播算法了解不够透彻的,请参考陈楠:反向传播算法推导过程(非常详细),这里有详细的推导过程,本文将直接使用其结论。已知: d1575854-de55-eb11-8da9-e4434bdf6706.svg,求某个节点梯度时,首先应该找到该节点的输出节点,然后分别计算所有输出节点的梯度乘以输出节点对该节点的梯度,最后相加即可得到该节点的梯度。如计算 d4575854-de55-eb11-8da9-e4434bdf6706.svg时,找到 d8575854-de55-eb11-8da9-e4434bdf6706.svg节点的所有输出节点 dc575854-de55-eb11-8da9-e4434bdf6706.svgde575854-de55-eb11-8da9-e4434bdf6706.svgdf575854-de55-eb11-8da9-e4434bdf6706.svg,然后分别计算输出节点的梯度(如 e2575854-de55-eb11-8da9-e4434bdf6706.svg)与输出节点对 d8575854-de55-eb11-8da9-e4434bdf6706.svg的梯度的乘积(如 e9575854-de55-eb11-8da9-e4434bdf6706.svg),最后相加即可得到节点 d8575854-de55-eb11-8da9-e4434bdf6706.svg的梯度:ee575854-de55-eb11-8da9-e4434bdf6706.svg同理可得t时刻其它节点的梯度:f1575854-de55-eb11-8da9-e4434bdf6706.svg对参数的梯度:f5575854-de55-eb11-8da9-e4434bdf6706.svg

c0e546b8868f43faec525c0aa35f8fb3.png  2.2 GRU一个更有意思的 LSTM 变种称为 Gated Recurrent Unit(GRU),由 Cho 等人提出。LSTM通过三个门函数输入门、遗忘门和输出门分别控制输入值、记忆值和输出值。而GRU中只有两个门:更新门b5a8e64b032b35543ebff55a8b0b0f08.png图9 GRU为了更加直观的推导反向传播公式,将上图转化为如下形式:
89735de303c9ae2c61f6dbad661c4438.png图10 转换后的GRU
GRU的前向传播:在t时刻的前向传播公式为:11585854-de55-eb11-8da9-e4434bdf6706.svgGRU的反向传播:t时刻其它节点的梯度:12585854-de55-eb11-8da9-e4434bdf6706.svg对参数的梯度:15585854-de55-eb11-8da9-e4434bdf6706.svg

c0e546b8868f43faec525c0aa35f8fb3.png  2.3 遗忘门与输入门相结合的LSTM另一个变种把遗忘和输入门结合起来。同时确定要遗忘的信息和要添加的新信息,而不再是分开确定。当输入的时候才会遗忘,当遗忘旧信息的时候才会输入新数据。
876ce44880613a1b0c9daed314dca135.png图11 遗忘门与输入门相结合的LSTM
前向与反向算法与上述变种相同,这里不再做过多推导。
参考资料:【翻译】理解 LSTM 网络 - xuruilong100 - 博客园



推荐阅读
  • LeetCode 实战:寻找三数之和为零的组合
    给定一个包含 n 个整数的数组,判断该数组中是否存在三个元素 a、b、c,使得 a + b + c = 0。找出所有满足条件且不重复的三元组。 ... [详细]
  • Python 数据可视化实战指南
    本文详细介绍如何使用 Python 进行数据可视化,涵盖从环境搭建到具体实例的全过程。 ... [详细]
  • 如何撰写数据分析师(包括转行者)的面试简历?
    CDA数据分析师团队出品,作者:徐杨老师,编辑:Mika。本文将帮助您了解如何撰写一份高质量的数据分析师简历,特别是对于转行者。 ... [详细]
  • 深入解析国内AEB应用:摄像头和毫米波雷达融合技术的现状与前景
    本文作者程建伟,武汉极目智能技术有限公司CEO,入选武汉市“光谷3551人才计划”。文章详细探讨了国内自动紧急制动(AEB)系统中摄像头与毫米波雷达融合技术的现状及未来前景。通过分析当前技术的应用情况、存在的挑战以及潜在的解决方案,作者指出,随着传感器技术的不断进步和算法优化,AEB系统的性能将大幅提升,为交通安全带来显著改善。 ... [详细]
  • 在机器学习领域,深入探讨了概率论与数理统计的基础知识,特别是这些理论在数据挖掘中的应用。文章重点分析了偏差(Bias)与方差(Variance)之间的平衡问题,强调了方差反映了不同训练模型之间的差异,例如在K折交叉验证中,不同模型之间的性能差异显著。此外,还讨论了如何通过优化模型选择和参数调整来有效控制这一平衡,以提高模型的泛化能力。 ... [详细]
  • 独家解析:深度学习泛化理论的破解之道与应用前景
    本文深入探讨了深度学习泛化理论的关键问题,通过分析现有研究和实践经验,揭示了泛化性能背后的核心机制。文章详细解析了泛化能力的影响因素,并提出了改进模型泛化性能的有效策略。此外,还展望了这些理论在实际应用中的广阔前景,为未来的研究和开发提供了宝贵的参考。 ... [详细]
  • 斯坦福大学公开课:利用神经网络技术实现自动驾驶的案例分析
    斯坦福大学的公开课深入探讨了如何利用神经网络技术实现自动驾驶。课程中通过实例展示了汽车如何通过学习算法自主驾驶。具体而言,课程展示了一幅图解,其中左下角显示了汽车前方的实时路况图像,而左上角则呈现了一个水平的菜单栏,用于展示系统处理和决策的过程。这一案例详细解析了神经网络在自动驾驶中的应用,为学生提供了宝贵的实践参考。 ... [详细]
  • 能够感知你情绪状态的智能机器人即将问世 | 科技前沿观察
    本周科技前沿报道了多项重要进展,包括美国多所高校在机器人技术和自动驾驶领域的最新研究成果,以及硅谷大型企业在智能硬件和深度学习技术上的突破性进展。特别值得一提的是,一款能够感知用户情绪状态的智能机器人即将问世,为未来的人机交互带来了全新的可能性。 ... [详细]
  • 从2019年AI顶级会议最佳论文,探索深度学习的理论根基与前沿进展 ... [详细]
  • 射频领域的博士学位在信号处理算法方面具有广阔的职业前景,尤其是在射频技术的应用中。例如,加入华为的射频基站部门,从事数字预失真等关键技术的研发工作。在此过程中,需要注意持续跟踪最新的学术和技术进展,保持对行业动态的敏感性,并不断提升自身的实践能力和创新能力。此外,除了技术层面,还应关注行业的整体发展趋势,以便更好地规划职业生涯。 ... [详细]
  • 浅层神经网络解析:本文详细探讨了两层神经网络(即一个输入层、一个隐藏层和一个输出层)的结构与工作原理。通过吴恩达教授的课程,读者将深入了解浅层神经网络的基本概念、参数初始化方法以及前向传播和反向传播的具体实现步骤。此外,文章还介绍了如何利用这些基础知识解决实际问题,并提供了丰富的实例和代码示例。 ... [详细]
  • 理工科男女不容错过的神奇资源网站
    十一长假即将结束,你的假期学习计划进展如何?无论你是在家中、思念家乡,还是身处异国他乡,理工科学生都不容错过一些神奇的资源网站。这些网站提供了丰富的学术资料、实验数据和技术文档,能够帮助你在假期中高效学习和提升专业技能。 ... [详细]
  • Vision Transformer (ViT) 和 DETR 深度解析
    本文详细介绍了 Vision Transformer (ViT) 和 DETR 的工作原理,并提供了相关的代码实现和参考资料。通过观看教学视频和阅读博客,对 ViT 的全流程进行了详细的笔记整理,包括代码详解和关键概念的解释。 ... [详细]
  • 每日学术推荐:异质图神经网络在抽取式文档摘要中的应用研究
    在抽取式文档摘要任务中,学习跨句子关系是至关重要的一步。本文探讨了利用异质图神经网络来捕捉句子间复杂关系的有效方法。通过构建包含不同类型节点和边的图结构,模型能够更准确地识别和提取关键信息,从而生成高质量的摘要。实验结果表明,该方法在多个基准数据集上显著优于传统方法。 ... [详细]
  • 近期的研究和探讨表明,人类意识的核心在于其方向性和目标导向性,而现有的现代神经网络技术尚无法完全模拟或创造这种意识。尽管如此,通过不断优化神经网络架构和算法,我们可以在特定任务中实现更高水平的智能化创新,从而推动人工智能领域的进一步发展。 ... [详细]
author-avatar
张海英Bs
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有