论文原文下载:https://link.zhihu.com/?target=https%3A//arxiv.org/pdf/1409.1556.pdf
上篇文章说到,当AlexNet出来之后,卷积神经网络的大致模型基本上就是卷积池化与全连接,而后面为了增强功能,站在前人的基础上后来者是各显神通,而VGG网络模型就是通过卷积层数的加深,来增加感受野,从而提升后层特征通道的语义信息,进行更宽更好的目标识别工作。
首先我们看一下网络结构
我们可以清楚的看到,VGG模型就是将3x3的卷积反复的使用,然后搭配最大池化,并进行累加。
都采用3x3的卷积的目的在于减少参数,可以看到,两个3x3的卷积感受野可以相当于一个5x5的卷积。
而三个3x3的卷积感受野相当于7x7。而参数上只需要3x3x3=27,而原来需要7x7=49,减少几乎一半。
而典型的网络模型是VGG-16与VGG-19,我们可能想问问什么不就这样直接上到上百行上千行,效果不是更好吗,当然大家可以不经过其他处理的就这样尝试,显然会发现有很多的问题会出现,不仅仅是参数量增加的问题。
问题很简单,随着网络层数的加深,会带来梯度爆炸和梯度消失的问题,具体而言,我们是通过反向传播学习修改权值找到最优解,而当我们对**函数进行求导时,如果此部分大于1,那么层数增多的时候,最终的求出的梯度更新将以指数形式增加,即发生梯度爆炸,如果此部分小于1,那么随着层数增多,求出的梯度更新信息将会以指数形式衰减,即发生了梯度消失。所以层数加深的同时如何解决梯度爆炸或者消失的问题,是卷积网络之后发展的一个限制,也是一个跨步式前进越过的一道坎,我们在后面的学习中将会讲到。
所以,当深度网络初具雏形之后,我们首先想到的就是增加深度,增加感受野,增强后面层数的语义信息,然后进行更好的分类工作。VGG提出证明这个想法是完全没问题的,而深度学习是个比较复杂的事情,不是说卷积层数越多就学习到的信息越多,每次都能收敛到全局最优,旧的问题解决就会又有新的问题产生,一个一个问题的解决才是一步一步优化的过程。
相关文章
- CNN系列学习(三):VGG
- CNN经典模型AlexNET、VGG、ResNET总结
- R-CNN三部曲(二):空间金字塔池化与Fast R-CNN
- 卷积的数学意义及信号学应用 卷积神经网络(CNN)之一维卷积、二维卷积、三维卷积详解
- 深度学习原理与框架-卷积网络细节-三代物体检测算法 1.R-CNN 2.Fast R-CNN 3.Faster R-CNN
- MINIST深度学习识别:python全连接神经网络和pytorch LeNet CNN网络训练实现及比较(三)
- CSS系列学习笔记(三)
- 一起学习用Verilog在FPGA上实现CNN----(三)激活层设计
- 【J2me3D系列学习文章之三】(立即模式)对立方体进行变换操作-旋转、缩放、平移
- 【深度学习】卷积神经网络之图像分类|CNN、AlexNet、VGG、GoogLeNet、ResNet