Task05:模型集成

论文下载链接:http://openaccess.thecvf.com/content_ICCV_2017/papers/Shen_DSOD_Learning_Deeply_ICCV_2017_paper.pdf
代码地址:https://github.com/szq0214/DSODICCV2017
的文章,有人说这篇文章并没有太多的创新点,也有人说这篇文章很有意思。为什么分歧那么大?
提示:
如果想了解DSOD的所有细节,要先理解SSD算法,毕竟是对SSD的算法进行的改进。DSOD解决的主要问题:不追求速度,不追求精确度(当然准确度还是有所提高的),而是DSOD算法可以从零开始训练(start form scratch),不需要预训练。
自己的一些看法:
刚开始接触的时候,觉得这没什么啊?从零训练网络和预训练的有什么区别呐?而且有时候预训练还能更快的收敛,节省训练时间。但是,预训练也是有坏处的,比如Faster RCNN,就是与训练的VGG,那么VGG前面的几层的网络结构就要固定了,是不能改变的。这样我们就不能知道前面几层到底适不适合检测问题呐?
整体思路:
DSOD的整个网络结构看下表,其实整个网络结构可以看成 Stem Block,Dense Block,Transition w/o Pooling Layer和最后的DSOD Prediction Layer组合而成。分别来看这四个层的作用。
Stem Block: 顾名思义,骨干结构,由一个33stride为2的卷积核和两个33stride为1的卷积核还有一个22的max pooling组成。有别于DenseNet的一个77stride为2后接一个33 max pooling stride 为2的结构。这个思路其实很常见,早在VGG中就开始使用了,Inception 系列使用的更多。另外这也是压缩网络的一个重要思路,就是将大的卷积核换成较小的卷积核的组合。为什么可以这样设计?因为一个两个33的的卷积核和一个77的卷积核的感受野是一样的,这样的话,才能保证CNN看到的信息不会变少。33stride为1的卷积加上一个22的stride为2的pooling也可以做到33stride为2的pooling。所以这样设计是可行的。对感受野不清楚的话,可以参考这篇:http://blog.csdn.net/u010725283/article/details/78593410那么这样做有什么好处呐?作者说是可以获得更多的信息(这个就需要看实验结果了)。Dense Block:这个也是DenseNet的dense layer-wise connection。先说这个Dense Block能做什么?其实就是将前面层的feature map可以连接到现在层上,这样就可以更好的利用前面层的信息了。当然如何连接,可以参考DenseNet。Transition w/o Pooling Layer这个更简单了,其实就是一个11卷积,这个在VGG也使用了。把11卷积扩展加上合理解释的是NetWork in Net Work。其中好处就是feature map通道间的融合,加上可以变换卷积核的数量。减少参数量等等好处。这个1*1找时间要好好研究一下。DSOD Prediction Layer DSOD Prediction Layer层如下图的结构。左边就是SSD算法的检测部分,右边是DSOD的,整个其实还是DenseNet的思想,即将前面层的feature map和后面层的feature map连接到一起。这个过程并没有什么新意。以上就是DSOD,如果看过R-FCN的话就会有所感悟,R-FCN其实就是将Faster RCNN的主网络换成了ResNet,但是呐,作者发现使用全卷积网络结构的ResNet并不适合Faster RCNN,就进行了改进。那么DSOD我的理解就是,把SSD的主干网络换成了DenseNet,那么既然主干网络都换了,为什么最后的检测层不能使用DenseNet的思想呐!这样就有了DSOD的网络结构。所以看到这,有些人就认为了,这个DSOD并没有什么新东西,都是拿先有的来组合一下,得到一个the state of art。但是,作者却有意外之喜,就是DSOD可以从零开始训练,摆脱了在ImageNet大数据集上进行预训练。这样的检测网络可是独此一家。这也是DenseNet有意思的地方。另外又证明了DenseNet的思想是有效的,除了大家都在追求的更深的网络,更多的数据,还有一种思路是挖掘网络的能力,充分挖掘网络各层蕴含的信息,同样可以提高网络能力。换句话说就是对于一个数据集,并不是越深的网络就越好,还可以寻找更适合这个数据集的模型。另外,DSOD的最大卖点就是可以从零开始训练,这个从零开始训练又有什么好的呐?这个可以分两点来看,在ImageNet上做预训练,然后迁移到其他领域,有些情况这种迁移是不合适的,比如医疗中的图像,多光谱图像,sar图像。另外就是会预训练会限制网络的结构,比如常见的SSD,Faster RCNN等网络,他们的前几层是不能动的。这样就不能调整网络结构去适应更多计算有限的场景。比如在手机上部署这些网络。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值