递归神经网络 (RNN)

弗朗西斯科·佛朗哥

一、说明

        循环神经网络非常有趣,因为与前馈网络不同,在前馈网络中,数据只能在一个方向上传播,每个神经元可以与连续层的一个或多个神经元连接,在这种类型的网络中,神经元还可以环回自身或连接到前一层的神经元。

        循环网络允许神经元连接到先前层的神经元或同一层的神经元。这一特征使这些神经网络变得特殊,因为递归的概念带来了网络中的记忆概念。事实上,在 RNN 中,神经元的输出可以在时间上连续的阶段影响自身,或者可以影响前面层的神经元,进而影响原始神经元的行为,从而闭合循环。当然,实现 RNN 的方法不止一种。多年来,许多不同类型的 RNN 被提出和研究,其中最著名的是 LSTM(长短期记忆)和 GRU(门控循环单元),稍后将讨论。

二、什么时候应该使用 RNN?

        我们举一个简单的例子来说明。如果我正在分析一张照片,我想在其中观察一些感兴趣的物体,我需要向神经网络提供随时间变化的静态信息,即照片的像素。使用前馈网络可以轻松处理这种情况。例如,训练有素的卷积神经网络 (CNN),其输入层将由与照片中的像素乘以 3(对于 RGB 图像)一样多的神经元组成。

        但是如果我们处理的不是图像而是视频怎么办?如果我们仍然只想识别物体,那么什么都不会改变,但如果我们想识别和分类行为,事情就会完全不同。

        识别行为需要对某个行为进行随时间的分析,只有收集到的整套信息才能告诉我们所观察到的行为类型。识别视频中的一个人是一回事,而识别这个人是否正在喝酒或向瓶子里吹气则是另一回事。

        因此,我们的目标是了解如何处理随时间变化的动态信息,从而构建和指导具有记忆的网络  (RNN),以便它能够观察变化并识别不同的行为。该问题的解决方案是 RNN,其最简单的形式是 RNN 单元。

        然而,在解释什么是 RNN 单元之前,必须绝对清楚它们是按时间运行的,因此,与提供静态数据的经典前馈网络不同,RNN 设计用来处理的数据类型是时态数据。序列或系列。让我们看几个例子。

        时间序列或时间序列可以被认为是在许多时刻采样的函数。例如,它可以是采样声音的波形、股票市场中股票的行为或短语。

三、 RNN的工作流程

        在由短语组成的序列的情况下,样本是经过适当编码的单个单词。在这种情况下,随着时间的推移,RNN 单元将接收单个单词作为输入,这些单词将被视为前一个单词或多个单词的函数,具体取决于所使用的 RNN 单元的类型。

        在上图中,X_0 代表该短语的第一个单词。S_0 是细胞在 t=0 时的状态,S_1 是细胞在 t=1 时的状态,而 tanh(双曲正切)是激活函数。

        简而言之,在 RNN 单元中,在每个时刻 t,单元不仅会接收输入 X(t),还会接收 S(t-1) 之前时刻的自身输出。输出的追溯性将使网络能够根据其过去的历史做出决策。在这种类型的方法中,确定要使用的最大迭代次数显然很重要。否则网络将陷入无限循环。

        现在我们已经了解 RNN 可以用具有有限状态循环的单元来表示,让我们看看如何训练它。

        此时,我们应该引入网络展开的概念,它基本上转化为将 RNN 转换为前馈类型网络的操作。看下图,其实很容易看出Recurrent Neural Net已经变成了前馈网络。

        让我们尝试将上面阐述的概念形式化一点。RNN 单元是循环网络的一部分,它为每个瞬时保存一个内部状态 h(t)。它由固定数量的神经元组成,可以被视为网络的一种层。在我们的网络中,每一时刻的输出将是:

        其中 h_t 取决于输入 X_t 和之前的状态 h_(t-1)。

        继续展开网络意味着先确定要进行分析的时间步骤的数量。因此,一个 10 步展开的 RNN 相当于一个 10 层的前馈深度神经网络 (DNN)。

        对于具有两个输入的神经元,输出函数类似于:

        具有两个输入的 S 型神经元

        在这里:

        和:

        其中 sigmoid 是激活函数,我们称之为 phi,b=0。

        将相同的推理应用于 RNN,我们有:

        其中 w_x 和 w_h 是权重,b 是偏差,phi 是激活函数。

        最简单的细胞的学习能力和记住远距离步骤输入的能力都会受到限制。当需要跟踪遥远的事件时,这种限制可能会成为一个问题。例如,就短语而言,单词的上下文至关重要。事实上,在一个短语中,某些单词的出现并不是唯一的相关因素,而且单词之间的相互联系也很重要。因此,仅记住单词序列中紧邻的前一个单词是不够的。在这种情况下,我们需要更复杂的存储单元,例如 LSTM 和 GRU,我将在另一篇文章中讨论。

