RNN原理及输入输出

2023-11-02

循环神经网络

一、功能简介

循环神经网络(Recurrent Neural Neural Networks, RNN),是一种反馈网络。它可以有效处理序列特性的数据,能够挖掘数据中的时序信息以及语义信息。常用于语言识别、机器翻译、视频分析、生成图像描述的等。RNN主要用于时序类数据的处理,在文档分类、机器翻译、文本情感分析、文本预测等有着重要作用。

二、基本原理

RNN基本网络结构包括一个输入层,一个输出层,一个隐藏层和一个输出层。我们定义 X t X_t Xt表示 t t t时刻的输入, o t o_t ot表示 t t t时刻的输出, S t S_t St表示 t t t时刻的记忆。因为我们当前时刻的输出是由记忆和当前时刻的输入决定的,因此我们可以定义RNN的基本原理,即隐藏层当前时刻的值 S t S_t St不仅取决于这次的输入 X t X_t Xt,也取决于上一时刻隐藏层的值 S t − 1 S_{t-1} St1。用公式表示如下。
提供给下一时刻的记忆:
S t = σ 1 ( U ∗ X t + W ∗ S t − 1 + b ) S_t=\sigma_{1}(U*X_t+W*S_{t-1}+b) St=σ1(UXt+WSt1+b)
当前时刻的输出:
o t = σ 2 ( V ∗ S t + c ) o_t=\sigma_2(V*S_t+c) ot=σ2(VSt+c)
其中 σ ( ) \sigma() σ()是两个激活函数。 b b b c c c是两组偏置。而在整个模型中,网络中的每一个cell样本都共享了一组权重参数 ( U , V , W ) (U,V,W) (U,V,W)

三、输入格式

在官方文档中,RNN的输入格式是 ( s e q _ l e n , b a t c h _ s i z e , i n p u t _ s i z e ) (seq\_{len},batch\_size,input\_{size}) (seq_len,batch_size,input_size),即输入时一个三维向量。第一个维度表示序列长度,也就是按时间序列展开每个样本有多少个可见的cell。第三维input_size,表示每个时间步输入的x的特征维数,即输入的特征向量的长度。但是在实际应用中,我们常常会遇到一系列样本中每个序列长度不一致的情况,也就是seq_len不一致的情况。比如我们对电影评论进行情感分析时,不可能每个评论的长度都一样,这种情况下我们常常可以对输入序列进行处理,比如对长序列进行截断,对短序列在其之前进行字符补全,使得样本中序列长度一致。此外,我们也可以使用pad_sequence的方式,也就是使用滑动窗口对样本重新采样,使得batch中的样本等长。

四、输出格式

RNN的输出有三项分别为 o u t p u t , h n , c n output,h_n,c_n output,hn,cn。output是RNN最后一层神经网络的输出,维数为 ( s e q _ l e n , b a t c h _ s i z e , p r o j _ s i z e ) (seq\_len,batch\_size,proj\_size) (seq_len,batch_size,proj_size),前两项的大小和输入中一致。第三项是最后一层输出通过变换(比如softmax)得到的满足实际项目需要的输出大小。 h n h_n hn是所有层中每个时间步 o i o_i oi的输出,大小为 ( n u m _ l a y e r s , b a t c h _ s i z e , p r o j _ s i z e ) (num\_layers,batch\_size,proj\_size) (num_layers,batch_size,proj_size),参数大小同上, n u m _ l a y e r s num\_layers num_layers是隐藏层的个数。 c n c_n cn是所有层中每个时间步 S i S_i Si的输出,参数意义同上。RNN的结构如图所示:
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

RNN原理及输入输出 的相关文章

