卷积神经网络是一种常用于图像相关任务的网络架构,由于图像信息矩阵有[W, H, C]三个信息,加上神经元的情况下,采取全连接网络时涉及的权重太多,计算量太大,并且会大大提升过拟合的风险,因此对这种任务网络会进行一些简化,形成卷积神经网络。
1.感受野(卷积核)
在进行图像分类过程中,我们只需要关注一些物体的重要特征(模式)就可以判断一个物体的类别,因此不需要将整张图片直接输入,而是只关注一小部分图片就可以,就可以检测这些模式。
于是卷积神经网络可以设定一个小区域(感受野)去对图片物体的重要模式进行检测,下图的感受野范围为3 * 3 * 3 = 27维的向量,也就是神经元有27个权重。
感受野可以重叠或者相同,一般一个感受野有一组神经元守备,平移一个感受野就可以获得一个新的感受野,平移量称为步幅,感受野之间最好要有重叠,所以步幅不会设置的太大。
如果感受野超出图像范围,则要对超出部分进行填充,例如0填充。
2.共享参数
做检测的神经元可以供多个感受野共用进行模式匹配,因此这些神经元的参数可以相同,因此每组感受野都只有一组检测参数,这组参数叫做滤波器。
感受野加上参数共享就是卷积层,用到卷积层的网络就叫卷积神经网络。一个卷积层里面就是有一排的滤波器,每个滤波器都是一个 3 × 3 × 通道(假设是3x3),其作用是要去图像里面检测某个模式。这些模式要在 3 × 3 × 通道,这个小的范围内,它才能够被这些滤波器检测出来。
滤波器要对对应感受野作内积。
每个滤波器都要对图片进行扫描,得到一组数据,如果有 64 个滤波器,就可以得到 64 组的数字。这组数字称为特征映射。当一张图像通过一个卷积层里面一堆滤波器的时候,就会产生一个特征映射。特征映射可以看成是另外一张新的图像,只是这个图像的通道不是 RGB 3 个通道,有64 个通道,每个通道就对应到一个滤波器。
卷积神经网络可以叠很多卷积层,前一层输出的图像通道数必须是下一卷积层的滤波器高度。
另一种角度来说,共享权重其实就是用滤波器扫过一张图像,这个过程就是卷积。这就是卷积层名字的由来。把滤波器扫过图像就相当于不同的感受野神经元可以共用参数,这组共用的参数就叫做一个滤波器。
3.下采样
下采样的方式就是汇聚,即把图片变小但不改变通道数。通过滤波器图像生成一组数据,汇聚就是将这组数据分组提取。
一般在实践上,往往就是卷积跟汇聚交替使用,可能做几次卷积,做一次汇聚。比如两次卷积,一次汇聚。不过汇聚对于模型的性能可能会带来一点伤害。假设要检测的是非常微细的东西,随便做下采样,性能可能会差一点。