RNN--学习笔记

news2025/1/12 18:13:56
  1. RNN引入“记忆”的概念,即输出需要依赖于之前的输入序列,并把关键输入记住。循环2字来源于其每个元素都执行相同的任务;并⾮刚性地记忆所有固定⻓度的序列,而是通过隐藏状态来存储之前时间步的信息。
  2. 不同类型的RNN:
    1. One to many:音乐生成,目标是使用一个神经网络输出一些音符。对应于一段音乐,输入 可以是一个整数,表示想要的音乐类型或者是想要的音乐的第一个音符,并且如果什么都不想输入, 可以是空的输入,可设为 0 向量。
    2. Many to one:句子分类问题,输入文档,输出文档的类型。
    3. Many to many():命名实体识别。
    4. Many to many():机器翻译。
  3. 由于RNN特有的memory会影响后期其他的RNN的特点,梯度时大时小,learning rate没法个性化的调整,导致RNN在train的过程中,Loss会震荡起伏,为了解决RNN的这个问题,在训练的时候,可以设置临界值,当梯度大于某个临界值,直接截断,用这个临界值作为梯度的大小,防止大幅震荡。
  4. 门控循环单元(GRU):
    1. 提出背景:
      1. 当时间步数较大或者时间步较小时,循环神经⽹络的梯度较容易出现衰减或爆炸。虽然裁剪梯度可以应对梯度爆炸,但无法解决梯度衰减的问题。通常由于这个原因,循环神经网络在实际中较难捕捉时间序列中时间步距离较大的依赖关系。
      2. 门控循环神经网络(gated recurrent neural network)的提出,正是为了更好地捕捉时间序列中时间步距离较大的依赖关系。它通过可以学习的门来控制信息的流动。其中,门控循环单元(gatedrecurrent unit,GRU)是⼀种常用的门控循环神经网络。
    2. GRU引⼊了重置门(reset gate)和更新门(update gate)的概念,从而修改了循环神经网络中隐藏状态的计算方式。
    3. 门控循环单元中的重置门和更新门的输入均为当前时间步输入x_t与上⼀时间步隐藏状态h_(t-1),输出由激活函数为sigmoid函数的全连接层计算得到:
    4. 候选隐藏状态:将当前时间步重置门的输出与上⼀时间步隐藏状态做按元素乘法(符号为⊙)。如果重置门中元素值接近0,那么意味着重置对应隐藏状态元素为0,即丢弃上⼀时间步的隐藏状态。如果元素值接近1,那么表⽰保留上⼀时间步的隐藏状态。然后,将按元素乘法的结果与当前时间步的输⼊连结,再通过含激活函数tanh的全连接层计算出候选隐藏状态,其所有元素的值域为[-1,1]:
    5. 重置门控制了上⼀时间步的隐藏状态如何流⼊当前时间步的候选隐藏状态。而上⼀时间步的隐藏状态可能包含了时间序列截⾄上⼀时间步的全部历史信息。因此,重置门可以⽤来丢弃与预测无关的历史信息。
    6. 隐藏状态:时间步t的隐藏状态的计算使用当前时间步的更新门Z_t来对上⼀时间步的隐藏状态 H_(t-1)和当前时间步的候选隐藏状态H_t^做组合:
    7. 更新门可以控制隐藏状态应该如何被包含当前时间步信息的候选隐藏状态所更新,这个设计可以应对循环神经⽹络中的梯度衰减问题,并更好地捕捉时间序列中时间步距离较⼤的依赖关系。
    8. 总结:
      1. 重置门有助于捕捉时间序列里短期的依赖关系;
      2. 更新门有助于捕捉时间序列里长期的依赖关系。
  5. 短期记忆(long short-term memory,LSTM):
    1. 与门控循环单元中的重置门和更新门⼀样,长短期记忆的门的输入均为当前时间步输入x_t与上⼀时间步隐藏状态 h_(t-1),输出由激活函数为sigmoid函数的全连接层计算得到。如此⼀来,这3个门元素的值域均为[0, 1]:
    2. 候选记忆细胞:
    3. 记忆细胞:
      1. 前时间步记忆细胞的计算组合了上⼀时间步记忆细胞和当前时间步候选记忆细胞的信息,并通过遗忘门和输入门来控制信息的流动
      2. 遗忘门控制上⼀时间步的记忆细胞 c_(t-1)中的信息是否传递到当前时间步,而输入门则控制当前时间步的输入x_t通过候选记忆细胞c_t^如何流⼊当前时间步的记忆细胞:
    4. 隐藏状态:通过输出门来控制从记忆细胞到隐藏状态h_t的信息的流动:
  6. LSTM与GRU二者结构十分相似,不同在于:
    1. 新的记忆都是根据之前状态及输入进行计算,但是GRU中有一个重置门控制之前状态的进入量,而在LSTM里没有类似门;
    2. 产生新的状态方式不同,LSTM有两个不同的门,分别是遗忘门(forget gate)和输入门(input gate),而GRU只有一种更新门(update gate);
    3. LSTM对新产生的状态可以通过输出门(output gate)进行调节,而GRU对输出无任何调节。
    4. GRU的优点是这是个更加简单的模型,所以更容易创建一个更大的网络,而且它只有两个门,在计算性上也运行得更快,然后它可以扩大模型的规模。
    5. LSTM更加强大和灵活,因为它有三个门而不是两个。
  7. 在LSTM中,遗忘门、输入门和输出门使用Sigmoid函数作为激活函数;在生成候选记忆时,使用双曲正切函数Tanh作为激活函数。这两个激活函数都是饱和的,也就是说在输入达到一定值的情况下,输出就不会发生明显变化了。如果是用非饱和的激活函数,例如ReLU,那么将难以实现门控的效果。
  8. Sigmoid函数的输出在0~1之间,符合门控的物理定义。且当输入较大或较小时,其输出会非常接近1或0,从而保证该门开或关。在生成候选记忆时,使用Tanh函数,是因为其输出在−1~1之间,这与大多数场景下特征分布是0中心的吻合。此外,Tanh函数在输入为0附近相比Sigmoid函数有更大的梯度,通常使模型收敛更快。
  9. 采用RNN训练时不推荐使用batch normalization方法解决过拟合问题

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/74895.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

