指定的卷积神经网络层
第一步创建和培训新的卷积神经网络(事先)是定义网络架构。这一主题解释了事先层次的细节,和他们出现在事先的顺序。深度学习层的完整列表和如何创建它们,看到的<一个href="//www.tatmou.com/au/au/help/deeplearning/ug/list-of-deep-learning-layers.html" class="a">深度学习层的列表一个>。了解LSTM网络序列分类和回归,明白了<一个href="//www.tatmou.com/au/au/help/deeplearning/ug/long-short-term-memory-networks.html" class="a">长期短期记忆网络一个>。学习如何创建您自己的自定义层,明白了<一个href="//www.tatmou.com/au/au/help/deeplearning/ug/define-custom-deep-learning-layers.html" class="a">定义定制的深度学习层一个>。
网络体系结构可以取决于类型和数量的层包括在内。层包含的类型和数量取决于特定的应用程序或数据。例如,分类网络通常softmax层和一个分类层,而回归网络必须有一个回归层的网络。一个更小的网络只有一个或两个卷积层足以学习少量的灰度图像数据。另一方面,对于更复杂的数据与数以百万计的彩色图像,您可能需要一个更复杂的网络与多个卷积和完全连接层。
指定架构的网络层连接顺序,直接创建一个数组的层。例如,要创建一个深层网络将28-by-28灰度图像分为10类,指定层数组
层= [imageInputLayer ([28 28 1]) convolution2dLayer(3 16“填充”,1)batchNormalizationLayer reluLayer maxPooling2dLayer(2“大步”2)convolution2dLayer(3, 32岁的“填充”,1)batchNormalizationLayer reluLayer fullyConnectedLayer (10) softmaxLayer classificationLayer);
层
是一个数组的指定的体系结构神经网络层连接顺序,直接创建一个数组的层。指定一个网络层的体系结构可以有多个输入或输出,使用<一个href="//www.tatmou.com/au/au/help/deeplearning/ref/nnet.cnn.layergraph.html">LayerGraph
对象。
图像输入层
创建一个图像输入层使用<一个href="//www.tatmou.com/au/au/help/deeplearning/ref/nnet.cnn.layer.imageinputlayer.html">imageInputLayer
。
图像输入图像网络输入层和应用数据规范化。年代p一个n>
指定图像大小使用
卷积的层
一个二维卷积层滑动卷积过滤器适用于二维输入。年代p一个n>创建一个二维卷积层使用<一个href="//www.tatmou.com/au/au/help/deeplearning/ref/nnet.cnn.layer.convolution2dlayer.html">convolution2dLayer
。
卷积层包含各种组件。<年代up class="footnote">1一个>
过滤器和步
卷积层由神经元连接到输入图像的条件或前一层的输出。层学习这些地区本地化的特性,通过图像扫描。当创建一个层使用<一个href="//www.tatmou.com/au/au/help/deeplearning/ref/nnet.cnn.layer.convolution2dlayer.html">convolution2dLayer
功能,您可以指定这些地区使用的大小
对于每个区域,
这张图片显示了一个3×3过滤器通过输入扫描。较低的地图代表输入和上面的地图代表输出。
的步长过滤器被称为移动<年代p一个ncl一个年代年代="emphasis">步。您可以指定的步长
这张图片显示了一个3×3过滤器扫描通过输入2的步伐。较低的地图代表输入和上面的地图代表输出。
权重的数量在一个过滤器h*w*c,在那里h是高度,w分别是滤波器的宽度,然后呢c在输入通道的数量。例如,如果输入是一个彩色图像,颜色通道的数量是3。过滤器的数量决定了卷积的输出层的通道数量。指定过滤器使用的数量
扩张卷积
扩张卷积是一种卷积的过滤器是扩大了空间之间插入的元素过滤器。指定使用的膨胀因素
使用扩张增加接受域的卷积(该区域的输入层可以看到)的层不增加参数的数量或计算。
层扩展每个滤芯过滤器插入0之间。膨胀系数确定的步长采样滤波器的输入或等同于upsampling因素。它对应于一个有效的过滤的大小(过滤器的大小- 1)*膨胀系数+ 1。例如,一个3×3过滤器与扩张的因素
这张图片显示了一个3×3过滤器扩张通过输入两个扫描的因素。较低的地图代表输入和上面的地图代表输出。
特征图
作为一个过滤器沿着输入,它使用相同的权重集和卷积的偏见,形成一个<年代p一个ncl一个年代年代="emphasis">特征映射。每个特性映射是一个卷积的结果使用一组不同的重量和一个不同的偏见。因此,特征图谱的数量等于过滤器的数量。参数的数量在一个回旋的层(h*w*c+ 1)*数量的过滤器),1是偏见。
填充
你也可以填充应用到输入图像边界垂直和水平使用
这张图片显示了一个3×3过滤器扫描通过填充的输入尺寸1。较低的地图代表输入和上面的地图代表输出。
输出的大小
输出卷积层的高度和宽度(输入的大小- ((过滤器的大小- 1)*膨胀系数+ 1)+ 2 *填充) /步+ 1。这个值必须是一个整数为整个图像完全覆盖。如果这些选项的组合不引起图像完全覆盖,软件默认情况下忽略了图像的其余部分在右边和底部边缘的卷积。
数量的神经元
输出的产品高度和宽度给神经元功能的总数地图,说地图大小。神经元的总数(输出大小)卷积层地图大小*数量的过滤器。
例如,假设输入图像32-by-32-by-3彩色图像。卷积和八层过滤器和过滤器5-by-5大小,每个滤波器权重的数量是5 * 5 * 3 = 75,和参数层的总数(75 + 1)* 8 = 608。如果跨越2在每个方向和填充指定大小为2,则16 x16每个特性图。这是因为(32 - 5 + 2 * 2)/ 2 + 1 = 16.5,和一些最外层填充图像的右侧和底部就会被丢弃。最后,神经元层的总数是16 * 16 * 8 = 2048。
通常,这些神经元的结果通过某种形式的非线性,如纠正线性单元(ReLU)。
学习参数
你可以调整层的学习速率和正则化选项时使用名称-值对参数定义卷积层。如果你选择不指定这些选项,然后
层数
一个卷积神经网络可以包含一个或多个卷积层。卷积层的数量取决于数据的数量和复杂性。
批归一化层
创建一个批处理使用归一化层<一个href="//www.tatmou.com/au/au/help/deeplearning/ref/nnet.cnn.layer.batchnormalizationlayer.html">batchNormalizationLayer
。
一批标准化规范化的数据在所有观测mini-batch层每个通道独立。加快卷积神经网络的训练,减少对网络的初始化,使用批卷积层之间的归一化层和非线性,如ReLU层。年代p一个n>
第一层可实现每个通道的激活减去mini-batch均值和除以mini-batch标准差。然后,层变化的输入可学的抵消β可学的比例因子和尺度γ。β和γ本身可学的参数更新在网络训练。
批量标准化层正常激活和梯度通过神经网络传播,使网络训练一个更简单的优化问题。充分利用这个事实,你可以尝试增加了学习速率。自优化问题更简单,参数更新可以更大,网络可以更快的学习。你也可以尝试减少L<年代ub>2年代ub>和辍学正规化。批归一化层,激活特定的图像在训练取决于图像出现在同一个mini-batch发生。充分利用这个正则化效果,试着在每次训练前训练数据时代洗牌。指定的频率调整数据训练期间,使用
ReLU层
创建一个ReLU层使用<一个href="//www.tatmou.com/au/au/help/deeplearning/ref/nnet.cnn.layer.relulayer.html">reluLayer
。
ReLU层进行阈值操作每个元素的输入,任何小于零的值被设置为零。年代p一个n>
卷积和批量标准化层通常是紧随其后的是一个非线性激活函数如纠正线性单元(ReLU),指定一个ReLU层。ReLU层执行一个阈值操作每个元素,任何输入值小于零设置为零,也就是说,
ReLU层不会改变其输入的大小。
还有其他非线性激活层执行不同的操作,可以提高网络精度对于某些应用程序。活化层的列表,请参阅<一个href="//www.tatmou.com/au/au/help/deeplearning/ug/list-of-deep-learning-layers.html" class="a">激活层一个>。
交叉道正常化(本地响应正常化)层
创建一个交叉道归一化层使用<一个href="//www.tatmou.com/au/au/help/deeplearning/ref/nnet.cnn.layer.crosschannelnormalizationlayer.html">crossChannelNormalizationLayer
。
channel-wise当地响应(交叉流道)归一化层进行channel-wise正常化。年代p一个n>
这一层执行channel-wise当地反应正常化。它通常遵循ReLU激活层。这一层替换每个元素归一化值取得使用元素从一定数量的邻近频道(归一化窗口中的元素)。也就是说,对于每个元素<年代p一个ncl一个年代年代="inlineequation">
在输入,
在哪里K,α,β是hyperparameters正常化,党卫军元素的平方和的正常化窗户吗<一个href="//www.tatmou.com/au/au/help/deeplearning/ug/layers-of-a-convolutional-neural-network.html" class="intrnllnk">[2]一个>。您必须指定使用规范化的大小窗口
前面的归一化公式比提出了略有不同<一个href="//www.tatmou.com/au/au/help/deeplearning/ug/layers-of-a-convolutional-neural-network.html" class="intrnllnk">[2]一个>。您可以获得相当于公式乘以
马克斯和平均池层
一层二维最大池执行downsampling除以输入矩形池区域,然后计算每个区域的最大。年代p一个n>创建一个马克斯池层使用<一个href="//www.tatmou.com/au/au/help/deeplearning/ref/nnet.cnn.layer.maxpooling2dlayer.html">maxPooling2dLayer
。
二维平均池层执行downsampling除以输入矩形池区域,然后计算每个区域的平均值。年代p一个n>创建一个平均池层使用<一个href="//www.tatmou.com/au/au/help/deeplearning/ref/nnet.cnn.layer.averagepooling2dlayer.html">averagePooling2dLayer
。
池层按照卷积层采样下来,因此,减少连接下面的层。他们不执行任何学习本身,而是减少参数的数量在下面层。他们也帮助减少过度拟合。
马克斯池层返回输入的矩形区域的最大值。矩形区域的大小决定的
池层扫描输入步中水平和垂直尺寸您可以指定使用
不重叠的区域(池大小和步是平等的),如果输入池层是吗n——- - - - - -n,池区域大小h——- - - - - -h,然后汇聚层down-samples地区h[6]一个>。最大的输出,或平均池一层一层卷积的一个频道n/h——- - - - - -n/h。重叠的区域,池的输出层(输入的大小- - - - - -池大小+ 2 *填充) /步+ 1。
辍学层
创建一个辍学层使用<一个href="//www.tatmou.com/au/au/help/deeplearning/ref/nnet.cnn.layer.dropoutlayer.html">dropoutLayer
。
辍学层随机集输入元素与给定的概率为零。年代p一个n>
在训练时,层随机输入元素设置为零的辍学的面具
类似于马克斯或平均池层,没有学习发生在这一层。
完全连接层
创建一个完全连接层使用<一个href="//www.tatmou.com/au/au/help/deeplearning/ref/nnet.cnn.layer.fullyconnectedlayer.html">fullyConnectedLayer
。
一个完全连接层增加输入权重矩阵,然后添加一个偏差向量。年代p一个n>
卷积(和采样下来)层后面跟着一个或多个完全连接层。
顾名思义,所有神经元完全连接层连接到所有的神经元在前面的层。这一层结合的所有功能(本地信息)学习通过前面的层在图像识别更大的模式。对于分类问题,最后完全连接层结合了特征对图像进行分类。这是原因
您还可以调整学习速率和正则化参数这一层使用名称-值对相关参数在创建完全连接层。如果你选择不调整它们,然后
完全连接层增加权重矩阵的输入W然后添加一个偏差向量b。
如果层是一个序列的输入(例如,在一个LSTM网络),然后完全连接层行为独立在每个时间步。例如,如果层之前完全连接层输出数组X的大小D——- - - - - -N——- - - - - -年代,然后完全连接层输出数组Z的大小
输出层
Softmax和分类层
softmax层softmax函数适用于输入。年代p一个n>创建一个softmax层使用<一个href="//www.tatmou.com/au/au/help/deeplearning/ref/nnet.cnn.layer.softmaxlayer.html">softmaxLayer
。
一个分类层计算熵损失与互斥类分类和加权分类任务。年代p一个n>创建一个分类层使用<一个href="//www.tatmou.com/au/au/help/deeplearning/ref/classificationlayer.html">classificationLayer
。
对于分类问题,softmax层,然后一个分类层通常遵循最终完全连接层。
输出单元将softmax激活函数功能:
在哪里<年代p一个ncl一个年代年代="inlineequation"> 和<年代p一个ncl一个年代年代="inlineequation"> 。
将softmax函数输出单位激活函数后,最后完全连接层多层次分类问题:
在哪里<年代p一个ncl一个年代年代="inlineequation"> 和<年代p一个ncl一个年代年代="inlineequation"> 。此外,<年代p一个ncl一个年代年代="inlineequation"> ,<年代p一个ncl一个年代年代="inlineequation"> 条件概率样本给定类的吗r,<年代p一个ncl一个年代年代="inlineequation"> 是先验概率的类。
也被称为将softmax函数<年代p一个ncl一个年代年代="emphasis">归一化指数,可以认为是多层次物流乙状结肠函数的泛化<一个href="//www.tatmou.com/au/au/help/deeplearning/ug/layers-of-a-convolutional-neural-network.html" class="intrnllnk">[8]一个>。
对于典型的分类网络,分类层通常遵循softmax层。在分类层,
在哪里N样品的数量,K类的数量,<年代p一个ncl一个年代年代="inlineequation"> 是类的重量吗我,<年代p一个ncl一个年代年代="inlineequation"> 的指标吗n样品属于我th类,<年代p一个ncl一个年代年代="inlineequation"> 是输出样本吗n为类我在这种情况下,它是将softmax函数的值。换句话说,<年代p一个ncl一个年代年代="inlineequation"> 的概率是网络的同事吗nth输入与类我。
回归层
创建一个回归层使用<一个href="//www.tatmou.com/au/au/help/deeplearning/ref/regressionlayer.html">regressionLayer
。
一层回归计算half-mean-squared-error损失回归任务。年代p一个n>对于典型的回归问题,回归层必须遵循最终完全连接层。
一个观察,均方误差是由:
在哪里R是反应的数量,t<年代ub>我年代ub>是目标输出,y<年代ub>我年代ub>网络的预测反应吗我。
对于图像和sequence-to-one回归网络,损失函数的回归层是half-mean-squared-error预测反应,没有规范化R:
image-to-image回归网络,回归的损失函数层是half-mean-squared-error预测反应的每个像素,没有规范化R:
在哪里H,W,C表示高度、宽度和输出的通道数,分别p为每个元素(像素)的索引t和y线性。
sequence-to-sequence回归网络,回归层的损失函数的half-mean-squared-error预测为每个时间步反应,没有规范化R:
在哪里年代是序列长度。
训练时,软件计算的平均损失mini-batch观测。
引用
[1]墨菲,k . P。机器学习:概率的角度来看。剑桥,麻萨诸塞州:麻省理工学院出版社,2012年。
[2]Krizhevsky,。,I. Sutskever, and G. E. Hinton. "ImageNet Classification with Deep Convolutional Neural Networks."先进的神经信息处理系统。25卷,2012年。
[3]LeCun (Y。波沙,B。,Denker,J.S., Henderson, D., Howard, R.E., Hubbard, W., Jackel, L.D., et al. ''Handwritten Digit Recognition with a Back-propagation Network.'' In进步的神经信息处理系统,1990年。
[4]LeCun (Y。,L. Bottou, Y. Bengio, and P. Haffner. ''Gradient-based Learning Applied to Document Recognition.''IEEE学报》上。第86卷,第2324 - 2278页,1998年。
[5]Nair诉和g·e·辛顿。“修正线性单位改善限制玻耳兹曼机。”In Proc. 27th International Conference on Machine Learning, 2010.
[6]Nagi, J。,F. Ducatelle, G. A. Di Caro, D. Ciresan, U. Meier, A. Giusti, F. Nagi, J. Schmidhuber, L. M. Gambardella. ''Max-Pooling Convolutional Neural Networks for Vision-based Hand Gesture Recognition''.IEEE国际会议在信号和图像处理应用程序(ICSIPA2011),2011年。
[7]斯利瓦斯塔瓦,N。,G. Hinton, A. Krizhevsky, I. Sutskever, R. Salakhutdinov. "Dropout: A Simple Way to Prevent Neural Networks from Overfitting."机器学习研究杂志》上。15卷,第1958 - 1929页,2014年。
[8]主教,c . M。模式识别和机器学习。施普林格,纽约,纽约,2006年。
[9]约飞,谢尔盖和基督教Szegedy。“批量标准化:加速深层网络培训通过减少内部协变量的转变。“预印本,2015年3月2日提交。https://arxiv.org/abs/1502.03167。
另请参阅
convolution2dLayer
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">batchNormalizationLayer
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">dropoutLayer
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">averagePooling2dLayer
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">maxPooling2dLayer
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">classificationLayer
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">regressionLayer
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">softmaxLayer
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">crossChannelNormalizationLayer
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">fullyConnectedLayer
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">reluLayer
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">leakyReluLayer
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">clippedReluLayer
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">imageInputLayer
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">trainingOptions
|<年代p一个n我temscope itemtype="//www.tatmou.com/help/schema/MathWorksDocPage/SeeAlso" itemprop="seealso">trainNetwork
相关的话题
1一个>图片来源:<一个href="https://github.com/vdumoulin/conv_arithmetic" target="_blank">卷积运算一个>(<一个href="https://github.com/vdumoulin/conv_arithmetic/blob/master/LICENSE" target="_blank">许可证一个>)