所有关于网络架构:选择一个网络配置

这些文章将看一个主题,解释一些背景,并回答我从Matlab听到的几个问题®社区。


此列的主题是深入学习网络架构。我选择了反映常见使用而不是学术用例的问题。我会总结这个话题,然后看看四个问题:


1.我应该使用什么架构来对图像进行分类?
2.我可以拿一个预先训练好的CNN(训练出分类输出),然后训练它来解决一个回归问题吗?
3.如何知道为时间序列回归选择哪种技术?
4.是否有网络架构我应该用于小型数据集?

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

  • 该模型的准确性(网络架构是影响准确性的许多因素之一)
  • 模型可以预测的内容
  • 模型预期的输入和输出
  • 层的组合以及数据如何流过层

大多数人都是从别人的层次组合开始训练的。当你第一次开始做任何事情的时候,向专家咨询是个不错的主意。深度学习研究人员一直在探索不同的网络架构和层的组合。他们在google网、ResNet或SqueezeNet(列举几个流行的网络)等架构上得到的结果是相当令人印象深刻的。当您第一次开始时,您可以在解决类似问题的已发布架构的成功基础上进行构建,而不是从头开始。
深度学习工具箱™支持许多预制网络。金宝app看
预训练的深度神经网络
对于完整列表。

在选择网络体系结构之前,了解您拥有的用例类型和可用的公共网络非常重要。

在深入学习时,您可能会遇到这些常见的架构:

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

经常性神经网络(RNN):RNN具有跟踪以前的信息以使未来预测的连接。与CNN不同,其中每个输入被假定为独立的事件,RNN可以处理可能影响对方的数据序列。一个例子是自然语言处理,其中之前的单词影响了接下来是什么的可能性。

长短期内存(LSTM):LSTM网络是序列和信号数据的常用RNN。我会在问题3中进行更详细的细节。


生成对抗网络(GAN):虽然我在下面的问题中没有涵盖这些,但最近的GAN变得更加流行。GAN可以基于现有数据生成新数据(认为实际上不是真实人的人的图像)。我认为这是令人兴奋的,一点未来派;您可以了解更多关于Gans的内容
如何设计和训练生成对抗网络(GANs)
视频和
火车生成对抗网络(GaN)
例子。

Q1

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

非常好的问题。最简单的答案就是你大概想让CNN对图像进行分类。

这就是为什么。

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

CNN.

谈论卷积神经网络时,有人说“Convnet”,但每当我尝试在谈话中丢弃时,我总是觉得我在我实际上没有。

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

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

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

系列网络

alexnet的一个例子。

系列层遵循一条直线。

DAG网络

Googlenet的一个例子。

多行和连接

是一个经典的表现迹象。

LSTM.

长短期内存网络主要与时间序列和序列数据相关联。LSTM网络记得在做出决策之前的一些部分 - 他们在上下文中看到数据,这有助于提高关联。

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


该图说明了一个简单的LSTM网络分类

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

Q2

我可以拿一个预先训练好的CNN(训练出分类输出),然后训练它来解决一个回归问题吗?

是的!您需要更改输出层
classificationOutputLayer
回归outputLayer.
,有一个简单的
文档的例子
这将走过这个过程。

这是A.
快速入门指南
对于深度学习工具箱,为更多这些问题提供方便的参考。

Q3

时间序列回归有很多可供选择的方法!我如何知道选择哪个架构?

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

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

在这种情况下,您可能最好使用机器学习。这是一个简短的(5:56)视频,观察使用机器学习预测比特币波动。这
此示例的源代码
也可用。
点击这里观看视频。
风险管理中的机器学习应用:使用回归学习者应用程序预测比特币波动(5:56)

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

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

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

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

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

这里有一个
例子
展示如何使用CNN去噪语音。
我应该在情景3中提及的另一件事小波也是从时间序列数据中提取信息的半旋转方法,然后用作CNN的输入。有一个很好的
帐面价值
德克萨斯大学奥斯汀分校的研究人员研究了他们如何利用小波和深度学习将大脑信号转换为单词和短语。

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

Q4

我想建立一个分类器,将识别图像,但我有一个有限的数据集。是否有一种网络架构可以更好地处理小型数据集?

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

有关使用特定网络架构的更多信息,我们将一些人放在一起
提示和技巧
这也包括关于预制网络的信息。

目前,我会说,您应该使用您想要的任何网络,无论数据集大小如何,都要考虑使用佩带的网络需要更少的输入数据,或者考虑增强数据集的方法。我的下一列将涵盖掠夺网络和模型,因此请在此主题上留意。

这就是我现在的全部!我希望你在网络架构上享受这个专栏。如果您有其他深度学习主题,您希望看到讨论,弹出下面的表单中的主题或问题。

谢谢你的建议!