挤压激励注意力 SE | Squeeze-and-Excitation Networks

在这里插入图片描述

论文名称:《Squeeze-and-Excitation Networks》

论文地址:https://arxiv.org/pdf/1709.01507.pdf

代码地址: https://github.com/hujie-frank/SENet


卷积神经网络 (CNN) 的核心构建块是卷积运算符,它使网络能够通过在每一层的局部感受野中融合空间和通道信息,构建有用的特征。大量的先前研究已经探讨了这种关系的空间部分,旨在通过增强整个特征层次结构中的空间编码质量来加强 CNN 的表现能力。在这项工作中,我们转而关注通道关系,提出了一种新的结构单元,我们称之为 “Squeeze-and-Excitation” (SE) 块,它通过显式建模通道间的相互依赖关系,自适应地重新校准通道特征响应。我们展示了这些模块可以堆叠在一起,形成非常有效地跨不同数据集进行泛化的 SENet 架构。我们还证明,SE 块可以为现有的最先进 CNN 提供显著的性能改进,代价仅为轻微的计算开销。

Squeeze-and-Excitation 网络是我们在 ILSVRC 2017 分类提交的基础,该提交获得了第一名,并将 top-5 错误率降低到 2.251%,相较于 2016 年的获奖结果,取得了约 25% 的相对改进。


问题背景

随着深度学习和神经网络的发展,卷积神经网络(CNN)在许多视觉任务中取得了巨大成功。这些网络通过卷积操作来提取信息,将空间和通道特征融合在一起。然而,尽管在构建深度和复杂模型方面取得了显著进展,但仍有许多方法试图增强模型的表现力。一些研究集中在空间特征的增强上,而其他研究则试图提高深度网络的稳定性。本文提出了一种新的方式,即通过显式建模通道间的相互关系来增强卷积神经网络的表达能力。


核心概念

这篇文章的核心概念是 “Squeeze-and-Excitation”(简称SE)模块。该模块通过调整每个通道的权重,来实现对通道间依赖关系的建模。SE模块的设计目的是通过动态调整通道权重,增加网络的灵活性,从而提高网络的表现力。它通过两个关键步骤来实现这一目标:挤压和激发。


模块的操作步骤

在这里插入图片描述

SE模块的操作步骤包括两个主要部分:挤压和激发。在挤压步骤中,模块使用全局平均池化来聚合空间维度,从而生成一个通道描述符。这一操作可以帮助网络获得全局信息,并嵌入通道特征的统计数据。在激发步骤中,模块使用一个简单的门控机制,通过sigmoid激活来调整通道特征。激发操作通过两个全连接层来完成,这两个全连接层之间包含ReLU激活,用于学习通道间的非线性关系。最终,模块会根据激发结果对通道进行重加权,从而实现对特征的动态调整。


文章贡献

本文的主要贡献在于提出了SE模块,并通过将其嵌入到现有的卷积神经网络中,显著提高了网络的表现力。SE模块的设计非常灵活,既可以作为一种新的模块加入网络中,也可以直接替换已有的模块。本文展示了SE模块在不同深度、不同架构的网络中的应用,并证明了其有效性。此外,作者还在ImageNet等著名数据集上进行了实验,显示了SE模块带来的性能提升。


实验结果与应用

实验结果表明,SE模块在多种不同的网络架构中都能带来显著的性能提升。作者通过在ResNetInception和其他现代架构中加入SE模块,证明了其普适性和有效性。在ImageNet数据集上的实验结果显示,SE模块可以显著降低错误率,提高准确性。此外,本文还展示了SE模块在其他数据集和任务上的应用,包括场景分类和目标检测,进一步证明了其广泛的适用性。


对未来工作的启示

本文提出的SE模块不仅在提高卷积神经网络的表现力方面取得了成功,而且也为未来的研究提供了启示。首先,SE模块展示了通道间依赖关系的重要性,这可能激发进一步研究在其他领域中应用这一概念。其次,SE模块的设计相对简单,但带来了显著的性能提升,这表明在网络设计中,简单且有效的改进方法仍有很大的潜力。未来的工作可以进一步探索SE模块的其他应用场景,以及如何与其他网络改进技术相结合。

这种模块化的设计理念也可能对神经网络挤压和优化等领域带来启发。通过调整通道权重来优化网络,可以降低模型的复杂性,同时保持或提高性能。这一理念可能对移动设备和嵌入式系统等资源受限的应用领域产生积极影响。


