一文简述如何为自己的项目选择合适的神经网络

编译:chux

出品:ATYUN订阅号

你的预测建模问题适合选择何种神经网络?对于初学者而言,深度学习领域很难知道要使用什么类型的网络。因为有许多类型的网络可供选择,每天都会有新的方法被发布和讨论。

更糟糕的是,大多数神经网络足够灵活,即使在使用错误类型的数据或预测问题时,也可以工作(进行预测)。

在这篇文章中,你会学到三种主要类型的人工神经网络的建议用法。

阅读这篇文章后,你会了解:

  • 在解决预测建模问题时要关注哪种类型的神经网络。
  • 何时使用,或不使用,或者可以尝试在项目中使用MLP,CNN和RNN。
  • 在选择模型之前,要考虑使用混合模型并清楚地了解项目目标。

让我们开始吧。

要关注什么神经网络?

深度学习是使用现代硬件的人工神经网络的应用。它使开发,训练和使用比过去更大(更多层)的神经网络成为可能。

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

作为一名从业者,我建议你等到模型出现后普遍适用后再使用。因为很难从每天或每周发布的大量出版物的中梳理出效果良好的那个。

我建议你一般关注三种类型的人工神经网络。即:

  • 多层感知器(MLP)
  • 卷积神经网络(CNN)
  • 递归神经网络(RNN)

这三类网络提供了很大的灵活性,并且经过数十年的证明,它们在各种各样的问题中都是有用和可靠的。并且在过去的几十年里已经证明它们在许多问题中是有用和可靠的。他们还有许多变种,以帮助他们专门处理不同的预测问题框架和不同数据集。

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

何时使用多层感知器?

多层感知器(简称MLP)是经典的神经网络。它由一层或多层神经元组成。数据被馈送到输入层,可能存在提供抽象层次的一个或多个隐藏层,并且在输出层(也称为可见层)上进行预测。

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

https://machinelearningmastery.com/neural-networks-crash-course/

MLP适用于分类预测问题,其中输入被指定类或标签。

它也适用于回归预测问题,即给定一组输入,预测一个实值量。数据通常以表格格式提供,如CSV文件或电子表格。

使用MLP用于:

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

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

这种灵活性使它可以应用于其他类型的数据。例如,图像的像素可以转换为一行长数据并馈送到MLP中。文档的单词也可以被转换为一行长数据并馈送到MLP。甚至对时间序列预测问题的滞后观察也可以转换为长数据并馈送到MLP。

因此,如果你的数据不是表格数据集(例如图像、文档或时间序列)的形式,我建议至少测试你的问题的MLP。结果可用作比较的基线点,以确认其他可能看起来更适合添加值的模型。

尝试MLP On:

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

何时使用卷积神经网络?

卷积神经网络(CNN)被设计用于将图像数据映射到输出变量。

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

有关CNN的更多详细信息,请参阅帖子:

https://machinelearningmastery.com/crash-course-convolutional-neural-networks/

使用CNN的好处是能够开发二维图像的内部表示。这允许模型在数据中的变体结构中学习位置和比例,这在处理图像时很重要。

使用CNN:

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

总而言之,CNN适合与具有空间关系的数据一起工作。

CNN输入一般是是二维的,场或矩阵,但也可以改变为一维,允许它开发一维序列的内部表示。

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

虽然不是专门针对非图像数据开发的,但CNN在诸如使用文本分类进行情绪分析和相关问题中实现了最先进的结果。

尝试使用CNN:

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

何时使用递归神经网络?

递归神经网络(RNN)被设计用于处理序列预测问题。序列预测问题有多种形式,最好用支持的输入和输出类型来描述。

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

  • 一对多:从作为输入的观察映射到具有多步的作为输出的序列。
  • 多对一:多步序列作为输入映射到类或数量的预测。
  • 多对多:多步序列作为输入映射到具有多步的作为输出的序列。

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

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

https://machinelearningmastery.com/models-sequence-prediction-recurrent-neural-networks/

传统的RNN很难训练。

长短期记忆网络(LSTM)可能是最成功的RNN,因为它克服了训练RNN的问题,所以它被广泛应用。

有关RNN的更多详细信息,请参阅帖子:

https://machinelearningmastery.com/crash-course-recurrent-neural-networks-deep-learning/

