CVPR 2021 | 自适应激活函数ACON: 统一ReLU和Swish的新范式

作者:Ningning MA

CVPR 2021 | 自适应激活函数ACON: 统一ReLU和Swish的新范式

论文地址:https://arxiv.org/pdf/2009.04759.pdf
论文代码:https://github.com/nmaac/acon

本文提出一种新的激活函数ACON (activate or not),可以自适应地学习激活与否。

ReLU是最常见的激活函数,最近NAS搜到的Swish在各种SOTA网络结构中逐渐取代ReLU。有趣的是,我们发现虽然两者形式看起来很不一样,但Swish可以解释为ReLU的一种平滑近似。基于这个发现,本文进一步分析ReLU的一般形式Maxout系列激活函数,从而得到Swish的一般形式、简单且有效的ACON激活函数。

本文在多个任务上验证了此方法的涨点性能和泛化性能(例如在MobileNet-0.25和ResNet-152上,分别将ImageNet准确率提高了6.7%和1.8%),这表明ACON对已有的激活函数中是一种有效的替代方法。

1. ReLU和Swish的关系

 

前面提到,NAS在现代激活函数方面取得了成功,NAS搜索到的Swish已经在EfficientNet等许多SOTA模型中已经成为默认配置,但如何解释Swish背后的原理呢?(SENet也是近年的SOTA标配,我们在另一个工作 WeightNet

ECCV 2020,一种灵活高效的权重生成网络框架:https://mp.weixin.qq.com/s/uI1oEXqlqeyJ4NfyT0f40Q

中也做过一些有意思的探讨)本文的一个目标是提出一个新的视角,去解释这个搜索结果背后的机制,并研究更有效的激活功能。下面会详细讲解如何把Swish理解为ReLU的一种平滑近似:

对于一个最大函数  , 我们可以通过一个简单而通用的近似公式来获取他的平滑近似:

CVPR 2021 | 自适应激活函数ACON: 统一ReLU和Swish的新范式

这里引入了一个  ,它控制着  的平滑程度:

当  时,  (非线性)
当  时,  算术平均 (线性)

从下面的示例图可以更形象的看出  的作用:

CVPR 2021 | 自适应激活函数ACON: 统一ReLU和Swish的新范式

对于公式(1),我们仅考虑n=2的情况,可以推导成下面用sigmoid来表示的形式,其中用 分别代表这两项:

CVPR 2021 | 自适应激活函数ACON: 统一ReLU和Swish的新范式

我们发现上面的形式看起来仍然很复杂,但当我们把  代入合适的值,有意思的事情就发生了:

我们发现,当  时, 恰好是 ReLU 的表达式,而 又恰好是 Swish 的表达式。于是,我们可以把 Swish 解释为 ReLU 的这样一种平滑近似。

2.ReLU的一般式和Swish的一般式的关系

 

前面给出了一种新的视角解释了 ReLU 和 Swish 的关系,下面本文对 ReLU 的一般式 Maxout 做出同样的平滑近似,便得到了一簇新的激活函数,即 ACON 系列激活函数。其中 ReLU 是 Maxout 的一种特殊形式,Swish 是 ACON 的一种特殊形式。

CVPR 2021 | 自适应激活函数ACON: 统一ReLU和Swish的新范式

我们把  代入不同的值,得到上表中的不同形式,我们着重分析ACON-C,计算它的导数:

CVPR 2021 | 自适应激活函数ACON: 统一ReLU和Swish的新范式

看起来会新增加额外的参数 , 我们画出下图来更直观的理解它。可以发现在一阶导中, 控制着其渐进上下界的速度,而 则控制着上下界的值,这一点是Swish所欠缺的,后面的实验也会证明 的重要性。

CVPR 2021 | 自适应激活函数ACON: 统一ReLU和Swish的新范式

CVPR 2021 | 自适应激活函数ACON: 统一ReLU和Swish的新范式

验证ACON-C中p1,p2的涨点性能,即使在大模型Res152上也有1.1的涨点

3.ACON 的更多特例 ACON-FReLU

 

前面对Maxout中  的不同取值做了分析。最近专门针对视觉任务的新激活函数 FReLU (Funnel Activation for Visual Recognition) 也是Maxout的一种特例,本文设

 后,得到了 ACON-FReLU,并且基于此模块,设计了一个仅由 Conv1x1 和 ACON-FReLU 组成的轻量级block:

CVPR 2021 | 自适应激活函数ACON: 统一ReLU和Swish的新范式

以此 block 为基础搭建了 Toy Funnel Network (TFNet),来验证 ACON-FReLU 的有效性:

CVPR 2021 | 自适应激活函数ACON: 统一ReLU和Swish的新范式
CVPR 2021 | 自适应激活函数ACON: 统一ReLU和Swish的新范式

4.Meta-ACON

 

前面对  的不同变体着重做了分析,但前面提到  也同样重要因为其控制了激活程度。然而,从实验结果来看,在 Swish 的原始文章中也提到, 作用不大,即使  固定为1(Swish-1),也能取得差别不大的性能。这与我们前面对  的分析相违背,于是,本文对  用非常简单直接的小网络结构去生成,即显式地学习激活程度而不仅仅是把  作为一个参数,这样就解决了  效果不大的问题:

CVPR 2021 | 自适应激活函数ACON: 统一ReLU和Swish的新范式

下面在不同任务上展示此方法的有效性,可以看到,Meta-ACON 取得了相比于 SENet 几乎两倍的涨点:

CVPR 2021 | 自适应激活函数ACON: 统一ReLU和Swish的新范式

CVPR 2021 | 自适应激活函数ACON: 统一ReLU和Swish的新范式

在大模型和小模型都能有非常显著的涨点,且随着模型变大,涨点效果没有明显减弱

CVPR 2021 | 自适应激活函数ACON: 统一ReLU和Swish的新范式

CVPR 2021 | 自适应激活函数ACON: 统一ReLU和Swish的新范式

从学习曲线可以看到ACON-C相比于Swish的优势在于后期仍能有提升,Meta-ACON则效果跟为显著

CVPR 2021 | 自适应激活函数ACON: 统一ReLU和Swish的新范式

在其他任务上的泛化性能

更多细节请参考原文和代码。

本文为论文作者投稿。原文:https://zhuanlan.zhihu.com/p/363274457

转载请注明:《CVPR 2021 | 自适应激活函数ACON: 统一ReLU和Swish的新范式