RNN循环神经网络原理理解
一、基础
正常的神经网络

一般情况下,输入层提供数据,全连接进入隐藏层,隐藏层可以是多层,层与层之间是全连接,最后输出到输出层;通过不断的调整权重参数和偏置参数实现训练的效果。深度学习的网络都是水平方向延伸的,都没有考虑单个隐藏呢个在时间上的变化。
这种普通的神经网络模型对于很多问题是无能为力的,例如,在语言分析或者时序预测时就会遇到问题。我们要预测下一个单词是什么,一般需要用到前面的单词,因为一个句子中前后单词并不是独立的。
比如:
一个妹子跟你说了下面两句话
- 情景1:快过圣诞节了,好想要一个苹果
- 情景2:手机坏了,好想要一个苹果
预测的结果都是苹果,但是根据前文的话不一样那么结果也不一样;情景1下,你要是给妹子买个iPhone,当然会换来妹子的惊喜,但是呢,有钱就好
在情景2下,你要是买一个苹果去给妹子,就是一筐估计也不会给你好脸色吧
所以要想让计算机理解语言本身的含义,需要对输入的数据进行前后文的分析,也就是需要在时间上建立联系。
二、RNN
RNN主要是用来处理序列数据
2.1原理
前面说了,在传统的神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,每层之间的节点是无连接的。
RNN之所以称为循环神经网络,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前的输出计算中,即隐藏层之间的节点不再无连接而是有链接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。

图释:以翻译为例
h代表网络模型,按照时间展开,
在t-1时刻,输入一个单词,经过网络模型产生一个输出,同时会有一个状态值,这个状态值可以理解为对前面句子的理解,因为对于前面句子的理解会有助于下一个单词的解释和翻译;因为单词与单词之间是有关系的。所以在t-1时刻不仅输出一个而翻译的结果,还会输出一个状态值,这个状态值会输出到t时刻。
在t时刻,会得到一个输入,同时还会得到t-1时刻隐藏层的输出,即他的状态值,两者结合输入到t时刻模型中进行训练,翻译得到t时刻的输出;同时还会输出一个t时刻的状态值,交给下一个时刻。
依次循环。。。
这里的状态可以理解为:当前训练完成后,对现有输入的(可能是一句话)的理解
重点:
- 输入:当前时刻输入的训练内容和上一时刻的训练状态
- 输出:当前时刻的输出和当前时刻的训练状态
公式解释:
一般的神经网络:S=f(WinX+b)S = f(W_{in}X + b )S=f(WinX+b)
RNN :St=f(WinX+WSSt−1+b)S_t = f(W_{in}X + W_SS_{t-1} + b )St=f(WinX+WSSt−1+b)
2.2 理解
在文本分类的例子中,我们只考虑句子的整体含义,因此我们可以忽略每个单元生成的输出,而将重点放在隐藏状态上。隐藏状态的目的是保持句子的连续含义,我们可以用最后的隐藏状态作为分类特征。

因为每个单词使用相同的RNN单元,所以大大减少了神经网络所需要的参数量,这使我们能够处理较大规模的小批次数据。
网络参数进行学习的方式是处理序列的顺序,也是RNN的核心原则。
即
- RNN模型实际上只有一份参数,也可以说是只有一个模型,也就是同一个模型执行了N次,而不是N个模型或者RNN单元。每一次运行的参数也是一样的,只有输入和输出不同。
- 从RNN的结构图中我们要知道,图中状态V并不是RNN的一部分,比如第二次执行RNN的状态实际上是第一次执行的隐藏层的输出,第三次的状态是第二次的输出,而第一次的状态是初始状态。RNN的状态是通过上一次的隐藏层输出层保持的。

