本文主要是介绍CNN卷积网络基础-卷积核,padding,stride,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!
使用卷积网络来处理图像数据有两方面原因:
1.图像以像素点信息表示数据,数据之间的关联性由像素位置表征,图像数据中要观察的目标是一块像素区域,用卷积网络提取特征信息可以按块状提起
2.在DNN网络中,网络的架构与输入数据的维度有关,如果用来分析大分辨率的图像,那么网络将会包含很多参数,这样就需要有更多的训练样本来防止过拟合,如果用卷积网络就可以进行区域特征提取,而不用设计大输入维度的网络架构
边缘检测
卷积网络主要用于图像特征的提取,浅层的卷积网络提取边缘,也叫边缘检测,深层的卷积网络提取整体特征。
边缘检测可以参考下面这张图示,可以把有亮度信息的垂直边缘提取出来
由上面的垂直边缘检测器,可以联想到如下图所示的水平边缘检测器
早期的图像边缘提取还有经典的soble算子(着重考虑中间像素,提高鲁棒性)、scharr算子
在卷积网络中,该3x3的过滤器一共包含9个参数,通过反向传播计算就可以获取能提取任意角度的过滤器
padding和stride
在进行卷积操作时,有2个常用的参数设置,padding,stride。
padding有两个用途
1.解决图像经过卷积操作后图像缩小的问题
2.图像不进行padding的话,边缘处像素只会进行一次卷积操作,而中间的像素点则会进行多次卷积操作,这样边缘像素的信息就会有损失
下图展示了一个padding为1的图像卷积运算,经过卷积运算后,图像大小不变
( 6 + 2 ∗ p a d d i n g − k e r n e l + 1 ) → 6 ∗ 6 (6+2*padding-kernel+1)\rightarrow 6*6 (6+2∗padding−kernel+1)→6∗6
在一些深度学习网络框架中,在设置卷积层时,可设置不同的模式,常设置valid 和same,其中的区别可参考卷积的三种模式:full, same, valid
stride用于设置卷积移动的步幅,卷积特征图尺寸计算公式: F o = ⌊ F i n + 2 × p − k s ⌋ + 1 F_o=\lfloor \frac{F_{in}+2\times p - k}{s} \rfloor +1 Fo=⌊sFin+2×p−k⌋+1 式中2p表示对图像的上下左右各填充p个像素,式中 ⌊ ⌋ \lfloor\rfloor ⌊⌋是向下取整的符号,意思是除不尽的时候向下取整,k代表卷积核的尺寸,s就是步长,在卷积网络中特征尺寸的计算可参考我的一篇博文深度学习网络-AlexNet
这篇关于CNN卷积网络基础-卷积核,padding,stride的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!