关于网络架构:选择网络配置

这些文章将介绍一个主题,解释一些背景知识,并回答我从MATLAB中听到的一些问题®社区
本专栏的主题是深入学习网络体系结构。我选择了反映常见用法而不是学术用例的问题。我将总结主题,然后看四个问题:
1.我应该使用什么架构来对图像进行分类?
2.我可以把预先训练的CNN(训练分类输出)训练它为回归问题吗?
3.我如何知道时间序列回归要选择哪种技术?
4.对于一个小数据集,我是否应该使用网络架构?

网络架构定义了深度学习模型的构建方式,更重要的是它的设计目的。架构将决定:

  • 模型的准确性(网络体系结构是影响准确性的众多因素之一)
  • 模型能预测什么
  • 模型期望的输入和输出
  • 层的组合以及数据如何在层中流动

大多数人从别人的图层组合开始训练。当第一次开始做任何事情时,向专家咨询可能是个好主意。一段时间以来,深度学习研究人员一直在探索不同的网络架构和层的组合。他们使用GoogLeNet、ResNet或SqueezeNet(举几个流行的网络)等架构所取得的成果令人印象深刻。当第一次开始时,您可以在已发布体系结构的成功基础上构建解决类似问题的体系结构,而不是从头开始。
深度学习工具箱™ 支持许多预训练网络。看见万博1manbetx
预先训练的深度神经网络
查看完整的列表。

在选择网络体系结构之前,重要的是要了解您拥有什么样的用例和可用的公共网络。

在开始深入学习时,您可能会遇到以下常见体系结构:

卷积神经网络(CNN):CNN通常与图像关联作为输入数据,但它们也可以用于其他输入数据,我将在问题1中详细介绍这些细节。

递归神经网络(RNN):RNN具有跟踪先前信息以进行未来预测的连接。与CNN不同,CNN假设每个输入都是独立事件,RNN可以处理可能相互影响的数据序列。一个例子是在自然语言处理中,前面的单词会影响下一个单词出现的可能性。

长短时记忆(LSTM):LSTM网络是序列和信号数据的常用RNN。我将在问题3中详细介绍。


生成性对抗网络(GAN):虽然我在下面的问题中没有涉及这些,但GAN最近变得更加流行。GANs可以基于现有数据生成新数据(想想那些实际上不是真人的人的图像)。我觉得这很刺激,有点未来主义;您可以在中了解有关GANs的更多信息
生成式对抗网络(gan)的设计与训练
视频和
列车生成对抗网络(GAN)
实例

Q1

我想要一个分类图像的模型。我应该使用哪种架构?

非常好的问题。简单的答案就是你可能希望CNN能对图片进行分类

原因如下。

让我们从CNN和LSTM网络是什么开始,以及它们是如何被普遍使用的。

有线电视新闻网

当谈到卷积神经网络时,有些人会说“ConvNet”,但每当我试图在谈话中放弃它时,我总是觉得自己在努力保持冷静,而实际上我并没有。

cnn由许多层组成,但遵循某种类似于| ReLU |池化的卷积模式,这种模式会不断重复(不断重复)。它们在图像分类中非常有用,因为它们非常擅长于局部空间模式匹配,而且在图像特征提取方面也普遍优于其他方法。请记住cnn的核心是卷积.将输入图像与一系列过滤器进行卷积,可以在不丢失相邻像素之间空间交互的情况下突出图像中的特征。

深度学习简介:什么是卷积神经网络?(44)

这个主题有很多变体,但cnn的一些常见配置如下:

系列网络

AlexNet的一个例子。

系列图层遵循一条直线。

DAG网络

谷歌网的一个例子。

多条线路和连接

是DAG的经典标志。

LSTM

长-短期记忆网络主要与时间序列和序列数据有关。LSTM网络在做出决策之前会记住部分数据,现在他们在上下文中看到数据,这有助于更好地进行关联。

