循环神经网络(RNN)

简介

在全神经网络中,我们输入固定大小的vector,输出固定大小的vector。在卷积神经网络中,我们输入固定大小的矩阵,输出固定大小的vector。但是现实生活中,还有非常的的东西是非固定大小的,比如视频,语音,连续文本等等。循环神经网络(RNN)便是一种对序列数据非常有效的时间序列模型。他对于挖掘数据中的时序信息以及语义信息都十分有效。

比如之前关于中文语义的一个笑话:

领导:你这是什么意思?

小明:没什么意思。意思意思。

领导:你这就不够意思了。

小明:小意思,小意思。

领导:你这人真有意思。

小明:其实也没有别的意思。

领导:那我就不好意思了。

小明:是我不好意思。

如果有一个任务是要给“意思”打语义标签。对于全连接神经网络中,所有意思的输入都一致,但语料库中确有不同的标签。所以最后被分为哪一个标签,全看训练集中哪个多一点。他没有用到上下文的信息,但是正常语境中,每个词的意思大多都跟上下文有关系,这是全连接神经网络模型所不能做到的,于是就需要用到RNN。

RNN结构原理

 

相对于全连接神经网络,rnn会把上一个时刻的隐藏层权重存储,并且提供信息给下一个时刻的隐藏层。

即一个RNN的输入包括了两个:一个是前时刻输入xt,用于实时更新状态,另一个是上一时刻隐藏层的状态ht-1,用于记忆状态,而不同时刻的网络共用的是同一套参数每一时刻的输出结果都与上一时刻的输入有着非常大的关系,如果我们将输入序列换个顺序,那么我们得到的结果也将是截然不同,这就是RNN的特性,可以处理序列数据,同时对序列也很敏感。

普通卷积神经网络的优化使用的是反向传播,那么RNN使用的是什么呢?最常见的还是反向传播,不过是带时序的版本,即BPFT(backpropagation through time),它与BP的原理是完全一样的,只不过计算过程与时间有关。

与普通的反向传播算法一样,它重复地使用链式法则,区别在于损失函数不仅依赖于当前时刻的输出层,也依赖于下一时刻。所以参数W在更新梯度时,必须考虑当前时刻的梯度和下一时刻的梯度。

连乘一直带来了两个问题:梯度爆炸和消失。而且,在前向过程中,开始时刻的输入对后面时刻的影响越来越小,这就是长距离依赖问题。这样一来,就失去了“记忆”的能力,要知道生物的神经元拥有对过去时序状态很强的记忆能力。

长短期记忆(Long short-term memory, LSTM)

为了解决梯度爆炸和消失的问题,便有了LSTM。RNN每个时刻都会把隐藏层的值存下来,到下一时刻的时候再拿出来用,这样就保证每一时刻含有上一时刻的信息,我们把存每一时刻信息的地方叫做Memory Cell。

对比rnn简单的信息传递,LSTM添加了三个门来控制信息传递。

  1. Input Gate:输入门,在每一时刻从输入层输入的信息会首先经过输入门,输入门的开关会决定这一时刻是否会有信息输入到Memory Cell。
  2. Output Gate:输出门,每一时刻是否有信息从Memory Cell输出取决于这一道门。
  3. Forget Gate:遗忘门,每一时刻Memory Cell里的值都会经历一个是否被遗忘的过程,就是由该门控制的,要注意的是,遗忘门打开是不被遗忘,关闭是遗忘信息。

按照上图的顺序,信息在传递的顺序,是这样的:

先经过输入门,判定这一时刻信息是否输入到记忆里,再经过遗忘门,判断是否清空Memory Cell,最后再经过输出门,判断是否记忆信息应用到输出。

一般都是使用sigmod函数作为门的激活函数。它的范围是0-1之间。输出靠近0代表关闭,靠近1代表打开。

对于全连接层中的激活函数,一半则使用tanh。

 以上就是LSTM的基本原理,它通过门控状态来对信息进行选择性的记忆,满足了需要长时间记忆信息和遗忘信息的需求。

当然,随之而来的就是大量的参数,因此后续就有了GRU。另外,刚刚说的RNN和LSTM都是单向的,相当于只利用了上文信息。对于利用上下文信息,还有双向的RNN和LSTM系统。

时序模型在语音,视频以及自然语言处理等领域有不可替代的作用,RNN与LSTM相比普通的CNN,模型的复杂度和训练难度都增加了不少,相对的在具体问题上的性能表现也是十分优秀的。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值