https://www.toutiao.com/a6678603633816240653/

从定义来讲,只要连续可导的函数都可以作为激活函数,但目前常见的多是分段线性和具有指数形状的非线性函数。

Sigmoid

特点:

- 输出范围0-1,很符合人的主观意识,即神经元对感知的也是从不激活(0)到完全激活(1)。

- 单调连续

- 容易求导,导数为$f(x)(1-f(x))$,用自己就可以表示自己的导数。

缺陷:

- 具有软饱和性(左软饱和性指x趋近于负无穷,导数趋近于0,右饱和性指x趋近于正无穷,导数趋近于0),在输出值较大较小时,网络很难更新,因为BP算法是更具梯度来进行的,这也是所谓的梯度消失问题。

- 输出不是以0为中心,而是0.5。但是相对于前一条缺陷,影响没那么大。

Tanh

特点:

- 收敛速度比sigmoid函数快,原因是:tanh 的输出均值比 sigmoid 更接近 0,SGD会更接近natural gradient(一种二次优化技术),从而降低所需的迭代次数。

缺陷:

- 依然存在软饱和性。

ReLU

当时AlexNet提出的激活函数,非常优秀,很长一段时间是我们设计CNN网络的默认激活函数。

特点:

- 当输入为正数时,输出导数恒为1,缓解了梯度消失的问题。

- 为网络带来稀疏性,当输入值小于0,就会被稀疏掉,人的大脑稀疏性高达95%。

- 不管是正向计算,还是导数计算都非常简单。

缺点:

- 左硬饱和性,当输入小于零时,导数恒为0,会使很多神经元无法得到更新,出现“神经元死亡”。

- relu函数输出无负值。

- 均值漂移,relu函数的输出均值恒大于0(从relu函数的输出范围就能看出来)。

Leaky ReLU

公式:$f(x) = max(alpha*x,x)$

特点:

- 为了解决relu中“神经元死亡”的问题,leaky relu给小于零的输入一个非常小的梯度。

缺点:

- 公式中的 $alpha$ 是一个很小的值,一般取0.01,首先这就是个超参数,另外也有文献指出它的性能很不稳定,有时候比relu好,有时候差,可想而知,不太靠谱。

PReLU

公式和Leaky ReLU一样,只不过它的 $alpha$ 参数是可学习的。

特点:

- 收敛速度比relu快。

- 输出均值更接近0。

缺点:

- 目前还不清楚,只能说表现还不稳定,不够“通用”,其作者何凯明在他的ResNet也没使用,而是使用的ReLU。

RReLU

和PReLU类似,只不过它这里的 $alpha$ 参数是一个高斯分布上的随机值,在测试时固定。

ELU

特点:

- 较高的噪声鲁棒性。

- 输出均值在0附近。

缺点:

- 存在指数运算,运算量较大。

SELU

牛逼的地方是提出该方法的论文后面有长达93页的论证。

公式:$f(x)=lambda*ELU(x)$

特点:

- 新增的参数 $lambda$ 大于1,所以在正半轴,函数的导数是大于1的。

- 激活函数有一个不动点,网络深了以后每一层的输出都会向正态分布靠拢,美其名曰自归一化。

缺点:

- selu的证明部分前提是权重服从正态分布,但是这个假设在实际中并不能一定成立,比如钟形分布?(不太懂)

- 众多实验发现效果并不比relu好。

CReLU

公式:$CReLU(x)=[ReLU(x),ReLU(-x)]$

作者发现在网络的浅层卷积核更倾向于捕捉正负相位的信息,而ReLU会将负相位的信息归0,所以才有了CReLU操作。

特点:

- 输出通道数翻倍,相当于利用对称的关系,将负相位的信息人为恢复出来。

缺点:

- 到底在哪些层使用,太依赖调试了。

Maxout

公式:$max(w_1^Tx+b_1,w_2^Tx+b_2,...,w_n^Tx+b_n)$

它是ReLU的推广,其发生饱和是一个零测集事件(不懂什么意思...),具有一个参数k。

特点:

- maxout可以拟合任意的凸函数。

- 具备relu的所有优点。

- 不会出现神经元死亡。

缺点:

