循环神经网络RNN和LSTM模型概述

一、RNN模型结构如图

1)x(t)代表在序列索引号tt时训练样本的输入。同样的,x(t−1)和x(t+1)代表在序列索引号t−1和t+1时训练样本的输入。

2)h(t)代表在序列索引号tt时模型的隐藏状态。h(t)由x(t)和h(t−1)共同决定。

3)o(t)代表在序列索引号tt时模型的输出。o(t)只由模型当前的隐藏状态h(t)决定。

4)L(t)代表在序列索引号tt时模型的损失函数。 注意指向L的方向,L是损失函数,所以两边都是指向L的

5)y(t)代表在序列索引号tt时训练样本序列的真实输出。

6)U,W,V这三个矩阵是我们的模型的线性关系参数,它在整个RNN网络中是共享的,

7)b和c分别是隐藏层和输出层的偏置。δ是激活函数

这里的激活函数δ通常选择tanh()

预测值 

这里所有的U,W,V,b,c在序列的各个位置是共享的,所以反向传播时我们更新的是相同的参数,可以利用梯度下降法不断更新参数

当然,这里所说的参数共享是指对于每一个神经元的参数。对于不同的神经元的参数,之间是相互独立的。

 

可以看出在整个过程中只有隐藏层状态h在不断的从前向后传,不断的继承前面的信息。

那么,由于在不断循环的过程中,隐藏状态h会不断的和参数矩阵W相乘,那就必然会面临梯度消失和梯度爆炸的问题。梯度消失很容易理解,可以看做是越早的信息对当前的贡献越小。所以RNN无法记住很多信息。特别是时间距离较远的信息。

 

二、为了解决梯度消失的问题,大佬们改进了RNN设计了LSTM模型结构

原始RNN模型结构是这丫子:

忽略掉上面的O,L,y,这两张图是不是一样?是的。激活函数选择tanh()

改进之后的模型:

这里的关键区别就在于:引入了遗忘门,输入门,输出门和细胞状态。

还记得前面所说,RNN是不断传递隐藏层状态h,只是简单的乘上参数矩阵W,并没有进行选择。

所以这里的特点就在于,选择是否遗忘掉上一个时刻的隐藏层状态。

LSTM详细流程:LSTM和BILSTM介绍

 

总结;CNN RNN    LSTM

CNN结构详解

CNN:输入是静态的,不随着时间而改变。用的方法是卷积。模型结构特点是:输入层---若干个(卷积层-激活函数---池化层)---全连接层-激活函数

RNN:输入是时间连续的,方法是矩阵相乘。结构特点是不断循环传递上一时刻的隐藏层状态。模型结构:输入层---隐藏层---输出层。用损失函数L不断迭代更新参数。时间距离越远的信息,对当前时刻的贡献越小。
LSTM:在RNN结构上做了改进,能够选择是否遗忘掉上一个时刻的隐藏层状态。能够避免梯度消失,能够更好地利用之前的信息。

 

参考:

循环神经网络(RNN)模型与前向反向传播算法

LSTM模型与前向反向传播算法

 

 

 

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值