Convolutional Neural Network(CNN)

在图像处理的过程之中,图像的维度往往很大,一般的图片维度也在100*100左右。然而对于影像识别而言,并不一定需要看到全部的图片而只需要图片的某个部分即可。

在图片中设置感受域为3*3,由于RGB三种颜色,最后只有27个权重进行训练,可以对不同的感受域训练不同的模型。最经典的方式就是设置stride然后不断移动,如果超出范围则补0(也有其他的补充方式)。

经典方式

在进行检测时,可能同一特征出现在图片不同位置,那么可以使用参数共享(parameter sharing)使得权重的数量大大降低,也就是图片不同位置的模型参数相同。之后CNN就是进行了两次简化的过程。

CNN

接下来,我们使用另一个视角进行理解。可以使用不同的Filter进行图像特征的侦测

上图中,使用卷积且stride为1计算图片,可以得到的卷积结果在对应特征上的结果最大。使用不同的filter卷积之后就可以得到不同的feature map。最后得到的feature map可以视为一张新的图片继续进行卷积运算。同时由于图像不断变小,即使尺寸选择3*3进行一次卷积后也可以获取原来图像5*5的信息,所以不用担心filter过小的问题。

可以看到5*5的范围

这两种说法其实是完全一样的,例如开始的感受野其实就是设置filter。而开始的参数共享就是卷积运算。

在训练中还会引入Pooling降低图片维数,使图片变小减少运算。常用的Max pooling就是取组中最大的值

这个组是2*2的

下图就是完整的CNN过程

完整的CNN

留下评论