卷积神经网络(详细解说题)

经典的多层感知机由一系列全连接层组成,卷积神经网络中除全连接层外,还有卷积层和汇合(pooling)层。

(1)卷积层

为什么要用卷积层   输入图像通常维数很高,例如:1000×1000大小的彩色图像对应于三百万维特征。因此,继续沿用多层感知机中的全连接会导致庞大的参数量。大参数量需要繁重的计算,而更重要的是,大参数量会有更高的过拟合风险。卷积是局部连接、共享参数版的全连接。这俩个特性使参数量大大降低。卷积层中的权值通常被称为滤波器(filter)或卷积核(convolution kernel)。

局部连接  在全连接层中,每个输出通过权值和所有输入相连。而在视觉识别中,关键性的图像特征、边缘、角点等只占据了整张图像的一小部分,图像中相距很远的俩个像素之间有相互影响的可能性很小。因此,在卷积层中,每个输出神经元在通道方向保持全连接,而在空间方向上只和一小部分输入神经元相连。

共享参数  如果一组权值可以在图像中某个区域提取出有效的表示,那么它们也能在图像的另外区域中提取出有效的表示。也就是说,如果一个模式出现在图像中的某个区域,那么它们也可以出现在图像中的其他任何区域。因此,卷积层不同空间位置的神经元共享权值,用于发现图像中不同空间位置的模式。共享参数是深度学习一个重要的思想,其在减少网络参数的同时仍然能保持很高的网络容量(capacity)。卷积层在空间方向共享参数,而循环神经网络在时间方向共享参数。

卷积层的作用  通过卷积,我们可以捕获图像的局部信息。通过多层卷积层堆叠,各层提取到特征逐渐由边缘、纹理、方向等低层特征过度到文字、车轮、人脸等高层级特征。

卷积层中的卷积和数学教材中的卷积有什么关系  基本没有关系。卷积层中的卷积实质是输入与权值的互相关函数,而不是数学教材中的卷积。

描述卷积的四个量   一个卷积层的配置由以下四个量确定。

1.滤波器个数      使用一个滤波器对输入进行卷积会得到一个二维的特征图(feature map)。我们可以使用多个滤波器对输入进行卷积,以得到多个特征图。

2.感受野(receptive field)F      即滤波器空间局部连接大小。

3.零填补(zero-padding)P。随着卷积的进行,图片大小将缩小,图像边缘的信息将逐渐丢失。因此,在卷积前,我们在图像上下左右填补一些0,使得我们控制输出特征图的大小。

4.步长(stride)S。滤波器在输入每移动S个位置计算一个输出神经元。

卷积输入输出的大小关系 假设输入高和宽为H和W,输出高和宽为H‘和W‘,则H’=(H-F+2P)/S + 1,W‘=(W-F+2P)/S + 1.当S=1时,通过设定P=(F-1)/2,可以保证输入输出空间大小相同。例如,3×3的卷积需要填补一个像素使得输入输出空间大小不变。

应该使用多大的滤波器  尽量使用小的滤波器,如3x3卷积。通过堆叠多层3×3卷积,可以取得与大滤波器相同的感受野,例如三层3×3卷积等效于一层7×7卷积的感受野。但使用小滤波器有以下俩点好处。

1.更少的参数量。假设通道数为D,三层3×3卷积的参数量为3×(D×D×3×3)=27D^2。而一层7×7的参数量为D×D×7×7=49D^2.

2.更多非线性。由于每层卷积后都有非线性激活函数,三层3×3卷积一共经过三次非线性激活函数,而一层7×7卷积只经过一次。

1×1卷积 旨在对每个空间位置的D维向量做一个相同的线性变换。通常用于增加非线性,或降维,这相当于在通道数方向上进行了压缩。1×1卷积是减少网络计算量和参数的重要方式。

全连接层的卷积等效  由于全连接层和卷积层都是做点乘,这倆种操作可以相互等效。全连接层的卷积层等效只需要设定好卷积层的四个量:滤波器个数等于原全连接层输出神经元个数、感受野等于输入的空间大小、没有零填补、步长为1.

为什么要将全连接层等效为卷积层    全连接层只能处理固定大小的输入,而卷积层可以处理任意大小输入。假设训练图像大小为224×224,而当测试图像大小为256×256.如果不进行全连接层的卷积层等效,我们需要从测试图像中裁剪出多个224×224区域分别前馈网络。而进行卷积层等效后,我们只需要将256×256输入前馈网络一次,即可达到多次前馈224×224区域的效果。’

卷积结果的倆种视角    卷积结果是一个D×H×W的三维张量。其可以被认为是有D个通道,每个通道是一个二维的特征图,从输入中捕获了某种特定的特征。也可以被认为是有H×W个空间位置,每个空间位置是一个D维的描述向量,描述了对应感受野的图像局部区域的语义特征。

卷积结果的分布式表示  卷积结果的各通道之间不是独立的。卷积结果的各通道的神经元与语义概念之间是一个“多对多”的映射。即,每个语义概念由多个通道神经元一起表示,而每个神经元又同时参与到多个语义概念中去。并且,神经元响应是稀疏的,即大部分神经元输出为0.

卷积操作的实现  有如下几种基本思路。1.快速傅里叶变换(FFT)。通过变换到频域,卷积运算将变为普通矩阵乘法。实际中,当滤波器尺寸大时效果好,而对于通常使用1×1和3×3卷积,加速不明显。2.im2col(image to column)。 im2col将与每个输出神经元相连的局部输入区域展成一个列向量,并将所有得到的向量拼接成一个矩阵。这样卷积运算可以用矩阵乘法实现。 im2col的优点是可以利用矩阵乘法的高效实现,而弊端是会占用很大存储,因为输入元素会在生成的矩阵中多次出现。此外,Stassen矩阵乘法和Winograd也常被使用。现有的计算库如MKL和cuDNN,会根据滤波器大小选择合适的算法。

(2)汇合层     

汇合层根据特征图上的局部统计信息进行下采样,在保留有用信息的同时减少特征图的大小。和卷积层不同的是,汇合层不包含需要学习的参数。最大汇合(max-pooling)在一个局部区域选最大值作为输出,而平均汇合(average pooling)计算一个局部区域的均值作为输出。局部区域汇合中最大汇合使用更多,而全局平均汇合(global average  pooling)是更常用的全局汇合方法。

汇合层的作用   汇合层主要有以下三点作用。

1.增加特征平移不变性。 汇合可以提高网络对微小位移的容忍能力。

2. 减小特征图大小。  汇合层对空间局部区域进行下采样,使下一层需要的参数量和计算量减少,并降低过拟合风险。

3.最大汇合可以带来非线性     这是目前最大汇合更常用的原因之一。 近年来,有人使用步长为2的卷积层代替汇合层。而在生成式模型中,有研究发现,不使用汇合层使网络更容易训练。

 

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值