《深度学习》循环神经网络RNN 结构及原理解析

目录

一、关于RNN

1、传统神经网络存在的问题

2、什么是循环神经网络

3、RNN特点

二、RNN基本结构

1、RNN基本结构

2、推导方式

注意:

3、循环的由来

4、RNN的局限性


一、关于RNN

1、传统神经网络存在的问题

        无法训练出具有顺序的数据,模型搭建时没有考虑数据上下之间的关系。

2、什么是循环神经网络

        RNN(Recurrent Neural Network,循环神经网络)是一种用于处理序列数据的神经网络架构。其在处理序列输入时具有记忆性,可以保留之前输入的信息并继续作为后续输入的一部分进行计算。

        与传统的前馈神经网络不同,RNN能够在处理序列数据时捕捉序列中的时间依赖关系,即当前时刻的输出不仅依赖于当前时刻的输入,还依赖于过去时刻的输入(或称为状态)。

        如下图所示,例如有一句话,“我要去打球”,将其分词成“我”、“要”、“去”、“打球”,第一个词的词向量表示x1,第二个单词的词向量表示为x2,依次表示所有x,然后首先第一个词向量x1传入h1,然后偏置项h0也同步传入,得到一个结果再传入h2,h2再得到传入的x2传入h3.....,继续像上述流程一样,以此保存了所有的信息并得到最终结果。

3、RNN特点

        引入了隐状态h(hidden state)的概念,隐状态h可以对序列形的数据(如文本、语音、股票、时间序列等数据,当前数据内容与前面的数据有关。)提取特征,接着再转换为输出。

二、RNN基本结构

1、RNN基本结构

        RNN的核心是一个循环连接的隐藏层,这个隐藏层在序列的每个时间步都会接收输入并产生输出。每个时间步的隐藏状态不仅取决于当前时间步的输入,还取决于前一个时间步的隐藏状态。这样,RNN能够保持对之前输入的记忆,并在处理后续输入时利用这些记忆。

2、推导方式

        如下图所示,隐状态h相当于一个函数,f为一个激活函数,其有中的参数U、W、b在每一步都是一样的,也就是说每个步骤的参数都是共享的。

        h0乘以一个参数矩阵W加上x1乘以一个参数矩阵U,再加一个偏置b,得到一个结果,将这个结果传入激活函数f,激活函数一般是Relu函数或者Tanh函数,进行特征提取,然后得到的结果再乘以参数矩阵W加上x2乘以参数矩阵U,加上偏置b传入激活函数进行特征提取得到结果,以此类推得到最终结果,此处不一定只达到x4,一段话中可以有很多很多的词,每个词都有其对应的词向量,这些词向量都可以传入这个结构进行训练。

        对于结果y也会乘以一个矩阵V,加上偏置c后传入一个Softmax交叉熵损失函数,一般情况下y1的用处不大,最重要的是最后一个,例如下图的y4,因为y4涵盖了前面所有的词的特征。

        注意:

                RNN结构中输入是x1, x2, .....xn,输出为y1, y2, ...yn,也就是说,输入和输出序列必须要是等长的

3、循环的由来

4、RNN的局限性

        当出现“我的职业是程序员,…,我最擅长的是电脑”。当需要预测最后的词“电脑”。当前的信息建议下一个词可能是一种技能,但是如果我们需要弄清楚是什么技能,需要先前提到的离当前位置很远的“职业是程序员”的上下文。这说明相关信息和当前预测位置之间的间隔就变得相当的大。

        在理论上,RNN绝对可以处理这样的长期依赖问题。人们可以仔细挑选参数来解决这类问题中的最初级形式,但在实践中,RNN则没法太好的学习到这些知识。

        原因:梯度会随着时间的推移不断下降减少,而当梯度值变得非常小时,就不会继续学习。​例如下图的传声筒游戏

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

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

相关文章

【LeetCode】每日一题 2024_10_9 找到按位或最接近 K 的子数组(LogTrick、位运算)

前言 每天和你一起刷 LeetCode 每日一题~ LeetCode 启动! 题目:找到按位或最接近 K 的子数组 代码与解题思路 今天是 2100 的题目,难度略高,不在我的能力范围,推荐题解:两种方法:LogTrick/滑…

大模型转型指南:现在开始学习还来得及吗?非常详细收藏我这一篇就够了

大模型学习路线,从基础入门到项目实战! 第一阶段:AI大模型时代 理解大模型大模型提示工程 第二阶段:AI大模型API应用开发工程 3. 理解Function Calling 4. RAG与Embedding 5. 向量数据库 6. OpenAI GPTs与Assistant API 7. 实战…

智融SW3536DC/DC+快充协议二合一IC

描述 SW3536 是一款高集成度的多快充协议双口充电芯片,支持 AC 口任意口快充输出,支持双口独立限流。其集成了 7A 高效率同步降压变换器,支持 PPS/ PD/ QC/ AFC/ FCP/ SCP/ PE/ SFCP/TFCP 等多种快充协议,支持 140W 输出功率&…

骨传导耳机哪款好?五大绝佳骨传导耳机集锦推荐!

随着科技的不断进步,骨传导耳机以其独特的听音方式和开放双耳的设计,逐渐成为了众多音乐爱好者、运动达人乃至日常通勤者的首选。相比传统的入耳式耳机,骨传导耳机不仅能够保护听力,还能让使用者在享受音乐的同时保持对外界环境的…

一文彻底搞懂大模型 - Hugging Face Transformers

Hugging Face Hugging Face Transformers是一个开源的预训练模型库,旨在将NLP领域的最新进展向更广泛的机器学习社区开放。该库包含了经过精心设计的最先进的Transformer架构,并提供了易于使用的API**,使得研究人员和开发者能够轻松地加载、…

