热门标签 | HotTags
当前位置:  开发笔记 > 后端 > 正文

神经网络_第七篇:循环神经网络

篇首语:本文由编程笔记#小编为大家整理,主要介绍了第七篇:循环神经网络相关的知识,希望对你有一定的参考价值。

篇首语:本文由编程笔记#小编为大家整理,主要介绍了第七篇:循环神经网络相关的知识,希望对你有一定的参考价值。






阅读本文之前,大家可以稍微看一下这篇文章,有助于理解:浅谈RNN,LSTM和GRU

目录

循环神经网络 (RNN)

RNN 展开

RNN 训练

语言模型……解决了吗?

长短期记忆 (LSTM)

LSTM vs. Simple RNN

LSTM:遗忘门

LSTM:输入门

LSTM:更新记忆单元

LSTM:输出门

LSTM:总结

变体

• PeepHole窥孔连接

• 门控循环单元 (GRU)

多层 LSTM

双向 LSTM

应用

莎士比亚生成器

文本分类

序列标记

总结




循环神经网络 (RNN)

• RNN 允许表示任意大小的输入
• 核心思想:通过应用递推公式一次处理一个输入序列
• 使用状态向量来表示先前已处理过的上下文

s_{i} = f(s_{i-1}, x_{i})

Si:新的状态

Si-1:前一个状态

xi:当前输入

f:带参数的函数


RNN 展开

所有时间步长共享相同的参数


RNN 训练

• 展开的 RNN 只是一个非常深的深度神经网络
• 但在多个时间步长中共享相同的参数
• 要训练 RNN,我们只需要在给定输入序列的情况下创建展开的计算图
• 并像往常一样使用反向传播算法计算梯度
• 此过程称为时间反向传播


语言模型……解决了吗?

• RNN 能够模拟无限上下文
• 但它实际上能否在实践中捕获长期依赖关系?
• 没有……因为“梯度消失”
• 在反向传播过程中,后面步骤中的梯度会迅速减小
• 较早的输入没有得到太多更新


长短期记忆 (LSTM)

• 引入 LSTM 来解决梯度消失问题
• 核心理念:拥有“记忆单元”,可以随时间保持梯度
• 对存储单元的访问由“门”控制
• 对于每个输入,门决定:
    ‣ 新输入应写入内存单元的量
    ‣ 以及当前记忆单元的多少内容应该被遗忘

• 门 g 是一个向量
    ‣ 每个元素的值在 0 到 1 之间
• g 与向量 v 逐分量相乘,以确定要为 v 保留多少信息
• 使用 sigmoid 函数使 g 的值接近 0 或 1


LSTM vs. Simple RNN

基本RNN,就是一个tanh函数

LSTM,里面引入门控机制和cell状态

接下来挨个门分析


LSTM:遗忘门

• 控制在存储单元 (Ct-1) 中“忘记”多少信息
• The cats that the boy likes
• 记忆细胞储存代词信息(cats)
• 单元格现在应该忘记cats 并存储boy 以正确预测单数动词likes


LSTM:输入门

• 输入门控制将多少新信息放入内存单元
\\tilde{C}_{t}= 要添加的新提炼信息
‣ 例如 关于上面的boy的信息


LSTM:更新记忆单元

• 使用前面两部分的遗忘门和输入门更新记忆单元


LSTM:输出门

• 输出门控制提取存储单元的内容以创建下一个状态 (ht) 的程度


LSTM:总结

把之前涉及到的公式也综合起来,如下:


变体

• PeepHole窥孔连接


    ‣ 允许门查看细胞状态


• 门控循环单元 (GRU)


    ‣ 仅有 2 个门的简化变体


多层 LSTM


双向 LSTM


应用

莎士比亚生成器

• 训练数据 = 莎士比亚的所有作品
• 模型:3 层字符 RNN,隐藏维度 = 512


文本分类

• 循环网络可用于各种 NLP 任务
• 特别适用于单词顺序很重要的任务,例如 情感分类


序列标记

• RNN 特别适用于序列标记问题,例如 词性标注


总结

• 优点
  ‣ 能够捕获远程上下文
  ‣ 优秀的泛化能力
  ‣ 就像前馈网络一样:灵活,可以用于各种任务
  ‣ 多个 NLP 任务中的通用组件
• 缺点
  ‣ 由于顺序处理,比前馈网络慢
  ‣ 在实践中仍然不能很好地捕获长距离依赖(生成长文本时很明显)

