sigmoid 、tanh 、ReLu

  • tanh 函数或者双曲正切函数是总体上都优于 sigmoid 函数的激活函数。

  • 基本已经不用 sigmoid 激活函数了,tanh 函数在所有场合都优于 sigmoid 函数。
  • 但有一个例外:在二分类的问题中,对于输出层,因为y的值是 0 或 1,所以想让y值介于 0 和 1 之间,而不是在-1 和+1 之间。所以需要使用 sigmoid 激活函数。
  • sigmoid 函数和 tanh 函数两者共同的缺点是,在z特别大或者特别小的情况下,导数的梯度或者函数的斜率会变得特别小,最后就会接近于 0,导致降低梯度下降的速度。

这有一些选择激活函数的经验法则:

  • 如果输出是 0、1 值(二分类问题),则输出层选择 sigmoid 函数,然后其它的所有单元都选择 Relu 函数。
  • 这是很多激活函数的默认选择,如果在隐藏层上不确定使用哪个激活函数,那么通常会使用 Relu 激活函数。有时,也会使用 tanh 激活函数,但 Relu 的一个优点是:当z是负值的时候,导数等于 0。

这里也有另一个版本的 Relu 被称为 Leaky Relu。

  • 当z是负值时,这个函数的值不是等于 0,而是轻微的倾斜,如图。
  • 这个函数通常比 Relu 激活函数效果要好,尽管在实际中 Leaky ReLu 使用的并不多。

两者的优点是:

  • 第一,在z的区间变动很大的情况下,激活函数的导数或者激活函数的斜率都会远大于0,在程序实现就是一个 if-else 语句,而 sigmoid 函数需要进行浮点四则运算,在实践中,使用 ReLu 激活函数神经网络通常会比使用 sigmoid 或者 tanh 激活函数学习的更快。
  • 第二,sigmoid 和 tanh 函数的导数在正负饱和区的梯度都会接近于 0,这会造成梯度弥散,而 Relu 和 Leaky ReLu 函数大于 0 部分都为常熟,不会产生梯度弥散现象。(同时应该注意到的是,Relu 进入负半区的时候,梯度为 0,神经元此时不会训练,产生所谓的稀疏性,而 Leaky ReLu 不会有这问题)
  • z在 ReLu 的梯度一半都是 0,但是,有足够的隐藏层使得 z 值大于 0,所以对大多数的训练数据来说学习过程仍然可以很快。

快速概括一下不同激活函数的过程和结论。

  • sigmoid 激活函数:除了输出层是一个二分类问题基本不会用它。
  • tanh 激活函数:tanh 是非常优秀的,几乎适合所有场合。
  • ReLu 激活函数:最常用的默认函数,,如果不确定用哪个激活函数,就使用 ReLu 或者Leaky ReLu。

Relu计算方便,可以解决梯度消失

梯度消失问题,代表激活函数没选好

如果不确定哪一个激活函数效果更好,可以把它们都试试,然后在验证集或者发展集上进行评价。然后看哪一种表现的更好,就去使用它。

来源:吴恩达deeplearning笔记

转载于:https://www.cnblogs.com/tanrong/p/9932087.html

