写在前面:此文只记录了下本人感觉需要注意的地方,不全且不一定准确。详细内容可以参考文中帖的链接,比较好!!!
常用激活函数(激励函数)理解与总结
激活函数的区别与优点
梯度消失与爆炸

1. 激活函数是什么?

在多层神经网络中,上层节点的输出和下层节点的输入之间具有一个函数关系,这个函数称为激活函数(又称激励函数)。

2. 激活函数的用途

如果不用激活函数,每一层的输入都是上一层输出的线性函数,而多层线性函数与一层线性函数的功能是等价的,网络的逼近能力就相当有限,因此引入非线性函数作为激励函数,使得深层神经网络的可以更好的逼近任意函数。

3. 常见的激活函数:

Sigmoid 函数:

  1. 表达形式:
    f(z)=11+e−zf(z) = \frac{1}{1+e^{-z}}f(z)=1+e−z1​
  2. 函数图像:
  3. 导数图像:
  4. 优缺点:
优点
  • 能够把输入的连续值压缩到【0~1】之间,可解释性强,0为不活跃,1为活跃
缺点
  • 梯度反向传递时,容易导致梯度的爆炸和消失(大概率梯度消失,有时梯度爆炸)。

    而由于σ(z)\sigma (z)σ(z)最大值为0.25,且通常初始| w | < 1 ,则有:

    极易出现梯度消失;当初始化 |w| > 4 时,w * σ(z)\sigma (z)σ(z) > 1 ,才会产生梯度爆炸。
  • sigmoid函数的输出不是0均值。若该层神经元得到上一层的非0输出作为输入,产生的回传梯度的符号就会相同,或者都为正或者都为负,导致捆绑效果,使结果收敛变慢(例如,当x>0时,y = wx + b,对w求导,得到的梯度全为正,但可能w1 > w1,w2 < w2*,使得w1离w1*越来越远)详解sigmoid输出非0均值对网络训练的影响
  • 解析式中有幂运算,计算量相对较大

tanh 函数:

  1. 表达式:
    tanh(x)=ex−e−xex+e−xtanh(x) = \frac{e^{x} - e ^ {-x}}{e^{x}+e^{-x}}tanh(x)=ex+e−xex−e−x​
  2. 函数图像及导数图像:
  3. 特点:解决了sigmoid函数中的输出非0均值,但梯度消失或爆炸、及计算量较大的问题仍存在

Relu 函数:

  1. 表达式:
    Relu=max(0,x)Relu = max (0, x)Relu=max(0,x)
  2. 函数图像及导数图像:
  3. 优缺点:
优点
  • 在正区间上解决了梯度消失或爆炸问题
  • 计算梯度时只需判断是否大于0,而不用幂函数,计算速度快,收敛速度快
缺点
  • ReLU的输出非0均值
  • 当输入激活函数的值小于0时,对应的神经元的回传梯度为0,导致相应参数永远不会被更新(非正部分不会更新参数)
Relu与Relu6 对比:

参考:Relu6 作用

  1. Relu6就是普通的Relu,但是限制最大输出值为6,。优点是在移动端设备float16的低精度时,也能有不错的分辨率。因为如果激活不加限制,输出范围为0到正无穷,float16的精度下无法很好的精确描述如此大的范围数,带来精度损失【精度不足,导致溢出】。

Leaky Relu 函数(PReLU):

  1. 表达式
    f(x)=max(αx,x),α=0.01f(x) = max(\alpha x, x), \alpha = 0.01 f(x)=max(αx,x),α=0.01
  2. 解决了ReLU非正梯度为0,导致有些参数永远不会被更新的问题

Mish 函数:

  1. 表达式
    Mish=x×tanh(ln(1+ex))Mish=x×tanh(ln(1+ex)) Mish=x×tanh(ln(1+ex))
  2. 解决了ReLU非正梯度为0,导致有些参数永远不会被更新的问题
  3. 函数图像:

深度学习之激活函数篇(Sigmoid、tanh、ReLU、PReLU)相关推荐

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

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

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

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

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

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

  4. 【深度学习】之激活函数篇[Sigmoid、tanh、ReLU、Leaky ReLU、Mish、Hardswish、SiLU]附绘图Python代码。

    激活函数的作用 为卷积神经网络提供非线性 1.Sigmoid激活函数 Sigmoid激活函数是常用的连续.平滑的"s"型激活函数,其数学定义比较简单,如公式1所示: 简单来说,Si ...

  5. 三种激活函数——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} ...

  6. 深度学习之激活函数小结

    深度学习之激活函数小结 激活函数的作用和意义:引入非线性,增加网络表达能力: 基本激活函数介绍 首先看一下一些常见的激活函数: Sigmoid: 总结:第一个出现的激活函数,存在以下问题,所以后面基本 ...

  7. 计算机视觉面试宝典--深度学习机器学习基础篇(四)

    计算机视觉面试宝典–深度学习机器学习基础篇(四) 本篇主要包含SVM支持向量机.K-Means均值以及机器学习相关常考内容等相关面试经验. SVM-支持向量机 支持向量机(support vector ...

  8. 机器视觉面试宝典--深度学习补缺补漏篇

    机器视觉面试宝典–深度学习补缺补漏篇 一.深入理解Batch Normalization批标准化 机器学习领域有个很重要的假设:IID独立同分布假设,就是假设训练数据和测试数据是满足相同分布的,这是通 ...

  9. 深度学习——数据预处理篇

    深度学习--数据预处理篇 文章目录 深度学习--数据预处理篇 一.前言 二.常用的数据预处理方法 零均值化(中心化) 数据归一化(normalization) 主成分分析(PCA.Principal ...

最新文章

  1. head/tail实现
  2. educoder SML程序设计题线下编译环境搭建
  3. 关于'Deep Neural Networks for YouTube Recommendations'的一些思考和实现
  4. 云计算实战系列二(Linux-用户管理)
  5. python dataframe中缺失值处理
  6. Part Five 音视频API
  7. Linux下修改TomcatJVM内存大小
  8. linux服务器raid逻辑盘迁移,raid空闲盘的热迁移
  9. ps 如何制作一寸白底照片
  10. 植被覆盖指数计算教程(ENVI)
  11. 14款免费的GIF制作软件(转载)
  12. 将java封装的实体类数据生成excel供下载
  13. 虚拟化做快照需要停服务器么,如何创建VMware虚拟化快照和快照删除的方法
  14. 台式计算机关闭屏幕快捷键,关闭电脑屏幕的快捷键
  15. MT61K512M32KPA-16:C显卡GDDR6XD9ZPP显存
  16. 怎么绑定虚拟服务器,虚拟服务器里怎样绑定ip地址
  17. html传递只能用this,Html中使用JS $(this).attr('action'); 无法获值
  18. Java验证代理ip是否成功
  19. 苹果电脑上好用的五款文档文字编辑处理工具
  20. 悬浮动画切换重叠处触发来回闪烁问题

热门文章

  1. React Native 学习记录
  2. javascript学习笔记之入门
  3. Window.ActiveXObject的用法 以及如何判断浏览器的类型
  4. 如果有一些引用存在于标记中,则不会重命名这些引用,要继续吗?
  5. eclipse启动报错 Java was started but returned exit code=13 解决方法
  6. Github新功能 个人展示项目--首页展示个人介绍 图片and so on(2020.08.05)
  7. shell脚本 获取第几行 第几列 的命令 awk sed
  8. [转]char数组赋值
  9. 帆软finereport决策系统自定义登录界面
  10. 案例学习BlazeDS+Spring之一(