我们在把RNN的结构图拆分来看,根据上面的模型的运行状态。
- 处理完第一个元素后,我们除了得到输出1外,还得到了隐藏层的输出1;处理第二个元素的时候就把隐藏层输出1作为隐藏层的输入,实际上这就是我们前面提到的RNN可以记忆之前元素的原因。
- 处理输入2时使用输出1的隐藏层输出作为影藏层的输入。
相关文章:
RNN循环神经网络原理理解
一、基础 正常的神经网络 一般情况下,输入层提供数据,全连接进入隐藏层,隐藏层可以是多层,层与层之间是全连接,最后输出到输出层;通过不断的调整权重参数和偏置参数实现训练的效果。深度学习的网络都是水…...
一句话设计模式1: 单例模式
单例模式:全局唯一的对象。 文章目录 单例模式:全局唯一的对象。前言一、为什么要全局唯一?二、如何实现单例1. 注入到spring中2. 饿汉式3. 懒汉式第一种: 静态内部类第二种: synchronized 关键字第二种: 双重锁检查总结前言 单例可以说是设计模式中很常用的模式了,但也可以说…...
新版国家标准GB/T 28181—2022将于2023年7月1日正式实施,与GB/T 28181—2016差别有哪些?
新版国家标准GB/T28181-2022《公共安全视频监控联网系统信息传输、交换、控制技术要求》已于2022年12月30日发布,将于2023年7月1日正式实施。与GB/T 28181—2016相比,除结构调整和编辑性改动外,主要技术变化如下。——更改了标准范围…...
剑指 Offer 41. 数据流中的中位数
题目 如何得到一个数据流中的中位数?如果从数据流中读出奇数个数值,那么中位数就是所有数值排序之后位于中间的数值。如果从数据流中读出偶数个数值,那么中位数就是所有数值排序之后中间两个数的平均值。 例如,[2,3,4] 的中位数是…...
分布式架构下,Session共享有什么方案?
分布式架构下,Session共享有什么方案? 1.不要有Session:但是确实在某些场景下,是可以没有session的,其实在很多借口类系统当中,都提倡【API无状态服务】; 也就是每一次的接口访问,都…...
瀚博半导体载天VA1 加速卡安装过程
背景: 想用 瀚博半导体载天VA1 加速卡 代替 NVIDIA 显卡跑深度学习模型 感谢瀚博的周工帮助解答。 正文: 小心拔出 NVIDIA 显卡,在PCIe 接口插上瀚博半导体载天VA1加速卡,如图: 这时显示屏连接主板的集成显卡 卸载…...
服务降级和熔断机制
🏆今日学习目标: 🍀服务降级和熔断机制 ✅创作者:林在闪闪发光 ⏰预计时间:30分钟 🎉个人主页:林在闪闪发光的个人主页 🍁林在闪闪发光的个人社区,欢迎你的加入: 林在闪闪…...
史上最全最详细的Instagram 欢迎消息引流及示例
史上最全最详细的Instagram 欢迎消息引流及示例!关键词: Instagram 欢迎消息SaleSmartly(ss客服) 寻找 Instagram 欢迎消息示例,您可以用于您的业务。在本文中,我们将介绍Instagram欢迎消息的基础知识和好处…...
MDB 5 UI-KIT Bootstrap 5 最新版放送
顶级开源 UI 套件,Bootstrap v5 和 v4 的材料设计,jQuery 版本,数百个优质组件和模板,所有一致的,有据可查的,可靠的超级简单,1分钟安装简单的主题和定制 受到超过 3,000,000 名开发人员和设计师…...
做专家型服务者,尚博信助力企业数字化转型跑出“加速度” | 爱分析调研
01 从技术应用到业务重构,数字化市场呼唤专家型厂商 企业数字化转型是一个长期且系统性的变革过程。伴随着企业从信息化建设转向业务的数字化重构,市场对数字化厂商的能力要求也在升级。 早期的信息化建设主要是从技术视角切入,采用局部需求…...
CSS 重新认识 !important 肯定有你不知道的
重新认识 !important 影响级联规则 与 animation 和 transition 的关系级联层cascade layer内联样式!important 与权重 !important 与简写属性!important 与自定义变量!important 最佳实践 在开始之前, 先来规范一下文中的用于, 首先看 W3C 中关于 CSS 的一些术语定义吧. 下图…...
android 12添加系统字体并且设置为默认字体
需求:在11.0 12.0系统定制化开发中,在产品定制中,有产品需求对于系统字体风格不太满意,所以想要更换系统的默认字体,对于系统字体的修改也是常有的功能,而系统默认也支持增加字体,所以就来添加楷…...
LeetCode刷题系列 -- 1094. 拼车
车上最初有 capacity 个空座位。车 只能 向一个方向行驶(也就是说,不允许掉头或改变方向)给定整数 capacity 和一个数组 trips , trip[i] [numPassengersi, fromi, toi] 表示第 i 次旅行有 numPassengersi 乘客,接他们和放他们的…...
二叉查找树的应用 —— K模型和KV模型
文章目录前言1. K模型2. KV模型🍑 构建KV模型的树🍑 英汉词典🍑 统计水果出现的次数3. 总结前言 在上一篇文章中,我们进行了二叉查找树的实现(文章链接),那么今天主要探讨一下二叉查找树的应用…...
深度学习实战(11):使用多层感知器分类器对手写数字进行分类
使用多层感知器分类器对手写数字进行分类 1.简介 1.1 什么是多层感知器(MLP)? MLP 是一种监督机器学习 (ML) 算法,属于前馈人工神经网络 [1] 类。该算法本质上是在数据上进行训练以学习函数。给定一组特征和一个目标变量&#x…...
ThingsBoard-警报
1、使用 IoT 设备警报 ThingsBoard 提供了创建和管理与您的实体相关的警报的能力:设备、资产、客户等。例如,您可以将 ThingsBoard 配置为在温度传感器读数高于某个阈值时自动创建警报。当然,这是一个非常简化的案例,实际场景可能要复杂得多。 2、主要概念 下面让我们回…...
如何去阅读源码,我总结了18条心法
在聊如何去阅读源码之前,先来简单说一下为什么要去阅读源码,大致可分为以下几点原因:最直接的原因,就是面试需要,面试喜欢问源码,读完源码才可以跟面试官battle提升自己的编程水平,学习编程思想…...
排序:归并排序
一、归并 li[2,4,5,7,//1,3,6,8]#归并的前提是必须两部分排好序 def merge(li,low,mid,high):ilowjmid1ltmp[]while i<mid and j<high: #只要左右两边都有数if li[i]<li[j]:ltmp.append(li[i])i1else:ltmp.append(li[j])j1#while执行完,肯定有一部分没数…...
Allegro172版本线到铜皮不按照设定值避让的原因和解决办法
Allegro172版本线到铜皮不按照设定值避让的原因和解决办法 用Allegro做PCB设计的时候,有时会单独给某块铜皮附上线到铜皮额外再增加一个数值,如下图 在规则的基础上,额外再避让10mil 规则避让line到铜皮10.02mil 额外设置多避让10mil,避让的结果却是30.02mil,正确的是20.…...
小白该从哪方面入手学习大数据
大数据本质上是海量数据。 以往的数据开发,需要一定的Java基础和工作经验,门槛高,入门难。 如果零基础入门数据开发行业的小伙伴,可以从Python语言入手。 Python语言简单易懂,适合零基础入门,在编程语言…...
Qt实战:用QTreeWidget打造班级管理系统(含右键菜单完整源码)
Qt实战:用QTreeWidget构建高交互班级管理系统 在Qt框架中,QTreeWidget作为展示层级数据的利器,特别适合教育管理系统的开发需求。不同于简单的列表控件,树形结构能直观呈现班级、年级、学生等多级关系,配合右键菜单可实…...
bully使用教程
bully是一款用于破解Wi-Fi Protected Setup(WPS)的工具,主要通过暴力破解WPS PIN码来获取无线网络的访问权限。WPS是一种简化Wi-Fi设备连接的协议,由于其设计缺陷,使得通过暴力破解PIN码来获取网络密钥成为可能。bully…...
企业生产环境怎么正确做 Vibe Coding:不是让 AI 接管,而是把交付流程做成可控系统
这两年,vibe coding 很热。很多团队第一次接触它时,直觉都是:既然 AI 会写代码,那就让它多写一点,人少管一点,速度自然就上来了。 但一进企业生产环境,这种想法通常很快撞墙。 因为企业真正关心…...
Pixel Dimension Fissioner 与3D渲染结合:生成像素风格贴图与法线贴图
Pixel Dimension Fissioner 与3D渲染结合:生成像素风格贴图与法线贴图 1. 效果亮点预览 Pixel Dimension Fissioner在3D图形管线中展现出令人惊喜的适配性。这个工具最吸引人的地方在于,它能将传统像素艺术与现代3D渲染技术无缝结合,创造出…...
如何快速恢复丢失的Ren‘Py游戏源码:Unrpyc终极反编译指南
如何快速恢复丢失的RenPy游戏源码:Unrpyc终极反编译指南 【免费下载链接】unrpyc A renpy script decompiler 项目地址: https://gitcode.com/gh_mirrors/un/unrpyc 你是否曾经遇到过精心制作的RenPy游戏源代码意外丢失,只剩下编译后的.rpyc文件&…...
深度技术解析:IDM激活脚本(IAS)的注册表锁定机制与长期试用方案
深度技术解析:IDM激活脚本(IAS)的注册表锁定机制与长期试用方案 【免费下载链接】IDM-Activation-Script IDM Activation & Trail Reset Script 项目地址: https://gitcode.com/gh_mirrors/id/IDM-Activation-Script Internet Dow…...
梦幻动漫魔法工坊:5分钟零基础搭建,小白也能生成专属二次元头像
梦幻动漫魔法工坊:5分钟零基础搭建,小白也能生成专属二次元头像 想不想拥有一个独一无二的二次元头像,却苦于不会画画?或者想为你的游戏角色、小说人物创造一个生动的形象,却找不到合适的画师?今天&#x…...
5分钟掌握游戏高清截图秘诀:SRWE窗口分辨率自定义完整教程
5分钟掌握游戏高清截图秘诀:SRWE窗口分辨率自定义完整教程 【免费下载链接】SRWE Simple Runtime Window Editor 项目地址: https://gitcode.com/gh_mirrors/sr/SRWE 你是否曾梦想为心爱的游戏角色拍摄一张高清壁纸,却发现游戏分辨率选项有限&…...
嵌入式AI边缘计算原型:STM32与云端PyTorch模型协同工作流设计
嵌入式AI边缘计算原型:STM32与云端PyTorch模型协同工作流设计 1. 场景需求与痛点分析 在智能家居、工业监测等物联网场景中,我们常常遇到这样的矛盾:边缘设备需要实时响应,但计算能力有限;云端算力强大,但…...
Java全栈开发面试实战:从基础到进阶的深度解析
Java全栈开发面试实战:从基础到进阶的深度解析 面试官与应聘者的对话 面试官(李明):你好,我是李明,负责这次技术面试。很高兴见到你,先简单介绍一下你自己吧。 应聘者(张晨ÿ…...