- ([不错的解释](https://blog.csdn.net/hjimce/article/details/50414467))参数量巨大(以k倍增加),因为之前我们每个神经元只需要一组权重和偏置,现在不是了,我们添加了冗余的k组权重和偏置,让输入均经过这些权重和偏置计算,只保留激活值最大的输出。

Swish

公式:$f(x) = x*sigmoid(eta*x)$,其中 $eta$ 参数可以是常数也可以是训练的。

特点:

- 无上界有下界、平滑、非单调。

- Swish函数可以看做是介于线性函数与ReLU函数之间的平滑函数。

- 论文给出的实验,各种数据集上,各种网络,都比relu性能好(并且在深层网络上优势更大)。

缺点:

- 只有实验证明,没有理论支持。

- 在浅层网络上,性能与relu差别不大。

深度学习中的激活函数总结相关推荐

  1. Homepage Machine Learning Algorithm 浅谈深度学习中的激活函数 - The Activation Function in Deep Learning

    原文地址:http://www.cnblogs.com/rgvb178/p/6055213.html 版权声明:本文为博主原创文章,未经博主允许不得转载. 激活函数的作用 首先,激活函数不是真的要去激 ...

  2. Keras深度学习实战(4)——深度学习中常用激活函数和损失函数详解

    Keras深度学习实战(4)--深度学习中常用激活函数和损失函数详解 常用激活函数 Sigmoid 激活函数 Tanh 激活函数 ReLU 激活函数 线性激活函数 Softmax 激活函数 损失函数 ...

  3. 浅谈深度学习中的激活函数 - The Activation Function in Deep Learning

    原文地址:http://www.cnblogs.com/rgvb178/p/6055213.html 版权声明:本文为博主原创文章,未经博主允许不得转载. 激活函数的作用 首先,激活函数不是真的要去激 ...

  4. 深度学习中的激活函数与梯度消失

    转载请注明出处:http://www.cnblogs.com/willnote/p/6912798.html 前言 深度学习的基本原理是基于人工神经网络,信号从一个神经元进入,经过非线性的激活函数,传 ...

  5. 深度学习中各激活函数的优缺点

    转自:https://blog.csdn.net/NOT_GUY/article/details/78749509 在深度学习中,信号从一个神经元传入到下一层神经元之前是通过线性叠加来计算的,而进入下 ...

  6. 深入理解深度学习中的激活函数

    1. 什么是激活函数? 生物神经网络是人工神经网络的起源.然而,人工神经网络(ANNs)的工作机制与大脑的工作机制并不是十分的相似.不过在我们了解为什么把激活函数应用在人工神经网络中之前,了解一下激活 ...

  7. softmax激活函数_深度学习中的激活函数,从softmax到sparsemax数学证明

    softmax激活函数 The objective of this post is three-fold. The first part discusses the motivation behind ...

  8. 深度学习中的激活函数(一)

    一.激活函数的意义: 先简单介绍一下什么是激活函数~ 单一神经元模型如下图所示: 神经网络中的每个神经元节点接受上一层神经元的输出值作为本神经元的输入值,并将输入值传递给下一层,输入层神经元节点会将输 ...

  9. 一文概览深度学习中的激活函数

    点击上方"小白学视觉",选择加"星标"或"置顶" 重磅干货,第一时间送达 1. 什么是激活函数? 生物神经网络启发了人工神经网络的发展.但是 ...

  10. 干货丨 一文概览深度学习中的激活函数

    文章来源:机器之心 本文从激活函数的背景知识开始介绍,重点讲解了不同类型的非线性激活函数:Sigmoid.Tanh.ReLU.LReLU.PReLU.Swish,并详细介绍了这些函数的优缺点. 本文介 ...

最新文章

  1. PicoBlaze性能
  2. linux 时间日期类常用命令
  3. 【设计模式】建造者模式 ( 简介 | 适用场景 | 优缺点 | 代码示例 )
  4. 【转】根据起止日期+时间取数
  5. Web前端进阶之JavaScript模块化编程知识
  6. Nginx 完整安装篇
  7. mysql查询并设置高亮_慢查询分析调优工具~mysqldumpslow
  8. ionic拍照,从相册选择功能
  9. 面向对象初调用:foolish 电梯
  10. I Hate It(HDU-1754)
  11. 进程管理工具(Supervisor)笔记
  12. c语言中0xof423什么意思,C语言指针 百思不得其解的一个问题
  13. java 回溯_java 实现迷宫回溯算法示例详解
  14. Arcgis执行Raster Project时报Error001143 : Background server threw an exception
  15. cocos2d-x开启Wifi
  16. 我国iPS细胞事业支援促进委员会成立
  17. Baltimore System of Classifications of Viruses
  18. Class-Balanced Loss Based on Effective Number of Samples - 1 - 论文学习
  19. 【Android】二进制图片和Bitmap的getPixel方法解析
  20. 联想台式计算机重装系统教程,联想台式机重装win7系统教程

热门文章

  1. String对象不可修改指的是对象本身不可修改,而不是引用不可修改。
  2. MybatisPlus处理Mysql的json类型
  3. 直播活动丨BMMeetup第2期:大模型计算加速技术,2场特邀和7位青年学者技术报告联袂上演...
  4. 这个寒冬,如何让我们的身价翻倍?
  5. 深度学习布料交换:在Keras中实现条件类比GAN
  6. gitlab的安装和使用
  7. 原创 | 初学者友好!最全算法学习资源汇总(附链接)
  8. 独家 | 不同机器学习模型的决策边界(附代码)
  9. 近期活动盘点:统计学概论和医疗临床大数据分析讲座、24小时创新挑战:数字时代的人类健康与福祉...
  10. 干货 | 只有100个标记数据,如何精确分类400万用户评论?