机器学习——循环神经网络(RNN)

一、概述

循环神经网络(Recurrent Neural Network, RNN)一般是指时间递归神经网络而非结构递归神经网络 (Recursive Neural Network),其主要用于对序列数据进行建模。

RNN之所以称为循环神经网路,即一个序列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应用于当前输出的计算中,即隐藏层之间的节点不再无连接而是有连接的,并且隐藏层的输入不仅包括输入层的输出还包括上一时刻隐藏层的输出。理论上,RNN能够对任何长度的序列数据进行处理。但是在实践中,为了降低复杂性往往假设当前的状态只与前面的几个状态相关。

2. 与传统神经网络的区别

传统神经网络(包括CNN),输入和输出都是互相独立的。如图像上的猫和狗是分隔开的,但有些任务,后续的输出和之前的内容是相关的。例如:我是中国人,我的母语是____。这是一道填空题,需要依赖之前的输入。

RNN引入“记忆”的概念,也就是输出需要依赖之前的输入序列,并把关键输入记住。循环2字来源于其每个元素都执行相同的任务。它并⾮刚性地记忆所有固定长度的序列,而是通过隐藏状态来存储之前时间步的信息。

RNN跟传统神经网络最大的区别在于每次都会将前一次的输出结果,带到下一次的隐藏层中,一起训练。如下图所示:

机器学习——循环神经网络(RNN)

RNN运行原理

三、基本原则

基本循环神经网络结构:一层输入层,一层隐藏层,一层输出层。

机器学习——循环神经网络(RNN)

循环网络结构图

x是输入层的值。s表示隐藏层的值,U是输入层到隐藏层的权重矩阵,O是输出层的值。V是隐藏层到输出层的权重矩阵。循环神经网络的隐藏层的值s不仅仅取决于当前这次的输入x,还取决于上一次隐藏层的值s。权重矩阵W就是隐藏层上一次的值作为这一次的输入的权重。

四、RNN的多种结构

RNN有五种结构。机器学习——循环神经网络(RNN)

RNN的五种结构

(1)one to one:

机器学习——循环神经网络(RNN)

最基本的单层网络,输入是x,经过变换Wx+b和激活函数f得到输出y。

(2)one to n:

机器学习——循环神经网络(RNN)

(3) n to n:

机器学习——循环神经网络(RNN)

(4) n to one:

机器学习——循环神经网络(RNN)

(5) n to m:

机器学习——循环神经网络(RNN)

五、应用领域

RNN常见应用有:

  1. 机器翻译:在不同语言中寻找具有相同含义序列的表达方式。
  2. 诗歌生成:基于一个话题,按照一定的规则输出一个逻辑的词序列。
  3. 生成图片描述:改变两端的信息类型,输入图片,输出句子。
  4. 语音识别、语音生成:按时间顺序排列的声音信号序列。
  5. 库存预测等

6、缺陷

(1)RNN是一种死板的逻辑,越晚的输入影响越大,越早的输入影响越小,且无法改变这个逻辑。短期的记忆影响较大,但是长期的记忆影响就很小,这就是RNN存在的短期记忆问题,无法处理很长的输入序列。

(2)训练RNN需要投入极大的成本。

由于RNN的短期记忆问题,后来又出现了基于RNN的优化算法—LSTM。

文章出处登录后可见!

已经登录?立即刷新

共计人评分,平均

到目前为止还没有投票!成为第一位评论此文章。

(0)
青葱年少的头像青葱年少普通用户
上一篇 2022年3月17日
下一篇 2022年3月18日

相关推荐