深度学习笔记(6)——循环神经网络RNN

循环神经网络

RNN

核心思想:RNN内部有一个“内部状态”,随着序列处理而更新 h t = f W ( h t − 1 , x t ) h_t=f_W(h_{t-1},x_t) ht=fW(ht1,xt)
h t h_t ht是new state, h t − 1 h_{t-1} ht1是old state, x t x_t xt是当前时间步的输入,所有时间步共享 f W f_W fW这个函数和参数
y t = f W h y ( h t ) y_t=f_{W_{hy}}(h_t) yt=fWhy(ht)是当前时间步的输出

分块损失计算:计算所有时间步的前向传播,但只在每时间块内进行反向传播

RNN:
RNN的各种输出
one-to-many:两种情况:

  1. x作为输入就最开始的一次,输出为 y 1 , y 2 . . . y_1,y_2... y1,y2...
  2. x作为输入多次,每轮都有x作为输入,输出为 y 1 , y 2 . . . y_1,y_2... y1,y2...

many-to-many:两种情况:

  1. 输入、输出都是等长的序列数据。每一步使用的参数U、W、b都是一样的,也就是说每个步骤的参数都是共享的,这是RNN的重要特点,一定要牢记。
  2. 输入输出不等长:encoder-decoder结构,Encoder先将输入数据编码成一个上下文语义向量c,语义向量c可以有多种表达方式,最简单的方法就是把Encoder的最后一个隐状态赋值给c,还可以对最后的隐状态做一个变换得到c,也可以对所有的隐状态做变换。拿到c之后,就用另一个RNN网络对其进行解码,这部分RNN网络被称为Decoder

RNN优势:

  1. 可以处理任意长度的序列
  2. 步骤t的计算(理论上)可以使用之前许多步骤的信息
  3. 输入时间越长,模型尺寸就越大
  4. 每个时间步都使用了相同的权重

RNN缺点:

  1. 循环计算速度慢
  2. 在实践中,很难从多个步骤中获取信息(遗忘)

LSTM

LSTM引入了三个门( 输入门、遗忘门、输出门)和一个 细胞状态(cell state)
LSTM可以在一定程度上解决梯度消失和梯度爆炸的问题,但不是完全解决
LSTM架构使RNN更容易在多个时间步长内保存信息
LSTM的连乘是 C t C_t Ct C t − 1 C_{t-1} Ct1的偏导的不断累乘,如果前后的记忆差别不大,那偏导的值就是1,那就是多个1相乘。当然,也可能出现某一一些偏导的值很大,但是一定不会很多(换句话说,一句话的前后没有逻辑,那完全没有训练的必要)。
LSTM使用 t a n h ( x ) = e x − e − x e x + e − x tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}} tanh(x)=ex+exexex函数,而不用Sigmoid函数的原因:

  1. Sigmoid函数比Tanh函数收敛饱和速度慢
  2. Sigmoid函数比Tanh函数值域范围更窄
  3. tanh的均值是0,Sigmoid均值在0.5左右,均值在0的数据显然更便于数据处理
  4. tanh的函数变化敏感区间更大
  5. 对两者求导,发现tanh对计算的压力更小,直接是1-原函数的平方,不需要指数操作

在这里插入图片描述
forget gate:选择忘记过去某些信息
在这里插入图片描述
input gate:记忆现在的某些信息
在这里插入图片描述
i t i_t it门控信号决定了当前时间步应该更新细胞状态的哪些部分
C ~ t \widetilde C_t C t候选记忆单元代表了当前时间步可能被加入到细胞状态中的新信息
将过去与现在的记忆进行合并
在这里插入图片描述
output gate:输出
在这里插入图片描述

GRU

可以被看作是LSTM的简化版。它保留了门控机制中的更新门和重置门,用于控制信息的流动,但省略了LSTM中的单独记忆单元。相比LSTM,GRU拥有更少的参数,因此计算效率更高,通常在一些任务上可以获得相近甚至更好的效果。

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

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

相关文章

电脑卡顿救星,Mem Reduct 智能清理 10%以上内存

作为一款专业的内存优化工具,Mem Reduct凭借其强大的功能和极致的性能表现,成为众多用户管理系统内存的首选软件。它采用先进的内存管理算法,通过调用系统底层API接口,能够智能识别并清理各类内存占用,包括但不限于系统…

kibana启动报错:Invalid character in header content [“kbn-name“]

启动时候kibana报错: 打开 kibana配置文件,config/kibana.yml,配置上server.name即可,如下:

短视频矩阵系统后端源码搭建实战与技术详解,支持OEM

一、引言 随着短视频行业的蓬勃发展,短视频矩阵系统成为了众多企业和创作者进行多平台内容运营的有力工具。后端作为整个系统的核心支撑,负责处理复杂的业务逻辑、数据存储与交互,其搭建的质量直接影响着系统的性能、稳定性和可扩展性。本文将…

sql group by 多个字段例子

