循环神经网络--RNN GRU LSTM 对比分析

一.全连接层、CNN、RNN三种网络结构的分析

  • 对于全连接网络:理论上全连接网络可以处理所有的问题,但是对于有些问题,全连接网络的效率非常差,所以对于一些特定的问题要使用更加有效的网络结构。
  • 对于图片这样的2维信息处理,毫无疑问CNN会更有优势。
  • 对于有着明显的前后关系的序列数据,比如说随着时间变化的数据,当使用RNN对其进行处理的时候,也会有着巨大的优势。

1.CNN应用举例

在这里插入图片描述
现实生活中这样的数据和应用比比皆是:

  • 说话时的语音处理,可以用序列模型进行语音识别

  • 听的音乐,可以用序列模型进行音乐生成

  • 我们的语言信息,可以用序列模型进行机器翻译、情感分析等等

  • 还有感兴趣的金融市场波动,可以用序列模型进行预测

  • 当然此外还有诸如DNA序列,视频动作识别等等

二.循环神经网络–RNN

1.首先来看看,为什么普通的全连接网络并不适用于序列数据处理。

  • 第一,如果使用全连接网络,那么输入输出的长度就被固定了,而往往序列数据的输入和输出长度是变化的
  • 在学习序列关系的时候,RNN可以分享学到的关系特征,节省参数,而全连接网络不行。这里有点像CNN在不同的区域共享参数一样。

2.来看看RNN到底是什么样子

首先假设输入是长度为t的序列x,(就比如说是一个句子x有t个单词)。
于是对于RNN单元,我们从左到右每次输入一个时序单位的数据 x t x_t xt,也就是一个单词。
那么RNN会对它进行一些运算,获得一个隐藏状态 s t s_t st h t h_t ht),传往下一个时序,同时再根据 s t s_t st(短期记忆,会不断的更新(擦除和重写))计算出 o t o_t ot(这里要是经过一个线性处理的话就叫做 0 t 0_t 0t,要是不经过线性处理也可以直接作为输出,那样的话就直接是 s t s_t st了)。(对于Simple RNN,来说没有长期的记忆)
s t = f ( W s s s t − 1 + W s x x t + b s ) s_{t}=f \left(W_{ss} s_{t-1}+W_{sx} x_{t} + b_s\right) st=f(Wssst1+Wsxxt+bs)
y ^ t = f ( W s y s t + b y ) \widehat{y}_{t}=f\left(W_{s y} s_{t}+b_{y}\right) y t=f(Wsyst+by)
式子中w是权重矩阵,f是一个非线性激活函数。因此对于每一个时序,RNN都是输入当前时序的的 x t x_t xt,和来自之前时序的状态 s t − 1 s_{t-1} st1 x t x_t xt可以理解为当前的信息,而 s t − 1 s_{t-1} st1可以理解为对之前信息的总结。

循环网络之所以称之为循环,是因为实际上一个单层的RNN网络只有一个单元,每次输入一个时序的数据,总结信息然后再传给自己,进入下一个时序。

在这里插入图片描述一般RNN的表示方式有两种,一种是像上图左端一样,一个单元加一个循环的符号,便于理解RNN的原理;还有一种是,把它展开,将不同时序的运算过程都表示出来,便于理解RNN的运算过程

3.RNN的不同的架构

为了处理有着不同输入输出组合的各类任务,RNN可以分为以下几种不同的架构。
以下图中所有的 a < ? > a^{<?>} a<?>均为 s ? s_? s?

  • 一对一:
    其实就是普通的神经网络。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值