Dynamic ReLU:根据输入动态确定的ReLU

这是我最近才看到的一篇论文,它提出了动态ReLU (Dynamic ReLU, DY-ReLU),可以将全局上下文编码为超函数,并相应地调整分段线性激活函数。与传统的ReLU相比,DY-ReLU的额外计算成本可以忽略不计,但表示能力明显增强,并且实现简单,所以可以非常简单的对我们现有的模型进行修改。

Dynamic ReLU (DY-ReLU)

对于给定的输入向量(或张量)x,DY-ReLU被定义为具有可学习参数θ(x)的函数fθ(x)(x),该参数适应于输入x,它包括两个功能:

超函数θ(x):用于计算激活函数的参数。

激活函数fθ(x)(x):使用参数θ(x)生成所有通道的激活。

1、函数定义

设传统的或静态的ReLU为y = max(x, 0)。ReLU可以推广为每个通道c的参数分段线性函数。

其中coeffcients (akc, bkc)是超函数(x)的输出,如下:

其中K是函数的个数,C是通道的个数。论文中K=2。

2、超函数θ(x)的实现

使用轻量级网络对超函数进行建模,这个超函数类似于SENet中的SE模块(稍后会介绍)。

输出有2KC个元素,对应于a和b的残差。2σ(x)-1用于对-1到1之间的残差进行归一化,其中σ(x)表示s型函数。最终输出计算为初始化和残差之和,如下所示:

其中λ是标量,这个公式也就是我们上面的图

3、与先前研究的关系

可以看到DY-ReLU的三种特殊情况相当于ReLU、Leaky ReLU和PReLU。

4、DY-ReLU的变体

DY-ReLU-A:激活函数是空间和通道共享的。

DY-ReLU-B:激活函数是空间共享和通道相关的。

DY-ReLU-C:激活的是空间和通道分开的。

结果展示

1、消融研究

所有三种变化都比基线有所改善,但通道分开的DY-ReLU(变化B和C)明显优于通道共享的DY-ReLU(变化A)。

所以根据上面结果,使用DY-ReLU-B进行ImageNet分类,使用DY-ReLU-C进行COCO关键点检测。

2、ImageNet分类

使用MobileNetV2 (×0.35和×1.0), 用不同的激活函数代替ReLU。所提出的方法明显优于所有先前的工作,包括具有更多计算成本的Maxout。这表明DY-ReLU不仅具有更强的表示能力,而且计算效率高。

上图绘制了5万张验证图像在不同区块(从低到高)的DY-ReLU输入输出值。可以看到学习到的DY-ReLU在特征上是动态的,因为对于给定的输入x,激活值(y)在一个范围内(蓝点覆盖的范围)变化。

下图分析DY-ReLU中两段之间的夹角(即斜率差|a1c-a2c|)。激活函数在较高水平上具有较低的弯曲。

3、COCO关键点估计

当使用MobileNetV3作为骨干时,删除SENet模块,使用DY-ReLU替代ReLU和h-Swish后,结果也有提高。

总结

可以看到,只是使用DY-ReLU替换现有的激活函数,模型的表现明显优于基线模型。

这是ECCV2020的一篇论文,我们这里直接贴出paperswithcode的地址,这样可以直接拿来进行使用

https://avoid.overfit.cn/post/8db206f03cd54167b9eb2d06ebaffc6b

作者:sh-tsang

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

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

相关文章

项目(补充2):智慧教室

一。emWin环境的搭建 1.codeBlock下载 开源免费。 2.使用stm的Cubemx提供的作图软件 (1)在C盘下找到第三方的固件库,旁边有个ST文件夹 注意:我在下载cubemx为默认的路径 (2)STemWin中的Soft提供了绘图…

一文1800字从0到1使用Python Flask实战构建Web应用

Python Flask是一个轻量级的Web框架,它简单易用、灵活性高,适用于构建各种规模的Web应用。本文将介绍如何使用Python Flask框架来实战构建一个简单的Web应用,并展示其基本功能和特性。 第一部分:搭建开发环境 在开始之前我们需要…

企业架构LNMP学习笔记8

1、 运维人员需要考虑安全性、稳定性。 安装: 解压进入到目录: shell > tar zxf php-7.2.12.tar.gz shell > cd php-7.2.12 安装依赖软件: yum -y install libxml2-devel libjpeg-devel libpng-devel freetype-devel curl-devel op…

【100天精通Python】Day52:Python 数据分析_Numpy入门基础与数组操作

目录 1 NumPy 基础概述 1.1 NumPy的主要特点和功能 1.2 NumPy 安装和导入 2 Numpy 数组 2.1 创建NumPy数组 2.2 数组的形状和维度 2.3 数组的数据类型 2.4 访问和修改数组元素 3 数组操作 3.1 数组运算 3.2 数学函数 3.3 统计函数 4 数组形状操作 4.1 重塑数组形…

使用Windbg动态调试排查软件启动不了的问题

