1 Star 0 Fork 2

天龙 / ml-mastery-zh

forked from OpenDocCN / ml-mastery-zh 
加入 Gitee
与超过 1200万 开发者一起发现、参与优秀开源项目,私有仓库也完全免费 :)
免费加入
克隆/下载
get-the-most-out-of-lstms.md 5.10 KB
一键复制 编辑 原始数据 按行查看 历史
布客飞龙 提交于 2021-12-15 23:18 . 2021-12-15 23:18:27

在序列预测问题上充分利用 LSTM

原文: https://machinelearningmastery.com/get-the-most-out-of-lstms/

长短期记忆(LSTM)循环神经网络是一种强大的深度学习类型,适用于序列预测问题。

使用 LSTM 时可能存在的一个问题是,模型增加的复杂性是否会提高模型的技能,或者实际上导致技能低于简单模型。

在这篇文章中,您将发现可以运行的简单实验,以确保您在序列预测问题上充分利用 LSTM。

阅读这篇文章后,你会知道:

  • 如何测试模型是否在输入数据中利用顺序依赖性。
  • 如何测试您的模型是否在 LSTM 模型中利用内存。
  • 如何在拟合模型时测试模型是否正在利用 BPTT。

让我们潜入。

Get the Most out of LSTMs on Your Sequence Prediction Problem

在你的序列预测问题上充分利用 LSTM DoD News 的照片,保留一些权利。

3 LSTMS 的能力

LSTM 循环神经网络具有一些关键功能,使该方法在广泛的序列预测问题上具有令人印象深刻的能力。

在不深入研究 LSTM 理论的情况下,我们可以总结一下我们可以在模型中配置的 LSTM 的一些离散行为:

  • 顺序依赖。序列预测问题需要观察之间的排序,而较简单的监督学习问题则不需要,并且该顺序可以在训练和预测之前随机化。通过随机化观察的顺序,可以将序列预测问题转换为更简单的形式。
  • 记忆。 LSTM 在输入序列中具有跨观察的内部存储器,而诸如多层感知机之类的简单神经网络则没有。通过在每次输入观察后重置内部状态,LSTM 可能会丢失此内存。
  • BPTT 。循环神经网络使用训练算法来估计输入序列的所有时间步长上的权重更新的方向,而其他类型的网络仅限于单个样本(在两种情况下不包括跨批次输入的平均)。 LSTM 可以通过处理一个长度的观察序列来忽略梯度估计中先前时间步的误差贡献。

这三种功能及其对更简单形式的可配置性为您可以执行的 3 个实验提供了基础,可以准确了解 LSTM 的哪些属性,并且可以利用序列预测问题。

你在利用秩序依赖吗?

序列预测问题的一个关键特征是观察之间存在顺序依赖性。

也就是说,观察的顺序很重要。

假设:预计观察顺序对于预测序列预测问题很重要。

您可以通过使用仅将先前观察作为输入并对训练和测试数据集进行混洗的模型来开发表现基线来检查该假设是否成立。

这可以通过多种方式实现。两个示例实现包括:

  • 具有改组训练和测试装置的多层感知机(MLP)。
  • LSTM 具有改组训练和测试集,每个样本后更新和状态重置(批量大小为 1)。

测试:如果顺序依赖对预测问题很重要,那么利用每个输入序列中的观察与输入序列之间的顺序的模型应该比没有预测问题的模型实现更好的表现。

你在利用 LSTM 内存吗?

LSTM 的一个关键功能是它们可以记住长输入序列。

也就是说,每个存储器单元保持内部状态,该内部状态可以被认为是在做出预测时使用的局部变量。

假设:模型的内部状态预计对模型技能很重要。

您可以通过使用从一个样本到下一个样本没有内存的模型开发表现基线来检查这种假设是否成立。

这可以通过在每次观察之后重置 LSTM 的内部状态来实现。

测试:如果内部存储器对预测问题很重要,那么在输入序列中具有跨越观察结果的存储器的模型应该比不存在的模型具有更好的表现。

你是否正在利用反向传播?

训练循环神经网络的关键是反向传播时间(BPTT)算法。

该算法允许从序列中的所有观察(或截断的 BPTT 的情况下的子集)估计权重更新的梯度。

假设:预计 BPTT 权重更新算法对于序列预测问题的模型技能很重要。

您可以通过开发表现基线来检查此假设是否成立,其中梯度估计基于单个时间步长。

这可以通过分割输入序列来实现,使得每个观察表示单个输入序列。这与调度重量更新和重置内部状态的时间无关。

测试:如果 BPTT 对预测问题很重要,那么估算多个时间步长的权重更新梯度的模型应该比使用单个时间步长的模型获得更好的表现。

摘要

在这篇文章中,您发现了 LSTM 的三个关键功能,这些功能为该技术提供了强大的功能,以及如何根据您自己的序列预测问题测试这些属性。

特别:

  • 如何测试模型是否在输入数据中利用顺序依赖性。
  • 如何测试您的模型是否在 LSTM 模型中利用内存。
  • 如何在拟合模型时测试模型是否正在利用 BPTT。

你有任何问题吗? 将您的问题发布到下面的评论中,我会尽力回答。

马建仓 AI 助手
尝试更多
代码解读
代码找茬
代码优化
1
https://gitee.com/zjl_666/ml-mastery-zh.git
git@gitee.com:zjl_666/ml-mastery-zh.git
zjl_666
ml-mastery-zh
ml-mastery-zh
master

搜索帮助

344bd9b3 5694891 D2dac590 5694891