赞
踩
对于一张输入图片, 将其转化为矩阵, 矩阵的元素为对应的像素值。 假设有一个
5
×
5
5 \times 5
5×5 的图像,使用一个
3
×
3
3 \times 3
3×3 的卷积核进行卷积,可得到一个
3
×
3
3 \times 3
3×3 的特征图。卷积核也称为滤波器(Filter)。
具体的操作过程如下图所示:
黄色的区域表示卷积核在输入矩阵中滑动, 每滑动到一个位置,将对应数字相乘并求和,,得到一个特征图矩阵的元素。注意卷积核每次滑动一个单位,滑动的幅度可以根据需要进行调整。如果滑动步幅大于 1, 则卷积核有可能无法恰好滑到边缘, 针对这种情况, 可在矩阵最外层补零,如下图所示:
补零层称为 Zero Padding,是一个可以设置的超参数,但要根据卷积核的大小、 步幅和输入矩阵的大小进行调整,以使得卷积核恰好滑动到边缘。
一般情况下,输入的图片矩阵以及后面的卷积核,特征图矩阵都是方阵,这里设输入矩阵大小为
w
w
w,卷积核大小为
k
k
k,步幅为
s
s
s,补零层数为
p
p
p,则卷积后产生的特征图大小计算公式为:
w
′
=
w
+
2
p
−
k
s
+
1
w' = \frac{w+2p-k}{s} + 1
w′=sw+2p−k+1
上图是对一个特征图采用一个卷积核卷积的过程,为了提取更多的特征,可以采用多个卷积核分别进行卷积,这样便可以得到多个特征图。有时,对于一张三通道彩色图片,或者如第三层特征图所示,输入的是一组矩阵,这时卷积核也不再是一层的,而要变成相应的深度。
CNN是一种带有卷积结构的前馈神经网络,卷积结构可以减少深层网络占用的内存量,其中三个关键操作——局部感受野、权值共享、池化层,有效的减少了网络的参数个数,缓解了模型的过拟合问题。
卷积层和池化层一般会取若干个,采用卷积层和池化层交替设置,即一个卷积层连接一个池化层,池化层后再连接一个卷积层,依此类推。由于卷积层中输出特征图的每个神经元与其输入进行局部连接,并通过对应的连接权值与局部输入进行加权求和再加上偏置值,得到该神经元输入值,该过程等同于卷积过程,CNN也由此而得名1。
CNN主要应用于图像识别(计算机视觉,CV),应用有:图像分类和检索、目标定位检测、目标分割、人脸识别、骨骼识别和追踪,具体可见MNIST手写数据识别、猫狗大战、ImageNet LSVRC等,还可应用于自然语言处理和语音识别。
CNN主要包括以下结构:
在经过数次卷积和池化之后,最后会先将多维的数据进行“扁平化”,也就是把图片的长、宽、通道的数据压缩成长度为长x宽x通道的一维数组,然后再与全连接层连接,这之后就跟普通的神经网络无异了。
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。