四、结论

        总之,RNN 是一种非常有价值的资产,经常用于自然语言处理NLP )问题。循环神经网络特殊的“记忆”特性使其具有惊人的创造力。

        通过要求他们识别旋律序列中最可能的连续音符,可以创建完全由人工智能编写的真实、原创乐谱,就像Google 的Magenta 项目使用Tensorflow创建的乐谱一样

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

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

相关文章

安卓端GB28181设备接入模块如何实现实时位置订阅(MobilePosition)

技术背景 实时位置(MobilePosition)订阅和上报,对GB28281设备接入终端尤其重要,如移动单兵设备、执法记录仪、智能安全帽、车载终端等,Android国标接入设备通过获取到实时经纬度信息,按照一定的间隔上报到…

竞赛选题 深度学习卫星遥感图像检测与识别 -opencv python 目标检测

文章目录 0 前言1 课题背景2 实现效果3 Yolov5算法4 数据处理和训练5 最后 0 前言 🔥 优质竞赛项目系列,今天要分享的是 🚩 **深度学习卫星遥感图像检测与识别 ** 该项目较为新颖,适合作为竞赛课题方向,学长非常推荐…

如何使用 VuePress 搭建博客网站并 Vercel 部署

先来看一下网站截图: 快速上手 1.创建并进入一个新目录 mkdir vuepress-starter && cd vuepress-starter2.使用你喜欢的包管理器进行初始化 yarn init # npm init3.将 VuePress 安装为本地依赖 yarn add -D vuepress # npm install -D vuepress4.创建你…

【LeetCode:2520. 统计能整除数字的位数 | 模拟 | HashMap】

🚀 算法题 🚀 🌲 算法刷题专栏 | 面试必备算法 | 面试高频算法 🍀 🌲 越难的东西,越要努力坚持,因为它具有很高的价值,算法就是这样✨ 🌲 作者简介:硕风和炜,…

Sentinel授权规则和规则持久化

大家好我是苏麟 , 今天说说Sentinel规则持久化. 授权规则 授权规则可以对请求方来源做判断和控制。 授权规则 基本规则 授权规则可以对调用方的来源做控制,有白名单和黑名单两种方式。 白名单:来源(origin)在白名单内的调用…

面试必考精华版Leetcode994. 腐烂的橘子

题目&#xff1a; 代码&#xff08;2023年10月26日 首刷自解&#xff09;&#xff1a; class Solution { public:int orangesRotting(vector<vector<int>>& grid) {/*统计grid二维数组中有多少新鲜橘子和多少烂橘子&#xff0c;将所有的烂橘子存入一个三元队列…

C++类模板再学习

之前已经学习了C类模板&#xff1b;类模板的写法和一般类的写法有很大的差别&#xff1b;不容易熟悉&#xff1b;下面再做一遍&#xff1b; 做一个椭圆类&#xff0c;成员有长轴长度和短轴长度&#xff1b; // ellipse.h: interface for the ellipse class. // //#if !define…

图论基础和表示

一、概念及其介绍 图论(Graph Theory)是离散数学的一个分支&#xff0c;是一门研究图(Graph)的学问。 图是用来对对象之间的成对关系建模的数学结构&#xff0c;由"节点"或"顶点"(Vertex&#xff09;以及连接这些顶点的"边"&#xff08;Edge&a…

2023年中国医疗器械供应链服务平台发展趋势分析:向国家高端化市场发力[图]

医疗器械供应链服务主要分为全流程供应链服务与院内SPD服务&#xff0c;同时全流程供应链服务主要分为市场、仓储物流与金融三大服务。在SPD数字化赋能下&#xff0c;大数据、云计算等技术支撑促进一站式数字化供应链业务协同平台&#xff0c;带动了整体医疗器械供应链服务的发…

730. 机器人跳跃问题--二分

题目&#xff1a; 730. 机器人跳跃问题 - AcWing题库 思路&#xff1a; 二分 1.当起始能量E大于最大建筑高度1e5 时&#xff0c;E的能量在整个条约过程中全程递增&#xff0c;则大于E的初始能量也必然成立&#xff08;满足二段性&#xff09;。故最小初始能量范围为[0,1e5]&a…