OK,辛苦大家观看,今天关于RNN循环神经的网络就讲到这里,有问题欢迎随时评论交流,本章RNN部分可能描述不是很多,如有需要,可以看我之前的一篇文章:浅谈RNN,LSTM和GRU




推荐阅读
  • 知识图谱与图神经网络在金融科技中的应用探讨
    本文详细介绍了融慧金科AI Lab负责人张凯博士在2020爱分析·中国人工智能高峰论坛上的演讲,探讨了知识图谱与图神经网络模型如何在金融科技领域发挥重要作用。 ... [详细]
  • 计算机视觉初学者指南:如何顺利入门
    本文旨在为计算机视觉领域的初学者提供一套全面的入门指南,涵盖基础知识、技术工具、学习资源等方面,帮助读者快速掌握计算机视觉的核心概念和技术。 ... [详细]
  • 深度学习与神经网络课程总结
    本文档总结了神经网络和深度学习课程中的关键概念和理论,包括机器学习的基本要素、算法类型以及数据特征表示等。 ... [详细]
  • 探索CNN的可视化技术
    神经网络的可视化在理论学习与实践应用中扮演着至关重要的角色。本文深入探讨了三种有效的CNN(卷积神经网络)可视化方法,旨在帮助读者更好地理解和优化模型。 ... [详细]
  • 我整理了HMOV四大5G旗舰的参数,可依然没能拯救我的选择困难症
    伊瓢茕茕发自凹非寺量子位报道|公众号QbitAI报道了那么多发布会,依然无法选出要换的第一部5G手机。这不,随着华为P40系列发布,目前国 ... [详细]
  • Java高级工程师学习路径及面试准备指南
    本文基于一位朋友的PDF面试经验整理,涵盖了Java高级工程师所需掌握的核心知识点,包括数据结构与算法、计算机网络、数据库、操作系统等多个方面,并提供了详细的参考资料和学习建议。 ... [详细]
  • 如何高效学习鸿蒙操作系统:开发者指南
    本文探讨了开发者如何更有效地学习鸿蒙操作系统,提供了来自行业专家的建议,包括系统化学习方法、职业规划建议以及具体的开发技巧。 ... [详细]
  • 我的读书清单(持续更新)201705311.《一千零一夜》2006(四五年级)2.《中华上下五千年》2008(初一)3.《鲁滨孙漂流记》2008(初二)4.《钢铁是怎样炼成的》20 ... [详细]
  • 计算机学报精选论文概览(2020-2022)
    本文汇总了2020年至2022年间《计算机学报》上发表的若干重要论文,旨在为即将投稿的研究者提供参考。 ... [详细]
  • LeetCode 实战:寻找三数之和为零的组合
    给定一个包含 n 个整数的数组,判断该数组中是否存在三个元素 a、b、c,使得 a + b + c = 0。找出所有满足条件且不重复的三元组。 ... [详细]
  • 本文详细介绍了 Java 网站开发的相关资源和步骤,包括常用网站、开发环境和框架选择。 ... [详细]
  • 解决Xcode PBXcp 错误:找不到文件或目录
    当在Xcode中遇到PBXcp错误提示'No such file or directory'时,通常是由于文件引用问题导致的。本文将介绍两种有效的方法来解决这一常见问题。 ... [详细]
  • 吴石访谈:腾讯安全科恩实验室如何引领物联网安全研究
    腾讯安全科恩实验室曾两次成功破解特斯拉自动驾驶系统,并远程控制汽车,展示了其在汽车安全领域的强大实力。近日,该实验室负责人吴石接受了InfoQ的专访,详细介绍了团队未来的重点方向——物联网安全。 ... [详细]
  • Redis 是一个高性能的开源键值存储系统,支持多种数据结构。本文将详细介绍 Redis 中的六种底层数据结构及其在对象系统中的应用,包括字符串对象、列表对象、哈希对象、集合对象和有序集合对象。通过12张图解,帮助读者全面理解 Redis 的数据结构和对象系统。 ... [详细]
  • 自动驾驶中的9种传感器融合算法
    来源丨AI修炼之路在自动驾驶汽车中,传感器融合是融合来自多个传感器数据的过程。该步骤在机器人技术中是强制性的,因为它提供了更高的可靠性、冗余性以及最终的 ... [详细]
author-avatar
国贞馨清
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有