CNN系列学习(三):VGG

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

你可能感兴趣的:(深度学习)