ML激活函数使用法则相关推荐

  1. ML/DL之激活函数/求导函数:ML中常用的AF激活函数(step_function、sigmoid、softmax、ReLU等)求导函数等代码实现之详细攻略

    ML/DL之激活函数/求导函数:ML中常用的AF激活函数(step_function.sigmoid.softmax.ReLU等)&求导函数等代码实现之详细攻略 目录 AF函数&求导函 ...

  2. 【李宏毅2020 ML/DL】P14 Tips for training DNN | 激活函数、Maxout、正则、剪枝 Dropout

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...

  3. 【李宏毅2020 ML/DL】P10 Classification_1 | 简单的例子告诉你使用 wx+b 以及 Sigmoid 作为激活函数的合理性

    我已经有两年 ML 经历,这系列课主要用来查缺补漏,会记录一些细节的.自己不知道的东西. 已经有人记了笔记(很用心,强烈推荐): https://github.com/Sakura-gh/ML-not ...

  4. ML(机器学习)神经网络,阶跃函数,sigmoid激活函数

    我们在上一篇文章说了单层感知机实现简单逻辑电路,多层感知机实现异或门电路.引入了阈值θ,偏置b.现在,我们根据上一篇的表达式,现实激活函数. 我们之前感知机的表达式如下: y = { x1w1+x2w ...

  5. 无贡献、无创新、无思路,ML领域准博士求助:论文到底要怎么创新?

    点击上方"视学算法",选择加"星标"或"置顶" 重磅干货,第一时间送达 来源丨量子位 编辑丨极市平台 导读 如何在机器学习领域写论文时保证创 ...

  6. 把握春招,收下这份GitHub万星的ML算法面试大全!

    来源:机器之心 本文约2380字,建议阅读7分钟. 在本项目中,作者为大家准备了 ML 算法工程师面试指南,它提供了完整的面试知识点.编程题及题解.各科技公司的面试题锦等内容. [导 读]春季到来,春 ...

  7. 太赞了!NumPy 手写所有主流 ML 模型,由普林斯顿博士后 David Bourgin打造的史上最强机器学习基石项目!...

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 用 NumPy 手写所有主流 ML 模型,普林斯顿博士后 David Bourgi ...

  8. NumPy 手写所有主流 ML 模型,由普林斯顿博士后 David Bourgin打造的史上最强机器学习基石项目!...

    关注上方"深度学习技术前沿",选择"星标公众号", 资源干货,第一时间送达! 用 NumPy 手写所有主流 ML 模型,普林斯顿博士后 David Bourgi ...

  9. 1.1 为什么需要 ML 策略-深度学习第三课《结构化机器学习项目》-Stanford吴恩达教授

    ←上一篇 ↓↑ 下一篇→ 3.12 总结 回到目录 1.2 正交化 为什么需要ML策略 (Why ML strategy?) 大家好,欢迎收听本课,如何构建你的机器学习项目也就是说机器学习的策略.我希 ...

最新文章

  1. python处理pdf实例_Python实战-从菜鸟到大牛的进阶之路pdf_Python教程
  2. sql常用crud命令
  3. c 添加mysql表单的一行数据类型_MySQL数据库基础
  4. form表单 无法提交js动态添加的表单元素问题。。
  5. 汇编语言(六)之输出字符的前导后字符
  6. 值大于为此列指定的允许精度_电能质量测试精度会受到哪些因素影响?如何解决?...
  7. mysql 线性表_线性表之顺序存储,基本操作
  8. 转载-----Java Longest Palindromic Substring(最长回文字符串)
  9. day3—python——字符串常用方法
  10. SAStruts中文文档
  11. “被”夭折的翻译——《CoffeeScript: Accelerated JavaScript Development》
  12. Java知识系统回顾整理01基础01第一个程序05Eclipse中运行Java程序
  13. tomcat设置编码
  14. Pix4Dmapper系列教程(一):Pix4D模型成果导出OSGB并加载到CASS3D进行三维测图
  15. 论文阅读——MobileNetV2: Inverted Residuals and Linear Bottlenecks
  16. 分享广东联通光猫超级密码
  17. android build.versioncodes.kitkat,Android 4.1至4.4 KitKat-为API启用TLS 1.2
  18. 最近在读的一些文章-2019.04
  19. 超详细MySQL安装教程(Windows)
  20. java身份证格式强校验

热门文章

  1. 本地突破XP系统权限
  2. 《架构师(“拥抱2015”特刊)》发布
  3. FAT AP和FIT AP 区别 (无线篇)
  4. Design Pattern Quick Overview
  5. 开始→运行→输入的命令集锦 1
  6. 无工具arp病毒检测
  7. 发现一个控件,介绍一下
  8. Cisco Ensoft
  9. 时间管理神器:滴答清单之我最喜欢的特征
  10. nginx优化及配置