递归神经网络 (RNN) 简介

文章目录

一、介绍

在不断发展的人工智能 (AI) 领域,弥合人与机器之间的鸿沟已经取得了显着进展。研究人员和爱好者都在该领域的许多方面孜孜不倦地工作,带来了惊人的进步。在这些领域中,机器学习作为探索和创新的关键领域脱颖而出。

机器学习领域的议程是多方面的,旨在提高计算机从数据中学习并在没有明确编程的情况下做出预测或决策的能力。这包括一系列广泛的任务,包括:模式识别、预测分析、自然语言处理 (NLP)、深度学习等。循环神经网络 (RNN) 的改进极大地影响了 NLP、时间序列分析和顺序数据处理中应用的发展。

本文旨在为理解 RNN 的工作原理及其应用提供全面的介绍。

二、什么是递归神经网络 (RNN)?

受人脑启发的人工神经网络 (ANN) 旨在教计算机处理数据。这涉及到一个机器学习过程(深度学习),该过程在类似于人脑的层次结构中使用互连的节点或神经元。它创建了一个自适应系统,计算机可以使用它从错误中吸取教训并不断改进。因此,人工神经网络试图以更高的精度解决复杂的问题,例如总结文档或识别人脸。

RNN 是一种特殊类型的 ANN,适用于时间序列数据或涉及序列的数据。它经过训练,可以处理顺序数据输入并将其转换为特定的顺序数据输出。顺序数据是单词、句子、时间序列数据等数据,其中顺序组件基于复杂的语义和句法规则相互关联。

三、展开递归神经网络

一个简单的 RNN 有一个反馈循环,如下图所示。灰色矩形中显示的反馈回路可以按三个时间步长展开,以产生下面的第二个网络。我们还可以改变架构,以便网络展开 k 时间步骤。
在这里插入图片描述

压缩表示(顶部),展开网络(底部)。图片来自:RNN Introduction
在每个时间步长,我们都可以将网络展开 k 个时间步长,以获得时间 k+1 的输出。展开网络类似于前馈神经网络。在 RNN 的前馈传递中,网络计算隐藏单元的值和 k 时间步长后的输出。与网络关联的权重是临时共享的。每个循环层都有两组权重:一组用于输入,另一组用于隐藏单元。最后一个前馈层,计算第 k 个时间步长的最终输出,就像传统前馈网络的普通层一样。
在这里插入图片描述

RNN 的一个例子。图片来自:https://www.youtube.com/watch?v=Y2wfIKQyd1I&t=526s
这是四个相同的单个图层,但显示不同时间步长的状态。将前一个单词的输出作为第二个单词的输入提供,以按顺序生成文本。

解码 RNN 的运营动态
RNN 由神经元组成,神经元是数据处理节点,它们协同工作以执行复杂的任务。RNN通常有四层,即输入层、输出层、隐藏层和损失层。输入层接收要处理的信息,输出层提供结果。隐藏层位于输入层和输出层之间,可以记住并使用以前的输入根据存储的内存进行未来预测。迭代处理随着顺序数据遍历隐藏层而展开,每一步都会带来增量的洞察和计算。
在这里插入图片描述

RNN网络。图片来自:https://aws.amazon.com/what-is/recurrent-neural-network/
激活函数
激活函数通过计算加权和并进一步增加偏差来确定神经元是否应该被激活。它可以引入非线性,通常将神经元的输出转换为 0 和 1 或 -1 和 1 之间的值。

可以使用的常见激活函数有:

Sigmoid 函数
Tanh 函数
ReLu 函数
在这里插入图片描述

激活函数。图片来自Kazi,激活函数

四、训练递归神经网络

RNN 是通过提供训练数据并优化其性能来训练的。神经元具有权重,用于在训练期间预测结果时表示信息的重要性。调整权重以提高预测准确性。一种称为时间反向传播 (BPTT) 的方法可以计算模型误差并相对调整权重。BPTT 通过图形从右向左移动,将输出回滚到前一个时间步长,并重新计算错误率,以确定哪个隐藏状态导致了错误,并调整此权重以减少错误,从而提高预测精度。
在这里插入图片描述