有表如下; 获取某年份、某地区、某产品的销售总额, 或者根据需要把字段顺序换一下; insert into sales (product, year, region, amount) values (飞机,2000,东部,5); insert into sales (product, year, region, amount) values (飞机,2001,…

RBAC权限控制

1、Spring Security 是一个功能强大的Java安全框架,它提供了全面的安全认证和授权的支持。 2 SpringSecurity配置类(源码逐行解析) Spring Security的配置类是实现安全控制的核心部分 开启Spring Security各种功能,以确保Web应…

ArcGIS Pro地形图四至角图经纬度标注与格网标注

今天来看看ArcGIS Pro 如何在地形图上设置四至角点的经纬度。方里网标注。如下图的地形图左下角经纬度标注。 如下图方里网的标注 如下为本期要介绍的例图,如下: 图片可点击放大 接下来我们来介绍一下 推荐学习:GIS入门模型构建器Arcpy批量…

Kubernetes Gateway API-2-跨命名空间路由

1 跨命名空间路由 Gateway API 具有跨命名空间路由的核心支持。当多个用户或团队共享底层网络基础设施时,这很有用,但必须对控制和配置进行分段,以尽量减少访问和容错域。 Gateway 和 Route(HTTPRoute,TCPRoute,GRPCRoute) 可以部署到不同的命名空间中,路由可以跨命名空间…

Web API和Web Services的区分

前些年一提及自动化测试,大多是指UI界面层的自动化测试。近几年,随着分层自动化测试概念的兴起,以及自动化测试自身的发展与细分,自动化测试包含了更多的内容。 API(Application ProgrammingInterface,应用程序编程接…

使用c#制作坐标

1、建立坐标 2、坐标系的放大缩小 3、标定刻度 4、实时显示鼠标在坐标系上的坐标 using System; using System.Collections.Generic; using System.ComponentModel; using System.Data; using System.Drawing; using System.Drawing.Drawing2D; using System.Linq; using S…

JVM实战—JVM内存设置与对象分配流转

1.JVM内存划分的原理细节 (1)背景引入 接下来介绍JVM内存的分代模型:新生代、老年代、永久代。现在已知代码里创建的对象,都会进入到Java堆内存中。如下所示,main()方法会周期性执行loadReplicasFromDisk()方法来加载副本数据。 public class…

Debian 12 安装配置 fail2ban 保护 SSH 访问

背景介绍 双十一的时候薅羊毛租了台腾讯云的虚机, 是真便宜, 只是没想到才跑了一个月, 系统里面就收集到了巨多的 SSH 恶意登录失败记录. 只能说, 互联网真的是太不安全了. 之前有用过 fail2ban 在 CentOS 7 上面做过防护, 不过那已经是好久好久之前的故事了, 好多方法已经不…

ASP.NET Core Web API Hangfire

ASP.NET Core Web API Hangfire 前言一、安装二、相关代码1.代码片段2.代码片段3.运行效果 三、测试代码1.即发即弃作业2.延迟作业3.重复作业4.延续作业5.页面调度作业 前言 👨‍💻👨‍🌾📝记录学习成果,以…

实用技巧:关于 AD修改原理图库如何同步更新到有原理图 的解决方法

若该文为原创文章,转载请注明原文出处 本文章博客地址:https://hpzwl.blog.csdn.net/article/details/144738332 长沙红胖子Qt(长沙创微智科)博文大全:开发技术集合(包含Qt实用技术、树莓派、三维、OpenCV…

【Ubuntu 20.4安装截图软件 flameshot 】

步骤一: 安装命令: sudo apt-get install flameshot 步骤二: 设置快捷方式: Ubuntu20.4 设置菜单,点击 号 步骤三: 输入软件名称, 软件快捷命令(flameshot gui)&am…

ue5 pcg(程序内容生成)真的简单方便,就5个节点

总结: 前情提示 鼠标单击右键平移节点 1.编辑-》插件-》procedural->勾选两个插件 2.右键-》pcg图表-》拖拽进入场景 3.先看点point 右键-》调试(快捷键d)->右侧设置粒子数 3.1调整粒子数 可以在右侧输入框,使用加减乘除 4.1 表面采样器 …

JavaWeb(一) | 基本概念(web服务器、Tomcat、HTTP、Maven)、Servlet 简介

1. 基本概念 1.1、前言 web开发: web,网页的意思,www.baidu.com静态 web html,css提供给所有人看的数据始终不会发生变化! 动态 web 淘宝,几乎是所有的网站;提供给所有人看的数据始终会发生变化&#xf…

CTFshow-SSRF文件上传

web351 <?php error_reporting(0); highlight_file(__FILE__); $url$_POST[url]; $chcurl_init($url); curl_setopt($ch, CURLOPT_HEADER, 0); curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1); $resultcurl_exec($ch); curl_close($ch); echo ($result); ?> 构造POST …

线性代数行列式

目录 二阶与三阶行列式 二元线性方程组与二阶行列式 三阶行列式 全排列和对换 排列及其逆序数 对换 n阶行列式的定义 行列式的性质 二阶与三阶行列式 二元线性方程组与二阶行列式 若是采用消元法解x1、x2的话则得到以下式子 有二阶行列式的规律可得&#xff1a;分…

Gaea学习笔记总结

Gaea 是一款地形创建软件,它内置了丰富的地貌节点,能快速生成像山脉、荒原峡谷、河流、湖泊等地貌特征。 节点解释使用方法概述Primitives(基本体)Constant(常数)创建输出,一般用来输出Hight,Color,Noise,很少直接使用,而是用来连接上一个节点。一般用来输出Hight,…

初探C语言|C语言中有哪些操作符呢?

文章目录 前言算术操作符示例 移位操作符原码,反码 与补码正数负数计算 左移<<右移>> 位操作符例题 赋值操作符单目操作符sizeof 操作符 关系操作符逻辑操作符短路现象 条件操作符逗号表达式下标引用、函数调用和结构成员表达式求值算术转换操作符属性 欢迎讨论: 如…