RNN循环神经网络

1.前言

CNN已经取得巨大成功,为什么需要RNN?

CNN只能单独的取处理一个个的输入,前一个输入和后一个输入是完全没有关系的。但是,某些任务需要能够更好的处理前后有关的序列的信息,即前面的输入和后面的输入是有关系的。

序列数据建模

  • 文本:是字母和词汇的序列
  • 语音:是音节的序列
  • 视频:图像帧的序列
  • 时态数据:气象观测数据,股票交易数据、房价数据等

例子:词性标注

  • 我/n,爱/v 购物/n,
  • 我/n在/pre某宝/n购物/v

如果直接用普通的神经网络来做,给网络的训练数据格式了就是我->我/nn,这样的多个单独的单词->词性标注好的单词。

但是很明显,一个句子中,前一个单词其实对于当前单词的词性预测是有很大影响的,比如预测购物的时候,由于前面的爱是一个动词,那么很显然购物作为名词的概率就会远大于动词的概率,因为动词后面接名词很常见,而动词后面接动词很少见。

所以为能够更好的处理序列的信息,RNN就出现了。

2. RNN

循环神经网络的定义

循环神经网络是一种人工神经网络,它的节点间的连接形成一个遵循时间序列的有向图。

核心思想

样本间存在顺序关系,每个样本和它之前的样本存在关联。通过神经网络在时序上的展开,我们能够找到样本之间的序列相关性

RNN结构

在这里插入图片描述

x是一个向量,它表示输入层的值(这里面没有画出来表示神经元节点的圆圈);s是一个向量,它表示隐藏层的值(这里隐藏层面画了一个节点,你也可以想象这一层其实是多个节点,节点数与向量s的维度相同);

U是输入层到隐藏层的权重矩阵,o也是一个向量,它表示输出层的值;V是隐藏层到输出层的权重矩阵。

那么,现在我们来看看W是什么。循环神经网络的隐藏层的值s不仅仅取决于当前这次的输入x,还取决于上一次隐藏层的值s。权重矩阵W就是隐藏层上一次的值作为这一次的输入的权重。

在这里插入图片描述

我们从上图就能够很清楚的看到,上一时刻的隐藏层是如何影响当前时刻的隐藏层的。现在看上去就比较清楚了,这个网络在t时刻接收到输入 Xt之后,隐藏层的值是 St ,输出值是 Ot。关键一点是, St的值不仅仅取决于 Xt ,还取决于 St-1 。

在这里插入图片描述

3.LSTM

RNN的梯度消失问题

不能有效解决长时依赖问题(由梯度消失引起的)

梯度消失的原因

  • BPTT算法
  • 激活函数Tanh

解决方案

  • ReLU函数
  • 门控RNN(LSTM)

LSTM组成

  • a cell
  • an input gate
  • an output gate
  • a forget gate

基本结构

LSTM依靠贯穿隐藏层的细胞状态实现隐藏单元之间的信息传递,其中只有少量的线性操作

LSTM引入了“门”机制对细胞状态信息进行添加或删除,由此实现长程记忆

“门”机制由一个Sigmoid激活函数层和一个向量点乘操作组成,Sigmoid层的输出控制了信息传递的比例

在这里插入图片描述

遗忘门

LSTM通过遗忘门(forget gate)实现对细胞状态信息遗忘程度的控制,输出当前状态的遗忘权重,取决于$h_{t-1}$$x_t$

在这里插入图片描述

输入门

LSTM通过输入门(input gate)实现对细胞状态输入接收程度的控制,输出当前输入信息的接受权重,取决于$h_{t-1}$$x_t$

在这里插入图片描述

输出门

LSTM通过输出门(output gate)实现对细胞状态输出认可程度的控制,输出当前输出信息的认可权重,取决于$h_{t-1}$$x_t$

在这里插入图片描述

状态更新

在这里插入图片描述

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值