何时使用 MLP、CNN 和 RNN 神经网络

哪种神经网络适合您的预测建模问题?

对于深度学习领域的初学者来说,了解使用哪种类型的网络可能很困难。有如此多种类型的网络可供选择,而且每天都有新的方法发布和讨论。

更糟糕的是,大多数神经网络足够灵活,即使与错误类型的数据或预测问题一起使用,它们也能正常工作(进行预测)。

在这篇文章中,您将了解三种主要类型的人工神经网络的建议用途。

阅读本文后,你将了解:

  • 在处理预测建模问题时应关注哪些类型的神经网络。
  • 何时在项目中使用、不使用以及可能尝试使用 MLP、CNN 和 RNN。
  • 考虑使用混合模型,并在选择模型之前对您的项目目标有一个清晰的认识。

使用我的新书《使用 Python 进行深度学习启动您的项目,包括分步教程和所有示例的 Python 源代码文件。

让我们开始吧。

When to Use MLP, CNN, and RNN Neural Networks

何时使用 MLP、CNN 和 RNN 神经网络
图片由PRODAVID S. FERRY III,DDS 提供,保留部分权利。

概述

本文分为五个部分:

  1. 要关注哪些神经网络?
  2. 何时使用多层感知器?
  3. 何时使用卷积神经网络?
  4. 何时使用循环神经网络?
  5. 混合网络模型

要关注哪些神经网络?

深度学习是使用现代硬件应用人工神经网络。

它允许开发、训练和使用比以前认为可能更大(更多层)的神经网络。

研究人员提出了数千种特定类型的神经网络,作为对现有模型的修改或调整。有时是全新的方法。

作为一名从业者,我建议等到模型普遍适用后再使用。从每天或每周发布的大量出版物的噪音中,很难分辨出哪些方法普遍有效。

我建议您通常关注三类人工神经网络。它们是

  • 多层感知机 (MLP)
  • 卷积神经网络 (CNN)
  • 循环神经网络 (RNNs)

这三类网络提供了很大的灵活性,并已证明在几十年来在广泛的问题中都很有用和可靠。它们也有许多子类型,以帮助它们专门处理不同预测问题框架和不同数据集的怪癖。

现在我们知道了要关注哪些网络,接下来看看何时可以使用每类神经网络。

何时使用多层感知器?

多层感知器,简称 MLP,是经典类型的神经网络。

它们由一层或多层神经元组成。数据被输入到输入层,可能有一个或多个提供抽象级别的隐藏层,并在输出层(也称为可见层)进行预测。

有关 MLP 的更多详细信息,请参阅文章

Model of a Simple Network

简单网络模型

MLP 适用于将输入分配给类或标签的分类预测问题。

它们也适用于回归预测问题,其中给定一组输入来预测实数值。数据通常以表格格式提供,例如您在 CSV 文件或电子表格中看到的那样。

MLP 的用途

  • 表格数据集
  • 分类预测问题
  • 回归预测问题

它们非常灵活,通常可用于学习从输入到输出的映射。

这种灵活性允许它们应用于其他类型的数据。例如,图像的像素可以简化为一行长数据并输入到 MLP 中。文档的单词也可以简化为一行长数据并输入到 MLP 中。即使时间序列预测问题的滞后观测值也可以简化为一行长数据并输入到 MLP 中。

因此,如果您的数据不是表格数据集形式,例如图像、文档或时间序列,我建议您至少在您的问题上测试 MLP。结果可以作为基线比较点,以确认其他可能更适合的模型是否增加了价值。

尝试使用 MLP 处理

  • 图像数据
  • 文本数据
  • 时间序列数据
  • 其他类型的数据

何时使用卷积神经网络?

卷积神经网络,简称 CNN,旨在将图像数据映射到输出变量。

它们已被证明非常有效,成为涉及图像数据作为输入的任何类型预测问题的首选方法。

有关 CNN 的更多详细信息,请参阅文章

使用 CNN 的好处是它们能够开发二维图像的内部表示。这使得模型能够学习数据中位置和尺度不变的结构,这在处理图像时很重要。

CNN 的用途

  • 图像数据
  • 分类预测问题
  • 回归预测问题

更普遍地说,CNN 适用于具有空间关系的数据。

CNN 输入传统上是二维的,一个场或矩阵,但也可以更改为一维,从而使其能够开发一维序列的内部表示。

这使得 CNN 可以更普遍地用于其他具有空间关系的数据类型。例如,文本文档中的单词之间存在顺序关系。时间序列的时间步长中存在有序关系。

尽管 CNN 并非专门为非图像数据开发,但在情感分析和相关问题中使用的文档分类等问题上,CNN 取得了最先进的成果。

尝试使用 CNN 处理

  • 文本数据
  • 时间序列数据
  • 序列输入数据

