sigmoid


除非在二元分类的输出层,否则千万不要用
吴老师几乎没用过,因为tanh几乎在所有场合都更优越

tanh


激活函数tanh()的效果几乎总比sigmoid函数好,因为tanh的输出位于[-1,1]之间,激活函数tanh的平均值就更接近0.
你可能需要平移所有数据,让数据平均值为0。使用tanh函数而不是sigmoid函数也有类似数据中心化的作用(使数据的平均值接近0)。而这实际上让下一层的学习更方便一些。

在大部分场合,tanh都要比sigmoid更优越一些。
但是在输出层output layer,将输出yhat定在[0,1]之间要更合理。所以sigmoid一般用于输出层。
也就是说在隐藏层hidden layer中用tanh代替sigmoid,在输出层output layer依旧使用sigmoid。

但是tanh函数和sigmoid函数都存在一个相同的问题,那就是当z过大或过小时,导数的梯度或者说这个函数的斜率就会变得很小,这样会拖慢梯度下降算法

ReLU(修正线性单元)

a=max(0,z)。ReLU是最常用的激活函数
即z<0时斜率为0,z>0时斜率为1。
在z=0的时候是没有导数的定义的,而且在实际应用中,数据为0.000……00……的概率非常小,所以把z=0处的导数定为1或0都是可以的。

在选择激活函数时有一些经验法则:
如果你的输出值时0和1,如果你在做二元分类,那么sigmoid函数很适合作为输出层的激活函数,然后其他单元都用ReLU。
ReLU现在已经变成激活函数的默认选择了。如果你不确定隐藏层应该用哪个,就用ReLU作为激活函数。
ReLU的一个缺点是,当z<0时导数等于0,虽然这在实践中没有什么问题。
但ReLU还有另一个版本,叫做带泄露的ReLU(leaky ReLU)。

当z<0时斜率不再为0,它有一个很平缓的斜率。leaky ReLU通常效果比ReLU要好,但在实际中的使用频率没有那么高。
ReLU的优点是,当z很大时,函数的斜率也和0差很远,所以神经网络的学习速度通常会快得多

事实上很难知道什么参数对你的问题最有效
所以一个建议是:如果你不确定哪种激活函数最有效,你可以先试试,在你的保留交叉验证数据集上跑跑,或者在开发集上跑跑(Q:什么是保留交叉验证数据集和开发集,怎么跑),看哪个参数效果更好,就用哪个

非线性激活函数的必要性


简单来说,如果不使用激活的函数的话(或使用线性激活函数),多层神经网络可以用一层网络来等效替代(因为多个线性函数的组合仍为线性函数)。
所以,想要实现更复杂的非线性功能,必须引入非线性的成分。
所以,要实现多层的神经网络,必须使用非线性的激活函数。

==
简单来说,唯一可以用线性激活函数的地方,通常就是输出层。
在隐藏层除了一些极特殊情况,都是用的非线性激活函数。==

