VERY DEEP CONVOLUTIONAL NETWORKS FOR LARGE-SCALE IMAGE RECOGNITION

本文参考网上多个对论文的理解.

1.VGG 重要贡献:

展示出网络的深度是算法优良性能的关键部分

2.VGG网络的改进点:

a.使用了更小的3*3卷积核,和更深的网络。两个3*3卷积核的堆叠相对于5*5卷积核的视野,三个3*3卷积核的堆叠相当于7*7卷积核的视野。这样一方面可以有更少的参数;另一方面拥有更多的非线性变换,增加了CNN对特征的学习能力。

b.VGGNet的卷积结构中,引入1*1的卷积核,在不影响输入输出维度的情况下,引入非线性变换,增加网络的表达能力,降低计算量。

c.训练时,先训练级别简单(层数较浅)的VGGNetA级网络,然后使用A网络的权重来初始化后面的复杂模型,加快训练的收敛速度。

d.采用了Multi-Scale的方法来训练和预测。可以增加训练的数据量,防止模型过拟合,提升预测准确率。

3.训练:

数据增强: 随机裁剪(crop)、水平翻转(horizontal flips)、RGB颜色变化(color shift)

采用2种设置训练图像大小方法:

(1)固定训练集图片大小,如256*256和384*384;

(2)让训练集的大小在一个范围内随机变化,如S∈[Smin,Smax]=[256,512],从多尺度的训练图像中进行采样,

训练采用小批量梯度下降法加上动量(mini-batch stochastic gradient descent + momentum),batch size = 256, momentum = 0.9;

正则化方法采用weight decay(L2罚函数乘子设为0.0005),前两个全连接层使用dropout(p=0.5);学习率为0.01,且当验证集停止提升时以10的倍数衰减,一共降低了3次;总迭代次数为370k (74 epochs), epochs指训练集完整遍历的次数。初始化权重取样于高斯分布N(0,0.01),偏置项初始化为0。

4.测试:

 测试图片的尺寸不一定要与训练图片的尺寸相同,且不需要裁剪。

 测试的时候,首先将全连接层转换到卷积层,第一个全连接层转换到一个7x7的卷积层,后面两个转换到1x1的卷积层,得到的特征图的通道数等于类别数,还有一个决定于输入图片尺寸的可变空间分辨率,每个通道单独average。最终交给softmax的是1x1x1000的feature map进行分类。

关于全连接转成卷积理解:

全连接层的每一个节点都与上一层每个节点连接,是把前一层的输出特征都综合起来,所以该层的权值参数是最多的。例如在VGG16中,第一个全连接层FC1有4096个节点,上一层POOL2是7*7*512 = 25088个节点,则该传输需要4096*25088个权值,需要耗很大的内存。由于可以把全连接层看成卷积层的一个特例,比如VGG16,POOL2到FC1层是全连接的,把pool2的输出节点按向量排列,即有25088个维,每一维大小为1*1,卷积核可以看成num_filters = 4096,channal = 25088,kernel_size = 1,stride=1,no pad。所以其实这部分就是把原先7*7*512的featuremap转成了1*1*25088的featuremap,然后再用4096个核去卷积,就生成了4096个大小为1*1的featuremap,这样就可以把不同大小的图像用于测试了

首先需要理解的是改fc层为conv层实际上的计算方式没有发生任何变化。但是其结果全卷积网络可以接收任意大小的图片输入,得到一个score map,对其做一个average就可以得到最终结果(one-hot label)。

比如训练时对224*224大小的图像得到7*7*512的特征, 而对于384*384大小的测试图像, 将得到12*12*512的特征, 通过后面3个从全连接层等效过来的卷积层, 输出大小是6*6*1000, 这表示了测试图像在36个空间位置上的各类分数向量. 和分别对测试图像的36个位置使用原始的CNN相比, 由于等效的CNN共享了大量计算, 这种方案十分高效而又达到了相同目的.

全连接层转化为卷积层的规则是: 将卷积核大小设置为输入的空间大小.这样做的好处在于卷积层对输入大小没有限制, 因此可以高效地对测试图像做滑动窗式的预测。用卷积层替代全连接层的好处, 下图黄色部分是多出来的计算量, 和将一个网络运用在测试图像的多个位置相比, 这种方法十分高效。

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值