SpringBoot的自动配置原理

目录 一、关于SpringBoot的启动原理 二、源码分析 SpringBootConfiguration ComponentScan EnableAutoConfiguration Import(AutoConfigurationImportSelector.class) AutoConfigurationPackage 三、总结 一、引言 要理解SpringBoot自动配置原理,首先要从S…

java计算机毕业设计ssm校园二手平台交易系统11w7i(附源码、数据库)

java计算机毕业设计ssm校园二手平台交易系统11w7i(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都支持&#…

【计算机视觉】Deep SORT多目标跟踪算法讲解(图文解释 超详细)

觉得有帮助请点赞关注收藏~~~ 一、目标跟踪简介 目标跟踪算法可以进行轨迹特征的分析和提取,以弥补目标检测的不足;有效地去除误检,提高检测精度,为进一步的行为分析提供基础。例如,在自动驾驶系统中,目标跟…

4 - 线程池 Java内置的线程池 - ScheduledExecutorService

ScheduledExecutorService ScheduledExecutorService是ExecutorService的子接口,具备了延迟运行或定期执行任务的能力。 1、常用获取方式 (注:还是通过 Executors. 的方式进行调用) 1)static ScheduledExecutorSer…

5702开发板用户手册

一、 底板简介 1.1 产品简介 在这里,对这款 MP5702 开发板底板进行简单的功能介绍。本公司相关核心板都可与其对接,型号如 MP5652(请详见用户手册)。底板核心板的模式来设计组成完整的开发。底板和核心板之间使用高速板间连接器连…

EMCC 中 运用SQL 优化的建议

1. 性能中心 关于SQL的执行信息 2. 优化SQL: ------整个过程SQL 实现---------------------- DECLARE my_task_name VARCHAR2(30); my_sqltext CLOB; BEGIN my_sqltext : SELECT * || FROM sales || WHERE prod_id 10 AND || cust_id …

Android穿戴设备新功能Compose for Wear OS 1.1

Todoist的增长率提高了50%,因为为Wear 3和Outdooractive重建了他们的应用程序,将开发时间缩短了30%,并显着提高了开发人员的生产力和更好的设计/开发人员协作: “Compose 使 UI 代码更易于编写和阅读,使我们能够在设计…

倍福:通过读取FB_EcCoESdoRead第三方伺服的COE参数,例如力矩等信息

本文介绍通过PLC读取第三方伺服的COE参数。例如力矩等信息 功能块介绍 首先需要用到的功能块为FB_EcCoESdoRead,该参数是读取COE online中的数据。PLC程序编写 首先扫描程序配置,并链接好NC变量如下所示然后再COEOnline中确定需要读取的变量的地址如下所示: 确定所在主站的…