吴恩达神经网络和深度学习-学习笔记-2-激活函数相关推荐

  1. 吴恩达神经网络与深度学习——深度神经网络

    吴恩达神经网络与深度学习--深度神经网络 深度神经网络 符号 前向传播 矩阵维度 m个样本 为什么使用深层表示 搭建深层神经网络块 正向传播和反向传播 前向和反向传播 前向传播 反向传播 参数和超参数 ...

  2. 吴恩达神经网络和深度学习

    [前言] 在学习了深度学习和神经网络之后,为什么我要以博客的形式来做笔记?这CSDN有那么多的优秀文章,我自己写的都比不上 别人的我写的真的有意义吗,为什么我要浪费大量的时间去做这项工作?我相信一句话 ...

  3. 吴恩达神经网络与深度学习——浅层神经网络

    吴恩达神经网络与深度学习--浅层神经网络 神经网络概述 神经网络表示 计算神经网络的输出 m个样本的向量化 for loop 向量化 向量化实现的解释 激活函数 sigmoid tanh函数 ReLu ...

  4. 吴恩达神经网络和深度学习-学习笔记-38-使用开源的方案+迁移学习+数据增强data augmentation

    使用别人的开源成果 想要用现成的网络,最好在网络上找到开源的实现,这要比从头开始实现快得多. 比如:直接在Google上搜索resnets github,找到合适的后点击下载会得到URL,然后在cmd ...

  5. 吴恩达神经网络和深度学习-学习笔记-28-端到端的深度学习(end-to-end deep learning )

    深度学习最令人振奋的最新动态之一,就是端到端深度学习end-to-end deep learning的兴起. 什么是"端到端深度学习" 以前有一些数据处理系统或学习系统,它们需要多 ...

  6. 吴恩达神经网络和深度学习-学习笔记-8-梯度消失与爆炸 + 梯度检测

    梯度消失与爆炸 介绍 直观理解是: 权重W只比1(即单位矩阵)大一点,深度神经网络的激活函数将爆炸式增长. 权重W只比1(即单位矩阵)小一点,深度神经网络的激活函数将指数式递减. 虽然我(吴恩达老师) ...

  7. 吴恩达-神经网络和深度学习课程-学习心得(一)

    前言: 陆陆续续学完了吴恩达老师在网易云课堂上开设的深度学习工程师微专业的部分内容(01.神经网络与深度学习,04.卷积神经网络,02.改善深层神经网络),在进一步应用实践之前,对之前的学习的内容做个 ...

  8. 吴恩达神经网络和深度学习-学习笔记-39-计算机视觉现状

    Data vs hand-engineering 你可以把大部分的机器学习问题看成是在你的数据相对较少的地方,应用到你拥有大量数据的地方. 我们今天有相当数量的语音识别数据,至少相对于这个问题的复杂性 ...

  9. 吴恩达神经网络和深度学习-学习笔记-22-误差分析

    单一误差分析 假设我们面对一个猫分类器的准确率不够的原因. 队友看了一下算法分类出错的例子,注意到算法将一些够狗分类为猫. 在这种条件下,我们应不应该做一个项目专门处理狗?比如搜集更多的狗的图片,或者 ...

  10. 吴恩达神经网络和深度学习-学习笔记-21-何时该改变开发集+测试集或指标

    需要我们改变开发集+测试集或指标的情况,是现有的指标或开发测试集并不能帮助我们选择出最好的模型! 如果你的评估指标,无法正确评估好算法的排名,那么就需要花时间定义一个新的评估指标. (加权来排除某一类 ...

最新文章

  1. 注意!出口货物木质包装IPPC标识规定!
  2. SAP C4C里没有选择Port binding的url Mashup行为分析
  3. react(87)--控制禁用disabled
  4. 不能再任性 APP收集个人信息基本规范公开征求意见
  5. Java中的synchronized
  6. 武装突袭3fps服务器不稳定,大神教你解决win10系统玩《武装突袭3》超级卡顿的详细技巧...
  7. TiledMap使用笔记
  8. 多目标优化算法(一)NSGA-Ⅱ(NSGA2)
  9. FasterRCNN
  10. 一个.Net的混淆防反编译工具ConfuserEx
  11. tim指定保存云服务器_腾讯TIM迎来重大版本更新 新增独立的云文件功能
  12. 磷酸氢二钠作用及分子量
  13. 屏幕小于6英寸的手机_2019小屏手机有哪些 8款6英寸以下小屏全面屏手机推荐 (全文)...
  14. 计算机管理蓝屏不重启,windows10系统怎么设置蓝屏后不自动重启
  15. Java使用cookie和session管理用户状态
  16. Redis-PHP实战篇——常用的使用场景
  17. 疫情在家游戏玩腻了?那就一起来开发H5小游戏吧
  18. 微信小程序H5页面API红包代发接口
  19. Java编写程序输出双色球号码
  20. linux可以运行Windows程序吗,如何Linux系统上运行Windows应用程序(7)

热门文章

  1. VoiceDial首款语音识别软件使用教程
  2. 语音自训练平台技术详解,快速训练专属语音识别模型
  3. java计算器用什么布局_求JAVA语言写的计算器的代码。用GridLayout布局。
  4. java对象地址连续_Java面向对象中地址的理解(长期修改)
  5. vue elementui表格数据
  6. 通过设置proxyTable实现调用接口跨域
  7. c语言如果x小于,请达人帮忙做份C语言试卷,谢谢了
  8. ITU-T Technical Paper: NP, QoS 和 QoE的框架以及它们的区别
  9. ffdshow 源代码分析 4: 位图覆盖滤镜(滤镜部分Filter)
  10. python perl 日本的应用_将Python,Perl,Ruby或Shell脚本转换为适用于Mac OS X的自包含应用程序 | MOS86...