SE net:Squeeze-and-Excitation Networks论文解读

SENet是一种引入通道注意力机制的卷积神经网络,通过Squeeze和Excitation块学习和分配通道间的依赖关系,提升特征表达能力。该网络在ImageNet数据集上取得了显著的性能提升,特别是在图像识别任务上。
摘要由CSDN通过智能技术生成

近期对有关注意力机制的两篇文章进行了解读。分别是可以嵌入到很多网络结构中去的SE block的提出论文SENet,以及在GAN生成领域引入注意力机制的SAGAN。这两篇文章都是很经典的文章,这里将其详细整理一下。

SE Net:Squeeze-and-Excitation Networks (CVPR2018)

    这篇文章的主要贡献是对通道间的依赖关系、各通道特征的权重进行了学习和分配。

    卷积神经网络(CNN)的核心构件是卷积运算符,它使网络在每一层的局部接受域内融合空间和通道信息构造信息特征。很多现有的研究都试图通过在整个特征层次上提高空间编码的质量来增强CNN的特征表达能力。在SENet中,将重点放在通道间关系上,提出一个新颖的架构单元,“squeeze和excitation”(SE block),通过显式建模通道(channel)之间的相互依赖性来自适应地重新校准通道特征的响应。

    SEnet是2017年由Momenta在提出的全新图像识别结构,它通过对特征通道间的相关性进行建模,把重要的特征进行强化来提升准确率。在ILSVRC 2017分类比赛中获得冠军,在ImageNet数据集上将top-5 error降低到2.251%,相对于2016年的冠军有了约25%的提升(2.991%)。

论文:Squeeze-and-Excitation Networks
论文链接:https://arxiv.org/abs/1709.01507
作者Caffe代码地址:https://github.com/hujie-frank/SENet
PyTorch代码地址:https://github.com/miraclewkf/SENet-PyTorch

(1)、主要原理和结构
   分Squeeze和excitation两块儿。SE block的结构图如下,

其中,Ftr为传统的卷积特征提取结构,X和U为其输入和输出,。计算公式为,

                                                                 

这与之前的卷积结构相同,SE block增加的在后面阶段。Squeeze操作即Fsq,目的是为了在后面的全连接层处理之前,先对全局信息进行一个融合,实际上是做了一个Global Average Pooling操作(在pytroch中,对U的W和H做平均池化;在Ttensorflow中有两种实现方式,分别为直接使用tf.reduce_mean()和使用 from tflearn.layers.conv import global_avg_pool,直接用global_avg_pool)。全局平均池化得到1*1*C的数据。随后进行excitation操作,包括FC(1*1*C/r,不使用bias)--> ReLu -->FC(1*1*C,不使用bias) --> Sigmoid。使用Sigmoid将特征值限制在[0,1]范围内。最后Scale后的值与特征U中C个通道分别相乘,作为下一级输入。通过网络对Scale值的学习,增强重要特征,减弱不重要特征,使得提取的特征指向性更强。

下面是pytorch版本的SE block实现代码:


                
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值