VGG全称是Visual Geometry Group属于牛津大学科学工程系,其发布了一些列以VGG开头的卷积网络模型,能够应用在人脸识别、图像分类等方面,分别从VGG16~VGG19。VGG研究卷积网络深度的初衷是想搞清楚卷积网络深度是如何影响大规模图像分类与识别的精度和准确率的,最初是VGG-16号称很是深的卷积网络全称为(GG-Very-Deep-16 CNN),VGG在加深网络层数同时为了不参数过多,在全部层都采用3x3的小卷积核,卷积层步长被设置为1。网络
VGG的输入被设置为224x244大小的RGB图像,在训练集图像上对全部图像计算RGB均值,而后把图像做为输入传入VGG卷积网络,使用3x3或者1x1的filter,卷积步长被固定1。VGG全链接层有3层,根据卷积层+全链接层总数目的不一样能够从VGG11 ~ VGG19,最少的VGG11有8个卷积层与3个全链接层,最多的VGG19有16个卷积层+3个全链接层,此外VGG网络并非在每一个卷积层后面跟上一个池化层,仍是总数5个池化层,分布在不一样的卷积层之下,下图是VGG11 ~GVV19的结构图:函数
名称 | 参数设置 |
输入图像大小 | 224x224 |
预处理 | 减去均值 |
卷积核 | 3x3,1x1 |
padding | 1 for 3x3 |
Max-pooling | 2x2 s-2 |
激活函数 | ReLU |
理解:优化
1x1卷积核:降维,增长非线性 3x3卷积核:多个卷积核叠加,增长空间感觉野,减小参数
论文中,做者指出,虽然LRN(Local Response Normalisation)在AlexNet对最终结果起到了做用,但在VGG网络中没有效果,而且该操做会增长内存和计算,从而做者在更深的网络结构中,没有使用该操做。google
参数数量(百万):lua
Q1: 为何3个3x3的卷积能够代替7x7的卷积?spa
Q2: 1x1卷积核的做用3d
Q3: 网络深度对结果的影响(同年google也独立发布了深度为22层的网络GoogleNet)code
VGG采用了min-batch gradient descent去优化multinomial logistic regression objectiveorm
名称 | 参数设置 |
batch size | 256 |
momentum | 0.9 |
learn rate | (训练过程当中,下降了三次,每次减小) |
max iterations | 370K/74epochs |
正则化方法:blog
说明:虽然模型的参数和深度相比AlexNet有了很大的增长,可是模型的训练迭代次数却要求更少:a)正则化+小卷积核,b)特定层的预初始化
初始化策略:
训练输入:
采用随机裁剪的方式,获取固定大小224x224的输入图像。而且采用了随机水平镜像和随机平移图像通道来丰富数据。
Training image size: 令S为图像的最小边,若是最小边S=224,则直接在图像上进行224x224区域随机裁剪,这时至关于裁剪后的图像可以几乎覆盖所有的图像信息;若是最小边S>>224
,那么作完224x224区域随机裁剪后,每张裁剪图,只能覆盖原图的一小部份内容。
注:由于训练数据的输入为224x224,从而图像的最小边S,不该该小于224
数据生成方式:首先对图像进行放缩变换,将图像的最小边缩放到S大小,而后
预测方式:做者考虑了两种预测方式:
上述两种方法分析:
结论:
结论:
结论:
结论:
结论:
做者指出,VGG模型不只可以在大规模数据集上的分类效果很好,其在其余数据集上的推广能力也很是出色。