RNN与LSTM原理

下面只是我个人的理解,最近在做关于LSTM的项目,看看还能不能理解的更深入,之后还会根据项目进行更新。如果有错误还请多多指教

1. 传统神经网络

介绍递归神经网络之前我们可以先看一下传统神经网络

传统神经网络所作的这一系列的组合是对一个数据一个数据进行操作的。假设我们有100个图像数据,第一个图像被

opencv后,来到这里做一系列操作,第二个图像数据也是如此,后面以此类推。我们发现第一次输入的图像数据并不

会对第二次输入的数据造成影响,每次输入的数据都是独立地去组合参数,参数更新之间互不影响。

但在实际任务中,每个数据之间是有关系的,我们希望这个网络不仅仅是把每个数据走一遍,它还可以考虑之前的信息,

把数据之间的联系突出出来。这时候RNN(递归神经网络)派上用场了,它可以把前一层的信息利用上去。

2.RNN

input层与W1组合后得到一个中间的信息(特征)——当前输入。那么之后的输入要把前面的信息利用上,所以要指定一个W2,

W2是对中间信息的保留,在下次流程就可以利用上了。——即下一次输入时会结合保留的特征一起作为总特征。

展开来看我们发现网络有两个输入,一个是上层保留的信息,一个是当前输入输出也有两个,一个作为下次的输入信息,另一个

可以直接输出为结果,不过我们一般都是把最后一个输出作为结果。

 

这样一看感觉RNN很厉害,可以把之前的所有信息全部记住。但是这只是从理论上来看,实际上它并记不了那么多信息。和传统

神经网络一样,它也要反向传播优化参数,反向传播就是梯度累乘,这累乘容易出事啊,随着梯度变小,这可是越乘越小,最后发生

梯度消失现象,那么参数就无法继续更新,也就是再往后得到的梯度对整个梯度值几乎没有影响。比如说当前时刻为t,在t-4时刻发

生梯度消失,那么t-4之前也就是t-5,t-6。。。这些状态都被忽略掉了,也就是说RNN根本没有及那么多信息。这个时候我们的LSTM

(长短时记忆网络)登场了。

3.LSTM

LSTM可以说是RNN的升级版本。

RNN只有一个状态,也就是保存短期的状态(原因就是梯度消失),LSTM有两个状态,一个是保存短期的状态,另一个是cell state,

这两个组合在一起就是保存长期的状态

这两个都是LSTM的结构图,我个人是看了下面的那幅结构图才明白了C很多

我们先来看LSTM结构里都有哪些东西

1. 激活函数

我们先理解激活函数,在整个网路结构里有两种激活函数,一个是sigmoid,一个是tanh。sigmoid函数是把信息压缩为0到1之间的数,

这样就可以对输入的信息进行筛选,表示门被打开的程度。tanh函数是把得到的信息进行压缩处理,起到稳定数值的作用,把值压缩在

-1到1之间,仅此而已。

2. f,it   是过滤器           Ct-1 ~c,C 是长期信息,是记忆              ht-1 , ht  是短期信息

Ct-1 * ft   决定了过去记忆Ct-1有多少保留到当前记忆时刻C——遗忘门——更新后的过去记忆

~c* i  决定了当前时刻网络输入Xt 有多少保留到C——输入门——更新后的当前记忆

LSTM就是在不断地更新cell state,不断地更新记忆

原文地址:https://www.cnblogs.com/lookfor404/p/9245856.html

时间: 2024-10-20 04:42:17

RNN与LSTM原理的相关文章

3. RNN神经网络-LSTM模型结构

1. RNN神经网络模型原理 2. RNN神经网络模型的不同结构 3. RNN神经网络-LSTM模型结构 1. 前言 之前我们对RNN模型做了总结.由于RNN也有梯度消失的问题,因此很难处理长序列的数据,大牛们对RNN做了改进,得到了RNN的特例LSTM(Long Short-Term Memory),它可以避免常规RNN的梯度消失,因此在工业界得到了广泛的应用.下面我们就对LSTM模型做一个总结. 2. LSTM模型结构 我们先看下LSTM的整体结构. 由于RNN梯度消失的问题,大牛们对于序列

