激励函数:作用是提供规模化的非线性化能力,使得神经网络可以任意逼近任何非线性函数,模拟神经元被激发的状态变化。如果不用激励函数,每一层输出都是上层输入的线性函数,无论神经网络有多少层,输出都是输入的线性组合。目前主要有三种常用的激励函数:

1. Sigmoid激励函数 :也叫 Logistic 函数,用于隐层神经元输出,取值范围为(0,1),可以用来做二分类。

而Sigmoid函数的缺点有:

  • 反向传播时,很容易就会出现梯度消失的情况(导数重0开始又消失于0),从而无法完成深层网络的训练。
  • 函数输出并不是0均值(zero-centered),输出值恒大于0.
  • 幂运算相对来讲比较耗时

2. Thah激励函数 :读作Hyperbolic Tangent,也称为双切正切函数,取值范围为[-1,1]。

                                                                                  thah(x)=2sigmoid(2x)-1

Tanh是Sigmoid的变形,与 sigmoid 不同的是,tanh 是0均值的。但是,梯度消失和幂运算的问题仍然存在。实际应用中,tanh 会比 sigmoid 更好。

3.  ReLU激励函数(Rectified Linear Unit):输入信号 <0 时,输出都是0,>0 的情况下,输出等于输入。

优点:

ReLU 使得SGD的收敛速度会比 sigmoid/tanh 快很多。相比于 sigmoid/tanh,ReLU 只需要一个阈值就可以得到激活值。

ReLU解决了梯度消失的问题。

缺点:

ReLU的输出不是0均值。

learning rate太高导致在训练过程中参数更新太大,训练的时候很容易就”die”了。某些神经元可能永远不会被激活,导致相应的参数永远不能被更新,那么这个神经元的梯度就永远都会是0了。

如何选择合适的激活函数?

1. 一般情况下,使用ReLU会比较好。采用Relu激活函数,整个过程的计算量节省很多。使用 ReLU,就要注意设置 learning rate,不要让网络训练过程中出现很多 “dead” 神经元;如果“dead”无法解决,可以尝试 Leaky ReLU、PReLU 、RReLU等Relu变体来替代ReLU。

2、不建议使用 sigmoid,如果一定要使用,也可以用 tanh来替代,因为后者解决了0均值的输出问题。

神经网络 激励函数相关推荐

  1. 【Python-ML】神经网络激励函数-双曲正切(hyperbolic tangent,tanh)函数

    # -*- coding: utf-8 -*- ''' Created on 2018年1月27日 @author: Jason.F @summary: 前馈神经网络激励函数-双曲正切(hyperbo ...

  2. 【Python-ML】神经网络激励函数-Softmax

    # -*- coding: utf-8 -*- ''' Created on 2018年1月27日 @author: Jason.F @summary: 前馈神经网络激励函数-softmax函数,评估 ...

  3. 【Python-ML】神经网络激励函数-Sigmoid

    # -*- coding: utf-8 -*- ''' Created on 2018年1月27日 @author: Jason.F @summary: 前馈神经网络激励函数-Sigmoid,逻辑斯蒂 ...

  4. 神经网络激励函数的作用是什么?有没有形象的解释?

    来自 | 知乎 地址 | https://www.zhihu.com/question/22334626/answer/103835591 神经网络激励函数的作用是什么?有没有形象的解释? 颜沁睿 h ...

  5. 通俗理解神经网络之激励函数(Activation Function)

    本文整理自博客.知乎上关于激励函数的博客和回答.部分图片引用自知乎,如有侵权,请联系作者. 关于神经网络激励函数的作用,常听到的解释是:不使用激励函数的话,神经网络的每层都只是做线性变换,多层输入叠加 ...

  6. 通俗理解神经网络之激励函数

    关于神经网络激励函数的作用,常听到的解释是:不使用激励函数的话,神经网络的每层都只是做线性变换,多层输入叠加后也还是线性变换.因为线性模型的表达能力不够,激励函数可以引入非线性因素. 其实很多时候我们 ...

  7. 神经网络相关的笔试题目集合(一)

    在找工作的过程中发现好多公司没有专门的.传统的图像处理岗位,所以只能参加算法类的笔试甚至AI类的笔试.在AI的笔试中几乎全是关于神经网络的问题,其实也都是很基础的一些问题,如果事先做了准备,可以从容应 ...

  8. 教你如何用Keras搭建分类神经网络

    摘要:本文主要通过Keras实现了一个分类学习的案例,并详细介绍了MNIST手写体识别数据集. 本文分享自华为云社区<[Python人工智能] 十七.Keras搭建分类神经网络及MNIST数字图 ...

  9. pytorch中的激励函数(详细版)

    初学神经网络和pytorch,这里参考大佬资料来总结一下有哪些激活函数和损失函数(pytorch表示) 首先pytorch初始化:   import torch import torch.nn.fun ...

  10. 基于卷积神经网络实现图片风格的迁移 1

    卷积神经网络详解 一.实验介绍 1.1 实验内容 Prisma 是最近很火的一款APP,它能够将一张普通的图像转换成各种艺术风格的图像.本课程基于卷积神经网络,使用Caffe框架,探讨图片风格迁移背后 ...

最新文章

  1. 计算机语言中display翻译,display的意思在线翻译,解释display中文英文含义,短语词组,音标读音,例句,词源,同义词,反义词【澳典网ODict.Net】...
  2. 在南京 学计算机 高职学校,2018南京专科学校有哪些 最新高职院校名单
  3. mysql数据库基本操作总结与归纳
  4. thinkphp mysql函数_thinkphp对数据库操作有哪些内置函数
  5. 解决struts2标签在HTML中错位的问题
  6. 熊海cms v1.0 SQL注入漏洞复现
  7. autojs通用拾色器
  8. JAVA能写大型游戏么?不能?
  9. 计算机相关的著名的期刊和会议
  10. 计算机回收站设置大小,电脑怎么设置回收站容量 电脑回收站的数据文件位置在哪...
  11. Specification for the Lab VIEW Measurement File
  12. iOS推送之远程推送
  13. 修复iPhone系统白苹果问题
  14. 揭开AI产品PRD的面纱 | 浅谈其和互联网产品PRD的异同
  15. android 蓝牙4.2.2分析研究
  16. python训练营 朋友圈点赞收费吗_千万不要随便在朋友圈点赞!
  17. THUWC2019 游记
  18. Python 实现FIR低通滤波器设计
  19. android 短信转发设置权限,用Tasker实现Android手机短信转发到钉钉
  20. 【01】 冯·诺依曼体系结构:计算机组成的金字塔

热门文章

  1. 基于GIS技术的智慧城市数字底盘(时空大数据平台)
  2. 智慧城市大数据运营中心,发挥大数据价值
  3. tomcat修改端口号 / 同时运行多个tomcat
  4. 2013 VS 2018:五年前和今天的十大数字货币大比拼
  5. C++实现设计模式——Builder模式
  6. 互联网大厂的薪资和职级一览
  7. socket -- epoll模型
  8. MySql优化面试题
  9. Java常用的框架有哪些?
  10. 以下可以作为C语言标识符的是( ),天津市计算机二级C语言选择题