代码

import numpy as np
import torch
from torch import nn
from torch.nn import init


class SE(nn.Module):

    def __init__(self, channel=512, reduction=16):
        super().__init__()
        self.avg_pool = nn.AdaptiveAvgPool2d(1)
        self.fc = nn.Sequential(
            nn.Linear(channel, channel // reduction, bias=False),
            nn.ReLU(inplace=True),
            nn.Linear(channel // reduction, channel, bias=False),
            nn.Sigmoid(),
        )

    def forward(self, x):
        b, c, _, _ = x.size()
        y = self.avg_pool(x).view(b, c)
        y = self.fc(y).view(b, c, 1, 1)
        return x * y.expand_as(x)


if __name__ == "__main__":
    input = torch.randn(64, 256, 8, 8)
    model = SE(channel=256, reduction=8)
    output = model(input)
    print(output.shape)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/583454.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

C++ | Leetcode C++题解之第50题Pow(x,n)

题目: 题解: class Solution { public:double quickMul(double x, long long N) {if (N 0) {return 1.0;}double y quickMul(x, N / 2);return N % 2 0 ? y * y : y * y * x;}double myPow(double x, int n) {long long N n;return N > 0 ? qu…

谷歌CEO谈拥有“最好的”AI、1000 种新云产品和Workspace

谷歌首席执行官桑达尔皮查伊 (Sundar Pichai) 在谷歌财报中发表了大胆言论,其中包括将 Workspace 吹捧为网络安全领域的领导者、谷歌云和 YouTube 到今年年底的总运行额将达到 1000 亿美元,以及为什么需要“强大的合作伙伴计划”来推动人工智能发展。 谷…

70、栈-最小栈

思路: 除了最后一个获取最小值以外,其他都可以使用一个栈来实现,但是如果当前一个最小值被移除了,如果获取第二小的值,这个是需要记录的。所以最好的办法是两个栈。一个作为主栈存放数据,一个作为辅栈&…

C++之类和对象

目录 一:再谈构造函数 1.1 构造函数体赋值 1.2 初始化列表 1.3 explicit关键字 二. static成员 2.2 特性 三. 友元 3.1 友元函数 3.2 友元类 四: 内部类 五:匿名对象 六. 再次理解类和对象 一:再谈构造函数 1.1 构造…

关于discuz论坛网址优化的一些记录(网站地图sitemap提交)

最近网站刚上线,针对SEO做了些操作,为了方便网站网页百度被收录,特此记录下 discuz有免费的sitemap插件可以用,打开后台管理,找到插件栏,然后找到更多插件,进入插件市场。 选择这个免费的sitem…

ios CI/CD 持续集成 组件化专题四-(手动发布私有库-组件化搭建)

一 、创建私有索引库 1.1 、第一步 首先检查本地是否存在需要的私有索引库 pod repo list 例如:dp_base_ios_spec 在本地不存在该私有索引库 1.2 、第二步 在git下下创建一个新的库,这个库用来保存私有库的podspec文件,取名叫xxxSpec用以…

计算机组成实验(5)

一、实验目的和要求 1.1 实验目的 1. 复习二进制加减、乘除的基本法则 2. 掌握补码的基本原理和作用 3. 了解浮点数的表示方法及加法运算法则 4. 进一步了解计算机系统的复杂运算操作 1.2 实验要求 1. 熟悉二进制原码补码的概念,了解二进制加减乘除的原理与操作实现。 …

力扣HOT100 - 207. 课程表

解题思路&#xff1a; class Solution {public boolean canFinish(int numCourses, int[][] prerequisites) {int[] inDegree new int[numCourses];//存每个结点的入度List<List<Integer>> res new ArrayList<>();//存结点之间依赖关系Queue<Integer>…

buuctf——web题目练习

1.极客大挑战2019 easysql 密码或者用户输入万能密码即可 关于万能密码的理解和原理&#xff0c;可以参考这篇BUUCTF[极客大挑战 2019] EasySQL 1_[极客大挑战 2019]easysql 1-CSDN博客 2.极客大挑战2019 have fun 题目源码 需要构造payload 网页传参可参考&#xff1a;…

设计模式 基本认识

文章目录 设计模式的作用设计模式三原则设计模式与类图设计模式的分类 设计模式的作用 设计模式是在软件设计过程中针对常见问题的解决方案的一种通用、可重用的解决方案。设计模式提供了一种经过验证的方法&#xff0c;可以帮助开发人员解决特定类型的问题&#xff0c;并在软…

C++常用的输入输出方法(ACM模式)

文章目录 前言一、输入输出方法1、cin2、getline()3、getchar() 二、算法案例1、一维数组1.1 输入固定长度1.2长度不固定 2、固定二维数组3、以非空格隔开的元素输入3、常见数据结构定义以及输入3.1 链表 前言 C中的输入输出函数有很多&#xff0c;我们本章只针对大部分算法题…

Makefile 快速入门

参考自:Makefile 20分钟入门&#xff0c;简简单单&#xff0c;展示如何使用Makefile管理和编译C代码_哔哩哔哩_bilibili 注: 视频中用的是C&#xff0c;博主这里用C语言实现 喜欢老师的于老师的还请多多点赞&#xff0c;觉得博主写得不错的&#xff0c;也可以点赞、收藏哦 本…

mars3d实现获取线上不同历里程的坐标

mars3d实现获取线上不同历里程的坐标应用效果 线路数据是这样的&#xff0c;由很多段组成的&#xff0c;是不是就只能一段一段去计算看处于哪一段上具体位置 相关说明&#xff1a;想要实现以上效果的话&#xff0c;mars3d实现需要以下两点 1、需要合并线 2、可以利用 http://m…

学习周报:文献阅读+Fluent案例+有限体积法理论学习

目录 摘要 Abstract 文献阅读&#xff1a;基于物理信息神经网络的稀疏数据油藏模拟 文献摘要 文章讨论|结论 各方程和原理简介 PINN简介 域分解 实验设置 单相油藏问题 油水两相问题 Fluent实例&#xff1a;Y型弯管中的流体混合分析 几何建模部分 网格划分 求解器设…

贝叶斯统计实战:Python引领的现代数据分析之旅

贝叶斯统计这个名字取自长老会牧师兼业余数学家托马斯贝叶斯(Thomas Bayes&#xff0c;1702—1761)&#xff0c;他最先推导出了贝叶斯定理&#xff0c;该定理于其逝世后的1763年发表。但真正开发贝叶斯方法的第一人是Pierre-Simon Laplace(1749—1827)&#xff0c;因此将其称为…

C++|STL-list运用(1)

cplusplus.com/reference/list/list/?kwlist list介绍 list是一个双向循环链表&#xff0c;双向循环链表它的每个节点都有两个链接&#xff0c;一个指向前一个节点&#xff0c;另一个指向下一个节点&#xff0c;且最后一个结点指向头节点。 结点组成 1.数据域 2.指针域 &a…

多校园版 校园跑腿小程序源码系统 跑腿达人自主入住接单 带完整的安装代码包以及部署教程

近年来&#xff0c;随着移动互联网的普及和高校信息化的推进&#xff0c;校园跑腿服务逐渐成为了校园内的一种新兴业态。然而&#xff0c;市场上的校园跑腿小程序大多功能单一、缺乏个性化定制&#xff0c;难以满足不同高校、不同用户的需求。因此&#xff0c;小编给大家分享一…

Java:SpringBoot如何优化启动速度

一、yml中设置懒加载 spring:main:lazy-initialization: true 二、SpringBoot启动类中添加注解 Indexed &#xff08;Spring5才有该注解&#xff09; Indexed EnableAsync RestController SpringBootApplication(exclude {WxMaAutoConfiguration.class}) EnableTransactionM…

web服务的部署及高级优化

搭建web服务器 1.1、配置主机IP以及软件仓库搭建 [rootserver129 ~]# vmset.sh 100 //主机IP配置为172.25.254.100 1.2、查看搭建web服务器所需的软件包 [rootserver100 ~]# dnf search nginx 名称 精准匹配&#xff1a;nginx nginx.x86_64 : A high performance web serve…

WEB攻防-PHP特性-metinfoCMS审计实例

前置知识&#xff1a;PHP函数缺陷 测试环境&#xff1a;MetInfo CMS 函数缺陷导致的任意文件读取 漏洞URL&#xff1a;/include/thumb.php?dir 漏洞文件位置&#xff1a;MetInfo6.0.0\app\system\include\module\old_thumb.class.php <?phpdefined(IN_MET) or exit(No…