【深度学习:SENet】信道注意力和挤压激励网络(SENet):图像识别的新突破

【深度学习:SENet】信道注意力和挤压激励网络(SENet):图像识别的新突破

    • 为什么有效
    • 如何实现
    • 工作原理
    • 应用案例

在这里插入图片描述

挤压和激励网络(SENets)为卷积神经网络(CNN)引入了一个新的构建模块,该模块能在几乎不增加计算成本的情况下,显著改善通道间的相互依赖性。它们在今年的ImageNet比赛中大放异彩,并帮助将去年的成绩提升了25%。除了巨大的性能提升,SENets还可以轻松集成到现有的架构中。其主要思想是:

为卷积块的每个通道添加参数,让网络能够自适应地调整每个特征图的权重。

这听起来很简单,实际上也确实如此。下面让我们详细了解为什么它如此有效,以及如何用几行简单的代码改进任何模型。

为什么有效

CNN通过其卷积滤波器从图像中提取分层信息。较低层次的网络可以检测简单的上下文特征,如边缘或纹理,而较高层次则能识别人脸、文字或其他复杂的几何形状。它们提取的信息对解决特定任务至关重要。

这些成果是通过融合图像的空间和通道信息实现的。不同的过滤器会首先在每个输入通道中寻找空间特征,然后在所有输出通道中整合这些信息。我在另一篇文章中对此进行了更详细的介绍。

您需要了解的是,在创建输出特征图时,网络对其每个通道的权重是相等的。SENets的目标是改变这一点,通过引入一种内容感知机制,自适应地加权每个通道。最基本的形式是为每个通道添加一个参数,并赋予它一个线性标量值。

然而,作者更进一步。他们首先通过全局平均池化将每个特征图压缩成一个单一数值,全面了解每个通道的信息。这样就产生了一个长度为卷积通道数量的向量。然后,该向量被输入到一个由两层神经网络组成的结构中,输出一个相同长度的向量。这些新的值现在可以作为原始特征图的权重,根据它们的重要性调整每个通道。

如何实现

您可能认为,这听起来并不像我最初承诺的那样简单。但事实上,实现SE块的过程是直接且简洁的。下面是一个示例代码:

