深度学习笔记(四)--LeNet-5网络

类 LeNet-5卷积运算网络实例

假设,有一张大小为32×32×3的输入图片,这是一张RGB模式的图片,你想做手写体数字识别。32×32×3的RGB图片中含有某个数字,比如7,你想识别它是从0-9这10个数字中的哪一个,我们构建一个神经网络来实现这个功能。

深度学习笔记(四)--LeNet-5网络

LeNet-5是多年前Yann LeCun创建的,此例子采用的模型并不是LeNet-5,但是受它启发,许多参数选择都与LeNet-5相似。输入是32×32×3的矩阵,假设第一层使用过滤器大小为5×5,步幅是1,padding是0,过滤器个数为6,那么输出为28×28×6。将这层标记为CONV1,它用了6个过滤器,增加了偏差,应用了非线性函数,可能是ReLU非线性函数,最后输出CONV1的结果。 

深度学习笔记(四)--LeNet-5网络

然后构建一个池化层,选择用最大池化,参数f=2s=2 padding为0。现在开始构建池化层,最大池化使用的过滤器为2×2,步幅为2,表示层的高度和宽度会减少一半。因此,28×28变成了14×14,通道数量保持不变,所以最终输出为14×14×6,将该输出标记为POOL1。 

深度学习笔记(四)--LeNet-5网络

再为它构建一个卷积层,过滤器大小为5×5,步幅为1,这次我们用16个过滤器,最后输出一个10×10×16的矩阵,标记为CONV2。 

深度学习笔记(四)--LeNet-5网络

然后做最大池化,超参数f=2s=2 ,高度和宽度会减半,最后输出为5×5×16,标记为POOL2

深度学习笔记(四)--LeNet-5网络 

5×5×16矩阵包含400个元素,现在将POOL2平整化为一个大小为400的一维向量。我们可以把平整化结果想象成这样的一个神经元集合,然后利用这400个单元构建下一层。下一层含有120个单元,这就是我们第一个全连接层,标记为FC3。这400个单元与120个单元紧密相连,这就是全连接层。它很像我们在第一和第二门课中讲过的单神经网络层,这是一个标准的神经网络。它的权重矩阵为W3 ,维度为120×400。这就是所谓的“全连接”,因为这400个单元与这120个单元的每一项连接,还有一个偏差参数。最后输出120个维度,因为有120个输出。

然后我们对这个120个单元再添加一个全连接层,这层更小,假设它含有84个单元,标记为FC4

深度学习笔记(四)--LeNet-5网络

最后,用这84个单元填充一个softmax单元。如果我们想通过手写数字识别来识别手写0-9这10个数字,这个softmax就会有10个输出。