目录 1、问题说明 2、初步分析 3、使用Windbg启动程序进行动态调试 4、进一步分析 5、何时使用Windbg静态分析?何时使用Windbg进行动态调试? 6、最后 VC常用功能开发汇总(专栏文章列表,欢迎订阅,持续更新...&…

Go在安装Gin时出现Failed to connect 报错问题的解决方案(已解决)

在命令行中输入:go get -u github.com/gin-gonic/gin指令安装Gin第三方包时出现连接错误与连接超时的情况如下: 在较新版本的Go中引入了全新的包管理机制,出现上述错误可能是包管理机制设置不恰当的问题,尝试在终端窗口输入如下…

解决Apache Tomcat “Request header is too large“ 异常 ‍

🌷🍁 博主猫头虎(🐅🐾)带您 Go to New World✨🍁 🦄 博客首页——🐅🐾猫头虎的博客🎐 🐳 《面试题大全专栏》 🦕 文章图文…

【数据结构】| 并查集及其优化实现

目录 一. 并查集基本概念处理过程初始化合并查询小结 二. 求并优化2.1 按大小求并2.2 按秩(高度)求并2.3 路径压缩2.4 类的实现代码2.5 复杂度分析 三. 应用LeetCode 128: 最长连续数列LeetCode 547: 省份数量LeetCode 200: 岛屿数量 一. 并查集基本概念 以一个直观的问题来引入…

差分数组/前缀和

文章目录 1094. 拼车1109. 航班预定统计303. 区域和检索 - 数组不可变560. 和为K的子数组523. 连续的子数组的和 1094. 拼车 class Solution {public boolean carPooling(int[][] trips, int capacity) {int[] diff new int[1001]; // 记录每个站点改变的人数,比如…

无涯教程-JavaScript - WEIBULL函数

WEIBULL函数取代了Excel 2010中的WEIBULL.DIST函数。 描述 该函数返回威布尔分布。在可靠性分析中使用此分布,如计算设备的平均故障时间。 语法 WEIBULL(x,alpha,beta,cumulative)争论 Argument描述Required/OptionalXThe value at which to evaluate the function.Requir…

selenium可以编写自动化测试脚本吗?

Selenium可以用于编写自动化测试脚本,它提供了许多工具和API,可以与浏览器交互,模拟用户操作,检查网页的各个方面。下面是一些步骤,可以帮助你编写Selenium自动化测试脚本。 1、安装Selenium库和浏览器驱动程序 首先…

stable diffusion实践操作-常见lora模型介绍

系列文章目录 本文专门开一节写Lora相关的内容,在看之前,可以同步关注: stable diffusion实践操作 文章目录 系列文章目录前言一、什么是lora?1.1 lora 定义1.2 lora的基本原理1.2 通过分层控制lora 二、作用:2.1 复刻人物特征2…

C++实现蜂群涌现效果(flocking)

Flocking算法0704_元宇宙中的程序员的博客-CSDN博客 每个个体的位置,通过计算与周围个体的速度、角度、位置,去更新位置。

Linux系统编程5(线程概念详解)

线程同进程一样都是OS中非常重要的部分,线程的应用场景非常的广泛,试想我们使用的视频软件,在网络不是很好的情况下,通常会采取下载的方式,现在你很想立即观看,又想下载,于是你点击了下载并且在…

【多线程】线程间通信及状态

文章目录 1. 线程间的通信1.1 wait和notify1.2 notify随机唤醒1.3 notifyAll()1.4 join() 2. 线程间的状态3. 验证线程的状态3.1 验证NEW、RUNNABLE、TERMINATED3.2 验证WAITING3.3 验证TIMED-WAITING3.4 验证BLOCKED 4. 面试题:wait和sleep对比 1. 线程间的通信 1…

Linux系统下的zabbix监控平台(单机安装服务)

目录 一、zabbix的基本概述 二、zabbix构成 1.server 2.web页面 3.数据库 4.proxy 5.Agent 三、监控对象 四、zabbix的日常术语 1.主机(host) 2.主机组(host group) 3.监控项(item) 4.触发器(trigger) 5.事件(event) 6.动作(a…

JUC并发编程--------CAS、Atomic原子操作

什么是原子操作?如何实现原子操作? 什么是原子性? 事务的一大特性就是原子性(事务具有ACID四大特性),一个事务包含多个操作,这些操作要么全部执行,要么全都不执行 并发里的原子性…

ESP32之LEDC(PWM信号的输出)

一、PWM信号简介 PWM:脉冲宽度调制,简称脉宽调制频率(f):一秒钟PWM有多少个周期(单位Hz)周期(T):一个周期的时间占空比(duty):在一个脉冲周期内,高电平的时间与整个周期时间的比例脉宽时间:一个…

Java学习笔记之----I/O(输入/输出)一

在变量、数组和对象中存储的数据是暂时存在的,程序结束后它们就会丢失。想要永久地存储程序创建的数据,就需要将其保存在磁盘文件中(就是保存在电脑的C盘或D盘中),而只有数据存储起来才可以在其他程序中使用它们。Java的I/O技术可…

机器学习:可解释学习

文章目录 可解释学习为什么需要可解释机器学习可解释还是强模型可解释学习的目标可解释机器学习Local ExplanationGlobal Explanation 可解释学习 神马汉斯,只有在有人看的时候能够答对。 为什么需要可解释机器学习 贷款,医疗需要给出理由,让…