简介

Swish是Google在10月16号提出的一种新型激活函数,其原始公式为:f(x)=x * sigmod(x),变形Swish-B激活函数的公式则为f(x)=x * sigmod(b * x),其拥有不饱和,光滑,非单调性的特征,而Google在论文中的多项测试表明Swish以及Swish-B激活函数的性能即佳,在不同的数据集上都表现出了要优于当前最佳激活函数的性能.

论文地址:https://arxiv.org/abs/1710.05941

详细讲述

激活函数常在神经网络中用于添加非线性因素,可以将激活函数定义为一个几乎处处可微的函数:h : R → R .[1].

激活函数存在饱和问题,当激活函数满足上述公式第一种情况时,称之为右饱和,反之为左饱和.

如果激活函数在非极限状态下存在一个常数C可以证明,在x大于或小于该常数C时,h(x)的一次导数存在恒等于零的情况时,则称h(x)为右硬饱和函数或左硬饱和函数.否则称其为软饱和函数.

因为反向传播算法的计算方式,可证明饱和激活函数会导致神经网络的性能大幅度下降.从而产生梯度消失问题,如常见的sigmod或tanh函数都存在该问题.

而现在深度神经网络中常用的激活函数为ReLU激活函数,其存在有上界,无下界,光滑的特点,其变种拥有在大多数数据集上的最佳性能.但是其变种复杂多样想要使用仍然存在很多的调试问题.而新的Swish函数则不同,其Swish-B形式在谷歌论文中的大型数据集即各种神经网络中中拥有绝对的优势,虽然现在还没有数学证明,但是其实践结果却可能意味着,我们之后再也不需要测试很多的激活函数了,这大大降低了我们的工作量.

Swish与ReLU一样有下界而无上界,但是其非单调性确与其他常见的激活函数不同,通知其也拥有平滑和一阶导数,二阶导数平滑的特性.

谷歌测试证明,Swish适应于局部响应归一化,并且在40以上全连接层的效果要远优于其他激活函数,而在40全连接层之内则性能差距不明显.但是根据在mnist数据上AleNet的测试效果却证明,Swish在低全连接层上与Relu的性能差距依旧有较大的优势.

对于MNIST数据集而言,五层内的全连接层已经可以达到更好的测试性能,但是为了测试两种激活函数的不同,我使用了3,10,45三种不同的全连接层进行测试,同时为了加大数据集的难度,我同时使用了Fashion-MNIST数据集进行测试

测试结果:

总结.

google的论文告诉我们在更大的数据集与更深的神经网络上,Swish拥有更好的性能,而且当其与局部响应归一化结合使用时,味道更佳,但是我们在mnist与Fashion-MNIST数据集上的测试同时也表明,其实在部分中小型数据集上Swish激活函数,可能也拥有不错的性能表现.由于该函数没有数学证明,我们在使用时可能需要多实践一些.但是总体上我们可以认为,该激活函数是有效的.看来我们之后又多了一个炼丹的利器.

参考
[1] Noisy Activation Functions: Caglar Gulcehre, Marcin Moczulski
,Misha Denil, Yoshua Bengio.arXiv:1603.00391v3

[2] Fashion-MNIST: a Novel Image Dataset for Benchmarking Machine Learning Algorithms. Han Xiao, Kashif Rasul, Roland Vollgraf. arXiv:1708.07747

[3] Swish: a Self-Gated Activation Function.Prajit Ramachandran, Barret Zoph, Quoc V. Leoc V. Le. arXiv:1710.05941