何时使用循环神经网络?

循环神经网络,简称 RNN,旨在处理序列预测问题。

序列预测问题有多种形式,最好通过支持的输入和输出类型来描述。

序列预测问题的一些示例包括

  • 一对多:将一个观测值作为输入映射到具有多个步骤的序列作为输出。
  • 多对一:将具有多个步骤的序列作为输入映射到类别或数量预测。
  • 多对多:将具有多个步骤的序列作为输入映射到具有多个步骤的序列作为输出。

多对多问题通常被称为序列到序列,简称 seq2seq。

有关序列预测问题类型的更多详细信息,请参阅文章

循环神经网络传统上难以训练。

长短期记忆(LSTM)网络可能是最成功的 RNN,因为它克服了训练循环网络的问题,因此已被广泛应用于各种应用程序。

有关 RNN 的更多详细信息,请参阅文章

RNN,特别是 LSTM,在处理单词和段落序列(通常称为自然语言处理)时取得了最大的成功。

这包括文本序列和表示为时间序列的口语序列。它们还用作需要序列输出的生成模型,不仅用于文本,还用于生成手写等应用程序。

RNN 的用途

  • 文本数据
  • 语音数据
  • 分类预测问题
  • 回归预测问题
  • 生成模型

循环神经网络不适用于您在 CSV 文件或电子表格中看到的表格数据集。它们也不适用于图像数据输入。

不要将 RNN 用于

  • 表格数据
  • 图像数据

RNN 和 LSTM 已在时间序列预测问题上进行了测试,但结果至少可以说是差强人意。自回归方法,甚至线性方法通常表现更好。LSTM 经常被应用于相同数据的简单 MLP 击败。

有关此主题的更多信息,请参阅此帖子

尽管如此,这仍然是一个活跃的领域。

也许在以下方面尝试 RNN

  • 时间序列数据

混合网络模型

CNN 或 RNN 模型很少单独使用。

这些类型的网络作为更广泛模型中的层使用,该模型还具有一个或多个 MLP 层。从技术上讲,这些是混合类型神经网络架构。

也许最有趣的工作来自于将不同类型的网络混合在一起形成混合模型。

例如,考虑一个模型,它使用堆叠层,输入端是 CNN,中间是 LSTM,输出端是 MLP。这样的模型可以读取一系列图像输入,例如视频,并生成预测。这被称为CNN LSTM 架构

网络类型还可以堆叠在特定的架构中,以解锁新的功能,例如可重用的图像识别模型,它们使用非常深的 CNN 和 MLP 网络,可以添加到新的 LSTM 模型中并用于图片标注。此外,编码器-解码器 LSTM 网络可用于输入和输出长度不同的序列。

重要的是首先清晰地思考您和您的利益相关者对项目的要求,然后寻找(或开发)满足您特定项目需求的网络架构。

有关帮助您思考数据和预测问题的良好框架,请参阅文章

进一步阅读

如果您想深入了解,本节提供了更多关于该主题的资源。

总结

在这篇文章中,您了解了三种主要类型的人工神经网络的建议用途。

具体来说,你学到了:

  • 在处理预测建模问题时应关注哪些类型的神经网络。
  • 何时在项目中使用、不使用以及可能尝试使用 MLP、CNN 和 RNN。
  • 考虑使用混合模型,并在选择模型之前对您的项目目标有一个清晰的认识。

你有什么问题吗?
在下面的评论中提出你的问题,我会尽力回答。

