CNN中的不同种类层简介

在卷积神经网络(Convolutional Neural Network,CNN)中,往往包含许多种不同的网络层交替组成,主要有卷积层(Convolutional Layer)、池化层(Pooling Layer)、非线性层(ReLU Layer)、全连接层(Fully Connected Layer)等等,本文主要对几种经典的层进行常识介绍,就当成科普吧。其实就是今天不想写论文笔记了,哈哈哈~

部分内容参考Adit Deshpande的博客:https://adeshpande3.github.io/adeshpande3.github.io/


对于一个经典的CNN结构,往往是如图组成的,因此,对于不同类型层的学习十分必要。


卷积层(Convolutional Layer

卷积层主要对输入input volume进行卷积操作,同时根据参数stride的设置,确定卷积核每两次卷积操作直接滑动的距离。卷积核(kernel)类似一个图像滤波器(filter),每一个卷积核用一个矩阵表示,将其在图片上按照间隔大小滑动处理一遍得到的结果,即为卷积层的activation map(或feature map)。具体卷积操作类似下图。

对于卷积操作,从高维视角来看,每一个filter代表一个feature identifier,比如直线边缘特征代表,曲线特征代表等。当使用不同的filter进行卷积操作后,得到的activation map相当于对应的特征检测结果。因此filter越多,输出层得到的输入层的信息越多。


这里存在两个量 Stride和Padding:

前面我们介绍过滤波器每次移动一定距离,如上图为1个像素,而滤波器每次移动的数量就用stride表示。


上图中stride为2。但是由于filter的尺寸和stride值,导致输出图像与输入图像的大小不同。当需要输入输出大小保持一致时,往往在输入图像的周围用像素值0填满,如下图,输入为32*32*3,为了使得输出仍然是该尺度,因此将输入转化成36*36*3尺寸,这里在图像周围补充了2圈像素,则padding=2


对于输入的volume,当长或高尺寸为W,filter尺寸为K,padding=P,stride=S时,其输出volume的长或高可以按照下面公式计算:



ReLU(Rectified Linear Units) Layers

在每一个卷积层之后,一般会紧接着使用一个非线性层。该非线性层的主要目的是在系统中引入非线性特征。最常见的CNN网络中使用ReLU层,其具有比tanh和sigmoid函数更好的速度与效率,ReLU层主要是对于input的所有值应用函数f(x) = max(0, x) ,也就是说该层可以使所有的negative activations为0,大大地减少储存空间。


Pooling Layers

在ReLU层后一般为pooling层,即降采样层,最常见的是maxpooling方法,例如选择滤波器大小为2*2,stride(滑动间隔)与滤波器长度一致,是比较常见的结果。Pooling层对输入矩阵的一块区域整体进行操作,只在该区域保留一个数值,而不同的pooling方法决定该数值的计算方法,maxpooling层对于一个区域输出最大值,同时还有average pooling和L2-norm pooling等方式。pooling操作的示意图如下:



Fully Connected Layer

全连接层一般位于CNN网络的最后部分,该层的输入可以是卷积层,ReLU层,Pooling层的结果,输出一个N维向量,N即为要识别的类别数。例如在在softmax方法下,结果向量是[0  0.1  0.1  0.75  0  0  0  0  0  0.05],则说明他有10%的概率是第一类,10%的概率是第二类,75%的概率是第三类,5%的概率是第九类。下图为LeNet-5结构,其最后即为几个全连接层,使最终输出为N维向量。



Dropout Layers

由大牛Hinton提出的Dropout Layers,是为了防止过度拟合问题出现,在训练时专门加入的层。该层在forward过程中随机drop out一系列的激活值,将其值改成0,减少过度拟合。该层使用下,使得网络在随机去掉一些激活值后依然能够有正确的分类等结果,即对不同有更好的适应性。具体原理等可以看其文章:Dropout Paper

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值