微软推出提点神器动态ReLU,可能是最好的ReLU改进
作者 | Vincent
来源 | 晓飞的算法工程笔记
简介
ReLU是深度学习中很重要的里程碑,简单但强大,能够极大地提升神经网络的性能。目前也有很多ReLU的改进版,比如Leaky ReLU和 PReLU,而这些改进版和原版的最终参数都是固定的。所以论文自然而然地想到,如果能够根据输入特征来调整ReLU的参数可能会更好。
基于上面的想法,论文提出了动态ReLU(DY-ReLU)。如图1所示,DY-ReLU是一个分段函数,参数由超函数根据输入得到。超函数综合输入的各维度上下文来自适应激活函数,能够在带来少量额外计算的情况下,显著地提高网络的表达能力。另外,论文提供了三种形态的DY-ReLU,在空间位置和维度上有不同的共享机制。不同形态的DY-ReLU适用于不同的任务,论文也通过实验验证,DY-ReLU在关键点识别和图像分类上均有不错的提升。
Definition and Implementation of Dynamic ReLU
Definition
定义原版的ReLU为,为输入向量,对于输入的维特征,激活值计算为。ReLU可统一表示为分段线性函数,论文基于这个分段函数扩展出动态ReLU,基于所有的输入自适应,:
因子为超函数的输出:
为函数数量,为维度数,激活参数不仅与相关,也与相关。
Implementation of hyper function
论文采用类似与SE模块的轻量级网络进行超函数的实现,对于大小为的输入,首先使用全局平均池化进行压缩,然后使用两个全连接层(中间包含ReLU)进行处理,最后接一个归一化层将结果约束在-1和1之间,归一化层使用,为Sigmoid函数。子网共输出个元素,分别对应和的残差,最终的输出为初始值和残差之和:
和为和的初始值,和是用来控制残差大小的标量。对于的情况,默认参数为,,即为原版ReLU,标量默认为,。
Relation to Prior Work
表1
DY-ReLU的可能性很大,表1展示了DY-ReLU与原版ReLU以及其变种的关系。在学习到特定的参数后,DY-ReLU可等价于ReLU、LeakyReLU以及PReLU。而当K=1,偏置时,则等价于SE模块。另外DY-ReLU也可以是一个动态且高效的Maxout算子,相当于将Maxout的K个卷积转换为K个动态的线性变化,然后同样地输出最大值。
Variations of Dynamic ReLU
论文提供了三种形态的DY-ReLU,在空间位置和维度上有不同的共享机制:
DY-ReLU-A
空间位置和维度均共享(spatial and channel-shared),计算如图2a所示,仅需输出个参数,计算最简单,表达能力也最弱。
DY-ReLU-B
仅空间位置共享(spatial-shared and channel-wise),计算如图2b所示,输出个参数。
DY-ReLU-C
空间位置和维度均不共享(spatial and channel-wise),每个维度的每个元素都有对应的激活函数。虽然表达能力很强,但需要输出的参数()太多了,像前面那要直接用全连接层输出会带来过多的额外计算。为此论文进行了改进,计算如图2c所示,将空间位置分解到另一个attention分支,最后将维度参数乘以空间位置attention。attention的计算简单地使用卷积和归一化方法,归一化使用了带约束的softmax函数:
用于将attention平均,论文设为,为温度,训练前期设较大的值(10)用于防止attention过于稀疏。
Experimental Results
图像分类对比实验
关键点识别对比实验
与ReLU在ImageNet上进行多方面对比
与其它激活函数进行实验对比
可视化DY-ReLU在不同block的输入输出以及斜率变化,可看出其动态性。
结论
论文提出了动态ReLU,能够根据输入动态地调整对应的分段激活函数,与ReLU及其变种对比,仅需额外的少量计算即可带来大幅的性能提升,能无缝嵌入到当前的主流模型中。前面有提到一篇APReLU,也是做动态ReLU,子网结构十分相似,但DY-ReLU由于的存在,可能性和效果比APReLU更大。
论文: Dynamic ReLU
论文地址:
https://arxiv.org/abs/2003.10027
论文代码:
https://github.com/Islanna/DynamicReLU
更多精彩推荐
英伟达收购,ARM也要变美国公司,国产芯出路几何?
B 站神曲damedane:精髓在于换脸,五分钟就能学会
怎样用Python控制图片人物动起来?一文就能Get!
TikTok 不出售,字节跳动与甲骨文达成协议;传华为自研编程语言仓颉;分布式监控系统 WGCLOUD 更新|极客头条
200美元变290000美元,这个DeFi用户经历了什么?
相关文章:

