原文: https://machinelearningmastery.com/long-short-term-memory-recurrent-neural-networks-mini-course/
长期短期记忆(LSTM)复现神经网络是目前最有趣的深度学习类型之一。
它们被用于展示复杂问题领域的世界级结果,例如语言翻译,自动图像字幕和文本生成。
LSTM 与多层感知机和卷积神经网络的不同之处在于它们专门用于序列预测问题。
在这个迷你课程中,您将了解如何快速将 LSTM 模型用于您自己的序列预测问题。
完成这个迷你课程后,您将知道:
- LSTM 是什么,如何训练,以及如何准备训练 LSTM 模型的数据。
- 如何开发一套 LSTM 模型,包括堆叠,双向和编解码器模型。
- 如何通过超参数优化,更新和最终模型来充分利用模型。
让我们开始吧。
注:这是一个很大的指南;你可能想要为它添加书签。
具有 Keras 的长期短期记忆循环神经网络的迷你课程 照片由 Nicholas A. Tonelli ,保留一些权利。
在我们开始之前,让我们确保您在正确的位置。
本课程适用于了解一些应用机器学习并且需要快速掌握 LSTM 的开发人员。
也许您想要或需要在项目中开始使用 LSTM。本指南旨在帮助您快速有效地完成此任务。
- 你了解 Python 的方法。
- 你知道你在 SciPy 周围的方式。
- 您知道如何在工作站上安装软件。
- 你知道如何纠缠自己的数据。
- 您知道如何使用机器学习来解决预测性建模问题。
- 你可能知道一点点深度学习。
- 你可能知道一点 Keras。
您知道如何设置工作站以使用 Keras 和 scikit-learn;如果没有,你可以在这里学习如何:
本指南采用自上而下和结果优先的机器学习风格,您已经习惯了。它将教你如何获得结果,但它不是灵丹妙药。
您将通过本指南开发有用的技能。
完成本课程后,您将:
- 了解 LSTM 的工作原理。
- 知道如何为 LSTM 准备数据。
- 知道如何应用一系列类型的 LSTM。
- 知道如何将 LSTM 调整为问题。
- 知道如何保存 LSTM 模型并使用它来做出预测。
接下来,让我们回顾一下课程。
这个迷你课程分为 14 节课。
您可以每天完成一节课(推荐)或在一天内完成所有课程(硬核!)。
这取决于你有空的时间和你的热情程度。
以下是 14 个课程,可以帮助您开始使用 Python 中的 LSTM 并提高工作效率。课程分为三个主题:基础,模型和高级。
LSTM 迷你课程概述
这些课程的重点是在使用 LSTM 之前需要了解的事项。
- 第 01 课:什么是 LSTM?
- 第 02 课:如何训练 LSTM
- 第 03 课:如何为 LSTM 准备数据
- 第 04 课:如何在 Keras 开发 LSTM
- 第 05 课:如何开发香草 LSTMs
- 第 06 课:如何开发栈式 LSTM
- 第 07 课:如何开发 CNN LSTM
- 第 08 课:如何开发编解码器 LSTM
- 第 09 课:如何开发双向 LSTM
- 第 10 课:如何开发注意力的 LSTM
- 第 11 课:如何开发生成 LSTM
- 第 12 课:如何调整 LSTM 超参数
- 第 13 课:如何更新 LSTM 模型
- 第 14 课:如何使用 LSTM 做出预测
每节课可能需要 60 秒或 60 分钟。花点时间,按照自己的进度完成课程。提出问题,甚至在下面的评论中发布结果。
课程期望你去学习如何做事。我会给你提示,但每节课的部分内容是强迫你去哪里寻求帮助(提示,我在这个博客上有所有的答案;使用搜索)。
我确实在早期课程中提供了更多帮助,因为我希望你建立一些自信和惯性。
挂在那里;不要放弃!
本节中的课程旨在让您了解 LSTM 的工作原理以及如何使用 Keras 库实现 LSTM 模型。
本课程的目标是充分理解高级 LSTM,以便您可以向同事或经理解释它们是什么以及它们如何工作。
- 什么是序列预测?一些例子是什么?
- 传统神经网络对序列预测有哪些局限性?
- RNN 对序列预测的承诺是什么?
- 什么是 LSTM 及其组成部分是什么?
- LSTM 有哪些突出的应用?
- 深度学习的循环神经网络速成课
- 循环神经网络序列预测模型的简要介绍
- 循环神经网络对时间序列预测的承诺
- 关于长短期记忆网络对时间序列预测的适用性
- 专家对长短期记忆网络的简要介绍
- 8 深度学习的鼓舞人心的应用
本课程的目的是了解如何在示例序列上训练 LSTM 模型。
- 传统 RNN 的训练有哪些常见问题?
- LSTM 如何克服这些问题?
- 什么算法用于训练 LSTM?
- Backpropagation Through Time 如何运作?
- 什么是截断的 BPTT,它提供了什么好处?
- 如何在 Keras 中实现和配置 BPTT?
本课程的目标是了解如何准备用于 LSTM 模型的序列预测数据。
- 如何准备用于 LSTM 的数字数据?
- 如何准备用于 LSTM 的分类数据?
- 使用 LSTM 时如何处理序列中的缺失值?
- 如何将序列构建为监督学习问题?
- 在使用 LSTM 时,如何处理长序列?
- 你如何处理不同长度的输入序列?
- 如何重塑 Keras 中 LSTM 的输入数据?
演示如何将数字输入序列转换为适合训练 LSTM 的形式。
- 如何在 Python 中扩展长短期记忆网络的数据
- 如何使用 Python 编写单热编码序列数据
- 如何使用 Python 处理序列预测问题中的缺失时间步长
- 如何将时间序列转换为 Python 中的监督学习问题
- 如何处理具有长短期记忆循环神经网络的超长序列
- 如何准备 Keras 中截断反向传播的序列预测
- 可变长度输入序列的数据准备
本课程的目标是了解如何使用 Python 中的 Keras 深度学习库定义,拟合和评估 LSTM 模型。
- 你如何定义 LSTM 模型?
- 你如何编译 LSTM 模型?
- 你如何适应 LSTM 模型?
- 您如何评估 LSTM 模型?
- 如何使用 LSTM 模型做出预测?
- 如何将 LSTM 应用于不同类型的序列预测问题?
准备一个示例,演示 LSTM 模型在序列预测问题上的生命周期。
本节中的课程旨在教您如何使用 LSTM 模型获得序列预测问题的结果。
本课程的目标是学习如何开发和评估香草 LSTM 模型。
- 什么是香草 LSTM 架构?
- 什么是香草 LSTM 应用的例子?
设计并执行一个实验,演示序列预测问题的香草 LSTM。
- 用 Keras 在 Python 中用 LSTM 循环神经网络进行序列分类
- 用 Keras 用 Python 中的 LSTM 循环神经网络进行时间序列预测
- Python 中长期短期记忆网络的时间序列预测
本课程的目标是学习如何开发和评估堆叠的 LSTM 模型。
- 在层次结构的序列问题上使用香草 LSTM 有什么困难?
- 堆叠的 LSTM 是什么?
- 什么是栈式 LSTM 应用于何处的示例?
- 栈式 LSTM 提供哪些好处?
- 如何在 Keras 中实现栈式 LSTM?
设计并执行一个实验,演示具有分层输入结构的序列预测问题的栈式 LSTM。
本课程的目标是学习如何开发在前端使用卷积神经网络的 LSTM 模型。
- 使用具有空间输入数据的香草 LSTM 有什么困难?
- 什么是 CNN LSTM 架构?
- 有哪些 CNN LSTM 的例子?
- CNN LSTM 提供哪些好处?
- 如何在 Keras 中实现 CNN LSTM 架构?
设计并执行一个实验,演示有空间输入的序列预测问题的 CNN LSTM。
- 用 Keras 在 Python 中用 LSTM 循环神经网络进行序列分类
本课程的目标是学习如何开发编解码器 LSTM 模型。
- 什么是序列到序列(seq2seq)预测问题?
- 在 seq2seq 问题上使用香草 LSTM 有什么困难?
- 什么是编解码器 LSTM 架构?
- 编解码器 LSTM 有哪些例子?
- 编解码器 LSTM 有什么好处?
- 如何在 Keras 中实现编解码器 LSTM?
设计并执行一个实验,演示序列到序列预测问题的编解码器 LSTM。
- 如何在 Python 中为长期短期记忆网络使用时间分布层
- 如何学习使用 seq2seq 循环神经网络相加数字
- 如何将编解码器 LSTM 用于随机整数的回波序列
本课程的目标是学习如何开发双向 LSTM 模型。
- 什么是双向 LSTM?
- 有哪些使用双向 LSTM 的例子?
- 双向 LSTM 比香草 LSTM 有什么好处?
- 双向架构引发了关于时间步长的问题?
- 如何在 Keras 中实现双向 LSTM?
设计并执行一个实验,在序列预测问题上比较前向,后向和双向 LSTM 模型。
本课的目的是学习如何开发 LSTM 模型。
- 具有中性信息的长序列对 LSTM 有何影响?
- LSTM 型号的注意事项是什么?
- 在 LSTM 中使用注意力的一些例子是什么?
- 注意为序列预测提供了什么好处?
- 如何在 Keras 中实现注意力架构?
设计并执行一项实验,该实验将注意力集中在具有长序列中性信息的序列预测问题上。
- 长期短期记忆循环神经网络的注意事项
本课程的目标是学习如何开发用于生成模型的 LSTM。
- 什么是生成模型?
- 如何将 LSTM 用作生成模型?
- LSTM 作为生成模型的一些例子是什么?
- LSTM 作为生成模型有哪些好处?
设计并执行实验以学习文本语料库并生成具有相同语法,语法和样式的新文本样本。
- 使用 Keras 在 Python 中使用 LSTM 循环神经网络生成文本
本节中的课程旨在教您如何根据自己的序列预测问题从 LSTM 模型中获得最大收益。
本课程的目标是学习如何调整 LSTM 超参数。
- 我们如何诊断 LSTM 模型的过度学习或学习不足?
- 调整模型超参数的两种方案是什么?
- 鉴于 LSTM 是随机算法,如何可靠地估计模型技能?
- 列出可以调整的 LSTM 超参数,并提供可以评估的值的示例:
- 模型初始化和行为。
- 模型架构和结构。
- 学习行为。
设计并执行实验以调整 LSTM 的一个超参数并选择最佳配置。
本课程的目标是学习如何在新数据可用后更新 LSTM 模型。
- 更新 LSTM 模型以响应新数据有什么好处?
- 使用新数据更新 LSTM 模型有哪些方案?
设计并执行实验以使 LSTM 模型适应序列预测问题,该问题与不同模型更新方案的模型技能的影响形成对比。
本课程的目标是学习如何最终确定 LSTM 模型并使用它来预测新数据。
- 你如何在 Keras 中保存模型结构和重量?
- 你如何适应最终的 LSTM 模型?
- 如何使用最终模型做出预测?
设计并执行实验以适应最终的 LSTM 模型,将其保存到文件,然后加载它并对保留的验证数据集做出预测。
(_ 看你有多远 _)
你做到了。做得好!
花点时间回顾一下你到底有多远。以下是您学到的知识:
- LSTM 是什么以及为什么它们是序列预测的首选深度学习技术。
- LSTM 使用 BPTT 算法进行训练,该算法也强加了一种思考序列预测问题的方法。
- 用于序列预测的数据准备可以涉及掩蔽缺失值以及分割,填充和截断输入序列。
- Keras 为 LSTM 模型提供了 5 步生命周期,包括定义,编译,拟合,评估和预测。
- 香草 LSTM 由输入层,隐藏的 LSTM 层和密集输出层组成。
- 隐藏的 LSTM 层可以堆叠,但必须从一层到另一层暴露整个序列的输出。
- 在处理图像和视频数据时,CNN 可用作 LSTM 的输入层。
- 在预测可变长度输出序列时可以使用编解码器架构。
- 在双向 LSTM 中向前和向后提供输入序列可以提高某些问题的技能。
- 该注意力可以为包含中性信息的长输入序列提供优化。
- LSTM 可以学习输入数据的结构化关系,进而可以用来生成新的例子。
- LSTM 的 LSTM 超参数可以像任何其他随机模型一样进行调整。
- 当新数据可用时,可以更新适合的 LSTM 模型。
- 最终的 LSTM 模型可以保存到文件中,然后加载以便对新数据做出预测。
不要轻视这一点;你在很短的时间内走了很长的路。
这只是您与 Keras 的 LSTM 之旅的开始。继续练习和发展你的技能。
你如何使用迷你课程? 你喜欢这个迷你课吗?
你有什么问题吗?有没有任何问题? 让我知道。在下面发表评论。