神经网络中激活函数的真正意义?一个激活函数需要具有哪些必要的属性?还有哪些属性是好的属性但不必要的?

(1)非线性:即导数不是常数。这个条件是多层神经网络的基础,保证多层网络不退化成单层线性网络。这也是激活函数的意义所在。

(2)几乎处处可微:可微性保证了在优化中梯度的可计算性。传统的激活函数如sigmoid等满足处处可微。对于分段线性函数比如ReLU,只满足几乎处处可微(即仅在有限个点处不可微)。对于SGD算法来说,由于几乎不可能收敛到梯度接近零的位置,有限的不可微点对于优化结果不会有很大影响[1]。

(3)计算简单:非线性函数有很多。极端的说,一个多层神经网络也可以作为一个非线性函数,类似于Network In Network[2]中把它当做卷积操作的做法。但激活函数在神经网络前向的计算次数与神经元的个数成正比,因此简单的非线性函数自然更适合用作激活函数。这也是ReLU之流比其它使用Exp等操作的激活函数更受欢迎的其中一个原因。

(4)非饱和性(saturation):饱和指的是在某些区间梯度接近于零(即梯度消失),使得参数无法继续更新的问题。最经典的例子是Sigmoid,它的导数在x为比较大的正值和比较小的负值时都会接近于0。更极端的例子是阶跃函数,由于它在几乎所有位置的梯度都为0,因此处处饱和,无法作为激活函数。ReLU在x>0时导数恒为1,因此对于再大的正值也不会饱和。但同时对于x<0,其梯度恒为0,这时候它也会出现饱和的现象(在这种情况下通常称为dying ReLU)。Leaky ReLU[3]和PReLU[4]的提出正是为了解决这一问题。

(5)单调性(monotonic):即导数符号不变。这个性质大部分激活函数都有,除了诸如sin、cos等。个人理解,单调性使得在激活函数处的梯度方向不会经常改变,从而让训练更容易收敛。

(6)输出范围有限:有限的输出范围使得网络对于一些比较大的输入也会比较稳定,这也是为什么早期的激活函数都以此类函数为主,如Sigmoid、TanH。但这导致了前面提到的梯度消失问题,而且强行让每一层的输出限制到固定范围会限制其表达能力。因此现在这类函数仅用于某些需要特定输出范围的场合,比如概率输出(此时loss函数中的log操作能够抵消其梯度消失的影响[1])、LSTM里的gate函数。

(7)接近恒等变换(identity):即约等于x。这样的好处是使得输出的幅值不会随着深度的增加而发生显著的增加,从而使网络更为稳定,同时梯度也能够更容易地回传。这个与非线性是有点矛盾的,因此激活函数基本只是部分满足这个条件,比如TanH只在原点附近有线性区(在原点为0且在原点的导数为1),而ReLU只在x>0时为线性。这个性质也让初始化参数范围的推导更为简单。额外提一句,这种恒等变换的性质也被其他一些网络结构设计所借鉴,比如CNN中的ResNet[6]和RNN中的LSTM。

神经网络中激活函数的真正意义?相关推荐

  1. 【机器学习算法面试题】四.深度神经网络中激活函数有哪些?

    欢迎订阅本专栏:<机器学习算法面试题> 订阅地址:https://blog.csdn.net/m0_38068876/category_11810806.html [机器学习算法面试题]一 ...

  2. 激活函数设计vhdl_浅谈神经网络中激活函数的设计

    激活函数是神经网络中非线性的来源,因为如果去掉这些函数,那么整个网络就只剩下线性运算,线性运算的复合还是线性运算的,最终的效果只相当于单层的线性模型. 那么,常见的激活函数有哪些呢?或者说,激活函数的 ...

  3. 神经网络中激活函数对比

    神经网络中的常用激活函数 文章目录 神经网络中的常用激活函数 1.Sigmoid函数 2.Relu(修正线性单元) 3.Tanh ​ 在神经网络中,每个神经元需要将加权求和后的值作为激活函数的输入值, ...

  4. 【干货】通俗理解神经网络中激活函数作用

    推荐阅读时间8min~13min 主要内容:通俗理解激活函数,主要来自我在学习会的slides,讲解了激活函数的非线性能力和组合特征的作用 下面我分别对激活函数的两个作用进行解释. 1 加入非线性因素 ...

  5. 深度学习:神经网络中的激活函数

    http://blog.csdn.net/pipisorry/article/details/71157037 激活函数 神经网络神经元中,输入的 inputs 通过加权,求和后,还被作用了一个函数, ...

  6. 【深度学习技术】卷积神经网络常用激活函数总结

    本文记录了神经网络中激活函数的学习过程,欢迎学习交流. 神经网络中如果不加入激活函数,其一定程度可以看成线性表达,最后的表达能力不好,如果加入一些非线性的激活函数,整个网络中就引入了非线性部分,增加了 ...

  7. 神经网络中的常用激活函数总结

    ©PaperWeekly 原创 · 作者|张文翔 单位|京东集团算法工程师 研究方向|推荐算法 激活函数之性质 1. 非线性:即导数不是常数.保证多层网络不退化成单层线性网络.这也是激活函数的意义所在 ...

  8. 神经网络中的激活函数的比较

    常见激活函数 神经网络中,常见的激活函数有以下几种: 1. sigmoid f(x)=11+e−xf(x) = \frac{1}{1+e^{-x}}f(x)=1+e−x1​ f′(x)=f(x)(1− ...

  9. 神经网络中常用的激活函数

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

最新文章

  1. 微信小程序之redirectTo、switchTab和navigateTo
  2. 函数的递归调用(专题)
  3. 机器人 蓝buff 钩_lol:机器人史诗级加强,从河道钩蓝buff,对面打野要骂人
  4. mysql存储过程批量建表
  5. selenium控制浏览器
  6. Android布局基础知识
  7. 绘制自己的人际关系图_攒人脉,建圈子,从绘制一张人际关系图开始。
  8. 京东联盟高级API - 京东联盟商品类目查询接口
  9. Flash Builder 4 正式版破解注册方法(flex4)
  10. BizTalk Server : 提高 BizTalk 编程能力的 8 点技巧和窍门
  11. LAN9252采用外部阻容复位的时候,RESET引脚一直为低的原因以及对应解决办法。
  12. 恒大通关世界500强:一家房企的进阶路与中国民营企业的边界探索
  13. web前端进阶<7>:3d图像翻转效果
  14. ev6 ev8 ev4a加密视频破解翻录提取教程
  15. 手机号时间戳加密传到前端_如何在不到一个小时的时间内加密您的一生
  16. java meter_自定义Java Swing Meter控件
  17. 如何访问web文件夹之外的文件
  18. [转]研究生能力自我培养手册
  19. ora-01017: 用户名/口令无效; 登录被拒绝
  20. pdf转word需要密码怎么办?教你几个小妙招

热门文章

  1. 《人工智能北京共识》发布,全文公开
  2. 一本书带你入门商业数据科学
  3. 后悔没早知道这些Python特性
  4. 进程和线程你真的搞懂了吗?
  5. Splunk组件和架构详解
  6. 原创 | 电视广告流量预测中的“常识”陷阱,你掉进去了吗?
  7. 数据分析 | 带你零基础入门数据挖掘(附代码)
  8. 3行代码,Python数据预处理提速6倍!(附链接)
  9. 诺奖得主涉嫌学术不端!30余篇论文被指涉嫌P图造假、复制粘贴,合作者包括中国学者...
  10. 连发10篇SCI!徐州二本学霸全奖直博香港城大引热议