三亩地 三亩地SAN MU DI · CODE DIARY
ARTICLE DETAIL

日记详情

真实记录编程学习的某一天,欢迎挑你感兴趣的翻一翻。

新手小白快速理解——SENet注意力机制

新手小白快速理解——SENet注意力机制

官方GitHub链接:https://github.com/hujie-frank/SENethttps://github.com/hujie-frank/SENet

原文链接:[1709.01507] Squeeze-and-Excitation Networkshttps://arxiv.org/abs/1709.01507

感兴趣的朋友可以自行下载,下面就让我们开始今天的分享。

一、引言

SENet(Squeeze-and-Excitation)是由来自Momenta胡杰及其所在的WMW团队提出的一种通道注意力机制,在这之前,传统CNN面临着这样一个情况:每个特征通道的响应强度都是固定的,网络无法根据当前输入的具体内容,动态地决定“哪些特征通道更重要”。SENet则解决了这个问题,可以自适应地学习到每个通道的重要性,根据全局信息重新校准通道权重,进而可以大大提升模型的性能。

二、核心思想

SE模块核心思想是三步走战略:

1.压缩(Squeeze):

通过全局平均池化将每个通道的HW空间信息压缩成一个数值,这个数值携带该通道的全局感受野信息,让浅层网络也能获得全局信息:

:Squeeze操作

:第c个通道的全剧平均池化结果,标量

:第c个通道的特征图,形状为

2.激励(Excitation):

通过两次全连接层(FC → ReLU → FC → Sigmoid)网络学习通道间的相关性,先将通道数压缩为原来的1/r(r默认取16,平衡性能和计算量),经ReLU激活后再恢复到原始通道数,最后通过Sigmoid得到每个通道0-1之间的权重值:

表示Sigmoid 激活函数

表示ReLU激活函数

3.重标定(Scale):

将学习得到的权重逐通道乘到原始特征上,完成对原始特征的重标定:

表示重标定后的新特征图

表示得到的新权重

表示原始特征图第c个通道的二维矩阵

三、小结

SENet(Squeeze-and-Excitation Networks)是一种通道注意力机制,本质上是一个即插即用的轻量级模块,而非独立的网络架构。它可以嵌入到ResNet、Inception等已有网络中,用极低成本让网络学会“注意力”,动态地为每个特征通道学习0~1之间的权重,让重要特征更突出,让无关特征被忽略。

← 返回列表