经验法则是,时间序列数据通常最适合于LSTM网络,而图像数据可靠地适合于cnn。信号数据是证明这一规则的例外。人们同时使用cnn和LSTM网络来获取信号数据。我写了一
文章
关于深度学习的非图像应用,包括一个可以使用CNN进行语音识别的示例。


此图显示了一个简单的LSTM网络分类:

这个图说明了一个简单的LSTM网络的体系结构回归:

问题2

我可以把预先训练的CNN(训练分类输出)训练它为回归问题吗?

对您需要从更改输出层
classificationOutputLayer
回归输出层
,有一个简单的
文档的例子
这将引导你完成这个过程。

这里有一个
快速入门指南
对于深度学习工具箱,它为更多此类问题提供了方便的参考。

第三季度

时间序列回归有很多选择!我如何知道该选择哪种架构?

我的下意识反应是总是建议LSTM网络!然而,有许多可用的技术是有原因的,其中一些在某些场景下会更好地工作。在没有更多信息的情况下,我无法具体回答这个问题,所以让我们来看看几个可能的场景。

时间序列回归情景#1:我的输入是低复杂度的时间序列数据。我有一系列的数据点,我想用来预测未来的事件。

在这种情况下,你最好使用机器学习。这是一个简短的视频(3:43),看看如何使用机器学习预测电力负荷。
点击这里观看视频。
使用回归学习器应用程序预测电力负荷(3:43)

时间序列回归情景#2:我有来自多个传感器的数据,希望预测剩余使用寿命(机器需要维修或更换之前的时间)。

我和我的同事在工业自动化领域的客户身上看到了这个问题,他们需要在问题变得危险或昂贵之前识别出问题。这一次,您可能希望通过机器学习回归使用LSTM网络。这种方法减少了手动识别特征的需要,对于多个传感器来说,这将是一个重要的任务。

这里有一个
实例
您可以了解如何使用LSTM网络预测剩余使用寿命。

时间序列回归情景#3:我有音频数据想去噪。

在这里你可以使用CNN。这种方法的重要之处在于,在将信号传递到网络之前,先将其转换成图像。这意味着信号通过傅里叶变换或其他时频操作变成图像表示。使用图像提供了一种方法,可以看到你可能无法在原始信号中可视化的特征。所使用的网络可以是为图像设计的预先训练的网络,因为傅里叶变换本质上是一幅图像。

这里有一个
实例
演示如何使用CNN对语音进行去噪。
对于场景3中的任何人,我应该提到的另一件事是小波也是一种半流行的方法,从时间序列数据中提取信息,然后将其用作CNN的输入。有一个漂亮的房间
帐面价值
来自德克萨斯大学奥斯汀分校的研究人员,他们如何使用小波和深度学习将大脑信号转换成单词和短语。

现在,再一次,你可以做你想做的。很有可能在场景1中使用LSTM网络,或者在场景2中使用CNN。这些场景只是给你一个起点。

第四季度

我想构建一个识别图像的分类器,但我的数据集有限。是否有一种网络架构在使用小数据集时工作得更好?

网络架构和预先训练的网络是携手并进的。预训练模型是一个已经经过训练的神经网络。网络的权重和偏差根据输入数据进行调整,网络可以更快地为新任务进行重新训练。这个过程被称为迁移学习,有时需要更少的图像和更小的数据集。另一种探索方法是通过模拟或扩充“创造”更多数据。

有关何时使用特定网络体系结构的更多信息,我们将
提示和技巧
这也包括关于预训练网络的信息。

现在,我要说,不管数据集的大小如何,你都应该使用你喜欢的网络,但是考虑使用一个预先训练的网络来减少输入数据,或者考虑增加数据集的方法。我的下一篇专栏文章将介绍预训练的网络和模型,所以请关注更多关于这个主题的内容。

还要吗?

这是我的全部!我希望你喜欢这个关于网络架构的专栏。如果您希望看到讨论其他深入学习主题,请在下表中弹出一个主题或问题。
谢谢你的建议!