卷积神经网络相关知识

概念源自:https://en.wikipedia.org/wiki/Convolutional_neural_network

在机器学习中,卷积神经网络(CNN或ConvNet)是一类深度前馈人工神经网络,已成功应用于分析视觉图像。
CNN使用多层感知器的变体设计为需要最少的预处理[1]。它们也被称为移位不变或空间不变式人工神经网络(SIANN),基于它们的共享权重结构和平移不变性特征[2] [3]。
卷积网络受到生物过程的启发[4],因为神经元之间的连接模式类似于动物视觉皮层的组织。个体皮层神经元只在被称为感受野的视野受限区域对刺激作出反应。不同神经元的感受野部分重叠,覆盖整个视野。
与其他图像分类算法相比,CNN使用相对较少的预处理。这意味着网络学习传统算法中的过滤器是手工设计的。这种独立于先前知识和人力设计的特点是一大优势。
他们在图像和视频识别,推荐系统[5]和自然语言处理[6]中有应用。
1.设计
CNN由一个输入层、一个输出层以及多个隐藏层组成。 CNN的隐藏层通常由卷积层,池化层,完全连接层和规范化层组成[需要的引证]。

惯例是将过程描述为神经网络中的卷积。在数学上它是一种互相关而不是卷积。这只对矩阵中的索引有意义,因此哪些权重被放置在哪个索引处。

1.1卷积

卷积层对输入应用卷积运算,将结果传递到下一层。卷积模拟个体神经元对视觉刺激的反应[7]。每个卷积神经元仅处理其接受场的数据。
尽管完全连接的前馈神经网络可用于学习特征以及对数据进行分类,但将此体系结构应用于图像是不切实际的。由于与图像相关的非常大的输入大小,每个像素都是相关变量,所以即使在浅(与深度相对)架构中,也需要非常多的神经元。例如,尺寸为100 x 100的(小)图像的完全连接层对于第二层中的每个神经元具有10000个权重。卷积操作为这个问题提供了一个解决方案,因为它减少了可用参数的数量,从而使网络更深入,参数更少。例如,无论图像大小如何,大小为5 x 5的平铺区域(每个平铺区域都具有相同的共享权重)仅需要25个可学习参数。通过这种方式,可以解决传统多层神经网络训练中消失或爆炸梯度问题,采用反向传播[引文需要]。
1.2池化
卷积网络可能包括局部或全局合并层[澄清需要],它将一层神经元簇的输出合并为下一层中的单个神经元[9] [10]。例如,最大池使用前一层神经元簇中每个簇的最大值[11]。另一个例子是平均汇集,它使用来自先前层神经元集群中每个神经元的平均值[需要的引证]。
1.3全连接
全连接层将一层中的每个神经元连接到另一层中的每个神经元。它原则上与传统的多层感知器神经网络(MLP)相同。
1.4权重
CNN在卷积图层中共享权重,这意味着图层中的每个接受区域[需要澄清]使用相同的卷积核(权重库[需要澄清]);这减少了内存占用并提高了性能。[如何?] [1]
2.历史
CNN设计遵循生物体中的视觉处理[需要的引证]。
2.1可接受视野
Hubel和Wiesel在二十世纪五十年代和六十年代的研究表明,猫和猴视觉皮层包含对视野的小区域单独作出反应的神经元。如果眼睛不动,视觉刺激影响单个神经元发射的视觉空间区域被称为感受野[引用需要]。相邻细胞具有相似和重叠的感受野[需要引用]。感受野的大小和位置在整个皮质内系统地变化以形成完整的视觉空间图[需要的引证]。每个半球的皮层代表对侧视野[需要的引证]。
他们的1968年的论文[12]发现了大脑中两种基本的视觉细胞类型:

  • 简单细胞,其输出通过具有特定方向的直边在其接受场内最大化
  • 复杂细胞具有较大的感受野,其输出对野外边缘的确切位置不敏感。