windows如何查看电脑IP地址

介绍两种查看电脑IP的方式 一、第一种方式 1、在电脑左下角搜索网络连接 2、鼠标右键你目前连接的网络&#xff08;wifi就点wifi 网线就点以太网&#xff09;&#xff1b;选择里面的状态。 3、点击详细信息&#xff0c;这里的IPv4地址就是你电脑的IP。 二、第二种 1、win…

ElasticSearch安装、插件介绍及Kibana的安装与使用详解

ElasticSearch安装、插件介绍及Kibana的安装与使用详解 1.安装 ElasticSearch 1.1 安装 JDK 环境 因为 ElasticSearch 是用 Java 语言编写的&#xff0c;所以必须安装 JDK 的环境&#xff0c;并且是 JDK 1.8 以上&#xff0c;具体操作步骤自行百度 安装完成查看 java 版本 …

go创建完美的枚举类型

文章目录 一.前言二. 枚举基本要素描述三. 枚举设计源码3.1 EnumCommon-通用能力3.2 Enum_news 业务枚举3.3 定制化业务枚举 一.前言 用惯了springboot和Jakarta.才发现springboot和Jakarta的语言是多么精妙! 一些场景我们需要使用枚举: 如建立字典值映射,仅通过代码实现方便快…

竞赛 深度学习人脸表情识别算法 - opencv python 机器视觉

文章目录 0 前言1 技术介绍1.1 技术概括1.2 目前表情识别实现技术 2 实现效果3 深度学习表情识别实现过程3.1 网络架构3.2 数据3.3 实现流程3.4 部分实现代码 4 最后 0 前言 &#x1f525; 优质竞赛项目系列&#xff0c;今天要分享的是 &#x1f6a9; 深度学习人脸表情识别系…

用Flask快速生成报表

一、前言 《用Python快速生成报表之一》 我们介绍了用html-table快速生成表格数据报表&#xff0c;今天我们再介绍一下用Python Flask 快速开发报表&#xff0c;使用的是最古老的套页面方式。 二、Flask快速生成报表 Python有N多Web框架&#xff0c;最强大最出名的是Django&…

某全球领先的晶圆代工企业:替代FTP实现大规模文件的高效传输

全球领先的集成电路晶圆代工企业之一 该企业不仅是全球领先的集成电路晶圆代工企业之一&#xff0c;也是中国内地技术最先进、配套最完善、规模最大、跨国经营的集成电路制造企业集团。主要业务是根据客户本身或第三者的集成电路设计&#xff0c;为客户制造集成电路芯片&#…

Python Opencv实践 - 入门使用Tesseract识别图片中的文字

做车牌识别项目前试一试tesseract识别中文。tesseract的安装使用请参考&#xff1a; Python OCR工具pytesseract详解 - 知乎pytesseract是基于Python的OCR工具&#xff0c; 底层使用的是Google的Tesseract-OCR 引擎&#xff0c;支持识别图片中的文字&#xff0c;支持jpeg, png…

IBM展示非冯·诺依曼架构AI芯片NorthPole

我们正处于人工智能的“寒武纪大爆发”时期。在过去的十年中&#xff0c;人工智能已经从理论和小型测试发展到企业规模的使用案例。但是&#xff0c;用于运行人工智能系统的硬件虽然越来越强大&#xff0c;但在设计时却没有考虑到当今的人工智能。随着人工智能系统规模的扩大&a…

3ds Max2023安装教程(最新最详细)

目录 一.简介 二.安装步骤 软件&#xff1a;3ds Max版本&#xff1a;2023语言&#xff1a;简体中文大小&#xff1a;6.85G安装环境&#xff1a;Win11/Win10/Win8/Win7硬件要求&#xff1a;CPU3GHz 内存16G(或更高&#xff09;下载通道①百度网盘丨64位下载链接&#xff1a; …

Vue中的加密方式(js-base64、crypto-js、jsencrypt、bcryptjs)

目录 1.安装js-base64库 2. 在Vue组件中引入js-base64库 3.使用js-base64库进行加密 4.Vue中其他加密方式 1.crypto-js 2.jsencrypt 3.bcryptjs 1.安装js-base64库 npm install js-base64 --save-dev 2. 在Vue组件中引入js-base64库 import { Base64 } from js-ba…