神经网络激活函数汇总(Sigmoid、tanh、ReLU、LeakyReLU、pReLU、ELU、maxout)

常规 sigmoid 和 tanh

sigmoid

特点:可以解释,比如将0-1之间的取值解释成一个神经元的激活率(firing rate)

缺陷:

  1. 有饱和区域,是软饱和,在大的正数和负数作为输入的时候,梯度就会变成零,使得神经元基本不能更新。
  2. 只有正数输出(不是zero-centered),这就导致所谓的zigzag现象:

详细说明:

3 . 计算量大(exp)

tanh

tanh函数定义如下:

激活函数形状:

tanh和sigmoid函数是具有一定的关系的,可以从公式中看出,它们的形状是一样的,只是尺度和范围不同。

tanh是zero-centered,但是还是会饱和。

ReLU 大家族

ReLU

CNN中常用。对正数原样输出,负数直接置零。在正数不饱和,在负数硬饱和。relu计算上比sigmoid或者tanh更省计算量,因为不用exp,因而收敛较快。但是还是非zero-centered。

relu在负数区域被kill的现象叫做dead relu,这样的情况下,有人通过初始化的时候用一个稍微大于零的数比如0.01来初始化神经元,从而使得relu更偏向于激活而不是死掉,但是这个方法是否有效有争议。

LeakyReLU

为了解决上述的dead ReLU现象。这里选择一个数,让负数区域不在饱和死掉。这里的斜率都是确定的。

PReLU

parametric rectifier:

f(x) = max(ax,x)

但是这里的a不是固定下来的,而是可学习的。

ELU

具有relu的优势,且输出均值接近零,实际上prelu和LeakyReLU都有这一优点。有负数饱和区域,从而对噪声有一些鲁棒性。可以看做是介于relu和LeakyReLU之间的一个东西。当然,这个函数也需要计算exp,从而计算量上更大一些。

大一统:Maxout

maxout是通过分段线性函数来拟合所有可能的凸函数来作为激活函数的,但是由于线性函数是可学习,所以实际上是可以学出来的激活函数。具体操作是对所有线性取最大,也就是把若干直线的交点作为分段的界,然后每一段取最大。

maxout可以看成是relu家族的一个推广。

缺点在于增加了参数量。

更多相关见以前整理的一篇:深度学习中的各种tricks_2.0_maxout

2018年04月22日21:53:22

神经网络激活函数汇总(Sigmoid、tanh、ReLU、LeakyReLU、pReLU、ELU、maxout)相关推荐

  1. 常用的激活函数汇总-Sigmoid, tanh, relu, elu

    激活函数(又叫激励函数,后面就全部统称为激活函数)是模型整个结构中的非线性扭曲力,神经网络的每层都会有一个激活函数.那他到底是什么,有什么作用?都有哪些常见的激活函数呢? 深度学习的基本原理就是基于人 ...

  2. 常见激活函数持续更新)sigmoid Tanh Relu Leaky-ReLU RReLU

     激活函数是来向神经网络中引入非线性因素的,通过激活函数,神经网络就可以拟合各种曲线. sigmoid 公式: 函数图像:  Sigmoid函数也叫 Logistic 函数,用于隐层神经元输出,取值范 ...

  3. 激活函数总结sigmoid,tanh,relu,Leaky ReLU,RRelu,ELU,PRelu,SELU,swish

    本文总结深度学习的损失函数及其优缺点. 激活函数是深度学习模型的重要成分,目的是将线性输入转换为非线性.常见的激活函数有sigmoid,tanh,ReLU等 1.sigmoid Sigmoid 非线性 ...

  4. 【深度学习】激活函数:原理+常见激活函数(Sigmoid\Tanh\ReLU\Leaky ReLU\Softmax)

    首先需要知道为什么要引入激活函数:激活函数是用来加入非线性因素的,因为线性模型的表达能力不够.引入非线性激活函数,可使深层神经网络的表达能力更加强大. 在深度学习中,线性模型只需要简单的全连接层就能实 ...

  5. 激活函数 逻辑回归_神经网络激活函数:sigmoid、tanh、ReLU、softmax

    神经网络激活函数:sigmoid.tanh.ReLU.softmax 发布时间:2018-10-07 21:32, 浏览次数:874 , 标签: sigmoid tanh ReLU softmax 激 ...

  6. 三种激活函数——Sigmoid,Tanh, ReLU以及卷积感受野的计算

    1. 三种激活函数--Sigmoid, Tanh, ReLU 1.1 Sigmoid 1.1.1 公式 S ( x ) = 1 1 + e − x S(x) = \frac{1}{1 + e^{-x} ...

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

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

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

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

  9. 激活函数--Sigmoid,tanh,RELU,RELU6,Mish,Leaky ReLU等

    激活函数 目前自己使用比较多的激活函数RELU, RELU6; LeakyReLU; SELU; Mish :激活函数看:计算量:准确率: 大多数激活函数pytorch里有已经包装好了: Non-li ...

最新文章

  1. AIphaCode 并不能取代程序员,而是开发者的工具
  2. ArrayList和LinkedList区别
  3. 前端如何转换 schema 和 xml
  4. [HAOI2007] 理想的正方形 (单调队列)
  5. Win10系统,安装虚拟机,是微软自家的 Hyper-V ?还是轻量级的 Virtual Box ?
  6. 使用一个命令执行单个Java源文件
  7. CVPR 2019 Oral | 视觉识别新范式:开放世界下的大规模长尾识别
  8. PAIP.MYSQL数据库比较
  9. 深度学习——PReLU激活
  10. 软件测试和软件开发学哪个好呢
  11. 用GZIPOutputStream流压缩出现H4sIAAAAAAAAAA==
  12. html中的abbr有什么作用,HTML中abbr元素的使用介绍
  13. Vertica的那些事
  14. 【不收藏一定后悔】超智能三子棋——和电脑比一把
  15. MySQL 时间戳操作
  16. 【硬见小百科】看完这篇,请不要再说不懂MOSFET!
  17. series去重_python去重函数是什么
  18. java valueOf()方法
  19. encodeURI 和 decodeURI 用法
  20. 全媒体运营师胡耀文教你:大规模用户运营体系背后的3大子系统

热门文章

  1. 基于注解配置简单的SpringMVC+Mybatis
  2. 【道路建设——Prim】
  3. 地质灾害防治可视化智慧管理系统平台
  4. 2022-2027年中国地质工程行业市场全景评估及发展战略规划报告
  5. 胡晓明卸任蚂蚁CEO,下一站:阿里CEO?
  6. java库存信息管理系统_Java商户管理系统 客户管理 库存管理 销售报表 SSM项目源码...
  7. 黑客借微信大规模盗号
  8. matlab最优方案,matlab中文【应对方案】
  9. Jsoncpp如何使用及样例
  10. 使用天地图API实现导航功能