2.2神经认知机
Neocognitron [13]于1980年推出。[11] [14]新识别器不要求位于多个网络位置的单元具有相同的可训练权重。这个想法出现在1986年原始反向传播论文的书籍版本中[15]:图14在1988年为了时间信号而开发了新识别器[需要澄清] [16]他们的设计在1998年有所改进,[17]在2003年推广[18]并在同一年简化。[19]
LeNet -5
LeNet-5是LeCun等人开创的7级卷积网络。在1998年,[17]对数字进行分类,被多家银行采用,以识别在32x32像素图像中数字化的支票(支票)上的手写数字。处理更高分辨率图像的能力需要更大和更多的卷积层,因此这种技术受到计算资源可用性的限制。

Shift-invariant神经网络

同样,1988年提出了一种移位不变的神经网络用于图像字符识别。[2] [3]该体系结构和训练算法在1991年进行了修改[20],并应用于医学图像处理[21]和自动检测乳房X线照片中的乳腺癌[22]。

1988年提出了一种不同的基于卷积的设计[23],用于通过解卷积分解一维肌电信号的卷积信号。 1989年该设计被修改为其他基于去卷积的设计。[24] [25]
2.3神经抽象金字塔
卷积神经网络的前馈结构在神经抽象金字塔[26]中通过横向和反馈连接进行了扩展。由此产生的递归卷积网络允许灵活地结合上下文信息来迭代地解决局部模糊。与以前的型号不同,可以生成最高分辨率的图像输出。

2.4GPU实现