def se_block(in_block, ch, ratio=16):x = GlobalAveragePooling2D()(in_block)x = Dense(ch//ratio, activation='relu')(x)x = Dense(ch, activation='sigmoid')(x)return multiply()([in_block, x])
  1. 此函数接收一个输入卷积块及其通道数。
  2. 我们使用全局平均池化将每个通道压缩成单个数值。
  3. 通过一个全连接层,加上ReLU激活函数,引入非线性,并降低输出通道的复杂度。
  4. 紧接着是第二个全连接层,使用Sigmoid激活函数,为每个通道提供平滑的门控功能。
  5. 最后,我们根据侧边网络的输出对卷积块的每个特征图进行加权。

这五个步骤几乎不会增加额外的计算成本(少于1%),且可以轻松添加到任何模型中。

Vanilla ResNet模块与集成了SE块的ResNet模块对比图

在这里插入图片描述

Vanilla ResNet 模块与建议的 SE-ResNet 模块

作者指出,通过向ResNet-50添加SE块,可以达到与ResNet-101几乎相同的精度。这对于计算成本仅为一半的模型来说是令人印象深刻的。本文还探讨了其他架构,如Inception、Inception-ResNet和ResNeXt,这些架构通过集成SE块在ImageNet上展现了更低的错误率。

在这里插入图片描述

SENets 如何改进现有架构

SENets令人惊讶的是其简单性和有效性。能够几乎免费地将这种方法应用于任何模型,应该会激励您重新审视并训练您之前构建的所有模型。

工作原理

SENet主要通过以下三个步骤实现其目标:

  1. 挤压(Squeeze): 通过全局平均池化层将空间维度的信息压缩为一个通道描述符,这有助于凸显每个通道的全局重要性。

  2. 激励(Excitation): 使用全连接层学习通道间的依赖关系,并应用sigmoid激活函数以获取每个通道的重要性权重。

  3. 重标定(Re-calibration): 将计算得出的权重与原始特征图相乘,实现对特征图的动态调整。

应用案例

SENet已在图像识别、目标检测和图像分割等多种任务中得到广泛应用,并显著提高了性能。例如,在图像识别任务中,通过集成SE模块,模型能更准确地识别图像中的关键对象。

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

克服幻觉:提升语言模型在自然语言处理中的准确性与可靠性

随着语言模型(LLM)在自然语言处理(NLP)中的应用日益普及,它们在文本生成、机器翻译、情感分析等许多任务中展现出惊人的能力。然而,这些模型也常常显示出一个被称作“幻觉”(hallucination&…

扫拖一体机哪个牌子好用?2024旗舰洗地机总结

近年来,家庭清洁的方式发生了翻天覆地的变化。在这场前所未有的洗地机创新浪潮中,消费者们迎来了更为便捷高效的家庭清洁解决方案。然而,随着市场竞争的激烈,面对众多品牌和型号的家用洗地机,究竟哪款扫拖一体机好用呢…

实现区域地图散点图效果,vue+echart地图+散点图

需求:根据后端返回的定位坐标数据实现定位渲染 1.效果图 2.准备工作,在main.js和index.js文件中添加以下内容 main.js app.use(BaiduMap, {// ak 是在百度地图开发者平台申请的密钥 详见 http://lbsyun.baidu.com/apiconsole/key */ak: sRDDfAKpCSG5iF1rvwph4Q95M…

使用 go-elasticsearch v8 基本请求

使用 go-elasticsearch 请求示例 你可以通过参考Go 官方文档找到简单的示例,所以我认为先看看这个是个好主意。 连接客户端有两种方式,如下图。 至于两者的特点,TypedClient有类型,更容易编写,但文档较少。另外&…

以 RoCE+软件定义存储同时实现信创转型与架构升级

目前,不少企业数据中心使用 FC 交换机和集中式 SAN 存储(以下简称“FC-SAN 架构”),支持核心业务系统、数据库、AI/ML 等高性能业务场景。而在开展 IT 基础架构信创转型时,很多用户受限于国外交换机:FC 交换…

往期精彩推荐

所有的内容都在这个博客中,此博客为推广导航博客,过后会删掉https://blog.csdn.net/weixin_41620184/article/details/135042416 往期精彩:快来学习吧~~~ 机器学习算法应用场景与评价指标机器学习算法—分类机器学习算法—回归PySpark大数据处…

向日葵远程工具安装Mysql的安装与配置

目录 一、向日葵远程工具安装 1.1 简介 1.2 下载地址 二、Mysql 5.7 安装与配置 2.1 简介 2.2 安装 2.3 初始化mysql服务端 2.4 启动mysql服务 2.5 登录mysql 2.6 修改密码 2.7 设置外部访问 三、思维导图 一、向日葵远程工具安装 1.1 简介 向日葵远程控制是一款用…

VS2017 搭建opencv工程

VS2017 搭建opencv工程 opencv在处理图像方面具有很强的能力,在使用opencv之前先需要造好轮子。 1、opencv 官网 ,下载对应的资源文件包。 根据自身选择。下载包之后,解压。分为build和sources source目录下分别存放: modules: …

侯捷C++ 2.0 新特性

关键字 nullptr and std::nullptr_t auto 一致性初始化:Uniform Initialization 11之前,初始化方法包括:小括号、大括号、赋值号,这让人困惑。基于这个原因,给他来个统一,即,任何初始化都能够…

React使用动态标签名称

最近在一项目里(React antd)遇到一个需求,某项基础信息里有个图标配置(图标用的是antd的Icon组件),该项基础信息的图标信息修改后,存于后台数据库,后台数据库里存的是antd Icon组件…

用Redis实现实现全局唯一ID

全局唯一ID 如果使用数据库自增ID就存在一些问题: id的规律性太明显受表数据量的限制 全局ID生成器,是一种在分布式系统下用来生成全局唯一ID的工具,一般要满足下列特性: 唯一性高可用递增性安全性高性能 为了增加ID的安全性…

Django 后台与便签

1. 什么是后台管理 后台管理是网页管理员利用网页的后台程序管理和更新网站上网页的内容。各网站里网页内容更新就是通过网站管理员通过后台管理更新的。 2. 创建超级用户 1. python .\manage.py createsuperuser 2. 输入账号密码等信息 Username (leave blank to use syl…

在Android设备上设置和使用隧道代理HTTP

随着互联网的深入发展,网络信息的传递已经成为人们日常生活中不可或缺的一部分。对于我们中国人来说,由于某些特殊的原因,访问国外网站时常常会遇到限制。为了解决这个问题,使用代理服务器成为了许多人的选择。而在Android设备上设…

微服务智慧工地信息化解决方案(IOT云平台源码)

智慧工地是指应用智能技术和互联网手段对施工现场进行管理和监控的一种工地管理模式。它利用传感器、监控摄像头、人工智能、大数据等技术,实现对施工现场的实时监测、数据分析和智能决策,以提高工地的安全性、效率和质量。 智慧工地平台是一种智慧型、系…

Redis双写一致性

文章目录 Redis双写一致性1. 延迟双删(有脏数据风险)2. 异步通知(保证数据最终一致性)3. 分布式锁(数据的强一致,性能低) Redis双写一致性 当修改了数据库的数据也要同时更新缓存的数据&#xf…

Linux 系统拉取 Github项目

一、安装Git 在Linux上拉取GitHub项目可以使用Git命令。首先确保已经安装了Git。如果没有安装,可以通过包管理器(比如apt、yum)来进行安装。 sudo yum install git #查看安装版本 git -version二、关联GitHub 配置本地账户和邮箱 >>…

iOS实时查看App运行日志

目录 一、设备连接 二、使用克魔助手查看日志 三、过滤我们自己App的日志 📝 摘要: 本文介绍了如何在iOS iPhone设备上实时查看输出在console控制台的日志。通过克魔助手工具,我们可以连接手机并方便地筛选我们自己App的日志。 &#x1f4…

Rust 圣经 阅读 引用与借用

Rust 通过 借用(Borrowing) 在使用某个变量的指针或引用。 获取变量的引用,称之为 借用(borrowing) 。 引用与解引用 引用是为了解决在使用函数时,频繁地传递所有权。 引用只是获取了引用权,而…

魔改Stable Diffusion,开源创新“单目深度估计”模型

单目深度估计一直是计算机视觉领域的难点。仅凭一张 RGB 图像,想要还原出场景的三维结构,在几何结构上非常不确定,必须依赖复杂的场景理解能力。 即便使用更强大的深度学习模型来实现,也面临算力需求高、图像数据注释量大、泛化能力弱等缺点。 为了解决这些难题&a…

线性代数第一课+第二课总结

第一课 第一课是简单的行列式计算,主要就是要把左下角的数字全部转换为0,通过减去其他行的式子即可实现,最后把对角线的所有数字相乘,得到的结果是最后行列式的答案 第二课 例题1 硬算理论上其实也是可行的,但是使…