卷积神经网络
卷积神经网络比神经网络多了卷积2个字,但是其实一般多了2个层:卷积层和池化层。卷积层的作用主要是用来提取特征的,而且能保存好空间结构,因为在全连接层,直接把向量给拉平了。设立多个卷积层,就能提取各种各样的特征。然后就是池化层,它的作用是降采样,就是去除一些图片中“不重要”的东西(把平面维度变小,比如100*100*3变成50*50*3),比如人脸识别,人脸一般在中间,所以图片边框就会降采样多。
1.卷积层
卷积其实和滑动窗口算法比较相似,是一个小的卷积核(例如5*5*3),在一个大的输入图像中滑动(例如32*32*3),在滑动匹配的时候,卷积核会和图像上的像素进行内积,如下图,最后滑动完会生成一个28*28*1的激活映射(这里为1的原因是因为在乘的时候也拉平了向量,所以1个卷积核只能生成1个深度为1的激活映射,当有N个卷积核的时候,就会生成深度为N的激活映射,其实也就对应着这个图像的N个特征)
下面是举例卷积核移动会产生激活映射的例子,形成一个公式输出激活映射大小=(N-F)/stride+1,N是图像的大小,F是卷积核的大小,stride是步长,步长就是卷积核一次移动多少距离(这里一般来说都是正方形,如果不是正方形也可以处理为正方形):
但是这里有个问题,当步长为3时,得到的就不是整数了,就会形成不对称的特征,所以这个时候不能直接移动3,那怎么办呢,添加0补充!一般来说,卷积核的大小为3,5,7,然后0填充分别为1,2,3,也就是(F-1)/2
2.池化层
池化层就是为了降采样,说白了就是减小像素的数量,一般会使用最大化池,即设定一个最大值N,然后在各个N*N(这个值一般为2)方块中取最大值,如下图:
3.总结
总的过程一般顺序是卷积--→池化–→全连接层。当然为了更好的提取特征和减少计算(降采样),卷积和池化可能会差穿进行,下图是一个很好的例子:
会在最后的POOL(池化)层输出给全连接层,然后全连接层通过前面神经网络的方法计算出每个分类的分数,从而进行图像分类。