如何自己动手实现一个图片解答小助手

有一张图片如下所示: Kimi上有一个功能,就是解析图片内容,给出回答: 这样可以用于拍照向AI提问的场景,我自己也有这方面的需求,因此动手实践了一下。 自己动手实现的效果如下所示: 那么自己如何…

记录一次fdisk分区成功后lsblk不显示新建的分区

1. 查看vda盘还剩余900G空间 2. 使用fdisk分区vda3并保存 3. 分区后,使用lsblk发现没有显示vda3 4. 使用partprobe或者kpartx -a /dev/vda强制重新读取分区表,后成功显示

Spring系列 Bean的生命周期

文章目录 初始化时机单例初始化流程getBeandoGetBeangetSingleton(String) 获取单例getSingleton(String, ObjectFactory) 创建单例beforeSingletonCreationcreateBeanafterSingletonCreation createBean 创建对象doCreateBeanaddSingletonFactory createBeanInstance 创建 Bea…

文本区域分割系统源码&数据集分享

文本区域分割系统源码&数据集分享 [yolov8-seg-EfficientHead&yolov8-seg-EfficientRepBiPAN等50全套改进创新点发刊_一键训练教程_Web前端展示] 1.研究背景与意义 项目参考ILSVRC ImageNet Large Scale Visual Recognition Challenge 项目来源AAAI …

STM32(十八):SPI通信

SPI通信: SPI(Serial Peripheral Interface)是由Motorola公司开发的一种通用数据总线 四根通信线:SCK(Serial Clock)、MOSI(Master Output Slave Input)主机输出从机输入、MISO&…

腾讯IM SDK:TUIKit发送多张图片

一、问题描述 在使用腾讯IM DEMO&#xff08;https://github.com/TencentCloud/chat-uikit-vue.git&#xff09;时发现其只支持发送一张图片&#xff1a; 二、解决方案 // src\TUIKit\components\TUIChat\message-input-toolbar\image-upload\index.vue<inputref"inp…

迎接国庆旅游热潮,火山引擎数据飞轮助力景区数智化升级

随着人们生活水平的提高和旅游消费观念的转变&#xff0c;国庆假期成为人们出行旅游的黄金时段。同程旅行发布的报告显示&#xff0c;北京、杭州、重庆、上海、南京、成都等城市仍是 “十一” 假期国内热门的目的地&#xff0c;而一些新兴的宝藏旅游目的地如新疆阿勒泰、云南迪…

人工智能学者荣获2024诺贝尔物理学奖

10月的第一周&#xff0c;诺贝尔物理学奖再次吸引了全球的目光。10月8日&#xff0c;2024年诺贝尔物理学奖授予了两位机器学习领域的杰出科学家——约翰霍普菲尔德&#xff08;John Hopfield&#xff09;和杰弗里辛顿&#xff08;Geoffrey Hinton&#xff09;&#xff0c;以表彰…

PicGo+Gitee搭建Typora图床

PicGoGitee搭建Typora图床 下载PicGo 下载链接&#xff1a;https://picgo.github.io/PicGo-Doc/zh/guide/#%E4%B8%8B%E8%BD%BD%E5%AE%89%E8%A3%85 配置PicGo 插件安装 在PicGo的【插件设置】中搜索gitee-uploader插件并安装 在【图床设置】下配置Gitee repo&#xff1a;用…

免费ppt模板从哪找?一文看这里

国庆假期结束&#xff0c;回工作岗位的你是不是正忙着准备汇报材料&#xff1f;别担心&#xff0c;一份精美的PPT能为你的工作汇报增色不少。 而一个吸引人的PPT背景模板&#xff0c;更是能让你的演示脱颖而出。 为了帮助你们快速找到高质量免费ppt模板背景&#xff0c;以下特…

数字人直播带货操作流程详解!怎样的数字人直播系统能保证效果?

随着人工智能技术的不断成熟&#xff0c;以数字人直播为首的各项应用逐渐被各大中小型企业引进&#xff0c;连带着与之相关的各类话题&#xff0c;如数字人直播带货怎么操作等也开始备受关注。 而就目前的使用情况来看&#xff0c;绝大多数企业都或多或少地遭遇过数字人直播违…

Redis 五种数据类型的操作命令

一、五种数据类型的介绍 五种数据类型如图所示&#xff1a; Redis 是一个开源的键值存储系统&#xff0c;它支持多种数据结构&#xff0c;每种数据结构都有其特定的用例和底层实现。以下是 Redis 的五种主要数据类型&#xff0c;以及它们适合存储的数据类型和底层实现&#xf…

智慧出行:数字孪生三维可视化大屏交通管控系统

智慧出行已成为现代城市发展的重要支柱&#xff0c;数字孪生技术在交通领域的应用不断深化。结合三维可视化技术&#xff0c;打造功能强大的大屏交通管控系统&#xff0c;将对城市交通管理带来巨大变革。该系统通过实时监测和数据分析&#xff0c;提供精准的交通状况显示和预测…

FPUA(1)DIY个人计算机

文章目录 1.需求确定2.硬件选型2.1CPU2.2关于主板2.3硬盘2.4电源2.5散热2.6机箱2.7其他 3.选型成果展示4.组装过程5.欢迎关注技术文章 电脑作为程序员生产力最重要的生产工具&#xff0c;电脑的性能对工作效率有很大影响。电脑组装的每一个环节多少都懂一些&#xff0c;但真正的…

java判断一个字符串是否是回文字符串

代码功能 接收用户输入的字符串&#xff0c;检查该字符串是否为回文&#xff08;即正序和倒序读取都相同&#xff09;&#xff0c;然后输出检查结果。 代码 import java.util.Scanner;public class PalindromeChecker {public static void main(String[] args) {Scanner sc…