Deep Learning中常用的激活函数(activation)

1. sigmoid

表达式:

a=sigmoid(z)=11+e−za = sigmoid(z) = \frac {1} {1 + e^{-z}} a=sigmoid(z)=1+e−z1​

函数图像:

适用范围:

\quad sigmoidsigmoidsigmoid 函数适用于刚接触机器学习的同学,使用sigmoidsigmoidsigmoid函数可以很容易的与逻辑回归等算法结合,进行代价损失函数J(θ)J(\theta)J(θ)的优化。
\quad对于高阶的深度学习开发者而言, 会很少使用sigmoidsigmoidsigmoid 函数作为激活函数,因为有很多其他激活函数,比如,tanhtanhtanh的表现几乎总是要比sigmoidsigmoidsigmoid 好。
\quad只有在二分类时,最后的输出层才会用 sigmoidsigmoidsigmoid 函数,因为其函数取值范围为:0≤sigmoid(z)≤10 \leq sigmoid(z) \leq 10≤sigmoid(z)≤1。

2. tanh(双曲正切函数)

表达式:

a=tanh(z)=ez−e−zez+e−za = tanh(z) = \frac {e^z - e^{-z} } {e^z + e^{-z}} a=tanh(z)=ez+e−zez−e−z​

函数图像:

适用范围:

\quad tanhtanhtanh是较为常用的激活函数,但它的缺点是在导数值接近“0”时,学习速率会降低,这会直接导致更长的训练时间。

3. ReLU(修正线性单元)

表达式:

a=max(0,z)a = max(0, z) a=max(0,z)

函数图像:

适用范围:

\quad ReLU线性修正单元是目前最为常用和流行的激活函数,尤其是其大量的应用于卷积神经网络中,还有就是,ReLU函数构成简单,易于实现。
\quad 我们从它的函数图像可以看出,在z > 0时,其导数值恒为1,所以,相较于其他激活函数而言,它可以极大的提高训练速度,降低算法的运行时间。

\quad : 当z = 0时,由于此点导数未定义,所以将此点的导数值赋为0或1。

4. Leaky-ReLU(带泄露的ReLU)

表达式:

a=max(0.01z,z)a = max(0.01z, z) a=max(0.01z,z)

函数图像:

适用范围:

\quad Leaky-ReLU能够出现原因是因为,当z < 0时,ReLU的导数值为0,这不利于神经网络进行学习。所以,在z < 0时,为其赋予一定的斜率(导数)。

\quad 如果你问,为什么在z < 0时取斜率值 = 0.01?
\quad 实际上,你可以把这个斜率作为参数输入,但是实际上,很少有人会这么做;所以,如果你想用Leaky-ReLU,那么在z < 0时,取斜率值 = 0.01,即可。

\quad :但,实际上,神经网络中有足够多的隐藏单元使z > 0,所以,在大多数情况下,还是ReLU更加常用。

最后,还要说明的一点是,为什么神经网络一定要使用非线性激活函数?
答:
\quad根据吴恩达(Andrew Ng)老师的神经网络与深度学习课程中讲到的,如果使用线性激活函数(activation)或者不使用激活函数(activation),那么神经网络只是对输入做线性组合,则只会得到经线性变换后的函数,无法很好的拟合数据集,无法通过反向传播学习到有趣的函数。
\quad而且,若习得的函数为线性函数,那么实际上隐藏层并没有做什么,莫不如去除隐藏层,降低训练时间。

\quad 因此,在神经网络中一定要使用非线性激活函数,才能更好的拟和数据集,这样,神经网络才能学到有趣的东西。

