文章目录
一、边缘检测
可以通过卷积操作来进行
原图像 n✖n 卷积核 f✖f 则输出的图像为 n-f+1
二、填充 padding
为了防止输出的图像不断缩小 以及输出的图像损失了边缘的信息
因为在做卷积操作时边缘信息利用的很少。所以需要进行填充操作。
1、valid convolution
是没有填充的图像进行卷积操作。
输出的图像为 n-f+1
2、same convolution
是为了输出与原图一样大的图片,而在原图的基础上进行填充。
假设填充p,则输出图像为n+2p-f+1,即原图像素变为了n+2p
p=(f-1)/2
f通常为odd 奇数
三、卷积步长 strided convolution
若stride为s,原图为n✖n,卷积核为f✖f,填充为p。
则输出图像为(n+2p-f)/s+1 下取整。
下取整是为了 卷积核对原图进行的操作应该全部落在原图上或填充后的像素上,若有超出则应舍弃。
四、三维卷积
输入 663 卷积核 333
最后得到的输出为441
最后的1为卷积核的数目
如图:如果有两个卷积核分别对输入做卷积 则得到的输出为442
五、池化层 pooling
max pooling 和average pooling
与卷积层的不同,每个通道最后的结果都是独立进行的。
比如输入为552,卷积的f为3,s为1,则最后输出为332。
对于max pooling,padding 一般都为0.
六、 为什么要使用卷积神经网络
如果简单使用全连接层会导致参数过多。而使用卷积网络可以减少参数。
使用的原理就是卷积神经网络中的 参数共享,稀疏连接
参数共享:
比如输入是32323,之后全连接的神经元为4704,那么参数有37024704,
而如果使用卷积层 f=5,s=1,卷积有6个,那么卷积层1为28286,
由于卷积核为55=25,再加上一个偏置值,共26个参数,有6个卷积,那么参数共有26*6.
稀疏连接:
输出的一个数,如果使用的是5*5卷积,那么输出的一个数只与这25个输入值有关,与其他的输入值无关。