训练 RNN。图片来自:什么是递归神经网络 (RNN)?,codebasics
一般步骤如下:

初始化神经网络的参数,如权重矩阵(U、V、W)和偏置向量(b、c)。
前向传播以计算预测。这涉及使用当前参数值按顺序计算网络中每一层的输出。
计算损失以衡量预测输出与实际目标值之间的差异。
反向传播,用于计算损失函数的梯度。这涉及到在网络中逐层向后传播误差,并使用微积分链规则来计算梯度。
在梯度计算之后,使用 SGD 或 Adam 等优化方法调整权重和偏差,以最小化损失函数。
重复步骤 2-5,直到满足条件。
培训结果:
在这里插入图片描述

训练结果示例。图片来自:第十讲 |递归神经网络,斯坦福大学工程学院 Youtube 频道(12 年前 2017 年)
通过训练过程,模型逐渐学会根据观察到的数据和计算的梯度调整其参数,从而做出更好的预测。从上图中可以看出,通过逐步训练,结果生成的句子更加连贯、结构化和有意义。

五、RNN 的类型

在这里插入图片描述

RNN 类型。来源: 第十讲 |递归神经网络,斯坦福大学工程学院 Youtube 频道(12 年前 2017 年)
每个矩形都是一个向量,箭头表示函数。输入向量为红色,输出向量为蓝色,绿色向量保存 RNN 的状态。从左到右:

传统的神经网络采用一对一的架构。原版神经网络,从固定大小的输入到固定大小的输出。例如,图像分类获取图像并输出单个分类词。
一对多网络,单个输入可以产生多个输出。序列输出,从固定大小的输入到可变长度的序列。例如,图像标题:获取图像并输出一句话。
多对一网络,来自不同时间步长的许多输入产生单一输出。序列输入,从可变大小的输入到固定大小的输出。例如,情感分析,其中给定的句子被归类为表达积极或消极的情感。
多对多网络:序列输入和序列输出,从可变大小的输入到可变大小的输出。例如,机器翻译,RNN 用英语读一个句子,然后用法语输出一个句子。
具有同步序列的多对多网络:同步序列输入和输出,从可变大小的输入到可变大小的输出。例如,视频分类,我们希望标记视频的每一帧。

六、现实生活中的 RNN 用例

以下是四个有用的序列模型应用程序。

  1. 谷歌Gmail
    在这里插入图片描述

谷歌Gmail。
当您输入句子时,它会自动完成它。谷歌在其中嵌入了这个RNN。

自动生成结果。
2. 谷歌翻译
在这里插入图片描述

谷歌翻译。
将句子从一种语言翻译成另一种语言

  1. 命名实体识别 (NER)
    在这里插入图片描述

NER。图片来自:什么是递归神经网络 (RNN)?,codebasics
给定一个语句,它将分析文本以检测和分类实体。

  1. 情感分析
    在这里插入图片描述

情绪分析。图片来自:什么是递归神经网络 (RNN)?,codebasics
给定一个陈述,它将分析文本以确定其中表达的情感或情感语气。

七、RNN 的两个主要限制

爆炸梯度:当单个导数很大时,最终的导数也会变得巨大,权重也会发生巨大变化。
消失梯度:随着隐藏层数量的增加,梯度变得非常小,权重几乎不会改变。这将阻碍学习过程。
RNN 变体。

八、RNN的变体

8.1 双向递归神经网络 (BRNN)

在 BRNN 中,数据在两个方向上进行处理,包括前向层和后向层,以考虑过去和未来的上下文。与只有前向层的 RNN 相比,结合这两层使 BRNN 的预测精度更高。

8.2 长短期记忆 (LSTM)