DeepLearning: 归纳几种常用的激活函数(activation)相关推荐

  1. 常用激活函数activation function(Softmax、Sigmoid、Tanh、ReLU和Leaky ReLU) 附激活函数图像绘制python代码

    激活函数是确定神经网络输出的数学方程式. 激活函数的作用:给神经元引入了非线性因素,使得神经网络可以任意逼近任何非线性函数. 1.附加到网络中的每个神经元,并根据每个神经元的输入来确定是否应激活. 2 ...

  2. 深度学习中几种常见的激活函数理解与总结

    学习神经网络的时候我们总是听到激活函数这个词,而且很多资料都会提到常用的激活函数,比如Sigmoid函数.tanh函数.Relu函数.肯定很多人刚开始和我一样一头雾水,接下来就让我们详细了解一下激活函 ...

  3. 常用的激活函数(Sigmoid、Tanh、ReLU等)

    目录 一.激活函数定义 二.梯度消失与梯度爆炸 1.什么是梯度消失与梯度爆炸 2.梯度消失的根本原因 3.如何解决梯度消失与梯度爆炸问题 三.常用激活函数 1.Sigmoid 2.Tanh 3.ReL ...

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

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

  5. 深度学习常用的激活函数以及python实现(Sigmoid、Tanh、ReLU、Softmax、Leaky ReLU、ELU、PReLU、Swish、Squareplus)

    2022.05.26更新 增加SMU激活函数 前言 激活函数是一种添加到人工神经网络中的函数,类似于人类大脑中基于神经元的模型,激活函数最终决定了要发射给下一个神经元的内容. 此图来自百度百科,其中s ...

  6. 超越ReLU!SMU:一种新的激活函数,让CNN性能涨点!

    点击下方卡片,关注"CVer"公众号 AI/CV重磅干货,第一时间送达 转载自:集智书童 SMU: smooth activation function for deep netw ...

  7. 基于 Python 的 8 种常用抽样方法

    抽样是统计学.机器学习中非常重要,也是经常用到的方法,因为大多时候使用全量数据是不现实的,或者根本无法取到.所以我们需要抽样,比如在推断性统计中,我们会经常通过采样的样本数据来推断估计总体的样本. 上 ...

  8. DL之AF:机器学习/深度学习中常用的激活函数(sigmoid、softmax等)简介、应用、计算图实现、代码实现详细攻略

    DL之AF:机器学习/深度学习中常用的激活函数(sigmoid.softmax等)简介.应用.计算图实现.代码实现详细攻略 目录 激活函数(Activation functions)相关配图 各个激活 ...

  9. 激活函数 activation function

    文章目录 激活函数 activation function Sigmoid Sigmoid 反向传播 Tanh ReLU Dead ReLU Problem 产生的原因 激活函数 activation ...

最新文章

  1. 关于Java为什么配置好环境变量但是不能在命令行cmd运行javac的问题
  2. MySQL 中的运算符
  3. otf和ctf的意义_光学信息技术原理及应用 OTF与CTF的比较与计算.ppt
  4. iOS中改变部分字体颜色
  5. 计算机简单游戏有什么用,简单又好玩的互动游戏 简单又好玩的互动游戏有哪些...
  6. ubuntu 查看进程信息
  7. idea 创建java文件_idea创建java文件 格式不对
  8. Boruta特征筛选
  9. 模拟tcp_TCP 半连接队列和全连接队列满了会发生什么?又该如何应对?
  10. 内置函数的数据聚合NumpyPandas
  11. 倍加福二维码测试2——C#界面程序开发
  12. 如何使用QT?步骤详解
  13. 如何理解 图像傅里叶变换的频谱图
  14. photoshop 调用扫描仪扫描证件至电脑
  15. C位流行语言,“2018年十大流行语”
  16. 尚硅谷周阳学习微服务《二》
  17. origin python控制台怎么用_如何在标准python控制台中访问BPY?BPY是python的混合器...
  18. Gnosis Safe 的使用
  19. Win10默认输入法切换中英文标点
  20. oracle建用户之前是否必须建表空间,Oracle数据库-建库、建表空间,建用户

热门文章

  1. 无法访问其他计算机共享打印机,想共享别人的打印机,但显示无法连接到打印机怎么处理?高手来!...
  2. ROS入门(九)——机器人自动导航(介绍、地图、定位和路径规划)
  3. python 字符串输出报错 'utf-8' codec can't encode characters in position
  4. 除了欧拉公式,这8个数学公式也足够美丽且神奇
  5. 澎湃新闻网站全站新闻爬虫及各大新闻平台聚合爬虫发布
  6. 至强服务器性能视频,至强E5 V4性能表现测试
  7. 作为计算机专业学生,最应该学习的课程前五位是什么?(2021 年更新)
  8. 大型连锁药店管理系统源码
  9. 英文影视网站视频资讯文章采集批量翻译发布
  10. 【数据结构与算法】之深入解析“K站中转内最便宜的航班”的求解思路与算法示例