LSTM(Long Short Term Memory)

Posted ylhe

tags:

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

长时依赖是这样的一个问题,当预测点与依赖的相关信息距离比较远的时候,就难以学到该相关信息。例如在句子”我出生在法国,……,我会说法语“中,若要预测末尾”法语“,我们需要用到上下文”法国“。理论上,递归神经网络是可以处理这样的问题的,但是实际上,常规的递归神经网络并不能很好地解决长时依赖,好的是LSTMs可以很好地解决这个问题。

 

原理不再介绍。

 

LSTM输入层:

LSTM输入层是由神经网络第一个隐藏层上的“ input_shape ”参数指定的。

每个LSTM层的输入必须是三维的。这输入的三个维度是:

样品。一个序列是一个样本。批次由一个或多个样本组成。

时间步。一个时间步代表样本中的一个观察点。

特征。一个特征是在一个时间步长的观察得到的。

这意味着输入层在拟合模型时以及在做出预测时,对数据的要求必须是3D数组,即使数组的特定维度仅包含单个值。

下面的模型定义了包含一个或多个样本,50个时间步长和2个特征的输入层。

model = Sequential()
model.add(LSTM(32, input_shape=(50, 2)))
model.add(Dense(1))

 

LSTM输入提示

接下来我列出了在为LSTM准备输入数据时可以帮助你的一些提示。

1.LSTM输入层必须是3D。

2.3个输入尺寸的含义是:样本,时间步长和特征。

3.LSTM输入层由第一个隐藏层上的input_shape参数定义。

4.所述input_shape参数是限定的时间的步骤和特征数量的两个值的元组。

5.样本数默认假定为大于1。

6.NumPy数组中的reshape()函数可用于将你的1D或2D数据重塑为3D。

7.reshape()函数会将一个元组作为新定义的形状的参数。

 

进一步阅读

如果你进一步了解,本部分将提供有关该主题的更多资源。

Recurrent Layers Keras API

Numpy reshape()函数API

如何将时间序列转换为Python中的监督学习问题

 

时间序列预测作为监督学习

 

以上是关于LSTM(Long Short Term Memory)的主要内容,如果未能解决你的问题,请参考以下文章

PyTorch笔记 - LSTM(Long Short-Term Memory) 和 LSTMP(Projection)

PyTorch笔记 - LSTM(Long Short Term Memory) 和 LSTMP(Projection) 网络结构

PyTorch笔记 - LSTM(Long Short Term Memory) 和 LSTMP(Projection) 网络结构

NLP 的LSTM长短期记忆 5 NLP 零到英雄 Long Short-Term Memory for NLP

Stanford NLP 第六课: Long Short Term Memory

RNN,LSTM,SRNN,Long Short-Term Memory as a Dynamically Computed Element-wise Weighted Sum