我理解的RNN和LSTM

参考:https://www.jianshu.com/p/9dc9f41f0b29 很良心的介绍LSTM
我之前接触的神经网络的输入都是一个列向量,表示一个样本,样本集中的样本之间没有关系,也就是说 xt1 x t − 1 xt x t 之间没有关系,是独立的。但如果我们处理的样本是有关系的,比如说
(1) 两个样本之间有时间关系,构成时间序列
(2) 根据电影前面的剧情预测后面的发展
(3) 常见的句子都是序列,比如,天空是蓝色的,每个字之间都是有序列关系存在的,而不是独立的。
这个时候我们显然不能和以前的处理方式一样,单独处理每一个样本,故出现了RNN(循环神经网络),所谓的循环 意思是说 会把上一个样本的隐层输出作为下一个样本的输入之一(下一个样本的输入包括 上一个样本的隐层输出和这一层的样本输入)

RNN结构图

按照时间维度展开
这里写图片描述

在这个图片中,可以看出 每一个隐层有两个输入(样本和上一个样本的隐层输出),有两个输出(输出该样本对应的结果和输出给下一个样本的隐层) 比普通的全连接的神经网络多了隐层的循环。
我们在实现这个神经网络的时候,只需要实现左边的样式(输入层、隐层(单个单元)、输出层),而不用实现展开的样式(右边的)。
**正是因为隐层输出的传递,故RNN允许信息的持久化。也就是这一个样本的输出结果会参照之前样本的信息**RNN 可以被看做是同一神经网络的多次复制,每个神经网络模块会把消息传递给下一个。

LSTM

相关的信息和预测的词位置之间的间隔是非常小的,RNN 可以学会使用先前的信息,但如果离得特别远,RNN就会发挥不好。这属于梯度消失(前面的层比后面的层梯度变化更小,故变化更慢,从而引起了梯度消失问题)现象。我觉得就是传播的太远了,权重本来就很小,乘来乘去越来越小。
Long Short Term 网络,简称LSTM,关键在于上图中A的实现。A为隐层,单隐层函数一般为一个非线性函数,比如tanh函数,
这里写图片描述
由图片中可见,该隐层(tanh函数)接受两个输入,分别为 xt x t (这一层的样本)和 h

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值