Google提出的新型激活函数:Swish相关推荐

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

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

  2. 自门控激活函数Swish

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

  3. Google提出新型学习范式「Deep Memory」,或将彻底改变机器学习领域

    图源:pixabay 原文来源:arXiv 作者:Sylvain Gelly.Karol Kurach.Marcin Michalski.Xiaohua Zhai 「雷克世界」编译:嗯~是阿童木呀.K ...

  4. 在视觉任务上大幅超越ReLU的新型激活函数

    本文转载自旷视研究院. 本文介绍旷视研究院的一个新成果,通过在激活函数领域进行创新,提出一种在视觉任务上大幅超越ReLU的新型激活函数Funnel activation(FReLU),简单又高效. 论 ...

  5. relu函数_ECCV 2020,在视觉任务上大幅超越ReLU的新型激活函数

    ​"15分钟看顶会"是旷视研究院全新推出的论文快速解读专栏,聚焦旷视在全球各大顶会.期刊等平台所发表的工作,覆盖深度学习.计算机视觉.视觉导航与控制.计算摄影学.大规模机器学习系统 ...

  6. 详解激活函数Swish

    深层神经网络激活函数的选择对网络的训练动力学和任务性能有着重要的影响.目前,最成功和广泛使用的激活函数是矫正线性单元(ReLU) ,它是 f (x) = max (0,x).虽然有人提出了各种替代 R ...

  7. 语义分割领域开山之作:Google提出用神经网络搜索实现语义分割

    来源: AI科技评论 1. Introduction 在 arxiv 浏览论文的时候,单独看文章名不知道属于 CV 哪个领域,怀着对一作 Liang-Chieh 敬畏的心,在摘要中扫描到 PASCAL ...

  8. MURAL:消除预训练模型的语言限制!Google提出跨语言的多模态、多任务检索模型MURAL...

    关注公众号,发现CV技术之美 今日分享论文『MURAL: Multimodal, Multitask Retrieval Across Languages』,由 Google 提出跨语言的多模态.多任 ...

  9. 前沿|Google AI提新型神经网络,对神经元进行高精度自动重建

    来源:AI科技大本营 7 月 16 日, Google AI 发布了一篇博客称,Google Research 部门和 Max Planck 研究所合作提出了一种新型的递归神经网络,它可以提升连接组数 ...

最新文章

  1. Repeater控件的分页问题
  2. 检测窥屏_开挂、狙击、窥屏?乱象丛生的炉石狂野天梯,到底怎么了?
  3. 使用Oracle做定时任务
  4. leetcode193. 有效电话号码 正则了解一下
  5. 推荐一位朋友(大学教授)写给孩子的数学思维书
  6. 深度学习backbone是什么意思_CNN是靠什么线索学习到深度信息的?——一个经验性探索...
  7. 2017-2018-1 20155204 《信息安全系统设计基础》第七周学习总结
  8. day055056Django之多表操作,多表查询
  9. 90 后篮球运动员成功转型 iOS 开发,过程超刺激
  10. 三维计算机软件图,三维cad看图
  11. JAVA字符编码:Unicode,GBK,GB2312,UTF-8
  12. UTM大地坐标系与经纬度转换算法C++
  13. oracle 数据库模式对象,索引,序列,同义词,查看用户拥有的表,聚簇,数据库链接
  14. node-webkit(Windows系统) 打包成exe文件后,被360杀毒软件误报木马的解决方法
  15. 如何利用单片机的ADC模块(或者独立的ADC芯片)得到接入ADC管脚上的实际电压值?
  16. AI新基建沙场点兵,背后是一场“路径之争”
  17. [DA45] 使用apriori分析导演选择演员倾向
  18. 嵌入式C语言编程规范
  19. Java语言中类与对象的创建
  20. 忆17级信管杨友大三学年个人风雨兼程岁月

热门文章

  1. JSON数据从MongoDB迁移到MaxCompute最佳实践
  2. python3 time模块与datetime模块
  3. 【Machine Learning】决策树之ID3算法 (2)
  4. Java集合细节(三):subList的缺陷
  5. 理解css伪类和伪元素
  6. #每日播报# 8月6日 Github 热门项目汇总
  7. 产品研究分析--王者荣耀的那些套路
  8. Docker 极简入门教程,傻瓜都能看懂!
  9. 10 种保护 Spring Boot 应用的绝佳方法
  10. 1.java局部变量 实例变量 类变量(静态变量)