在 LSTM 中,模型可以扩展其内存容量以适应更长的时间线。它有一个特殊的内存块(单元),由输入门、输出门和忘记门控制,因此 LSTM 可以记住比 RNN 更有用的信息。

8.3 门控循环单元 (GRU)

在 GRU 中,它启用选择性内存保留。该模型有一个更新和忘记门,可以在内存中存储或删除信息。

九、结论

总之,递归神经网络 (RNN) 是一种强大且有用的神经网络,用于处理顺序数据。RNN具有处理序列变量的能力,在文本生成、文本翻译、语音识别、情感分析等方面有着广泛的应用。总体而言,RNN仍然是机器学习和自然语言处理领域的重要工具。

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

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

相关文章

YOLOv8改进 | 融合改进 | C2f融合Faster-GELU模块提升检测速度【完整代码 + 主要代码解析】

秋招面试专栏推荐 :深度学习算法工程师面试问题总结【百面算法工程师】——点击即可跳转 💡💡💡本专栏所有程序均经过测试,可成功执行💡💡💡 专栏目录 :《YOLOv8改进有效…

基于信号量和环形队列的生产者消费者模型

文章目录 POSIX信号量信号量接口初始化信号量销毁信号量等待信号量发布信号量 基于环形队列的生产者消费者模型单生产单消费多生产多消费 POSIX信号量 POSIX信号量和SystemV信号量作用相同,都是用于同步操作,达到无冲突的访问共享资源目的。 但POSIX可以…

接口返回结果封装

