VGG网络是AlexNet的一个升级,简单来说,VGG将原先的“卷积层”变成了“卷积块”。而所谓的“块”,其实也就是好几层的叠加而已,而这简单的叠加却显著提升了结果。
论文地址:VERY DEEP CONVOLUTIONAL NETWORKS
特点
特点是显著且简单的,就是把好几层3乘3的卷积层叠加在一起,或者说
以VGGG-16中最多的3层3*3卷积层堆叠块为例,在初始图像用卷积层提取一遍特征之后,第二层对这一层提取的特征继续用卷积层提取特征。如下如所示。 这样会带来两个好处:
三层3*3的叠加,相当于一层的7*7。理解起来也很容易,第三层最边上的扫描的是第二层比3*3扩大一圈的范围;第二层相对于第一层同理。而在保证感受野与7*7一致的同时,参数量(3层的3*3=27)小于原先(1层的7*7=49)。
网络结构
A到E是六个逐渐加深的网络模型,其中第二列的A-LRN是在A的基础上加上在AlexNet中提出来的局部响应归一化(LRN),但加上LRN在后续的测试中发现并无改善,故B到E中无LRN。加粗的表示的是相对于前一列增加的层。 论文中也同样用ReLU作为激活层。 看上表可知,中间的卷积部分划分为五个大块,而每个块都在都是由相同的卷积层堆叠而成的。
这个表示的是这几个模型当中的参数数量,最后一行数字的量级是百万。可以发现,尽管层数有了显著提升,其中的参数提升不大。原因大概是产生参数最多的位置在全链接层,而这些网络的全链接层部分是相同的。 值得一提的是,文中为了提升后续模型的收敛速度,采用了预初始化。VGG对模型A随机初始化参数,然后将A训练得到的部分参数直接给后续的网络初始化。
预训练模型链接
Keras Tensorflow PyTorch
|