浅谈RNN、LSTM + Kreas实现及应用

本文主要针对RNN与LSTM的结构及其原理进行详细的介绍,了解什么是RNN,RNN的1对N.N对1的结构,什么是LSTM,以及LSTM中的三门(input.ouput.forget),后续将利用深度学习框架Kreas,结合案例对LSTM进行进一步的介绍. 一.RNN的原理 RNN(Recurrent Neural Networks),即全称循环神经网络,它是一种对序列型的数据进行建模的深度模型.如图1.1所示. 图1.1 1.其中为序列数据.即神经网络的输入,例如nlp中,X1可以看作第一个单词

深度学习:浅谈RNN、LSTM+Kreas实现与应用

主要针对RNN与LSTM的结构及其原理进行详细的介绍,了解什么是RNN,RNN的1对N.N对1的结构,什么是LSTM,以及LSTM中的三门(input.ouput.forget),后续将利用深度学习框架Kreas,结合案例对LSTM进行进一步的介绍. 一.RNN的原理 RNN(Recurrent Neural Networks),即全称循环神经网络,它是一种对序列型的数据进行建模的深度模型.如图1.1所示. 图1.1 1.其中 为序列数据.即神经网络的输入,例如nlp中,X1可以看作第一个单词.

深度学习与自然语言处理之五:从RNN到LSTM

/* 版权声明:可以任意转载,转载时请标明文章原始出处和作者信息 .*/ author: 张俊林 大纲如下: 1.RNN 2.LSTM 3.GRN 4.Attention Model 5.应用 6.探讨与思考 扫一扫关注微信号:"布洛卡区" ,深度学习在自然语言处理等智能应用的技术研讨与科普公众号.

RNN and LSTM saliency Predection Scene Label

http://handong1587.github.io/deep_learning/2015/10/09/rnn-and-lstm.html  //RNN and LSTM http://handong1587.github.io/deep_learning/2015/10/09/saliency-prediction.html //saliency Predection http://handong1587.github.io/deep_learning/2015/10/09/scene-l

深度学习之六,基于RNN(GRU,LSTM)的语言模型分析与theano代码实现

引言 前面已经介绍过RNN的基本结构,最基本的RNN在传统的BP神经网络上,增加了时序信息,也使得神经网络不再局限于固定维度的输入和输出这个束缚,但是从RNN的BPTT推导过程中,可以看到,传统RNN在求解梯度的过程中对long-term会产生梯度消失或者梯度爆炸的现象,这个在这篇文章中已经介绍了原因,对于此,在1997年 的Grave大作[1]中提出了新的新的RNN结构:Long Short Term Dependency.LSTM在传统RNN的基础上加了许多的"门",如input

转:深度学习与自然语言处理之五:从RNN到LSTM

原文地址:http://blog.csdn.net/malefactor/article/details/50436735/ 大纲如下: 1.RNN 2.LSTM 3.GRN 4.Attention Model 5.应用 6.探讨与思考

RNN 与 LSTM 的应用

之前已经介绍过关于 Recurrent Neural Nnetwork 与 Long Short-Trem Memory 的网络结构与参数求解算法( 递归神经网络(Recurrent Neural Networks,RNN) ,LSTM网络(Long Short-Term Memory )),本文将列举一些 RNN 与 LSTM 的应用, RNN (LSTM)的样本可以是如下形式的:1)输入输出均为序列:2)输入为序列,输出为样本标签:3)输入单个样本,输出为序列.本文将列举一些 RNN(LST

RNN和LSTM

一.RNN 全称为Recurrent Neural Network,意为循环神经网络,用于处理序列数据. 序列数据是指在不同时间点上收集到的数据,反映了某一事物.现象等随时间的变化状态或程度.即数据之间有联系. RNN的特点:1,,层间神经元也有连接(主要为隐层):2,共享参数 其结构如上图所示,数据为顺序处理,在处理长序列数据时,极易导致梯度消失问题. 二.LSTM LSTM为长短期记忆,是一种变种的RNN,在RNN的基础上引入了细胞状态,根据细胞状态可决定哪些状态应该保留下来,哪些状态应该被