何时使用 MLP、CNN 和 RNN 神经网络的 134 条回复

  1. John W 2018 年 7 月 25 日上午 5:31 #

    一篇非常好的神经网络文章。

    我喜欢使用神经网络处理数据。人脑显然是许多计算机程序和人工智能方法的基础。人工神经网络算法专注于复制人脑的思维和推理模式,这使其成为一种引人入胜的算法。

    • Jason Brownlee 2018 年 7 月 25 日上午 6:23 #

      谢谢。

    • D. L. von Kleeck 博士 – “Doc vK” 2019 年 4 月 10 日上午 4:03 #

      是的,Jason,但我发现 RFBN 比 MLP 更具可解释性。有什么想法吗?

      Doc vK

    • Aman Oswal 2019 年 12 月 11 日上午 1:15 #

      你好先生,
      您说 RNN 和 LSTM 在时间序列预测问题上表现不佳。但在您的书中,通过使用 LSTM,您在预测问题上取得了惊人的成果。是不是没有机器学习模型适合时间序列预测,因此我们应该选择 ARIMA 等统计模型?

      • Jason Brownlee 2019 年 12 月 11 日上午 7:01 #

        我展示了如何谨慎使用它们,但结果并不惊人。

        对于单变量时间序列,在我的测试中,线性模型总是优于 RNN。

  2. Alan Preciado 2018 年 7 月 27 日上午 7:32 #

    布朗利博士,您好,

    首先,感谢您的所有帖子,自从我一年前开始接触 ML 问题以来,它们一直是我有用的参考。

    现在我正在使用传统和神经网络方法处理音频分类问题。我实际上正在使用您上面提到的三个神经网络。混合模型的想法让我着迷,但是 1. 我不知道它是否能很好地解决我的音频问题,2. 我没有任何设计这些混合模型的经验。

    我感谢您提供任何建议!

  3. Koura 2018 年 7 月 27 日下午 6:32 #

    谢谢 Jason,很有用

  4. Omachi 2018 年 7 月 27 日晚上 11:06 #

    谢谢您,Jason 博士。
    您的教程为我开启了机器学习和数据挖掘的大门。
    谢谢你

  5. Richard S Zipper 2018 年 7 月 29 日上午 11:13 #

    作为我的第一个深度学习应用程序,我得到了 480 个 ssDNA 序列以及它是否结晶的指示。我的目标是根据序列预测结晶。\

    首先,我将每个序列(长度通常为 5 – 28)嵌入到长度为 40 个字符的空白序列中……这让我能够
    1. 使长度统一并
    2. 将 ssDNA 序列重复到 40 个字符空白中的不同位置……以增加我的数据集大小。从 480 增加到 6400

    接下来,我将 A = 10001 T = 010000 C = 00100 G = 00011 Blank = -1, -1, -1, -1, -1

    经过大量测试和阅读,我创建了 3 个模型
     模型 01:多层 1D 卷积网络 + 多层感知器
     模型 02:时间分布式 1D 卷积层 + LSTM + 多层感知器
     模型 03:堆叠 LSTM – 1 感知器

    最终预测结果如下:如果 3 个模型中有 2 个预测结晶 – 则预测结晶。
    准确性将在未来几个月内在实验室进行测试。

    我有两个问题
    为什么不使用多个模型的组合分数?
    您对我的第一个实际项目有什么建议或指点吗?

    再次感谢您成为机器学习社区的指路明灯

  6. vishnu priya 2018 年 7 月 30 日上午 3:30 #

    谢谢您,Jason 博士
    这些与神经网络相关的所有教程都非常出色,并且对于轻松学习神经网络基础知识很有用。

    先生,您能解释一下反向传播算法吗?
    滤波器权重是如何随机选择的。有没有可能改变滤波器的权重。

  7. anvin ps 2018 年 7 月 31 日下午 8:55 #

    先生,预测彩票号码的最佳神经网络是什么?(不是真正的随机数,因为有些数字在一个月内重复多次)

  8. Abdullahi Mohammad 2018 年 8 月 8 日下午 10:49 #

    嗨 Jason,我是您的在线粉丝和学生之一。我一直坚持关注您的博客,它们非常棒。请问,您是否可以帮助我了解如何训练两个具有相同网络结构的模型,其中一个模型的权重由另一个模型的学习权重初始化。但是,在训练第二个模型期间,第一个模型的层是固定的。我真的需要您的帮助,因为这是我毕业设计的一部分。谢谢。

    • Jason Brownlee 2018 年 8 月 9 日上午 7:41 #

      您可以将权重保存到文件中,然后将权重加载到新模型中。

  9. Geeta 2018 年 9 月 21 日上午 11:43 #

    你好,

    我有一个用例,需要进行日志挖掘和分类日志,并预测分类后的日志是否会导致系统出现一些不良行为。根据系统经验,我知道哪些日志会产生什么样的连锁效应

    由于它结合了分类和预测,我不知道该应用哪些算法。
    您能帮我吗?

    谢谢,
    吉塔

  10. Tim 2018 年 9 月 21 日下午 11:29 #

    谢谢你 Jason,我刚刚开始学习机器学习,有太多的概念让我困惑,真的很难弄清楚何时使用不同的机器学习算法来处理我的问题。我打算为几个城市的 PM2.5 和 PM10 建立一个预测系统,我想知道当我选择观测到的 PM 浓度和其他天气信息(如风速、风向、温度和湿度)时,哪种机器学习算法可能适用于该系统进行预测。所以你能给我一些建议吗?非常感谢

  11. Seungman Kang 2018 年 10 月 19 日上午 11:31 #

    你好!Jason。感谢您的工作。
    我可以将其翻译并发布到 scimonitors.com 上并附带原文吗?这将有助于我们理解该主题。

  12. Romain 2018 年 11 月 14 日上午 2:37 #

    你好 Jason,

    只是想感谢您的网站,作为一名完全的初学者,我非常喜欢所有的资料,在我看来,它们写得非常好。

    来自法国的问候。

  13. Maryam MV 2018 年 11 月 14 日上午 2:48 #

    嘿,希望你一切都好。这里有人在强化学习中使用神经网络作为函数估计器吗?如果是,一些我希望了解答案的问题一直困扰着我,我的问题如下

    1) 您是否为每个动作使用一个 ANN 来估计状态 S 的值,即,一个 ANN 用于计算 Q(s,a1),另一个 ANN 用于 Q(s,a2),依此类推?还是利用单个 ANN 来计算当前状态相对于所有动作的 Q 值?

    2) 还有其他有用的资源可以帮助我充分理解这一点吗?
    提前感谢,
    Maryam

    • Jason Brownlee 2018 年 11 月 14 日上午 7:35 #

      我希望将来能涵盖深度强化学习。

  14. soha 2018 年 12 月 3 日下午 6:52 #

    嗨,我可以使用 RNN 进行逐符号检测吗?

  15. Isha Zameer 2018 年 12 月 30 日上午 2:17 #

    嗨,我正在进行我的 ME 研究,我需要您的帮助。我的论文主题是“使用神经网络短期预测汇率”,您能帮我决定哪种模型最适合预测吗?由于我阅读过的许多研究论文都在研究这些模型,所以我的方法是使用混合模型,即 MLP 和 RNN。您认为使用这两个模型结果会更有效吗?期待您的回复。

  16. Gadelhag 2019 年 1 月 15 日下午 11:18 #

    嗨 Jason

    感谢您精美的解释。我正在处理时间序列数据(带有时间戳的二进制数据),其中每个动作代表人类活动。我正在使用模糊有限状态机 (FFSM) 与标准神经网络结合生成 FFSM 系统的模糊规则。我现在已经取得了不错的结果。我只是想问一下,如果我想用 RNN 或 CNN 替换我系统中的标准神经网络,您会建议哪一个,并且根据您的经验,它会比标准神经网络表现得更好。

    是否建议使用 RNN 或 CNN 来学习系统并生成模糊规则?

    提前感谢您的建议。

    Gad

    • Jason Brownlee 2019 年 1 月 16 日上午 5:48 #

      在这种情况下,我建议测试一系列方法,以发现最适合您的特定数据集的方法。

  17. Rats 2019 年 2 月 14 日上午 1:53 #

    嗨 Jason,非常好的文章……您知道任何关于基于地理空间机器学习问题或论文的好的参考资料吗?谢谢!

    • Jason Brownlee 2019 年 2 月 14 日上午 8:49 #

      是的,我读了一些关于 CNN-LSTM 和 ConvLSTM 在这些类型问题上的有趣工作。

      也许可以在 scholar.google.com 上搜索

  18. Lam 2019 年 2 月 21 日下午 5:42 #

    嗨 Jason,非常好的文章!

    我是机器学习新手,我尝试构建一个聊天机器人并找到了许多示例。目前聊天机器人应该使用什么模型?RNN、LSTM、IndRNN、CNN……还是组合它们?

    谢谢

    • Jason Brownlee 2019 年 2 月 22 日上午 6:14 #

      抱歉,我没有聊天机器人方面的经验。

  19. Dina Taklit 2019 年 2 月 23 日上午 9:13 #


    首先,非常感谢您的这篇有用的文章。

    实际上,我想解决一个展开循环因子的问题。我的 ANN 的输入是循环的特征,输出是预测的展开因子。我们将 ANN 用作连续函数(回归问题)。在研究如何将可变输入长度的特征作为输入呈现时,我们遇到了许多类型的 ANN:RNN、递归 NN。

    在阅读了更多关于 RNN 的内容后,我没有在我们的问题中看到序列概念,我们将一次性提供所有特征并预测输出。唯一的问题是输入数量因循环而异,我的意思是第一个示例可能有 50 个输入,而第二个程序可能有 100 个输入,依此类推。

    在这种情况下,我非常困惑该使用什么。请问有什么建议吗?

    我还有一个问题,MLP 和 DNN 之间有什么区别,我很困惑 :!。

    非常感谢。

    • Jason Brownlee 2019 年 2 月 24 日上午 9:03 #

      也许您可以对可变长度输入进行零填充,并使用掩码层来忽略它们?

      • Dina Taklit 2019 年 2 月 24 日下午 7:54 #

        非常感谢您回答我 :)。
        但我一直在想,如果输入最小数量和最大数量之间的差异大于 20 个输入设置为“0”,那么零填充可能会对准确性产生负面影响,这会影响学习吗?

        • Jason Brownlee 2019 年 2 月 25 日上午 6:39 #

          如果您使用掩码层,则填充值将被忽略。

          • Dina Taklit 2019 年 2 月 25 日下午 6:43 #

            非常感谢,我正在阅读它,看起来是个不错的技巧。再次非常感谢您 :)。

          • Dina Taklit 2019 年 3 月 22 日上午 3:30 #

            @Jason Brownlee 我按照您的建议使用 Zero_padding 和掩码层来忽略它们。现在,一旦投入实践,我就困惑了。
            例如,如果我们有这样的输入:(最大可变长度为 10)
            我们有这样的情况
            x= [4, 0, 0, 512, 1.0, 0.0, 1.0, 0.0, 128.0 , NaN]
            填充后会变成这样
            x_pad= [4, 0, 0, 512, 1.0, 0.0, 1.0, 0.0, 128.0 , 0.0] (最后一个 0 是填充值)。
            掩码应该是
            x_mask= [1, 1, 1, 1, 1, 1, 1, 1, 1, 0]
            然后我应该如何使用它们,我应该用 x_mask 乘以 x_pad 还是什么?我仍然非常困惑。

          • Jason Brownlee 2019 年 3 月 22 日上午 8:32 #

            不,掩码层是神经网络中的一种层。我在这里展示了如何使用它
            https://machinelearning.org.cn/handle-missing-timesteps-sequence-prediction-problems-python/

          • Dina Taklit 2019 年 3 月 23 日上午 1:48 #

            @Jason Brownlee
            是的,我们可以添加掩码层,但这仅在 RNN 中可用吗?

            我在这里收到了一个答案:https://stackoverflow.com/questions/55270074/tensor-flow-how-to-use-padding-and-masking-layer-in-case-of-mlps。上面写着

            您唯一可以“忽略”的维度是循环层中的时间维度,因为权重数量不会随时间维度而变化,因此单个层可以在时间维度上具有不同的大小。

            如果您只使用 Dense 层,您不能跳过任何内容,因为您的唯一维度(除了批次维度)与权重数量直接相关。

            你觉得怎么样?
            如果仍然可能,TensorFlow 中的等效代码是什么?

          • Jason Brownlee 2019 年 3 月 23 日上午 9:32 #

            如果您选择,您可以忽略给定特征的所有时间步。

            Keras 支持 LSTM,但不支持 Dense 层。

            或者,您可以指定要使用的值,例如 -1,并且不使用掩码层,看看它如何影响模型性能。

          • Dina Taklit 2019 年 3 月 25 日上午 2:48 #

            是的,这是真的。掩码层不能用于密集层。我将尝试这种替代方法。
            谢谢你 :)。

  20. VARUN KURUP 2019 年 3 月 8 日上午 1:03 #

    我可以使用 RNN 或 LSTM 进行电子邮件数据集的情感分析和文本摘要吗

  21. RANA 2019 年 3 月 18 日下午 7:57 #

    您有 MLP 和 CNN 的数学解释吗

  22. Felipe 2019 年 3 月 24 日下午 2:15 #

    我看到一些论文中提到 RNN 擅长处理时间序列数据。我正在考虑在我的本科论文中使用这种神经网络,我在其中进行洪水预测。然而,您的帖子现在让我感到困惑,因为您在 RNN 的用途中没有提到时间序列,而且您说它不适合使用表格数据。我拥有的数据是表格数据。

  23. Ramani 2019 年 3 月 29 日上午 3:29 #

    Brownlee 博士,

    您的帖子很棒——简洁而内容丰富。

    我正在考虑一个机器学习问题,并请求您的建议。如果一个分类问题到多个输出同时具有空间和时间维度(例如来自视频剪辑),那么 CNN – LSTM – 多层感知器混合模型是正确的方法吗?从您的帖子来看,LSTM 似乎是用于预测下一个时间步而不是分类(我可能误解了)。所以我想知道是否需要 LSTM / RNN。

    感谢您的指导和指点。

  24. ssyouri1 2019 年 4 月 4 日上午 6:48 #

    嗨,Jason,

    非常感谢这篇有用的文章。我的问题是,为什么 CNN 最近被用于图形数据(CNN 被用于学习图中的节点表示),尽管根据我的理解,空间关系(其中顺序很重要)并不存在?谢谢!

    • Jason Brownlee 2019 年 4 月 4 日上午 8:01 #

      CNN 是为图像数据开发的,它们非常有效,这就是您看到它们在图像数据中广泛使用的原因。

  25. Burak 2019 年 4 月 17 日下午 10:48 #

    嗨,Jason,

    文章读起来和学习起来都很棒。我想问一下有人能否给我一些想法。我正在尝试使用 120 个国家的经济、社会福利和发展数据以及 2000 年至 2016 年的 1400 个选举结果数据来预测选举结果。但我不知道该使用哪种类型的神经网络以及哪种编程语言或包。我的初步决定是使用 PyTorch 技术中的 MLP。您有什么建议吗?

  26. Martin Abwooli N 2019 年 5 月 2 日上午 12:49 #

    感谢 Jason 提供了关于为各种机器学习问题使用各种 NN 算法的见解。我的困境是,我正在尝试预测婴儿肺炎的想法,使用各种数据集,包括 HMIS 数据、气候数据、人口数据、药房数据,以提出一个可以提供良好准确性的预测模型,我的问题是,我正在努力寻找我应该考虑的最佳机器学习方法,或者更确切地说,哪种 NN 算法适合这个问题?任何适当的建议都将不胜感激。

  27. Niru 2019 年 5 月 7 日上午 7:30 #

    亲爱的 Jason,

    我只是顺便表达我对您为像我这样的新手所做的贡献最诚挚的感谢。我必须做一次短期时间序列预测练习,而我几乎不知道从何开始。两天多来,在您的网站的帮助下,我对它有了更好的理解,并且能够想出一些值得讨论的东西。我真的无法足够感谢您。

    非常感谢,
    Niru

  28. matineh 2019 年 5 月 15 日上午 12:28 #

    亲爱的 Jason,

    您的文章非常好。
    我想问一下,RNN 的输入可以是结构动态响应的数据吗?!
    或者更好地问,RNN 在结构中的输入可以是什么?!
    我想把 RNN 作为我的论文主题。

    谢谢你。

  29. Dave 2019 年 6 月 21 日下午 8:40 #

    亲爱的 Jason,

    请立即给我发邮件,让我们尽快讨论一些重要事项。

    我需要你的帮助。

    Okechukwudavid@gmail.com

  30. Parth 2019 年 9 月 29 日下午 6:52 #

    嗨,Jason,

    首先,非常感谢您为机器学习从业者提供的精彩教程。我也是您参考相关论文/书籍以供进一步阅读的方法的忠实粉丝。

    我同意并认为您不鼓励将 RNN 用于表格数据/预测问题很有用。我也理解许多观察结果是经验性的,并带有您的经验。但是,您是否恰巧知道我可以阅读哪些文献以获取有关该问题的更多详细信息。再次感谢。

    • Jason Brownlee 2019 年 9 月 30 日上午 6:05 #

      具体是什么问题?

      将 RNN 应用于表格数据?没有参考资料,因为这不合适。

  31. thecoducer 2019 年 10 月 2 日上午 12:29 #

    非常有用的文章。非常感谢!

  32. NPCP 2019 年 10 月 10 日上午 3:32 #

    嗨,Jason,
    感谢您的帮助!我有一个关于我的研究应该使用哪个神经网络的问题。
    我有两个信号(ECG 和 PPG),我想借助 ECG 和 PPG 预测第三个信号(ABP)。我有很长一系列信号,但对我来说重要的是 ABP 最大值(收缩压)和 ABP 最小值(舒张压)的单一值作为输出。
    您认为可用的架构如何?

  33. Imran Khan 2019 年 10 月 19 日下午 4:16 #

    您能解释一下 Conv1D+MLP 架构相对于 MLP 架构在时间序列预测问题上的优势吗

    • Jason Brownlee 2019 年 10 月 20 日上午 6:16 #

      我可以讲述方法是如何工作的,但最重要的是:如果它能带来更好的结果,就使用它。

      • Imran Khan 2019 年 10 月 21 日下午 5:25 #

        但是如果审稿人问你为什么使用 Conv1D+MLP 而不是使用任何其他混合模型,那么我的解释应该是什么。

        • Jason Brownlee 2019 年 10 月 22 日上午 5:44 #

          测试其他方法并确认您选择的方法取得了最佳结果。

          工作必须具有可辩护性。

          • Imran Khan 2019 年 10 月 31 日下午 9:02 #

            除了这个还有其他数学解释吗????

          • Jason Brownlee 2019 年 11 月 1 日上午 5:29 #

            是的,也许可以查阅这本教科书
            https://amzn.to/2C0tBml

  34. Imran Khan 2019 年 11 月 2 日上午 1:29 #

    您能解释一下以下原因吗
    我正在做一个回归问题,试图用一组输入变量在每日尺度上预测多步降雨。
    请解释以下原因

    无论我尝试什么模型(即 MLP、Conv 1D、LSTM、GRU 和混合模型),我的数据集损失函数(MSE 和其他损失函数也尝试过)在初始 epoch 时都会开始下降,但经过 8 或 10 个 epoch 后,测试损失不再下降,而训练损失持续下降。为什么会这样??

    • Jason Brownlee 2019 年 11 月 2 日上午 6:48 #

      也许所有模型都在学习相同的底层函数?

      • Imran Khan 2019 年 11 月 2 日下午 3:52 #

        抱歉。我没明白你的意思。

        • Jason Brownlee 2019 年 11 月 3 日上午 5:54 #

          也许所有模型都取得了相同的结果,因为它们都在学习从输入到输出的相同底层映射函数——例如,它们在您的数据集上达到了最佳效果。这只是一个想法。

  35. Sara Ali 2019 年 11 月 12 日下午 9:20 #

    亲爱的 Jason,

    我正在从事讽刺检测工作,这是情感分析中的主要挑战之一。

    我正在寻找深度学习中的方法,该方法最适合任何数据集中的讽刺检测。

    RNN 最适合吗……还是混合模型……???

    请推荐我一些使用 RNN 进行深度学习讽刺检测的链接,以便更好地理解。
    谢谢。

  36. Darshan 2019 年 11 月 22 日上午 3:40 #

    你好 Jason,

    感谢您的这篇文章。它消除了我关于神经网络的大部分疑虑。但我仍然需要您的一个建议。

    我有一个 CSV 格式的过去几个赛季联赛足球比赛统计数据集。为了预测足球比赛结果,MLP 或 RNN 哪个是最佳模型?

  37. Ali Al-Dulaimi 2019 年 12 月 21 日下午 8:15 #

    我只想感谢 Brownlee 博士,感谢您在这里提供的所有出色和卓越的努力。

  38. sawsen 2020 年 1 月 1 日上午 2:12 #

    嗨,Jason,
    正如您所解释的,RNN 和 CNN 用于具有特殊关系(时间或空间)的数据,但它们通常用于入侵检测,其中数据是表格数据(输入是一个 CSV 文件,其中包含许多具有 41 个特征和一个标签(我们正在寻找的五类之一)的记录)。这只是一个分类问题。但我找不到其使用理由。我甚至发现了 CNN-LSTM 的组合

    • Jason Brownlee 2020 年 1 月 1 日上午 6:35 #

      听起来像是一个分类问题,例如不适用于 RNN 或 CNN。

  39. Simon 2020 年 1 月 15 日下午 11:32 #

    嗨 Jason,您能解释一下如何将数据输入 LSTM 网络吗?例如,我有一个 3 个元素的 1D 时间序列 [1, 2, 3] 和一个具有 2 个单元的 LSTM 网络。非常感谢。

  40. Yogesh 2020 年 1 月 17 日下午 6:03 #

    亲爱的布朗利博士,
    感谢您的帖子。它真的很有帮助。

    我希望得到您宝贵的建议。
    我正在从事语音处理问题,用于分类任务。如果我从语音/语音 .wav 文件中提取特征并想将其应用于深度神经网络,您推荐哪个模型?对于单类和多类问题。

    先谢谢您了。

    • Jason Brownlee 2020 年 1 月 18 日上午 8:37 #

      抱歉,我没有深度学习音频教程,但我希望将来能涵盖它。

      • Yogesh 2020 年 1 月 20 日下午 4:55 #

        谢谢您的关心,先生。

  41. Daniel 2020 年 2 月 21 日上午 12:03 #

    你好 Jason,

    感谢您的文章,它们帮助我迈入了机器学习领域,但我的经验仍然有限,无法考虑所有因素来选择项目中最佳的实现框架。我的问题是处理识别摆(初始速度、角度)的输入参数,根据系统行为(X、Y 方向的位移)。我有一个数据集,其中有 1000 个案例用于训练神经网络,每个案例有 5 秒周期内的 5000 个位移测量值,根据这些位移,我正在尝试预测使用了哪些输入参数。您认为哪个模型适合这个问题?提前致谢!

  42. cloud 2020 年 2 月 27 日下午 5:26 #

    感谢您的文章,它们对我帮助很大。
    我的数据集是观察到的网络数据包序列。每个观察到的事件都有许多变量,例如 IP、端口等。我用 LSTM 尝试了这个数据集,效果不错。现在,我想在支持一个框架(只支持 CNN)的硬件上实现一个模型,所以我想用 CNN 尝试这个数据集。我应该如何对数据进行整形以供 CNN 输入(许多示例只使用图像作为输入)。我能否像 LSTM 的输入一样对数据进行整形(样本数,特征,时间步)——每个子序列都不会重叠。

    提前感谢!

  43. Adams 2020 年 2 月 29 日下午 7:53 #

    您好 Jason 先生,我目前正在研究从高光谱图像预测土壤特性。然而,已经有研究使用 CNN。我正在考虑 CNN 和另一个深度学习模型的混合。您认为上面提到的 LSTM 架构可以提高 CNN 的准确性吗?我是 AI 研究的新手

    • Jason Brownlee 2020 年 3 月 1 日上午 5:24 #

      我建议在您的问题上测试一系列算法,并发现最有效的算法。

  44. Omkar Pradhan 2020 年 4 月 10 日上午 8:24 #

    嗨,Jason,

    我正在研究 DNA 测序问题,其中我有一个由字母 A、G、C、T 组成的大序列,我必须预测它属于哪个类别 0,1,2,3。

    例如,AGGGGGCTTTAACTGGG 可以属于类别 0,1,2 或 3
    像这样,我有 44k 个训练样本。

    这里还有一个问题——A-T 和 G-C 结合在一起。此外,分子的结构(空间取向)也起着重要作用(因此我也考虑过图神经网络)

    请问您能建议哪种架构效果最好吗?

    谢谢你
    Omkar

  45. kGao 2020年4月23日 晚上10:46 #

    嗨,Jason,

    感谢您的教程。

    我有一个关于神经网络结构的问题。

    如果我们想做序列预测(SeqToSeq),我们必须使用循环模型,这是显而易见的。但是如果我们想为多对一(ManyToOne)问题创建一个模型呢?

    例如,我们知道每个客户的家庭用电量(每个用户的多变量时间序列),并且我们想预测每个用户第二天的用电量(单独预测)。

    在这种情况下,我们可以使用 CNN(1D CNN、多头 1D CNN、扩张卷积神经网络等),并将最后一层全连接层(Dense layer)的激活函数更改为线性函数吗?

    就像这样:https://machinelearning.org.cn/cnn-models-for-human-activity-recognition-time-series-classification/

    或者我们必须使用 RNN 或 TimeDistributed 模型?

  46. Amin 2020年9月29日 晚上9:51 #

    嗨 Jason

    我有一个基本问题,MLP 和深度神经网络有什么区别?

    例如,当我撰写文章时,我什么时候可以声称我在数据上应用了深度神经网络?

    提前感谢 🙂

    • Jason Brownlee 2020年9月30日 上午6:29 #

      深度学习实际上指的是任何神经网络,或者更具体地说,是具有许多层的神经网络。

      当然可以。

  47. Beny 2020年10月1日 晚上7:06 #

    你好,

    首先,感谢您精彩的文章!我是深度学习的新手,想问一个对您来说可能太琐碎的问题

    我想将深度学习用于表格数据集的二元分类,根据这篇文章,MLP 应该比 CNN 或 LSTM 效果更好。您能详细解释一下原因吗?或者您能推荐另一篇文章来帮助我理解原因吗?

    我期待着学习(双关语),并提前感谢。

    • Jason Brownlee 2020年10月2日 上午5:57 #

      不客气。

      1D CNN 和 LSTM 不适用,因为它们用于序列预测。CSV 中的表格数据集不是序列预测问题。

      这个理由清楚吗?

  48. Beny 2020年10月6日 凌晨12:42 #

    感谢您的回复,但我仍有一些不清楚的地方(抱歉)

    “不适用”并不意味着 1D-CNN 或 LSTM 不能在表格数据集上工作,对吗?因为当我尝试在我的 CSV 数据集上运行它们(MLP、1D-CNN、LSTM 和 CNN-LSTM)时,它们的准确率都很高,并且它们之间没有太大区别。您能告诉我为什么吗?它们的性能也取决于数据集吗?更具体地说,我的 CSV 数据集包含标记数据,其中“0”和“1”分别表示“良性”和“恶意”。

    再次感谢。

  49. Mhar 2021年5月19日 上午8:34 #

    嗨,Jason,
    非常感谢这篇文章。我正在研究一个音乐推荐系统,并计划使用混合模型。我可以使用 CNN 进行基于内容的过滤,并使用 RNN 进行协同过滤,然后将它们合并为混合模型吗?还是会一团糟?
    再次感谢。

    • Jason Brownlee 2021年5月20日 上午5:43 #

      也许可以尝试一下,并与其他方法的结果进行比较。

  50. Rosemary Ihueze 2021年7月23日 下午3:02 #

    我是您的忠实粉丝。我如何为二元图像分类实现这种混合模型?

    • Jason Brownlee 2021年7月24日 上午5:11 #

      方法数不胜数,或许可以多尝试几种,直到找到最适合您特定数据集的方法。

  51. KayD 2022年4月28日 上午6:42 #

    嗨,Jason,

    很棒的文章,感谢您对过程的详细解释。

    我正在尝试构建一个多输出回归模型,以表格数据作为输入来预测 4 个目标变量。您对这种问题推荐哪种神经网络模型?

    此外,除了神经网络,您还推荐哪些其他模型来解决这种情况?我想使用 XGBoost,但根据我的理解,它不支持多目标回归模型。

    再次感谢!

  52. skuoon 2022年5月27日 下午4:00 #

    如果我想找出两张图片之间的共同点,应该使用哪种合适的方法?

留下回复

Machine Learning Mastery 是 Guiding Tech Media 的一部分,Guiding Tech Media 是一家领先的数字媒体出版商,专注于帮助人们了解技术。访问我们的公司网站以了解更多关于我们的使命和团队的信息。