在介绍完卷积网络的关键基础组件之后,我们终于可以来完整地介绍一个卷积网络是什么样子。如果你至少已经在网上浏览过几篇关于卷积神经网络的介绍,或者甚至认真看了一遍吴恩达的课程视频,以至于不排除你还将YANN LECUN那篇有名的《Gradient-Based Learning Applied
to Document Recognition》下载下来精读了一遍,那么我可以断定说,你对卷积神经网络的基本形式已经有了一个印象了,这对我接下来我介绍的内容是一个很好的帮助,因为下面我将通过一个例子,说明一个典型的卷积网络大概是什么形式。
假如说我们取一张30 x 30的原始图片,图片的通道为1,是一张灰度图像。
第一次卷积,用3 x 3的卷积核,步长为1,没有padding。一共有6个卷积核。卷积的结果得到一个28 x 28 x 6的层,因为是6个卷积核,所以输出结果是6通道。
接着采用maxpooling,池化层采用的filter是2 x 2,步长是2,这样输出结果缩小了1/2,得到一个14 x 14 x 6的层。池化层并不会减少通道数。
然后进行第二次卷积,采用大小为5 x 5的卷积核,由于输入的数据是6通道的,所以卷积核同样为6通道,所以是5 x 5 x 6,每个卷积核有150个权重值。这一次我们一共使用16个卷积核。经过卷积计算,得到一个10 x 10 x 16的层。
然后同样进行一次下采样,这次同样用maxpooling,filter同样为2 x 2,步长为2,这样数据缩小为5 x 5 x 16。
接下来使用一个全连接层。首先将上一层计算出来的5 x 5 x 16的数据首尾相撞,形成一个一维数据,这个数据的长度是400。这次我们使用120个卷积核,根据全连接层的计算规则,该层的输出是一个长度为120的一维数据。
然后进行第二个全连接层,得到一个长度为84的一维数据。
接着再进行一次全连接层,然后我们得到一个长度为10的一维数据,这一层的输出即是我们的分类。使用softmax函数,将代表这10个分类的数值变成一个概率值。
以上完成一次图像的检测。