深度特征融合理解add和concat之多层特征融合.docxVIP

深度特征融合理解add和concat之多层特征融合.docx

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多

深度特征融合---理解add和concat之多层特征融合

一、如何理解concat和add的方式融合特征

在各个网络模型中,ResNet,FPN等采用的element-wiseadd来融合特征,而DenseNet等则采用concat来融合特征。那add与concat形式有什么不同呢?事实上两者都可以理解为整合特征图信息。只不过concat比拟直观,而add理解起来比拟生涩。

从图中可以发现,

concat是通道数的增加;

add是特征图相加,通道数不变

你可以这么理解,add是描述图像的特征下的信息量增多了,但是描述图像的维度本身并没有增加,只是每一维下的信息量在增加,这显然是对最终的图像的分类是有益的。而concatenate是通道数的合并,也就是说描述图像本身的特征数〔通道数〕增加了,而每一特征下的信息是没有增加。

concat每个通道对应着对应的卷积核。而add形式则将对应的特征图相加,再进行下一步卷积操作,相当于加了一个先验:对应通道的特征图语义类似,从而对应的特征图共享一个卷积核〔对于两路输入来说,如果是通道数相同且后面带卷积的话,add等价于concat之后对应通道共享同一个卷积核〕。

因此add可以认为是特殊的concat形式。但是add的计算量要比concat的计算量小得多。

另解释:

对于两路输入来说,如果是通道数相同且后面带卷积的话,add等价于concat之后对应通道共享同一个卷积核。下面具体用式子解释一下。由于每个输出通道的卷积核是独立的,我们可以只看单个通道的输出。假设两路输入的通道分别为X1,X2,…,Xc和Y1,Y2,…,Yc。那么concat的单个输出通道为〔*表示卷积〕:

而add的单个输出通道为:

因此add相当于加了一种prior,当两路输入可以具有“对应通道的特征图语义类似〞〔可能不太严谨〕的性质的时候,可以用add来替代concat,这样更节省参数和计算量〔concat是add的2倍〕。FPN[1]里的金字塔,是希望把分辨率最小但语义最强的特征图增加分辨率,从性质上是可以用add的。如果用concat,因为分辨率小的特征通道数更多,计算量是一笔不少的开销

Resnet是做值的叠加,通道数是不变的,DenseNet是做通道的合并。你可以这么理解,add是描述图像的特征下的信息量增多了,但是描述图像的维度本身并没有增加,只是每一维下的信息量在增加,这显然是对最终的图像的分类是有益的。而concatenate是通道数的合并,也就是说描述图像本身的特征增加了,而每一特征下的信息是没有增加。

通过keras代码,观察了add对参数的影响,以及concat操作数组的结果。

二、concat实操

Concat层解析

在channel维度上进行拼接,在channel维度上的拼接分成无BN层和有BN层。

〔1〕无BN层:直接将deconvolutionlayer和convolutionlayerconcat。实验结果说明,该方式取得的结果精度较低,低于原有的VGG模型,分析主要的原因是漏检非常严重,原因应该是concat连接的两层参数不在同一个层级,类似BN层用在eltwise层上。

〔2〕有BN层:在deconvolutionlayer和convolutionlayer后面加batchnorm和scale层〔BN〕后再concat。实验结果说明,该方式取得了比原有VGG模型更好的检测效果〔表中的迭代次数还没有完哦〕,增加了2%的精度,但是速度上慢了一些。

总结:concat层多用于利用不同尺度特征图的语义信息,将其以增加channel的方式实现较好的性能,但往往应该在BN之后再concat才会发挥它的作用,而在num维度的拼接较多使用在多任务问题上,将在后续的博客中介绍,总之concat层被广泛运用在工程研究中。

三、concat与add实例

3.1Densenet

与inception的加宽网络结构以及ResNet的加深网络结构不同,DenseNet着重于对每一层featuremaps的重复利用。在一个Denseblock中,每一个卷积层的输入都是前几个卷积层输出的concatenation(拼接),这样即每一次都结合了前面所得到的特征,来得到后续的特征。

但是,其显存占用率高的缺点也比拟明显〔因为concatenation,不过好在后续有了解决方法:〔论文〕Memory-EfficientImplementationofDenseNets〕。

DenseNet优势:

〔1〕解决了深层网络的梯度消失问题

〔2〕加强了特征的传播

〔3〕鼓励特征重用

〔4〕减少了模型参数

〔5〕能够减少小样本的过拟合问题

DensNet缺点:

〔1〕非常消耗显存

Densn

您可能关注的文档

文档评论(0)

寒傲似冰 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8071104010000026

1亿VIP精品文档

相关文档