shell 基本语法第一讲之(变量的使用、文件名替换和参数扩展、命令代换、算术代换、单引号、双引号)

1、变量的使用 #!/usr/sh #1、声明即赋值 注意:等号两边不能留空格,留了空格就编程一个命令两个参数 varNamename #2、使用变量 $varName ${varName}2、变量的分类 shell 内变量在shell的解析环境中存在的变量全局范围的变量(全局变量)shell中*不使用任何修饰符修…

【C++修炼之路】11. list类

每一个不曾起舞的日子都是对生命的辜负 list本节目标1. list的介绍及使用1.1 list的介绍1.2 list的使用1.3 模拟list节点的结构1.4 list类的封装补充:list的自带排序函数1. sort2. unique2. list的迭代器2.1 list的迭代器失效问题2.2 迭代器的分类2.3 迭代器的模拟实…

java基于Springboot的校园新闻网站-计算机毕业设计

项目介绍 本论文主要论述了如何使用JAVA语言开发一个校园新闻网站 ,本系统将严格按照软件开发流程进行各个阶段的工作,采用B/S架构,面向对象编程思想进行项目开发。在引言中,作者将论述校园新闻网站的当前背景以及系统开发的目的…

阿里全心打造,“Java核心精选宝册”助成长,面试实战一步到位

一、前言 接下来就是即将到来的金三银四了,这个时期是面试跳槽的高峰期,果不其然,有很多的朋友私信给我,询问我有没有对金三银四有帮助的一些笔记可以分享,所以就有了这篇文章,下面会大概的展示一下笔记的…

【Java面试八股文宝典之基础篇】备战2023 查缺补漏 你越早准备 越早成功!!!——Day12

大家好,我是陶然同学,软件工程大三明年实习。认识我的朋友们知道,我是科班出身,学的还行,但是对面试掌握不够,所以我将用这100多天更新Java面试题🙃🙃。 不敢苟同,相信大…

论文投稿指南——中文核心期刊推荐(电子、通信技术3)

【前言】 🚀 想发论文怎么办?手把手教你论文如何投稿!那么,首先要搞懂投稿目标——论文期刊 🎄🎈 核心期刊在国内的应用范围非常广,核心期刊发表很多是国内作者晋升中的硬性要求,在…

java计算机毕业设计ssm新文道考研机构在线教学辅导系统tjv50(附源码、数据库)

java计算机毕业设计ssm新文道考研机构在线教学辅导系统tjv50(附源码、数据库) 项目运行 环境配置: Jdk1.8 Tomcat8.5 Mysql HBuilderX(Webstorm也行) Eclispe(IntelliJ IDEA,Eclispe,MyEclispe,Sts都…

Zebec获BNB Chain生态大力支持,ZBC通证将陆续登录一线平台

在行业早期开始,流支付赛道就已经具备了早期的轮廓,而在流支付协议Zebec Protocol出现后,该领域被推向了一个新的发展高度,并得到加密领域以及传统商业领域的高度关注。而随着生态的商业进展不断推进、生态不断壮大,Ze…

解决 PHPMYADMIN 无法导入大数据库文件方法

有个运营多年的海外站点需要搬迁服务器,备份好数据库后,通过 phpmyAdmin 面板导入数据库时发现有文件大小限制,最大导入 100M 的数据库文件,自己的数据库备份文件足足有 175M,平时都是通过 Navicat 导入也没注意,刚好遇见问题那么就选择解决问题。 解决方法 1、在 phpM…

docker构建vue项目镜像并发布到dockerhub中使用

先将本地vue项目打包为一个镜像,不会的可以看文章:使用docker构建vue项目并成功运行在本地和线上_1024小神的博客-CSDN博客 然后开始注册一个dockerhub账号并登陆:然后点击 create repository Docker Hub 开始填写仓库名称和描述&#xff1…

什么是WMS?有哪些好用的wms仓库管理系统推荐?

通过本篇文章,您将了解以下问题:1、WMS是什么?使用价值有哪些 2、国内有哪些好用的WMS仓库管理系统推荐? 一、WMS是什么? WMS是仓库管理系统(Warehouse Management System) 的缩写。WMS仓库管理系统综合了产品的入库、…

关于 ABAP 开发对象的原始语言版本(Original Language)

当创建新的存储库对象时,例如 ABAP 词典中的程序、类或数据库表,必须指定其原始语言。ABAP 开发框架隐式将当前登录语言设置为其原始语言。 作为开发项目中开发对象的一部分创建的所有可翻译文本(包括描述性短文本和长文本、程序的文本元素以…