什么是循环神经网络
编辑循环神经网络(RNN)是人工神经网络的一种,其特点是单元之间的连接具有循环结构,这种结构允许将状态存储在神经网络内部,从而可以对时变的动态特征进行建模,因此与神经网络不同,它可以利用内存处理序列形式的输入,因此循环人工神经网络可以应用于处理具有时变特征的数据,例如手写识别或语音识别。
循环神经网络之所以被称为循环神经网络,是因为它处理输入信号长度不定的动态数据,既指有限脉冲结构,又指无限脉冲结构。由于有限脉冲循环神经网络是有向无环图,如果正确求解和重构,它也可以表示为前向神经网络,但是由于无限脉冲循环神经网络是有向图,因此不可能将其表示为前向神经网络。
循环神经网络可以有额外的存储空间。这个存储空间可以具有图的形式,因此它可以起到时间延迟或具有反馈循环的作用。这个存储空间可以称为门控状态或门控存储器,以及LSTM 和门循环单元(GRU)是其应用的代表性例子。
循环神经网络历史
编辑循环神经网络 RNN 基于 David Rumelhart 1986 年的工作。RNN 的一个特殊例子,Hopfield 网络,由 John Hopfield 于 1982 年发明,1993 年,神经记忆压缩器成功实现了“非常深度学习”,成功地实现 1000 使用由多个层组成的静态 RNN。
LSTM
LSTM 网络由 Hoxreiter 和 Schmidt Huber 于 1997 年发明,在许多应用中展现了无与伦比的准确性。
2007年左右,LSTM在语音识别领域远远优于传统模型;2009年,采用CTC(Connectionist Temporal Classification)技术训练的LSTM首次在手写识别竞赛中获胜;
LSTM 在大词的语音识别和语音合成领域也取得了进展,目前正在应用于谷歌 Android,2015 年谷歌通过基于 CTC 的 LSTM 语音识别能力提升了 49%。
此外,机器翻译、语言建模、多语言处理等领域的记录不断更新,能力优异,与卷积神经网络一起应用,在自动图像字幕领域取得了很大的进步。运行 LSTM Research 使用硬件加速器加速 LSTM 来减少 LSTM 所需的大量计算也在稳步进行。
循环神经网络结构
编辑完全循环
RNN 的结构是,类似神经元的层层节点构成连续层,每个节点与下一步的所有层形成单向图,并具有随时间变化的实数激活值。节点之间有一个实数值的权重,该权重是不断变化的,节点的类型包括从神经网络外部接收值的输入节点、计算结果值的输出节点以及存在于输入节点和输出之间的隐藏节点节点。
在离散时间数据的监督学习中,单位时间内输入节点一次进入一个实数向量,此外,每一时刻除输入节点外的所有节点都从每个连接节点接收激活值作为加权和以及每个连接的权重,通过非线性函数计算激活值后存储起来,监督学习给出的数据告知输出节点值在每个特定时刻应该达到的值(目标)神经网络在每一时刻产生的输出值与原本应该达到的值之间的误差定义为各值之间的偏差之和,神经网络朝着减小这个误差的方向进行训练。例如,考虑一个通过语音识别猜测数字的程序。在这种情况下,最终的输出值用于对数字进行分类。将是标签。
在强化学习的情况下,没有人教导输出值应该是什么的信息,相反,评估 RNN 性能的适应度函数或奖励函数接受输出值,然后使用执行器影响环境作为输入. 改变值. 在创建玩点数游戏的 AI 时,您可以使用此技术。
简单循环
Elman 神经网络和 Jordan 神经网络被称为简单循环网络 (SRN)。
Elman神经网络由三层和上下文单元组成,上下文单元以固定权值1连接到隐藏层。每次学习时,输入值都向前反馈,隐藏层有值存储在上下文单元中。因此,神经网络可以存储过去的状态,从而赋予它们比典型的多层感知器更好的预测能力。
Jordan神经网络与Elman神经网络类似,但不同的是,上下文单元从输出层而不是隐藏层接收值,在这种情况下,上下文单元称为状态层,也有其内部有一个循环网络。
LSTM
LSTM(longshort-termmemory)是一个为解决梯度损失问题而设计的深度学习系统,LSTM有一个额外的门,称为遗忘门,通过这个门,可以防止反向传播梯度值快速消失或增加的问题。这使得传统的 RNN 在算术上不可能从遥远的过去的事件中学习。这很快导致性能的显着提高。因此,许多具有类似于 LSTM 结构的神经网络已经发布。
建立LSTM后,用CTC(英文:Connectionist Temporal Classification)来训练这种神经网络,在实际研究领域中得到了广泛的应用,特别是在排序和识别方面,CTC带来了很好的效果,这是传统的隐马尔可夫模型(HMMs)无法做到的。 ). 事实证明,依赖于情境的语言学习是可能的。
GRU
GRU(Gated Recurrent Units)是2014年首次发明的一种结构。有时会以最初宣布的形式应用,但往往会进行简单修改。由于没有输出门,因此它的参数比LSTM少。尽管如此由于具有变量,它在复调学习或语音识别领域具有与 LSTM 相似的性能。
双向循环神经网络
双向循环神经网络是一种通过固定长度的数据序列学习接收值之前和之后的信息的算法。为此,需要一个 RNN 从左到右读取序列,需要一个 RNN 来读取序列。将这两者的输出值结合起来后,它通过与监督结果进行比较来学习。事实证明,与 LSTM 一起使用时,它的表现特别好。
循环神经网络的应用
编辑循环神经网络可应用于以下领域。
- 机器翻译
- 机器人控制
- 时间序列预测
- 语音识别
- 合成
- 时间序列错误检测
- 节奏学习
- 撰写
- 学习语法
- 手写识别
- 人类行为识别
- 发现蛋白质之间的同源性
- 蛋白质的细胞内排列分析
- 业务流程管理和预测
百科词条作者:小小编,如若转载,请注明出处:https://glopedia.cn/263027/