随机推荐

  • C++开源库集合

    C 开源库集合 Main Site Index Download mimetic A free GPL C MIME Library mimetic is a free GPL Email library MIME written in C
  • 刷脸支付市场生态朝着更加良性方向发展

    购物付款时 不用开机 只是看一眼支付设备 就能完成付款 今年以来 刷脸支付在大小商店 餐馆逐渐铺开 消费者和商家在感到新鲜 好奇的同时也发现 这一设备利用率高 体验比二维支付好 刷脸支付未来市场还在观察 移动支付和支付没有办法确定使用者到底
  • Springboot配置页面国际化

    有时候网站会涉及中英文甚至多语言的切换 这时候我们需要学习国际化 准备工作 先设置properties的编码为utf 8 编写国际化配置文件 在resources资源路径下新建i18n目录 存放国际化配置文件 3 建立一个login pro
  • jenkins从gitlab拉取代码

    1 生成秘钥 首先要在容器内创建SSH秘钥和公钥 进入jenkins命令行状态然后输入ssh keygen后会成产密钥对 存放在 root ssh 目录下 id rsa为私钥 id ras pub为公钥 可以用cat命令查看生成的公钥和私钥
  • leetcode刷题题解——173. 二叉搜索树迭代器

    迭代思路 private TreeNode node private Stack
  • 2021-05-31-element中table表hover显示隐藏表单的实现

    element中table表hover显示隐藏表单的实现 需求 实现鼠标悬停table中的某一列显示修改按钮 修改按钮跟随内容后间距8px 内容超过16字节显示 加上修改按钮 效果如下图 需求 实现鼠标悬停table中的某一列显示修改按钮
  • 叶俊:从佛说法制的十大好处谈到企业的制度与人情

    Hello 大家好 欢迎来到火锅智烩 我是叶俊 随着大众创业 万众创新的观念深入人心 越来越多的人加入到创业的大潮当中去 于是商业竞争就显得更加激烈了 在这个创业的过程当中 很多的新手乃至于老手都难免遇到这样那样的种种的困惑跟问题 其中当企
  • 兼容性测试对于软件测试来说重要吗?

    该测试是软件测试的一个重要部分 它也获得了越来越多的关注和重视 那么 兼容性测试对于软件测试来说重要吗 我们一起往下了解 首先 兼容性测试可以确保软件在不同的操作系统 硬件平台和设备上能够正常运行 在产品开发过程中 由于各种因素的影响 经常
  • Android 实现APP内应用更新功能(支持Android7.0以上)

    博主前些天发现了一个巨牛的人工智能学习网站 通俗易懂 风趣幽默 忍不住也分享一下给大家 点击跳转到网站 前言 实现APP内应用更新功能思路 这里我给大家具体说明以下 思路 通过API接口获取服务器端版本号 与本地应用版本号作比较 如果本地版
  • 直流充电国标报文缩写定义

    直流充电国标报文缩写定义 报文简称 报文全称 描述 CRM Charger Recognition Message 充电机辨识报文 BRM Battery Recognition Message BMS和车辆辨识报文 BCP Battery
  • IKE协商

    1 IKEv1协商的两个阶段 第一阶段 通信双方协商和建立IKE协议本身使用的安全通道 目的是建立一个IKE SA 交互的内容 交互密钥资源 交互双方的公钥 交互IKE SA 用来加密主模式里面的5和6两个包 身份验证 第二阶段 利用第一阶
  • 尺取算法

    尺取法 尺取法可以用来优化for循环 降低程序的时间复杂度 例题 第一行是一个整数n 表示数组元素的个数 第二行有n个空格分隔的整数 第三行有一个整数sum 输出一个整数 表示有多少对元素之和等于sum 输入格式 6 1 3 5 7 9 3
  • sqli-labs系列——第三关

    文章目录 判断注入类型 开始注入 后记 判断注入类型 这第三关有点意思 是一个带括号的数字型注入 这里需要闭合它的括号 之前遇到过很多这样的站 它的sql语句一般都是这样的 sql select from user where id id
  • python将nan, inf转为特定的数字

    最近 处理两个矩阵的点除 得到结果后 再作其他的计算 发现有些内置的函数不work 查看得到的数据 发现有很多nan和inf 导致python的基本函数运行不了 这是因为在除的过程中分母出现0的缘故 为了将结果能够被python其他函数处理
  • 自动创建计划任务之删除7天以前的备份文件批处理

    由于我的公司游戏 露娜luna 服务器太多 之前建立的每日备份日志文件日积月累会 很大 而且不需要保留那么多 按公司要求只需要保留一个星期的即可 1 那么有什么方法自动删除7天以前备份的 log文件呢 2 服务器过多 不可能一一手动创建 有
  • LLM 赋能的 BizDevOps 工具链:扩大端到端触点,内建流程与规范

    在本系列的前两篇文章 LLM 赋能的研发效能 LLM 赋能的软件架构 里 介绍了我们在 LLM 结合 BizDevOps 软件架构的一系列试验 围绕于这两大类探索 我们构建了两个开源 LLM 工具 AI 辅助编程工具 AutoDev IDE
  • VirtualBox安装Kali

    VirtualBox安装Kali 下载VBox 去Virtual Box官网下载 根据操作系统选择版本 此处以Windows为例 打开安装程序进行安装即可 安装Kali 去Kali Linux官网下载镜像 点击Virtual Machine
  • Python 创建虚拟环境 Error: Command returned non-zero exit status 101.

    问题 今天用Python创建虚拟环境的时候 突然给我报错了 Error Command Scripts python exe Im ensurepip upgrade default pip returned non zero exit s
  • odoo 字段设置权限

    odoo14 字段设置权限 1 在 scurty文件中新增一个xml res groups xml 文件在文件中下写入语句
  • RNN原理及输入输出

    文章目录 循环神经网络 一 功能简介 二 基本原理 三 输入格式 四 输出格式 循环神经网络 一 功能简介 循环神经网络 Recurrent Neural Neural Networks RNN 是一种反馈网络 它可以有效处理序列特性的数据