之前讲的都是线性回归和简单分类,这次进入深度学习最经典也是最有活力的一部分——卷积神经网络之图像分类。
卷积层(Convolutional Layer)
通常图像也可以被看成一个向量,相当于把像素拉直,如果是彩色图片,就是三个长向量,也就是说一个彩色图片就是一个三维的tensor:(width,height,channel)
那按照之前的思路,应该是用全连接网络(fully connected network),但是就图像来说,即使是一张100x100的彩色图片,输入的维度就已经是100x100x3,可以说数据量非常大,而且这样还容易造成过拟合。
所以,CNN就出现了——探索图像独特的性质;
不需要让神经网络看完整的一张图像,只需要关心一些重要的特点(人眼辩视物体也一样)——从感受野(receptive field)角度来分析,每个receptive field只关心自己的neural输出什么,如下图,一个3x3x3的field是27维的向量,输入到神经网络,不同的感受野可以重叠。
经典的做法如下图:
每个感受野有一组神经元,并且可以参数共享:
所以,综合整个过程,可以得到FC与CNN的关系,可以说CNN是专门为图像所设计的(CNN的概念更小)
另一种CNN的解释(更常见):
卷积层与卷积核:
比较两个解释:其实是一样的,第一种解释里面的weight就是第二种里面卷积核的参数
最大池化层(Max Pooling)
对图片进行降采样,不会影响图片的辨识——池化
例如下图中,是4x4大小的图片,我们采用2x2的池化层:
得到以下结果:
完整的CNN
一般来说,对图像进行卷积网络操作时,要先经过卷积层,再经过池化层,依次重复几次,然后经过平滑层,最后送入全连接网络。
而我们熟知的VGG全程就是VERY DEEP CONVOLUTIONAL NETWORKS,网络堆叠的非常深,如下图所示: