循环神经网络
订阅
循环神经网络(Recurrent Neural Network, RNN)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network)
[1]
。对循环神经网络的研究始于二十世纪80-90年代,并在二十一世纪初发展为深度学习(deep learning)算法之一
[2]
,其中双向循环神经网络(Bidirectional RNN, Bi-RNN)和长短期记忆网络(Long Short-Term Memory networks,LSTM)是常见的的循环神经网络
[3]
。循环神经网络具有记忆性、参数共享并且图灵完备(Turing completeness),因此在对序列的非线性特征进行学习时具有一定优势
[4]
。循环神经网络在自然语言处理(Natural Language Processing, NLP),例如语音识别、语言建模、机器翻译等领域有应用,也被用于各类时间序列预报。引入了卷积神经网络(Convoutional Neural Network,CNN)构筑的循环神经网络可以处理包含序列输入的计算机视觉问题。
展开全文

循环神经网络(Recurrent Neural Network, RNN)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network)
[1]
。对循环神经网络的研究始于二十世纪80-90年代,并在二十一世纪初发展为深度学习(deep learning)算法之一
[2]
,其中双向循环神经网络(Bidirectional RNN, Bi-RNN)和长短期记忆网络(Long Short-Term Memory networks,LSTM)是常见的的循环神经网络
[3]
。循环神经网络具有记忆性、参数共享并且图灵完备(Turing completeness),因此在对序列的非线性特征进行学习时具有一定优势
[4]
。循环神经网络在自然语言处理(Natural Language Processing, NLP),例如语音识别、语言建模、机器翻译等领域有应用,也被用于各类时间序列预报。引入了卷积神经网络(Convoutional Neural Network,CNN)构筑的循环神经网络可以处理包含序列输入的计算机视觉问题。
信息
- 外文名
- Recurrent Neural Network, RNN
- 提出时间
- 1986-1990年
- 提出者
- M. I. Jordan,Jeffrey Elman
- 类 型
- 机器学习算法,神经网络算法
- 中文名
- 循环神经网络
- 应 用
- 自然语言处理,计算机视觉
- 所属学科
- 人工智能
循环神经网络历史
1933年,西班牙神经生物学家Rafael Lorente de Nó发现大脑皮层(cerebral cortex)的解剖结构允许刺激在神经回路中循环传递,并由此提出反响回路假设(reverberating circuit hypothesis)
[5]
。该假说在同时期的一系列研究中得到认可,被认为是生物拥有短期记忆的原因
[6-7]
。随后神经生物学的进一步研究发现,反响回路的兴奋和抑制受大脑阿尔法节律(α-rhythm)调控,并在α-运动神经(α-motoneurones )中形成循环反馈系统(recurrent feedback system)
[8-9]
。在二十世纪70-80年代,为模拟循环反馈系统而建立的一些数学模型为RNN带来了启发
[10-12]
。1982年,美国学者John Hopfield基于Little (1974)
[12]
的神经数学模型使用二元节点建立了具有结合存储(content-addressable memory)能力的神经网络,即Hopfield神经网络
[13]
。Hopfield网络是一个包含递归计算和外部记忆(external memory)的神经网络,其内部所有节点都相互连接,并使用能量函数进行非监督学习
[14]
。1986年,Michael I. Jordan在分布式并行处理(parallel distributed processing)理论下提出了Jordan网络
[15]
。Jordan网络的每个隐含层节点都与一个状态单元(state units)相连以实现延时输入,并使用logistic函数作为激励函数
[15]
。Jordan网络使用反向传播算法(Back-Probagation, BP)进行学习,并在测试中提取了给定音节的语音学特征
[15]
。之后在1990年,Jeffrey Elman提出了第一个全连接的RNN,即Elman网络
[16]
。Jordan网络和Elman网络都从单层前馈神经网络出发构建递归连接,因此也被称为简单循环网络(Simple Recurrent Network, SRN)
[4]
。在SRN出现的同一时期,RNN的学习理论也得到发展。在反向传播算法被提出后
[17]
,学界开始尝试在BP框架下对循环神经网络进行训练
[15]
[2]
[18]
。1989年,Ronald Williams和David Zipser提出了RNN的实时循环学习(Real-Time Recurrent Learning, RTRL)
[19]
。随后Paul Werbos在1990年提出了随时间反向传播算法(BP Through Time,BPTT)
[20]
。1991年,Sepp Hochreiter发现了循环神经网络的长期依赖问题(long-term dependencies problem),即在对长序列进行学习时,循环神经网络会出现梯度消失(gradient vanishing)和梯度爆炸(gradient explosion)现象,无法掌握长时间跨度的非线性关系
[21-22]
。为解决长期依赖问题,RNN的改进不断出现,较重要的包括Jurgen Schmidhuber及其合作者在1992和1997年提出的神经历史压缩器(Neural History Compressor, NHC)
[23]
和长短期记忆网络(Long Short-Term Memory networks, LSTM)
[24]
,其中包含门控的LSTM受到了关注。同在1997年,M. Schuster和K. Paliwal提出了具有深度结构的双向循环神经网络(Bidirectional RNN, BRNN),并对其进行了语音识别试验
[25]
。双向和门控构架的出现提升了RNN的学习表现,在一些综述性研究中,被认为是RNN具有代表性的研究成果
[2]
。十一世纪后,随着深度学习理论的出现和数值计算能力的提升,拥有更高复杂度的RNN开始在自然语言处理问题中得到关注。2005年,Alex Graves等将双向LSTM应用于语音识别,并得到了优于隐马尔可夫模型(Hidden Markov Model, HMM)的表现
[26]
。2014年,K. Cho提出了门控循环单元网络(Gated Recurrent Unit networks, GRU),该方法是LSTM之后另一个受到关注的RNN门控构架
[27]
。2010年,Tomas Mikolov及其合作者提出了基于RNN的语言模型
[28]
[29]
。2013-2015年, Y. Benjo、D. Bahdanau等提出了编码器-解码器、自注意力层等一系列RNN算法,并将其应用于机器翻译问题
[30-31]
。为语言模型设计的RNN算法在随后的研究中启发了包括ransformers、XLNet、ELMo、BERT等复杂构筑
[32-34]
。
-
循环神经网络学习流量预测lstm适用于初学者学习使用
-
基于MATLAB的RNN循环神经网络训练仿真+代码操作视频
2022-06-06 06:33:541.领域:matlab,RNN循环神经网络算法 2.内容:基于MATLAB的RNN循环神经网络训练仿真+代码操作视频 3.用处:用于RNN循环神经网络算法编程学习 4.指向人群:本硕博等教研学习使用 5.运行注意事项: 使用matlab... -
基于循环神经网络(RNN)实现影评情感分类
2020-12-25 08:06:32使用循环神经网络(RNN)实现影评情感分类 作为对循环神经网络的实践,我用循环神经网络做了个影评情感的分类,即判断影评的感情色彩是正面的,还是负面的。 选择使用RNN来做情感分类,主要是因为影评是一段文字,是... -
Python使用循环神经网络解决文本分类问题的方法详解
2020-12-23 02:48:22本文实例讲述了Python使用循环神经网络解决文本分类问题的方法。分享给大家供大家参考,具体如下: 1、概念 1.1、循环神经网络 循环神经网络(Recurrent Neural Network, RNN)是一类以序列数据为输入,在序列的演进... -
循环神经网络语言模型.pdf
2021-08-14 10:29:53对循环神经网络的研究始于二十世纪80-90年代,并在二十一世纪初发展为深度学习(deep learning)算法之一 [2] ,其中双向循环神经网络(Bidirectional RNN, Bi-RNN)和长短期记忆网络(Long Short-Term Memory ... -
Task03 循环神经网络进阶(pytorch代码实现)
2021-01-06 17:07:44循环神经网络进阶 ⻔控循环神经⽹络(GRU) 当时间步数较⼤或者时间步较小时, 循环神经⽹络的梯度较容易出现衰减或爆炸。虽然裁剪梯度可以应对梯度爆炸,但⽆法解决梯度衰减的问题。通常由于这个原因,循环神经⽹络... -
RNN加法_RNN循环神经网络;二进制加法_
2021-09-30 17:57:24基于python编写的RNN循环神经网络实现二进制加法 -
Matlab实现循环神经网络RNN
2018-12-02 13:22:13深度学习神经网络之循环神经网络(RNN)Matlab实现循环神经网络RNN -
基于循环神经网络的新闻话题分类.py
2021-12-29 16:40:28基于循环神经网络的新闻话题分类的源码 -
循环神经网络进阶
2021-01-06 14:40:34循环神经网络进阶 当时间步数较大或者时间步较小时,循环神经网络的梯度较容易出现衰减或爆炸。虽然裁剪梯度可以应对梯度爆炸,但无法解决梯度衰减的问题。通常由于这个原因,循环神经网络在实际中较难捕捉时间序列... -
循环神经网络RNN以及几种经典模型
2021-01-07 01:43:32因此,就有了现在的循环神经网络,他的本质是:拥有记忆的能力,并且会根据这些记忆的内容来进行推断。因此,他的输出就依赖于当前的输入和记忆。 网络结构及原理 循环神经网络的基本结构特别简单,就是将网络的输出... -
深度学习基础3——过拟合欠拟合、梯度消失与梯度爆炸、常见循环神经网络
2021-01-20 11:53:54影响模型效果的其他因素三、循环神经网络进阶1.门控循环神经网络/门控循环单元(GRU)2.LSTM:长短期记忆3.深度循环神经网络(Deep RNN)4.双向循环神经网络(BRNN) 一、过拟合欠拟合 1.概念 欠拟合:训练误差(训练集... -
基于循环神经网络的网络舆情趋势预测研究
2021-03-09 00:27:29基于循环神经网络的网络舆情趋势预测研究 -
循环神经网络
2018-08-08 15:32:55一种是时间递归神经网络(recurrent neural network),又名循环神经网络,另一种是结构递归神经网络(recursive neural network)。时间递归神经网络的神经元间连接构成矩阵,而结构递归神经网络利用相似的神经网络... -
简单理解RNN循环神经网络
2021-01-06 17:13:39简单理解RNN循环神经网络RNN(Recurrent Neural Network)介绍图说RNN宏观结构图说RNN微观结构 RNN(Recurrent Neural Network)介绍 介绍: RNN,也就是循环神经网络,是用来建模序列化数据的一种主流的深度学习模型... -
Chemistry.AI | 基于循环神经网络(RNN)预测分子性质
2020-12-21 04:36:38基于循环神经网络(RNN)预测分子性质 导入库 from rdkit import Chem from rdkit.Chem.Crippen import MolLogP import numpy as np import torch import time 载入数据,计算分子指纹和描述符 maxlen = 64 with ... -
人工智能之机器学习的循环神经网络RNN算法解析
2021-01-19 21:24:37前言:人工智能机器学习有关算法内容,请...引领循环神经网络RNN研究的主要是JuergenSchmidhuber和他的学生——其中包括SeppHochreiter,他发现了高深度网络所遇到的梯度消失问题,后来又发明了长短期记忆(LSTM)循环 -
cnn_深度神经网络_循环神经网络_CNN神经网络_CNN
2021-09-11 09:40:28一个包含循环神经网络CNN的代码,运行没有问题 -
深度学习--几种常见的循环神经网络视频教学(RNN+LSTM+GRU)
2021-06-10 00:56:54深度学习的顶级循环神经网络的工作方式包括 LSTM、GRU 和 RNN. 循环神经网络(RNN)在自然语言处理、语音识别等有很广泛的用途。LSTM和GRU是目前使用最广泛的两个循环神经网络的模型变种。该视频课程内容主要分为三大... -
基于循环神经网络的旅游地点推荐系统设计与实现.pdf
2021-08-21 22:19:06基于循环神经网络的旅游地点推荐系统设计与实现.pdf -
深度学习——循环神经网络
2021-01-06 17:33:44循环神经网络(Recurrent Neural Network, RNN)是一类以序列(sequence)数据为输入,在序列的演进方向进行递归(recursion)且所有节点(循环单元)按链式连接的递归神经网络(recursive neural network)。 递归神经网络... -
循环神经网络测试用数据集
2022-04-13 16:04:04循环神经网络测试用数据集 -
循环神经网络代码RNN-超全注释
2018-01-03 20:07:43循环神经网络代码RNN-超全注释 #inputs t时刻序列,也就是相当于输入 #targets t+1时刻序列,也就是相当于输出 #hprev t-1时刻的隐藏层神经元激活值 def lossFun(inputs, targets, hprev): xs, hs, ys, ps = {},... -
循环神经网络预测_神经网络预测_网络流量_LSTM_lstm流量预测_循环网络
2021-09-10 15:06:29循环神经网络学习流量预测lstm适用于初学者学习使用 -
基于循环神经网络RNN的歌词生成
2021-04-15 20:27:56循环神经网络RNN在自然语言上的应用,基于tensorflow,实现简单,运行jielun_song.py -
循环神经网络和LSTM课件
2017-12-18 09:27:56该资源是由七月算法寒老师在机器学习课程中讲述的内容,主要内容为循环神经网络课程的课件内容丰富。 -
循环神经网络python实现
2018-11-28 19:24:12使用循环神经网络(RNN)实现简易的二进制加法器,利用python中numpy包实现。
收藏数
87,350
精华内容
34,940