接口返回结果封装 1、错误信息枚举 package com.zhw.enums;public enum AppHttpCodeEnum {// 成功SUCCESS(200,"操作成功"),// 登录NEED_LOGIN(401,"需要登录后操作"),NO_OPERATOR_AUTH(403,"无权限操作"),SYSTEM_ERROR(500,"出现错误&quo…

K-medoids算法原理及Python实践

一、原理 K-medoids算法是一种聚类算法,它的原理与K-Means算法相似,但关键区别在于它使用数据集中的实际点(称为medoids)作为簇的中心点,而不是像K-Means那样使用簇内所有点的平均值。以下是K-medoids算法的主要原理&…

Excel 保持原序时计算组内排名

Excel某表格第1列是分组,第2列是日期,未排序。 AB1Agent IDDate of Sale2Agent107-12-20233Agent105-12-20234Agent209-12-20235Agent313-12-20236Agent214-12-20237Agent222-12-20238Agent115-12-20239Agent117-12-202310Agent213-12-202311Agent120-1…

wooyu漏洞库YYDS!!!入门之道:重现乌云漏洞库

目录 wooyun乌云漏洞库搭建 1、搭建资料 文件结构分析: ​编辑2、搭建过程 2.1、搭建wooyun网站 2.2、配置数据库 2.2.1、修改数据库配置文件conn.php 2.2.2、创建wooyun数据库,并解压数据库文件 2.2.3、连接数据库(数据库默认连接密…

计算机基础知识总结(八股文--计算机网络、操作系统、数据库、c++、数据结构与算法)

一、操作系统 0.内存管理 01.什么是虚拟内存?为什么需要虚拟内存? 虚拟内存为程序提供比实际物理内存更大的内存空间,同时提高内存管理的灵活性和系统的多任务处理能力。虚拟地址空间就是进程所能看到的内存空间,这段空间是连续…

【案例61】update driver error

问题现象 顾问在保存数据源时报“update driver error”错误,重启服务器,重启sysConfig.bat后问题依旧。 问题分析 之前碰到这类问题发现是权限的问题。所以先去检查了相关文件夹的权限。 查看控制台发现客户用的是非Administrator用户登录&#xff0…

数学建模2024国赛时间及事项安排

2024年的全国大学生数学建模竞赛即将拉开帷幕。考虑到许多同学可能是首次参与此类赛事,尚不清楚如何进行有效的时间安排,博主在此整理了以往参赛的经验和时间管理策略,希望能为大家提供一些有益的参考,更从容地应对国赛。 本届全国…

网络安全 DVWA通关指南 DVWA File Upload(文件上传)

DVWA File Upload(文件上传) 文章目录 DVWA File Upload(文件上传)修复建议 LowMediumHighImpossible 修复建议 1、使用白名单限制可以上传的文件扩展名 2、注意0x00截断攻击(PHP更新到最新版本) 3、对上传…

出口MID电能表到欧洲市场

出口MID电能表到欧洲市场! 浙江永泰隆电子有限公司在研发和将MID能量计出口到欧盟市场方面具有丰富的经验。以下是突显该公司专业性的概述: 公司概况: 浙江永泰隆电子有限公司是一家专注于先进能量测量解决方案的制造商,特别是…

【栈】| 力扣高频题: 有效的括号

🎗️ 主页:小夜时雨 🎗️专栏:算法题 🎗️如何活着,是我找寻的方向 目录 1. 题目解析2. 代码 1. 题目解析 题目链接: 力扣20:https://leetcode.cn/problems/valid-parentheses/description/ 本…

linux系统中USB模块基本原理分析

大家好,今天主要给大家分享一下,USB设备的发展历程。 第一:USB发展变化 随着时代的发展,USB模块也随之不断的升级。 USB1.1:规范了USB低全速传输; USB2.0:规范了USB高速传输,采用NRZI(反向不归零)编码(NRZI采用8bit编码方式),位填充(在数据进行NRZI编码前…

虚幻5|制作玩家血量,体力(还未编辑,只用于引用)

未编写,仅引用 优化后: 把增加生命,减少生命,也可以用在体力里,更改如下 限制浮点,如果血量或体力按10来扣,如果你的血量降低到5,那么就会以5的数值来扣,而不会扣成-5…

es 7.17.23安装ik插件启动失败,access denied,Permission

情况简述 windows平台,下载了7.17.23的es以及7.17.23的ik分词器的zip包之后( 下载地址(官方推荐的):Index of: analysis-ik/stable/ ),解压该ik的包到es的plugins下,目录结构&…

Webpack中的 HTTP 压缩

http压缩介绍 http压缩,是指一种内置在服务器和客户端之间改进传输速度和带宽利用率的方式。 http 压缩的流程: http 数据在服务器发送前,通过 webpack配置进行压缩;兼容的浏览器在向服务器发送请求时,在请求头中会…

删除Vue2残留配置文件解决异常:Cannot find module ‘@vue/babel-plugin-transform-vue-jsx‘

背景 完成Vue2代码升级为Vue3后,将新代码上传至代码库。在修改源代码库代码后,启动项目,提示:Cannot find module ‘vue/babel-plugin-transform-vue-jsx‘,尝试安装该第三方库后仍然无效。 解决方案: 删…

带你快速了解WEB应用服务器TOMCAT

目录 一、WEB技术 1.1 HTTP协议和B/S 结构 1.2 前端三大核心技术 1.2.1 HTML 1.2.2 CSS(Cascading Style Sheets)层叠样式表 1.2.3 JavaScript 二 WEB框架 2.1 web资源和访问 2.2 后台应用架构 2.2.1 单体架构 2.2.2 微服务 2.2.3 单体架构和…

QtCreator错误:Qt没有被正确安装,请运行make install(适用Qt4、Qt5、Qt6)

一、问题环境 (1)Windows 10企业版,64位 (2)Visual Studio 2019 (3)Qt5.12.12 x64版本(自己编译) (4)Qt Creator 12.0.1 二、问题描述&#…

使用CORS解决跨域问题

CORS(Cross-Origin Resource Sharing)跨域资源共享 因为浏览器的同源策略才出现了跨域问题。 CORS是一套机制,用于浏览器校验跨域请求。 它的基本理念是: 只要服务器明确表示允许,则校验通过服务器明确拒绝或没有表…