LSTM 详解

Posted yjybupt

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了LSTM 详解相关的知识,希望对你有一定的参考价值。

1、定义:什么是LSTM?

首先,我们知道最基础的神经网络是【全连接神经网络】,keras里为,dense层。Dense就是常用的全连接层,所实现的运算是output = activation(dot(input, kernel)+bias)。其中activation是逐元素计算的激活函数,kernel是本层的权值矩阵,bias为偏置向量,只有当use_bias=True才会添加。

然后是 卷积神经网络。卷积神经网络主要用在图片上,将一张很大的图片提取出图片的特征,其中还涉及了padding。

 他们在处理【前一个输入】和【后一个输入】是完全没有关系的。但是,某些任务需要能够更好的处理序列的信息,即前面的输入和后面的输入是有关系的。比如,当我们在理解一句话意思时,孤立的理解这句话的每个词是不够的,我们需要处理这些词连接起来的整个序列;当我们处理视频的时候,我们也不能只单独的去分析每一帧,而要分析这些帧连接起来的整个序列。

这时,就需要用到深度学习领域中另一类非常重要神经网络:循环神经网络(Recurrent Neural Network)

 

但是传统的RNN有一个重大缺陷,就是在前向传播的过程当中会出现梯度消失的问题,梯度消失会导致一句话如果比较长,第一个字到后面的时候,都已经被忘记了。

所以引入了LSTM,LSTM相当于RNN的改进版。

 

 

【注意】一个LSTM单元,也就是一层LSTM,我们在图示中经常会根据T展开,但是他们其实是同一层LSTM。

keras中LSTM的参数:

units: 

以上是关于LSTM 详解的主要内容,如果未能解决你的问题,请参考以下文章

LSTM模型预测sin函数详解

Keras深度学习实战(29)——长短时记忆网络详解与实现

Keras深度学习实战(29)——长短时记忆网络详解与实现

[Pytorch系列-60]:循环神经网络 - 中文新闻文本分类详解-2-LSTM网络训练与评估代码详解

Pytorch Bi-LSTM + CRF 代码详解

[Pytorch系列-53]:循环神经网络 - torch.nn.LSTM()参数详解