监控 monit
官方说明文档 http://mmonit.com/monit/documentation/monit.html 实例 http://mmonit.com/wiki/Monit/ConfigurationExamples 下载最新软件包 wget http://mmonit.com/monit/dist/monit-5.4.tar.gz monit 介绍 monit是一个实用程序,用于在 Unix 系统上管理和监视…

框架窗口的尺寸设置
将窗口分割为几块,横向分用ROWS属性,纵向分用COLS属性,每一块的大小可以由这两个属性的值来实现。 <frameset cols#> 例:<frameset cols"100,200,300"> <frameset rows#> 例:<…

C语言双链表遍历,插入,删除
#include<stdio.h> #include<stdlib.h> #include <string.h> #define bzero(a, b) memset(a, 0, b)//windows平台下无bzero函数。 增加宏拓展移植性struct node{int data; //有效数据 struct node *pLast;//指向上一个节点的指针…

详解.NET的RAD功能
作者:中国计算机报Visual Studio.NET 拥有开发者建立一个成功而强大的中间层应用服务所需要的所有开发工具,利用这些工具,开发者可以: 1.保障消息传播和利用微软消息队列(MSMQ)跨平台的通讯; 2…

Java初学者如何自学和自己定位解决问题
注: OneCoder 即本人苦逼Coder 今天群里(Java Coder群:91513074)的朋友,问我该如何看帮助文档,或者说在遇到问题的时候如何解决。希望我能介绍一下我的方法。 这个OneCoder其实没有资格高谈阔论,只能说说个人的习惯和…
仅用 4 小时,吃透“百度太行”背后硬科技!
我们正处于一个 AI 生万物,万物生 AI 的时代,云与 AI 也如共同体,水乳相容不可分割。无论是企业还是政府机构、社会团体,上云已然成为一个不可抗的趋势,尤其是 AI 的发展,更是离不开强大、灵活、便捷的云计…

(转)java 中的try catch finally 语句中含有return语句的执行情况(总结版)
原处:http://blog.csdn.net/ns_code/article/details/17485221在这里看到了try catch finally块中含有return语句时程序执行的几种情况,但其实总结的并不全,而且分析的比较含糊。但有一点是可以肯定的,finally块中的内容会先于try…

希捷携全线企业级解决方案出席ODCC,Exos X18与Exos 2X14硬盘斩获两项大奖
2020年9月15日,数据存储与管理解决方案提供商希捷科技公司亮相2020开放数据中心(ODCC)峰会,并发表了以“数据新视界”为主题的演讲。希捷银河(Exos)18TB硬盘与希捷银河(Exos)2X14 MA…

动态装载和使用类型
作者:微软Reflection提供诸如Microsoft Visual Basic.NET和JScript语言编译器使用的底层结构来实施隐性后绑定。绑定是定位与某一特定类型相对应的声明的过程。当这个过程发生在运行的时候,而不是编译的时候,它被称为后绑定。Visual Basic.NE…

求1 + 2 + 3...+ n的和
题目:求1 2 3 ... n 的和 要求:不能使用乘除法、for、while、if、else、switch、case等关键字以及条件判断语句(A?B:C) 答: #include "stdafx.h" #include <iostream>using namespace std;//1、函数查找表法 typedef in…

Debussy的安装
下载完成后对软件安装包进行解压缩,得到安装文件和破解文件。 双击Debussy-54v9-NT.exe进行安装,出现以下界面,选择安装的路径。 选择安装类型,最好选择typical类型。 选择相关配置。 进行安装。 选择Yes继续,dont dis…

如何调试你的C#程序
作者:龙山文化 文章来源:ASPCool.com欢迎来到C#的奇妙天空,在这里,希望你能获得你想获得的东西,.我们真诚希望能给你带来巨大的帮助,带你进入另外一个广阔的空间。 Come on. Follow me and then U can W…

