深度分析RNN的模型结构,优缺点以及RNN模型的几种应用

神经网络是深度学习的载体,而神经网络模型中,最经典非rnn模型所属,尽管它不完美,但它具有学习历史信息的能力。后面不管是encode-decode 框架,还是注意力模型,以及自注意力模型,以及更加强大的bert模型家族,都是站在rnn的肩上,不断演化、变强的。
这篇文章,阐述了rnn的方方面面,包括模型结构,优缺点,rnn模型的几种应用,rnn常使用的激活函数,rnn的缺陷,以及gru,lstm是如何试图解决这些问题,rnn变体等。
这篇文章最大特点是图解版本,其次语言简练,总结全面。
概述
传统rnn的体系结构。recurrent neural networks,也称为rnns,是一类允许先前的输出用作输入,同时具有隐藏状态的神经网络。它们通常如下所示:
对于每一时步 , 激活函数   ,输出 被表达为:
这里是时间维度网络的共享权重系数
是激活函数
下表总结了典型rnn架构的优缺点:
处理任意长度的输入 计算速度慢
模型形状不随输入长度增加 难以获取很久以前的信息
计算考虑了历史信息 无法考虑当前状态的任何未来输入
权重随时间共享  
优点 缺点
rnns应用
rnn模型主要应用于自然语言处理和语音识别领域。下表总结了不同的应用:
一对一
传统神经网络
一对多
音乐生成
多对一
机器翻译
rnn 类型图解例子
对于rnn网络,所有时间步的损失函数 是根据每个时间步的损失定义的,如下所示:损失函数
时间反向传播
在每个时间点进行反向传播。在时间步,损失相对于权重矩阵的偏导数表示如下:
处理长短依赖
常用激活函数
rnn模块中最常用的激活函数描述如下:
5
sigmoidtanhrelu
梯度消失/爆炸
在rnn中经常遇到梯度消失和爆炸现象。之所以会发生这种情况,是因为很难捕捉到长期的依赖关系,因为乘法梯度可以随着层的数量呈指数递减/递增。
梯度修剪
梯度修剪是一种技术,用于执行反向传播时,有时遇到的梯度爆炸问题。通过限制梯度的最大值,这种现象在实践中得以控制。
门的类型
为了解决消失梯度问题,在某些类型的rnn中使用特定的门,并且通常有明确的目的。它们通常标注为,等于:
其中,是特定于门的系数,是sigmoid函数。主要内容总结如下表:
gated recurrent unit(gru)和长-短期记忆单元(lstm)处理传统rnns遇到的消失梯度问题,lstm是gru的推广。下表总结了每种结构的特征方程:gru/lstm
注:符号表示两个向量之间按元素相乘。
rnn的变体
下表总结了其他常用的rnn模型:
bidirectional (brnn)deep (drnn)


航天知识科普
中芯国际全面停止DRAM生产
说说四季沐歌阳台壁挂太阳能如何征服年轻人!
共模电感的漏感怎么测量
腾讯发布的专利涉及量子计算领域
深度分析RNN的模型结构,优缺点以及RNN模型的几种应用
导热硅脂解决电脑CPU散热问题
阻碍LED产业的健康发展的原因是什么?
PCB设计布局规则及技巧
集成电流感测的优点是怎样的
谷歌开发出癌症检测算法 AI监测准确率达到99%
线路板与油气板块的互利共赢关系:线路板如何适应和推动油气行业的发展和创新
首个自动驾驶低速无人车团体标准已正式发布
I2C总线介绍 I2C读写时序介绍
7步设计完美PCB
新宙邦发布2020年第一季度业绩预告 预计盈利比上年同期增长40%至60%
美高森美精确时间协议客户端容量增加到四倍
锂电负极材料募投项目投资资金及经济指标对比
小米方盒子音箱2怎么样?支持蓝牙吗
长时间佩戴耳机有什么危害?科学佩戴耳机远离耳类疾病