继2005年的论文确定了机器学习GPGPU的价值之后,[27]几篇出版物描述了使用GPU训练卷积神经网络的更有效方法[28] [29] [30] [31] 2011年,他们在GPU上进行了改进和实施,结果令人印象深刻。[9] 2012年,Ciresan等人。 (包括MNIST数据库,NORB数据库,HWDB1.0数据集(中文字符),CIFAR10数据集(60000 32x32标记的RGB图像的数据集),[11]和ImageNet数据集。[32]

3.区分特征
虽然传统的多层感知器(MLP)模型成功地用于图像识别[需要示例],但由于节点之间的完全连通性,它们遭受维度诅咒,因此不能很好地适应更高分辨率的图像。
例如,在CIFAR-10中,图像只有大小为32x32x3(32宽,32高,3色通道),因此常规神经网络的第一个隐藏层中的单个完全连接的神经元将具有32 * 32 * 3 = 3,072个重量。然而,200x200的图像会导致200 * 200 * 3 = 120,000重量的神经元。
此外,这样的网络架构没有考虑数据的空间结构,将输入像素与像素靠近在一起的方式相差很远。因此,神经元的完全连通性对于诸如图像识别之类的目的而言是浪费的,图像识别由空间局部输入模式支配。
卷积神经网络是多层感知器的生物启发变体,旨在模拟视觉皮层的行为[引文需要]。这些模型通过利用自然图像中强大的空间局部相关性来缓解MLP架构带来的挑战。与MLP相反,CNN具有以下显着特点:

  • 3D卷的神经元。 CNN的层有三维排列的神经元:宽度,高度和深度。图层内的神经元只连接到图层之前的一个小区域,称为接受区域。不同类型的层,本地和完全连接,堆叠形成一个CNN架构。
  • 本地连接:遵循感受域的概念,CNN通过强化相邻层的神经元之间的局部连接模式来利用空间局部性。因此,该架构确保学习的“滤波器”对空间局部输入模式产生最强的响应。堆叠许多这样的层导致非线性滤波器变得越来越全球化(即,响应于更大的像素空间区域),使得网络首先创建输入的小部分的表示,然后从它们组合更大区域的表示。
  • 共享权重:在CNN中,每个过滤器都在整个视野中复制。这些复制单元共享相同的参数(权重向量和偏差)并形成特征映射。这意味着给定卷积层中的所有神经元对其特定响应域内的相同特征作出响应。以这种方式复制单元允许检测特征,而不管它们在视场中的位置如何,从而构成平移不变性。

这些特性共同使CNN能够更好地推广视觉问题。权重共享极大地减少了所学习的自由参数数量,从而降低了运行网络的内存要求,并允许训练更大,更强大的网络。

4.积木
这部分需要额外的引文进行验证。请通过向可靠来源添加引文来帮助改进本文。无法查证的内容可能被提出异议而移除。 (2017年6月)(了解如何以及何时删除此模板消息)
CNN体系结构由一叠不同的层组成,这些层通过可微函数将输入量转换为输出量(例如保存班级分数)。通常使用几种不同类型的层。我们在下面进一步讨论:
4.1卷积层
卷积层是CNN的核心构件。该图层的参数由一组可学习的过滤器(或内核)组成,这些过滤器具有较小的接受区域,但会延伸到输入区域的整个深度。在正向传递过程中,每个过滤器在输入体积的宽度和高度上进行卷积,计算过滤器条目和输入之间的点积,并生成该过滤器的二维激活图。因此,网络会在输入中的某个空间位置检测到某种特定类型的特征时,学习激活的过滤器。
沿着深度维度堆叠所有滤波器的激活图形成卷积层的全部输出体积。因此,输出体积中的每个条目也可以被解释为神经元的输出,该输出查看输入中的小区域并与同一激活图中的神经元共享参数。
本地连接
在处理诸如图像等高维输入时,将神经元连接到前一卷中的所有神经元是不切实际的,因为这样的网络架构不考虑数据的空间结构。卷积网络通过在相邻层的神经元之间实施本地连接模式来利用空间局部相关性:每个神经元仅连接到输入体积的一小部分区域。这种连接的程度是一个称为神经元接受场的超参数。这些连接在空间上(沿宽度和高度)是局部的,但始终沿着输入音量的整个深度延伸。这种架构可确保学习滤波器对空间局部输入模式产生最强响应。
空间安排
三个超参数控制卷积层输出量的大小:深度,步幅和零填充。

  • 输出音量的深度控制连接到输入音量的相同区域的图层中的神经元数量。这些神经元学习激活输入中的不同特征。例如,如果第一卷积层将原始图像作为输入,则沿着深度维度的不同神经元可能在存在各种定向边缘或颜色斑点的情况下激活。
  • 步幅控制如何分配空间维度(宽度和高度)周围的深度列。当步幅为1时,我们一次将滤镜移动一个像素。这会导致列之间的感知域重叠,也会导致大量输出。当步幅是2(或者很少3或更多)时,滤波器一次滑动时会跳跃2个像素。感受野重叠较少,并且产生的输出体积具有较小的空间维度。[33]
  • 有时,将输入填充到输入音量边界上很方便。这个填充的大小是第三个超参数。填充提供对输出体积空间大小的控制。特别是,有时需要精确地保留输入音量的空间大小。

输出体积的空间尺寸可以通过关于输入体积大小W的函数来计算,Conv层神经元K的核心场大小K,它们所应用的跨度S以及在图1中使用的零填充量P的函数来计算 边界。 计算给定体积中有多少神经元“适合”的公式由下式给出{\displaystyle (W-K+2P)/S+1}如果这个数字不是整数,那么步幅设置不正确,神经元不能以对称的方式平铺在输入体积上。 通常,设置零填充为 P=(K−1)/2{\displaystyle P=(K-1)/2} 。当步幅为S = 1时,确保输入音量和输出音量在空间上具有相同的大小。 例如,尽管通常不需要耗尽前一层的所有神经元,但您可以决定只使用一部分填充。

参数共享
卷积层使用参数共享方案来控制自由参数的数量。它依赖于一个合理的假设:如果补丁特征对于在某个空间位置进行计算是有用的,那么在其他位置计算也应该是有用的。换句话说,将单个2维深度切片表示为深度切片,我们限制每个深度切片中的神经元使用相同的权重和偏差。
由于单个深度切片中的所有神经元共享相同的参数,因此可以将CONV层的每个深度切片中的正向传递计算为神经元权重与输入体积(因此名称:卷积层)的卷积。因此,通常将权重集称为筛选器(或内核),并与输入进行卷积。该卷积的结果是激活图,并且每个不同滤波器的一组激活图沿着深度维度堆叠在一起以产生输出体积。参数共享有助于CNN架构的平移不变性。
有时参数共享假设可能没有意义。当输入到CNN的图像具有特定的中心结构时,尤其如此,我们期望在不同的空间位置学习完全不同的特征。一个实际的例子是当输入是在图像中居中的脸部时:我们可能期望在图像的不同部分学习不同的眼睛特定或头发特定的特征。在这种情况下,通常放宽参数共享方案,而是简单地将该层称为本地连接层。
4.2池化层
CNN的另一个重要概念是池化,这是一种非线性下采样。有几个非线性函数来实现池,其中最大池是最常见的。它将输入图像分割成一组不重叠的矩形,并为每个这样的子区域输出最大值。直觉是一个特征的确切位置并不比其他特征的粗略位置重要。池化层用于逐渐减小表示的空间大小,以减少网络中的参数数量和计算量,并因此控制过拟合。周期性地在CNN体系结构中的连续卷积层之间插入池层是常见的。池化操作提供了另一种形式的翻译不变性。
池层在输入的每个深度切片上独立运行,并在空间上调整其大小。最常见的形式是一个大小为2x2的滤波器的汇聚层,在输入的每个深度切片上沿着宽度和高度加上2个下采样的步幅2,丢弃75%的激活。在这种情况下,每个最大操作超过4个数字。深度维度保持不变。
除了最大池化之外,池化单位还可以使用其他功能,如平均池化或L2规范池化。平均池化通常用于历史上,但最近已经不受欢迎,最大池化在实践中效果更好[34]。
由于代表大小的大幅度减少,趋势是朝着使用更小的过滤器[35]或完全丢弃池化层[36]。
RoI池大小为2x2。在这个例子中,区域提议(输入参数)的大小为7x5。
感兴趣区域(也称为投资回报池)是最大池化的变体,其中输出大小是固定的,并且输入矩形是参数。

池化是基于Fast R-CNN [38]体系结构的用于对象检测的卷积神经网络的重要组成部分。

4.3ReLU层

ReLU是修正线形单元的缩写。 该层应用非饱和激活函数 f(x)=max(0,x){\displaystyle f(x)=\max(0,x)}。 它增加了决策函数和整个网络的非线性特性,而不影响卷积层的接受域。

其他函数也用于增加非线性,例如饱和双曲正切 f(x)=tanh⁡(x){\displaystyle f(x)=\tanh(x)}f(x)=|tanh⁡(x)|{\displaystyle f(x)=|\tanh(x)|}和sigmoid 函数 f(x)=(1+e−x)−1f(x)=(1+e^{-x})^{-1}。 ReLU通常比其他函数更受欢迎,因为它可以快几倍地训练神经网络[39],而不会对泛化精度造成严重损失。

4.4全连接层
最后,在几个卷积和最大池化层之后,神经网络中的高层推理通过全连接层进行。正如在常规神经网络中看到的,全连接层中的神经元与前一层中的所有激活都有关联。因此,它们的激活可以通过矩阵乘法和偏移来计算。
4.5损失层
损失层指定训练如何惩罚预测标签与真实标签之间的偏差,并且通常是最后一层。那里可以使用适合于不同任务的各种损失函数。 Softmax损失用于预测单个K类互斥类。 Sigmoid交叉熵损失用于预测[0,1]中的K个独立概率值。欧几里德损失用于回归实值标签 (−∞,∞).
5.选择超参数
这部分需要额外的引文进行验证。请通过向可靠来源添加引文来帮助改进本文。无法查证的内容可能被提出异议而移除。 (2017年6月)(了解如何以及何时删除此模板消息)
CNN使用比标准MLP更多的超参数。尽管学习率和正则化常数的通常规则仍然适用,但优化时应注意以下几点。
5.1卷积核数量
由于特征映射大小随着深度而减小,所以输入层附近的层往往具有较少的过滤器,而较高层可能具有较多的过滤器。为了均衡每层的计算,特征x像素位置乘积在层间保持大致恒定。保留更多关于输入的信息需要保持激活的总数(特征图的数量乘以像素位置的数量)从一层到下一层不减少。
特征映射的数量直接控制容量,取决于可用示例的数量和任务的复杂性。
5.2滤波器形状
文献中常见的字段形状差异很大,通常根据数据集进行选择。
因此,挑战在于找到适当的粒度级别,以便在给定特定数据集的情况下以适当的规模创建抽象。
5.3最大池化形状
典型值是2×2。非常大的输入量可能需要4x4池在更低层。但是,选择较大的形状会显着降低信号的尺寸,并可能导致信息过度丢失。通常,不重叠的池窗口表现最好。[34]
6.正则化方法
这部分需要额外的引文进行验证。请通过向可靠来源添加引文来帮助改进本文。无法查证的内容可能被提出异议而移除。 (2017年6月)(了解如何以及何时删除此模板消息)
正规化是一个引入额外信息来解决不适当问题或防止过度配合的过程。人工神经网络使用各种正则化。
6.1实证
Dropout

由于完全连接的图层占据了大部分参数,因此很容易出现过拟合。 一种减少过拟合的方法是dropout。[40] [41] 在每个训练阶段,单个节点要么以概率“退出”网络1-p或保持概率p,以便留下缩小的网络; 输入和输出边缘到一个辍学节点也被删除。 只有减少的网络在该阶段的数据上进行了训练。 然后将移除的节点以其原始权重重新插入网络。

在训练阶段,隐藏节点将被丢弃的概率通常是0.5;对于输入节点,这应该低得多,直观地是因为当输入节点被忽略时,信息直接丢失。
在训练结束后的测试时间内,我们理想地希望找到所有可能的 2n2^{n}辍学网络的样本平均值;不幸的是,这对n的大数值是不可行的。然而,我们可以找到一个近似值,使用整个网络,每个节点的输出权重为p,所以任何节点输出的期望值与训练阶段相同。这是丢失方法的最大贡献:虽然它有效地生成 2n2^{n}个神经网络,并且因此允许模型组合,但在测试时间仅需要测试单个网络。
通过避免训练所有训练数据上的所有节点,丢失减少了过度拟合。该方法还显着提高了训练速度。这使得模型组合实用,即使对于深层神经网络也是如此。该技术似乎可以减少节点的交互作用,使他们学习更强大的功能,更好地推广到新的数据。
DropConnect 
DropConnect [42]是丢失概率,其中每个连接而不是每个输出单位可以以概率1-p丢弃。每个单元因此接收来自前一层中的随机子单元的输入。
DropConnect与丢失类似,因为它在模型中引入了动态稀疏性,但不同之处在于稀疏性取决于权重,而不是图层的输出向量。换句话说,具有DropConnect的完全连接层成为一个稀疏连接层,其中在训练阶段中随机选择连接。
随机池化
Dropout的一个主要缺点是它对于卷积层没有相同的好处,在那里神经元没有完全连接。
在随机池化中[43],常规确定性汇集操作被随机过程替代,其中每个汇集区域内的激活是根据汇集区域内的活动给出的多项分布随机挑选的。该方法无超参数,可与其他正则化方法结合使用,如退出和数据增强。
随机池的另一种观点是,它相当于标准的最大池,但有许多输入图像的副本,每个副本都有很小的局部变形。这与输入图像的显式弹性变形类似,[44]可以提供出色的MNIST性能。在多层模型中使用随机池会产生指数级的变形,因为高层中的选择与下面的无关。
人工数据
由于模型过拟合的程度取决于其功率和其接受的训练量,因此提供具有更多训练样例的卷积网络可以减少过拟合。由于这些网络通常使用所有可用数据进行培训,因此一种方法是从头开始生成新数据(如果可能)或扰乱现有数据以创建新数据。例如,输入图像可能会不对称地裁剪几个百分比,以创建具有与原始标签相同标签的新示例。
6.2明确
提早停止
防止网络过度配置的最简单方法之一就是在过度配合有机会发生之前停止训练。它带来了学习过程停止的缺点。
参数数量
另一种防止过度拟合的简单方法是限制参数数量,通常通过限制每层中隐藏单元的数量或限制网络深度。对于卷积网络,过滤器大小也会影响参数的数量。限制参数的数量直接限制了网络的预测能力,降低了它可以对数据执行的功能的复杂性,从而限制了过度拟合的数量。这相当于一个“零规范”。
权重衰减

加法正则化的一种简单形式是权重衰减,它简单地增加了一个额外的误差,与权重向量的权重(L1范数)或平方震级(L2范数)之和成正比,与每个节点的误差成正比。通过增加比例常数可以降低可接受的模型复杂度水平,从而增加对大权向量的惩罚。

L2正则化是正则化最常见形式。它可以通过直接在目标中惩罚所有参数的平方幅度来实现。 L2正则化具有严重惩罚峰值权重矢量并优选漫射权重矢量的直观解释。由于权重和投入之间的倍增交互作用,这具有鼓励网络使用所有输入的有用属性,而不是一些输入。
L1正则化是另一种常见形式。可以将L1与L2正则化组合(这称为弹性网络正则化)。 L1正则化导致优化过程中权重向量变得稀疏。换句话说,具有L1正则化的神经元最终只使用其最重要输入的稀疏子集,并且变得对噪声输入几乎不变。
最大范数约束
正则化的另一种形式是对每个神经元的权向量的强度执行绝对上限,并使用投影的梯度下降来强制约束。在实践中,这对应于执行正常的参数更新,然后通过夹紧每个神经元的权矢量 w→{\vec {w}} 来执行约束以满足 ‖w→‖2<c{\displaystyle \|{\vec {w}}\|_{2}<c}。 c的典型值是3-4的数量级。一些论文使用这种形式的正则化时报告了改进[46]。
7.分层坐标框架
共享失去了高级部分(如脸部图像中的鼻子和嘴巴)之间精确的空间关系。身份识别需要这些关系。重叠池以便每个功能都出现在多个池中,有助于保留信息。单靠翻译不能将对几何关系的理解推断为一种全新的观点,如不同的方向或规模。另一方面,人们非常善于推断;一旦他们从不同的角度认识到它,就会看到一个新的形状[47]。
目前,解决这个问题的常用方法是对网络进行不同方向,尺度,光照等变换数据的训练,以便网络能够应对这些变化。对于大型数据集,这是计算密集型的。另一种方法是使用坐标系的层次结构,并使用一组神经元来表示特征形状与其相对于视网膜的姿态的连接。相对于视网膜的姿势是视网膜的坐标系和内在特征的坐标系之间的关系[48]。
因此,表示某件事的一种方式是将坐标系嵌入其中。完成此操作后,可以通过使用其各部分姿态的一致性来识别大特征(例如,鼻子和嘴巴的姿势可以对整个脸部的姿态进行一致的预测)。使用这种方法确保当较低等级(例如鼻子和嘴巴)对其姿势的预测达成一致时,存在较高等级的实体(例如脸部)。代表姿态的神经元活动向量(“姿态向量”)允许将空间变换建模为线性操作,使网络更容易学习视觉实体的层次结构并跨视点进行概括。这与人类视觉系统施加坐标系以表示形状的方式类似。
8.应用
8.1图像识别

CNN经常用于图像识别系统。据报道,2012年MNIST数据库的错误率为0.23%。[11]另一篇关于使用CNN进行图像分类的论文报道说,学习过程“非常快”;在同一篇论文中,截至2011年的最佳公布结果在MNIST数据库和NORB数据库中获得[9]。

当应用于面部识别时,CNN实现了错误率的大幅降低[50]。另一篇论文报道“对超过10个科目的5600张静态图像”的识别率为97.6%[4]。人工培训后,CNN用于客观评估视频质量;所得到的系统具有非常低的均方根误差。

ImageNet大规模视觉识别挑战是对象分类和检测的基准,包含数百万的图像和数百个对象类。在ILSVRC 2014中,[52]大规模的视觉识别挑战,几乎所有排名靠前的团队都使用CNN作为他们的基本框架。优胜者GoogLeNet [53](DeepDream的基础)将目标检测的平均精度提高到0.439329,分类错误降低到0.06656,这是迄今为止最好的结果。其网络应用了30多个层次。在ImageNet测试中,卷积神经网络的性能与人类接近。[54]最好的算法仍然与小或薄的物体纠缠在一起,比如花的茎上有一只小蚂蚁或手里拿着一根羽毛笔的人。他们也有使用滤镜变形的图像的麻烦,这是现代数码相机日益普遍的现象。相比之下,这些图像很少麻烦人类。然而,人类往往会遇到其他问题。例如,它们不擅于将物体分类为细粒度类别,例如特定品种的狗或鸟种,而卷积神经网络则处理这种情况。
2015年,CNN的多层次展现了从广泛的角度发现脸部的能力,包括颠倒,即使部分被竞争性表演遮挡。该网络训练了20万张图像的数据库,其中包括各种角度和方向的脸部以及另外2000万张没有脸部的图像。他们在50,000次迭代中使用了128个图像的批次。
8.2视频分析
与图像数据域相比,将CNN应用于视频分类的工作相对较少。视频比图像更复杂,因为它具有另一个(时间)维度。然而,CNN在视频领域的一些扩展已经被探索。一种方法是将空间和时间视为输入的等效维度,并在时间和空间上执行卷积[56] [57]。另一种方法是融合两个卷积神经网络的特征,一个用于空间,另一个用于时间流[58] [59] [60]。基于卷积门限制玻尔兹曼机[61]和独立子空间分析[62],引入了无监督学习时空特征训练方案。
8.3自然语言处理
CNN也探索了自然语言处理。 CNN模型对于各种NLP问题是有效的,并且在语义分析,搜索查询检索,句子建模,分类,预测以及其他传统的NLP任务中取得了优异的结果[68]。
8.4药物发现
CNN已被用于药物发现。预测分子和生物蛋白之间的相互作用可以确定潜在的治疗方法。 2015年,Atomwise推出了首个基于结构的合理药物设计的深度学习神经网络AtomNet [69]。该系统直接训练化学相互作用的三维表示。类似于图像识别网络如何学会将较小的,空间上接近的特征组合成更大,更复杂的结构,[70] AtomNet发现化学特征,如芳香性,sp3碳和氢键。随后,AtomNet被用于预测多种疾病靶点的新型候选生物分子,最显着的是治疗埃博拉病毒[71]和多发性硬化症[72]。
8.5跳棋
有线电视网络已被用于跳棋的比赛中。从1999年到2001年,Fogel和Chellapilla发表了论文,展示了卷积神经网络如何学会使用共同进化来发挥跳棋。学习过程没有使用以前的人类职业游戏,而是集中在棋盘中包含的最少信息集:棋子的位置和类型以及棋子差异[澄清]。最终,这个节目(Blondie24)在对阵球员的165场比赛中进行了测试,并且排在最高的0.4%。[73] [74]它在“专家级”游戏中也赢得了与“奇努克”计划的胜利。
8.6Go

CNN已经被用于电脑Go。 2014年12月,Clark和Storkey发表了一篇文章,表明通过监督学习来自人类职业游戏数据库的CNN训练可能会超越GNU Go,并在Fuego花费一小部分时间赢得一些针对蒙特卡洛树搜索Fuego 1.1的游戏播放。[76]后来宣布一个大型的12层卷积神经网络已经正确预测了55%职位的职业移动,相当于一个6人类球员的准确性。当经过训练的卷积网络直接用于玩Go游戏时,没有任何搜索,它在97%的游戏中击败了传统的搜索程序GNU Go,并且匹配了Monte Carlo树搜索程序Fuego的性能,模拟了一万个播放一百万个职位)。