SSAS使用时间智能解决本年累计、同比、环比【转载】
通常,我们需要使用MDX来定义本年累计、同比、环比等一系列基于时间维度的计算指标。但是这样有一个麻烦的地方就是比如我有50个基础指标,每个指标都需要本年累计,那我就需要写50遍下面的语句:create member CURRENTCUBE.[MEASURES…
良心贴!没想到 Google 排名第一的编程语言,可以这么简单!
作为最近几年最火的编程语言,Python(没有之一)已经走过了20多个年头。也难怪,作为大数据时代和人工智能时代的必备语言,Python 的优点太多了,语言简洁、易学、开发效率高、可移植性强......不过它火起来的主…

报错 org.springframework.beans.factory.BeanCreationException
2019独角兽企业重金招聘Python工程师标准>>> 一.问题背景: spring mvc eclipse启动报错:org.springframework.beans.factory.BeanCreationException 二.分析 1.写了一个名为“User”的 实体bean,然后写了有参构造函数,…
醉没醉,带上智能手机走两步就知道
来源 | HyperAI超神经场景描述:斯坦福大学和匹兹堡大学的研究小组,最近发表了一项用智能手机检测醉酒状态的研究,可利用步态特征检测相应的血液和呼吸酒精浓度。以后喝没喝多,用你的手机测一测就知道。关键词:智能手机…

Linux编程常见问题
错误提示:Makefile:2: *** 遗漏分隔符 。 停止。原因makefile中 gcc语句前 缺少一个 tab分割符错误提示: bash: ./makefile: 权限不够原因 makefile 是文本文件不可执行,即使是root,也会权限不够我们应该在命令行下使用make&#…

网络工程师转售前的条件
昨天出差回来的时候已是凌晨四点,辛勤工作的早餐已经开始忙碌了。你走之后的第一周,房子空荡荡的,就剩下你的头发和发髻,还有你留下的信。真的很对不起你,从参加工作开始,我们总是聚少离多,很多…

python流程控制:while循环
python编程中whihe语句用于循环执行程序,即在某条件下,循环执行某段程序,以处理需要重复处理的相同任务。 while循环语句格式: while <判断条件>:执行语句 count 0 while (count <9):print("The count …
阿里动物园再添新丁,小蛮驴搞定物流最后三公里
作者 | 硬核云顶宫责编 | 李雪敬头图 | CSDN 下载自视觉中国今天的云栖大会上,阿里动物园再添新丁,不再这个新加入的动物既不是骡子也不是马,而是小蛮驴,这是一个专门解决物流最后三公里的AI机器人。今天的云栖大会,阿…

C语言中的CONST使用
C中的CONST使用 const是一个C语言的关键字,它限定一个变量不允许被改变。使用const在一定程度上可以提高程序的安全性和可靠性。 const的使用是c语言中一个比较微妙的地方,请看下面几个问题。 问题:const变量 和 常量 为什么下面的例子在…

一个项目可以有多个源代码路径
这样我们就建立了一个新的代码路径~~

x-http-wrapper: 如何解决每次发版时,修改http相关代码造成的错误!(Android、iOS、h5)...
其实是我做了个开源工具(^__^),拿出来给大家鉴赏下,欢迎大家提意见项目:github.com/xuyt11/x-ht… 欢迎关注和star 。功能:这是一个http相关代码的创建工具。 现在我们每一次发版,基本上都会涉及到http相关的修改&…
设计一款编程语言有多难?
作者 | DAVID CASSEL译者 | 弯月,责编 | 郑丽媛题图 | 自视觉中国来源 | CSDN(ID:CSDNnews)最近,Ruby编程语言的创始人兼主设计师、云平台即服务公司Heroku的Ruby首席架构师松本行弘在一次演讲中表示,由松本…

在 DW 中插入 Flash 的参数详解
作者:macromedia 文章来源: 蓝色理想 在Dreamweaver中插入FLASH后还可以有很多的控制参数,点属性面板右下的参数钮,就会有参数和值的加入。大家可以自由的控制, 以下内容摘自 Flash MX 2004 帮助文档 参数和属性下…

C语言中文件的读写(fputc和fgetc)(putchar和getchar)
文件打开之后就可以对文件进行读写了。 1、fputc(ch,fp); 将字符ch输出到(即写到)fp所指向的文件中。如果输出成功,返回字符ch的值,否则返回EOF(-1) putchar(c) 是从fputc中派生出来的,在stdio.…

转 微博 linux中ctime,mtime,atime的区别
http://blog.sina.com.cn/s/blog_67178440010101gr.html 当你同熟练的UNIX用户进行交谈时,你经常会听到他们傲慢地讲出术语“改变时间(change time)”和“修改时间(modification time)”。对于许多人(和许多字典而言),改变和修改是相同的。这里会有什么不同那&#…

WEB 打印的相关技术分析
文/谢康 做Web开发的人员一定都会面临一个共同的难题,那就是打印。的确,相对于Windows桌面应用程序来讲,Web应用程序的打印有种种限制,技术人员在项目开发过程中经常会遇到用户这样或那样的需求. 做过桌面应用开发的人都会非常熟悉…

jquery validate使用
一、用前必备 官方网站:http://bassistance.de/jquery-plugins/jquery-plugin-validation/ API: http://jquery.bassistance.de/api-browser/plugins.html 当前版本:1.5.5 需要JQuery版本:1.2.6, 兼容 1.3.2 <script src"../js/jquer…
Python程序员的“避坑”指南
结合我最近这些年的Python学习、开发经验,发现90%的人在学Python时都会遇到下面这些问题:1. 没什么经验根本不知道从何学起,而且应用方向太多了根本不知道该选择什么方向...2. 基础入门看似简单,但是进阶实战就举步维艰࿰…