卷积神经网络经典模型——VGG

来源:互联网 发布:java高级工程师课程 编辑:程序博客网 时间:2024/05/01 22:38

前言

  VGG的最大特点是very deep conv,也就是通过加深卷积层来提高识别率。

网络结构

  VGG是从Alex-net发展起来的网络,主要做了两个改进:

   1. 在第一个卷积层中使用了更小的filter尺寸。
   2. 在整个图片和multi-scale上训练和测试图片。

  使用几个较小的filter的卷积组合比使用一个大的filter更有优势: 假设我们使用3个3×3的卷积层,层与层之间有非线性激活函数。在这种排列下,第一个卷积层中的每个神经元对输入图片有一个3×3的视野。第二个卷积层上的神经元对第一个卷积层有一个3×3的视野,也就是对输入图片有一个5×5的视野,同样第三个卷积层上的神经元对第二个卷积层有一个3×3的视野,也就是对输入图片有一个7×7的视野。我们也可以单独使用一个7×7的。但是这样有一些缺点:

  1. 多个卷积层与非线性激活函数交替使用的堆叠结构,比单一卷积层更能提取更深层次的结构特征,多个非线性激活函数的重叠能提高决策函数的表达能力。毕竟对于非线性神经网络,层数越多,能力越强。
  2. 使用一个大尺寸filter的卷积层比使用几个小尺寸的卷积层的参数更多。假设输入图片有C个通道,那么单独的7×7的卷积层会产生72C2=49C2个参数,而3个3×3的卷积层的组合只产生3×(32C2)=27C2个参数,减少了81

这里写图片描述
   这是VGG常用的几个结构。convX-Y 表示过滤器的边长为X,深度为Y。从上表可以看出,VGG模型中的过滤器边长一般为3或者1。使用边长为1的过滤器的作用是在不影响输入输出维数的情况下,对输入进行线性变换,然后通过激活函数进行非线性处理,增加网络的非线性表达能力。
   与LeNet—5模型相比,VGG模型最大的不同时使用了5个阶段的卷积特征提取,每个阶段又使用多个卷积层。两个模型在池化层和全连接层几乎相同。比如这里使用尺寸为2×2,步长为2的max-pooling,使用Relu作为非线性激活函数等。

总结

   VGG模型使用更深的卷积层进行特征提取,模型的表达能力变强,识别精度上升。但是相比其他模型,VGG模型参数量大(主要来源于第一层卷积层),耗费更多的计算资源,导致更多的内存占用。

参考资料

[1] 《 Very Deep Convolutional Networks for Large-Scale Image Recognition 》

阅读全文
0 0
原创粉丝点击