AlphaGo使用了几个CNN来选择移动尝试(“策略网络”)和评估位置(“价值网络”),这是第一个击败当时最好的人类球员。
9.微调
对于许多应用程序,很少有培训数据可用。卷积神经网络通常需要大量的训练数据以避免过度拟合。一种常用的技术是从相关域中的大型数据集上训练网络。一旦网络参数已经收敛,则使用域内数据执行额外的训练步骤以微调网络权重。这使得卷积网络可以成功应用于小训练集的问题[79]。
10.扩展
10.1深度Q网络

深度Q网络(DQN)是一种深度学习模型,它将深度CNN与强化学习形式Q-learning相结合。与早期的强化学习代理不同,DQN可以直接从高维感官输入中学习。
初步结果于2014年提交,并在2015年2月发表了一份附带文件。[80]该研究描述了Atari 2600游戏的应用。其他深入的强化学习模式在它之前。[81]
10.2深层信念网络
卷积深层信念网络(CDBN)具有与卷积神经网络非常相似的结构,并且与深层信念网络类似地进行训练。因此,他们利用像CNN这样的二维图像结构,并利用像深度信念网络这样的预训练。它们提供了可用于许多图像和信号处理任务的通用结构。使用CDBN获得标准图像数据集的基准结果,如CIFAR [82] [83]。
10.3时间延迟神经网络
时间延迟神经网络允许对语音信号进行时变处理,类似于CNN提供的平移不变性。它们是在20世纪80年代初引入的。神经元输出的平铺可以覆盖定时阶段。[51]
11.通用库
Caffe:卷积神经网络的流行库。由伯克利视觉和学习中心(BVLC)创建。它支持CPU和GPU。用C ++开发,并有Python和MATLAB包装器。
Deeplearning4j:在支持多GPU的Spark上深入学习Java和Scala。用于在C ++科学计算引擎上运行的JVM生产栈的通用深度学习库。允许创建自定义图层。与Hadoop和Kafka集成。
deeplearning-hs:在Haskell深入学习,支持使用CUDA进行计算。
MatConvNet:MATLAB中的一个convnet实现。
MXNet:一种可扩展的开源深度学习框架,包括支持分布式多GPU和CPU。它支持多种语言的接口(C ++,Python,Julia,Matlab,JavaScript,Go,R,Scala,Perl,Wolfram语言)。
neon:卷积神经网络和深度学习的最快框架,支持GPU和CPU后端。前端使用Python,而快速内核使用自定义着色器程序集编写。由英特尔收购的Nervana Systems创建。
TensorFlow:Apache 2.0许可的Theano类库,支持CPU,GPU和Google专有的TPU,[85] mobile
Theano:Python的参考深度学习库,API与流行的NumPy库大致兼容。允许用户编写符号数学表达式,然后自动生成它们的派生物,从而使用户不必编码梯度或反向传播。这些符号表达式会自动编译为CUDA代码,以实现快速的GPU实现。
Torch(www.torch.ch):一个科学计算框架,广泛支持机器学习算法,用C和lua编写。主要作者是Ronan Collobert,现在在Facebook AI Research和Twitter上使用它。
微软认知工具包:微软公司编写的深度学习工具包,它具有多种增强多节点可扩展性的独特功能。它支持用于C ++和Python培训的完整接口,并支持C#和Java中的模型推断。
12.通用API 
Keras:用Python编写的TensorFlow和Theano卷积神经网络的高级API [86]。
13.流行文化
卷积神经网络在2017年小说“Infinity Born”中提到。[87]

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值