经典卷积神经网络结构——LeNet-五、AlexNet、VGG-16

  经典卷积神经网络的结构通常知足以下表达式:网络

输出层 -> (卷积层+ -> 池化层?)+  -> 全链接层+框架

上述公式中,“+”表示一个或者多个,“?”表示一个或者零个,如“卷积层+”表示一个或者多个卷积层,“池化层?”表示一个或者零个池化层。“->”表示 forward 方向。函数

  下面将分别介绍 LeNet-5AlexNetVGG-16 结构。学习

  

1. LeNet-5(modern)

图 1  LeNet-5spa

1.1 LeNet-5 结构:

  • 输入层

图片大小为 32×32×1,其中 1 表示为黑白图像,只有一个 channel。blog

  • 卷积层

filter 大小 5×5,filter 深度(个数)为 6,padding 为 0, 卷积步长 $s=1$,输出矩阵大小为 28×28×6,其中 6 表示 filter 的个数。图片

  • 池化层

average pooling,filter 大小 2×2(即 $f=2$),步长 $s=2$,no padding,输出矩阵大小为 14×14×6。ci

  • 卷积层

filter 大小 5×5,filter 个数为 16,padding 为 0, 卷积步长 $s=1$,输出矩阵大小为 10×10×16,其中 16 表示 filter 的个数。get

  • 池化层

average pooling,filter 大小 2×2(即 $f=2$),步长 $s=2$,no padding,输出矩阵大小为 5×5×16。注意,在该层结束,须要将 5×5×16 的矩阵flatten 成一个 400 维的向量。深度学习

  • 全链接层(Fully Connected layer,FC)

neuron 数量为 120。

  • 全链接层(Fully Connected layer,FC)

neuron 数量为 84。

  • 全链接层,输出层

如今版本的 LeNet-5 输出层通常会采用 softmax 激活函数,在 LeNet-5 提出的论文中使用的激活函数不是 softmax,但其如今不经常使用。该层神经元数量为 10,表明 0~9 十个数字类别。(图 1 其实少画了一个表示全链接层的方框,而直接用 $\hat{y}$ 表示输出层。)

 

1.2 LeNet-5 一些性质:

  • 若是输入层不算神经网络的层数,那么 LeNet-5 是一个 7 层的网络。(有些地方也可能把 卷积和池化 看成一个 layer)(LeNet-5 名字中的“5”也能够理解为整个网络中含可训练参数的层数为 5。)
  • LeNet-5 大约有 60,000 个参数。
  • 随着网络愈来愈深,图像的高度和宽度在缩小,与此同时,图像的 channel 数量一直在增长。
  • 如今经常使用的 LeNet-5 结构和 Yann LeCun 教授在 1998 年论文中提出的结构在某些地方有区别,好比激活函数的使用,如今通常使用 ReLU 做为激活函数,输出层通常选择 softmax。

 

2. AlexNet

图 2  AlexNet

2.1 AlexNet 结构:

  • 输入层:图像大小为 227×227×3,其中 3 表示输入图像的 channel 数(R,G,B)为 3。
  • 卷积层:filter 大小 11×11,filter 个数 96,卷积步长 $s = 4$。(filter 大小只列出了宽和高,filter矩阵的 channel 数和输入图片的 channel 数同样,在这里没有列出)
  • 池化层:max pooling,filter 大小 3×3,步长 $s = 2$。
  • 卷积层:filter 大小 5×5,filter 个数 256,步长 $s = 1$,padding 使用 same convolution,即便得卷积层输出图像和输入图像在宽和高上保持不变。
  • 池化层:max pooling,filter 大小 3×3,步长 $s = 2$。
  • 卷积层:filter 大小 3×3,filter 个数 384,步长 $s = 1$,padding 使用 same convolution。
  • 卷积层:filter 大小 3×3,filter 个数 384,步长 $s = 1$,padding 使用 same convolution。
  • 卷积层:filter 大小 3×3,filter 个数 256,步长 $s = 1$,padding 使用 same convolution。
  • 池化层:max pooling,filter 大小 3×3,步长 $s = 2$;池化操做结束后,将大小为  6×6×256 的输出矩阵 flatten 成一个 9216 维的向量。
  • 全链接层:neuron 数量为 4096。
  • 全链接层:neuron 数量为 4096。
  • 全链接层,输出层:softmax 激活函数,neuron 数量为 1000,表明 1000 个类别。

 

2.2 AlexNet 一些性质:

  • 大约 60million 个参数;
  • 使用 ReLU 做为激活函数。

 

3. VGG-16

图 3  VGG-16

3.1 VGG-16 结构:

  • 输入层
  • 卷积层
  • 卷积层
  • 池化层
  • 卷积层
  • 卷积层
  • 池化层
  • 卷积层
  • 卷积层
  • 卷积层
  • 池化层
  • 卷积层
  • 卷积层
  • 卷积层
  • 池化层
  • 卷积层
  • 卷积层
  • 卷积层
  • 池化层
  • 全链接层
  • 全链接层
  • 全链接层,输出层

 

3.2 VGG-16 一些性质:

  • VGG-16 中的 16 表示整个网络中有 trainable 参数的层数为 16 层。(trainable 参数指的是能够经过 back-propagation 更新的参数)
  • VGG-16 大约有 138million 个参数。
  • VGG-16 中全部卷积层 filter 宽和高都是 3,步长为 1,padding 都使用 same convolution;全部池化层的 filter 宽和高都是 2,步长都是 2。

 

References

Course 4 Convolutional Neural Networks by Anderw Ng

《TensorFLow实战Google深度学习框架》

相关文章
相关标签/搜索