卷积层

 深度学习基础理论-CNN篇 

卷积层

卷积层(convolution layer)是卷积神经网络中的基础操作,甚至在网络最后起分类作用的全连接层在工程实现时也是由卷积操作替代的。

 

 01

什么是卷积层

卷积运算实际是分析数学中的一种运算方式,在卷积神经网络中通常是仅涉及离散卷积的情形。下面以dl = 1 的情形为例介绍二维场景的卷积操作。假设输入图像(输入数据)为下图中右侧的5×5 矩阵,其对应的卷积核(亦称卷积参数)为一个3 × 3 的矩阵。同时,假定卷积操作时每做一次卷积,卷积核移动一个像素位置,即卷积步长(stride)为1。

 

第一次卷积操作从图像(0, 0) 像素开始,由卷积核中参数与对应位置图像像素逐位相乘后累加作为一次卷积操作结果,即1 × 1 + 2 × 0 + 3 × 1 + 6 × 0 +7 × 1 + 8 × 0 + 9 × 1 + 8 × 0 + 7 × 1 = 1 + 3 + 7 + 9 + 7 = 27,如下图a所示。类似地,在步长为1时,如图b至图d所示,卷积核按照步长大小在输入图像上从左至右自上而下依次将卷积操作进行下去,最终输出3 × 3 大小的卷积特征,同时该结果将作为下一层操作的输入。

与之类似,若三维情形下的卷积层l 的输入张量为xl ∈ RHl×Wl×Dl,该层卷积核为fl ∈ RH×W×Dl。三维输入时卷积操作实际只是将二维卷积扩展到了对应位置的所有通道上(即Dl),最终将一次卷积处理的所有HWDl 个元素求和作为该位置卷积结果。

进一步地,若类似fl 这样的卷积核有D 个,则在同一个位置上可得到1×1×1×D 维度的卷积输出,而D 即为第l+1 层特征xl+1 的通道数Dl+1。形式化的卷积操作可表示为:

 

其中,(il+1, jl+1) 为卷积结果的位置坐标,满足下式:

 

需指出的是,式中的fi,j,dl,d 可视作学习到的权重,可以发现该项权重对不同位置的所有输入都是相同的,这便是卷积层“权值共享”特性。除此之外,通常还会在yil+1,jl+1,d 上加入偏置项bd。在误差反向传播时可针对该层权重和偏置项分别设置随机梯度下降的学习率。当然根据实际问题需要,也可以将某层偏置项设置为全0,或将学习率设置为0,以起到固定该层偏置或权重的作用。此外,卷积操作中有两个重要的超参数:卷积核大小和卷积步长。合适的超参数设置会对最终模型带来理想的性能提升。

 

02

卷积操作的作用

可以看出卷积是一种局部操作,通过一定大小的卷积核作用于局部图像区域获得图像的局部信息。以三种边缘卷积核(亦可称为滤波器)来说明卷积神经网络中卷积操作的作用。如下图:

我们在原图上分别作用整体边缘滤波器、横向边缘滤波器和纵向边缘滤波器,这三种滤波器(卷积核)分别为式中的3 × 3 大小卷积核Ke,Kh和Kv:

 

试想,若原图像素(x, y) 处可能存在物体边缘,则其四周(x−1, y),(x+1, y),(x, y − 1),(x, y + 1) 处像素值应与(x, y) 处有显著差异。此时,如作用以整体边缘滤波器Ke,可消除四周像素值差异小的图像区域而保留显著差异区域,以此可检测出物体边缘信息。同理,类似Kh和Kv3的横向、纵向边缘滤波器可分别保留横向、纵向的边缘信息。

 

事实上,卷积网络中的卷积核参数是通过网络训练学出的,除了可以学到类似的横向、纵向边缘滤波器,还可以学到任意角度的边缘滤波器。当然,不仅如此,检测颜色、形状、纹理等等众多基本模式的滤波器(卷积核)都可以包含在一个足够复杂的深层卷积神经网络中。通过“组合”这些滤波器(卷积核)以及随着网络后续操作的进行,基本而一般的模式会逐渐被抽象为具有高层语义的“概念”表示,并以此对应到具体的样本类别。颇有“盲人摸象”后,将各自结果集大成之意。

 end

*欢迎在留言区分享您的观点  

*值班小Paddle:wangp

*为了方便大家问题的跟进解决,PaddlePaddle采用Github Issue来采集信息和追踪进度。大家遇到问题请搜索Github Issue,问题未解决请优先在Github Issue上提问,有助于问题的积累和沉淀

点击“阅读原文”,访问Github Issue。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值