一般而言,RNNs和LSTM在处理单词和段落序列(通常称为自然语言处理)时最为成功。

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

RNN用于:

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

递归神经网络不适用于表格数据集。也不适合图像数据输入。

不使用RNN:

  • 表格数据
  • 图像数据

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

更多信息,请参阅帖子:

machinelearningmastery.com/suitability-long-short-term-memory-networks-time-series-forecasting/

然而,它仍然是一个活跃的领域。

也许可以尝试RNN:

  • 时间序列数据

混合网络模型

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

这些类型的网络在更大的模型(具有一个或多个MLP层)中用作层。从技术上讲,这些是混合类型的神经网络架构。

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

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

这种类型的网络也可以堆叠在特定的架构中以解锁新功能,例如可重复使用的图像识别模型,这个模型使用非常深的CNN和MLP网络,可以添加到新的LSTM模型并用于给照片配字幕。同样地,encoder-decoder LSTM网络可用于具有不同长度的输入和输出序列。

重要的是要先清楚地了解你和你的利益相关者对项目的要求,然后找到满足你特定项目需求的网络架构(或者自己开发一个)。

有关帮助你考虑数据和预测问题的良好框架,请参阅帖子:

https://machinelearningmastery.com/how-to-define-your-machine-learning-problem/

总结

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

具体来说,你学到了:

  • 在解决预测建模问题时要关注哪种类型的神经网络。
  • 何时使用,或不使用,或者可以尝试在项目中使用MLP,CNN和RNN。
  • 在选择模型之前,要考虑使用混合模型并清楚地了解项目目标。

原文发布于微信公众号 - ATYUN订阅号(atyun_com)

原文发表时间:2018-07-24

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏磐创AI技术团队的专栏

使用Keras进行深度学习:(五)RNN和双向RNN讲解及实践

27730
来自专栏数据科学与人工智能

【算法】随机森林算法

小编邀请您,先思考: 1 随机森林算法的原理? 2 随机森林算法的应用? 前言: 随机森林是一个非常灵活的机器学习方法,从市场营销到医疗保险有着众多的应用。它可...

37070
来自专栏杨熹的专栏

一个 tflearn 情感分析小例子

学习资料: https://www.youtube.com/watch?v=si8zZHkufRY&list=PL2-dafEMk2A7YdKv4XfKpfb...

45560
来自专栏机器之心

学界 | 新型池化层sort_pool2d实现更快更好的收敛:表现优于最大池化层(附代码实现)

选自Hackernoon 作者:Sahil Singla 机器之心编译 参与:黄小天、路雪 近日,Sahil Singla 在 Medium 上发表了一篇题为《...

380120
来自专栏机器之心

数据科学家必须了解的六大聚类算法:带你发现数据之美

448110
来自专栏人工智能LeadAI

Tensorflow新手通过PlayGround可视化初识神经网络

是不是觉得神经网络不够形象,概念不够清晰,如果你是新手,来玩玩PlayGround就知道,大神请绕道。 PlayGround是一个在线演示、实验的神经网络平台,...

56740
来自专栏数据科学与人工智能

【算法】从头开始编写任何机器学习算法的6个步骤:感知器案例研究

有些算法比其他算法更复杂,所以从一些简单的算法开始,从一些非常简单的算法开始,比如单层感知器。

17330
来自专栏瓜大三哥

视频压缩编码技术(H.264) 之帧间预测

H.264 帧间预测是利用已编码视频帧/场和基于块的运动补偿的预测模式。与以往标准帧间预测的区别在于块尺寸范围更广(从16×16 到4×4)、亚像素运动矢量的使...

1.1K40
来自专栏小樱的经验随笔

神经网络算法

我们在设计机器学习系统时,特别希望能够建立类似人脑的一种机制。神经网络就是其中一种。但是考虑到实际情况,一般的神经网络(BP网络)不需要设计的那么复杂,不需要包...

36540
来自专栏深度学习入门与实践

【原】文本挖掘——特征选择

特征选择有很多方法,看了很多资料后,我总结了以下几种,以后有新内容会随时修改 1.DF——基于文档频率的特征提取方法 概念:DF(document freque...

24050

扫码关注云+社区

领取腾讯云代金券