第一个版本Hard Swish激活函数

文章链接:Searching for MobileNetV3
年份:2019

简介

Swish激活函数代替ReLU,显著提高了神经网络的准确性,具体定义为:Swish(x)=x⋅σ(x)Swish(x) = x \cdot \sigma(x)Swish(x)=x⋅σ(x), 虽然这种非线性提高了精度,然而sigmoid函数是由指数构成的,在移动设备上的计算成本要高得多。Sigmoid激活函数可以用分段线性函数HardSigmoid拟合
Hardsigmoid(x)={0,x≤−31,x≥3x6+12,otherwise\begin{aligned}Hardsigmoid(x) = \begin{cases} 0, &x\le -3 \\ 1 ,&x\ge 3\\\frac{x}{6}+\frac{1}{2}, & otherwise\\\end{cases}\end{aligned}Hardsigmoid(x)=⎩⎨⎧​0,1,6x​+21​,​x≤−3x≥3otherwise​​由此,用Hardsigmoid替代sigmoid可以大大减少运算成本,由此诞生了HardSwish,具体的公式为:
HardSwish(x)=x⋅HardSigmoid(x)=x⋅ReLU6(x+3)6=x⋅{1,x≥3x6+12,−3<x<30,x≤−3Hard Swish(x) = x \cdot Hard Sigmoid(x)= x\cdot \frac{ReLU6(x+3)}{6}= x\cdot \begin{cases} 1, &x\ge3\\ \frac{x}{6}+\frac{1}{2}, &-3<x<3\\ 0, &x\le -3\end{cases}HardSwish(x)=x⋅HardSigmoid(x)=x⋅6ReLU6(x+3)​=x⋅⎩⎨⎧​1,6x​+21​,0,​x≥3−3<x<3x≤−3​
该函数的对x的导数为:
HardSwish′(x)={1,x≥3x3+12,−3<x<30,x≤−3Hard Swish^\prime(x) = \begin{cases} 1, &x\ge3\\ \frac{x}{3}+\frac{1}{2}, &-3<x<3\\ 0, &x\le -3\end{cases}HardSwish′(x)=⎩⎨⎧​1,3x​+21​,0,​x≥3−3<x<3x≤−3​
本文的参数均为常量,并与最初的平滑版本相匹配。经过试验发现该函数与Swish的性能几乎没有明显的差别,但从部署角度来看有多种优势,分段函数可以减少内存访问的数量,从而大幅减低延迟成本。具体的函数图像如下图:

不仅仅只有一种HardSwish版本另一个版本如下:

第二个版本的HardSwish激活函数

简介

文章链接:Semantic Segmentation of Satellite Images using a Modified CNN with
Hard-Swish Activation Function

年份:2019

简介:

激活函数的选择在神经网络的训练和测试动力学中起着重要的作用。介绍了一种与Swish激活函数密切相关的新型激活函数Hard-Swish。它被定义为
HardSwish=2x⋅HardSigmoid(βx)=2x⋅max(0,min(1,(0.2βx+0.5)))HardSwish = 2x\cdot HardSigmoid(\beta x) = 2x\cdot max(0, min(1, (0.2\beta x+0.5)))HardSwish=2x⋅HardSigmoid(βx)=2x⋅max(0,min(1,(0.2βx+0.5)))
可以写成分段函数的形式:
HardSwish=2x⋅{1,x≥52β0.2βx+0.5,−52β<x<52β0,x≤−52βHardSwish = 2x\cdot\begin{cases}1, &x\ge\frac{5}{2\beta}\\ 0.2\beta x+0.5, &-\frac{5}{2\beta}<x<\frac{5}{2\beta}\\ 0, &x\le-\frac{5}{2\beta}\end{cases}HardSwish=2x⋅⎩⎨⎧​1,0.2βx+0.5,0,​x≥2β5​−2β5​<x<2β5​x≤−2β5​​
其中β\betaβ是可训练参数或自定义参数。当β→∞\beta\to \inftyβ→∞时,HardSwish变成分量为0或1的阶跃函数。具体的函数图像如下图
HardSwish对x的导数的图像为:

HardSwish平滑地在ReLU和线性函数之间进行了非线性差值。β\betaβ越大,负区域的最小值越小,最小值为−58β-\frac{5}{8\beta}−8β5​。HardSwish的属性与Swish相似,因为它们都是上下无界的,它是非单调的。该函数与Swish相比,它的计算速度更快。

Hard Swish激活函数相关推荐

  1. Soft-Clipping Swish激活函数

    Soft-Clipping Swish激活函数 论文:Soft-Clipping Swish: A Novel Activation Function for Deep Learning 年份:202 ...

  2. 【激活函数】Swish激活函数详解

    Swish:Self-gated activation function(2017) ● Swish图像: ● Swish公式: 当β=1 时: ● Swish导数: ● Swish特点: ● 关于正 ...

  3. Google提出的新型激活函数:Swish

    简介 Swish是Google在10月16号提出的一种新型激活函数,其原始公式为:f(x)=x * sigmod(x),变形Swish-B激活函数的公式则为f(x)=x * sigmod(b * x) ...

  4. 谷歌大脑自门控激活函数Swish

    最近谷歌大脑公布了一个新的激活函数,叫做  Swish 激活函数.这个函数非常的有趣,很多人都把它应用到一些小的神经网络和大的神经网络中去测试它的性能.所以,我也打算去 kaggle 上面测试一些这个 ...

  5. 【Pytorch神经网络理论篇】 07 激活函数+Sigmoid+tanh+ReLU+Swish+Mish+GELU

    ①激活函数:主要通过加入非线性因素,你不线性模型表达能力不足的缺陷,因为神经网络中的数学基础是处处可微分的函数,故要求激活函数也应该保证数据的输入与输出是可微分. ②激活函数可以分为饱和激活函数与不饱 ...

  6. 自门控激活函数Swish

    论文链接:Swish: a Self-Gated Activation Function 目前使用最广泛的激活函数是 ReLU. 本论文中,我们提出了一种新型激活函数 Swish,Swish的数学表达 ...

  7. 常用激活函数(relu,glu,gelu,swish等)

    文章目录 sigmoid Tanh Relu leaky relu PRelu ELU GLU/GTU gelu swish 激活函数使用原则 激活函数的主要作用是提供网络的非线性建模能力. 本文简要 ...

  8. A.深度学习基础入门篇[四]:激活函数介绍:tanh、sigmoid、ReLU、PReLU、ELU、softplus、softmax、swish等

    [深度学习入门到进阶]必看系列,含激活函数.优化策略.损失函数.模型调优.归一化算法.卷积模型.序列模型.预训练模型.对抗神经网络等 专栏详细介绍:[深度学习入门到进阶]必看系列,含激活函数.优化策略 ...

  9. 深度学习最常用的10个激活函数

    那就让我们来整理一下深度学习中离不开的激活函数! 激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式.类似于人类大脑中基于神经元的模型 ...

  10. 深度学习最常用的10个激活函数!(数学原理+优缺点)

    ↑↑↑关注后"星标"Datawhale 每日干货 & 每月组队学习,不错过 Datawhale干货 作者:Sukanya Bag,来源:机器之心 激活函数是神经网络模型重要 ...

最新文章

  1. 区块链赚钱的9种方式
  2. 单电源运算放大器全波整流电路_几种二极管整流电路原理图解。
  3. hdu1501 记忆化搜索
  4. Vim 在 windows 环境下的初步配置
  5. gdi 格式转换 vb_VB 程序设计举例
  6. 2020-12-11 Python yield 使用浅析
  7. SpringMVC自定义拦截器与异常处理(自定义异常)
  8. LeetCode 1522. Diameter of N-Ary Tree(递归)
  9. python-字符串的格式化输出format
  10. java swing jdk_javax.swing
  11. row_number() over使用方法
  12. CAD数据与ArcGIS数据的互转换
  13. 程序员有哪些丢不掉的编程“陋习”?
  14. ORA-12504:TNS:监听程序在CONNECT_DATA中未获得SERVICE_NAME
  15. [转帖]到底什么是时间复杂度
  16. 工程伦理网课问答讨论整理
  17. vue中使用使用阿里云的iconfont
  18. 【Python练习】乌龟吃鱼小游戏
  19. 【转载】Python 数据皮尔逊相关性分析
  20. 【C/C++学习笔记】C++11 random 随机数(TR1)

热门文章

  1. android星星闪效果,H5使用canvas实现星星闪烁效果
  2. photoshop抠图与相框的制作
  3. MD5加密中文字符问题详解
  4. 经典运放电路详细分析(模拟电子技术)
  5. HTML与CSS回顾
  6. 完全演示在虚拟机中装Windows7
  7. Android 图片裁切框架 uCrop 的用法
  8. dispatch(dispatched)
  9. iOS 多线程dispatch_async dispatch_sync(GCD)详尽总结
  10. 2020年12月编程语言排行榜