激活函数

到目前为止,我们使用的激活函数全部都是σσ\sigma函数,然而这并不一定是最好的函数,有时其他可选的函数效果也很好,下面我们来介绍一下其他的函数。

如图所示,我们在这里使用σσ\sigma函数作为激活函数。我们现在使用g(z(x)),作为更一般的可以使用的函数。我们这里介绍一下tanhx,是双曲正切函数。tanhx,实际上在数学上是σσ\sigma函数经过平移之后的结果。tanhx相比于σσ\sigma函数更好的一点,就是他介于-1到1之间,平均值为0。而σσ\sigma函数的平均值为0.5。这实际上可以让下层的学习更方便一些。因为tanhx的平均值为0,所以几乎在任何场景下,他的结果都比σσ\sigma函数更好,但是有一个例外是在输出的预测值y^,因为我们希望输出的预测值介于0和1之间,而不是-1和1之间。在这里σσ\sigma函数要效果好很多。这时我们应该使用σσ\sigma函数作为输出层。

不过这两个函数也有一个缺点,从图像中我们可以看到,当z很大或者很小的时候,z的变化量接近于0,这在于我们求梯度的时候效果非常糟糕,会拖慢学习进度。

我们还有一个ReLU函数,为的就是应对这个问题,通常情况下我们都会使ReLU函数作为神经网络的激活函数,如果你不知道选什么函数作为激活函数,一般就选择ReLU函数。不过ReLU函数有一个缺点,就是如果z,是负数的时候,那么导数为0。在实践中使用ReLU函数,相比于tanh函数和σσ\sigma函数而言,学习效率会高很多,因为他没有斜率接近于0的时候。

最后,我们总结一下,如图所示:

深度学习的一个特点就是在建立神经网络时,可以有很多不同的选择,比如隐藏单元、激活函数,还有如何初始化权重。

为什么需要非线性激活函数

为什么神经网络必须要用非线性的函数呢,我们这里来解释一下:

如图所示,如果我们舍去激活函数,或者干脆就让激活函数就等于z本身,而不做一些非线性处理,在图的右侧我们可以看出,最后的结果是

a[2]=w‘x+b‘a[2]=w‘x+b‘

a^{[2]}=w^`x+b^`
依旧是线性的。

如果你使用线性激活函数,那么神经网络不过是把输入经过线性组合之后再输出。对于这种情况来说,有激活函数和没有激活函数都没有办法改变线性性,无论是有多少的隐藏层也做不到。不引入非线性性,则永远只能在线性性里面打转。

神经网络的梯度下降法

下面我们介绍一下如何用梯度下降法来处理单隐层神经网络。

如图所示,左侧是正向传播的计算流程,右侧是反向传播的计算流程。右侧我们有一个语句:

np.sum(dz, axis=1, keepdims=True )

这个命令中axis=1表示的是要水平相加求和,keepdims=True表示的是防止python输出古怪的秩为1的数组,保证输出的是矩阵。
还有一个公式:

dz=wTdz∗g‘(z)dz=wTdz∗g‘(z)

dz=w^Tdz*g^`(z)
其中 g‘(z)g‘(z)g^`(z)表示的是隐藏层激活函数的导数,注意这里我们所不同的是乘号两边两个矩阵逐个元素相乘

输出层的公式:

dz=A−Ydz=A−Y

dz= A-Y
假设的是用sigmod函数进行一个二元分类。

1.3.3 激活函数介绍相关推荐

  1. A.深度学习基础入门篇[四]:激活函数介绍:tanh、sigmoid、ReLU、PReLU、ELU、softplus、softmax、swish等

    [深度学习入门到进阶]必看系列,含激活函数.优化策略.损失函数.模型调优.归一化算法.卷积模型.序列模型.预训练模型.对抗神经网络等 专栏详细介绍:[深度学习入门到进阶]必看系列,含激活函数.优化策略 ...

  2. 神经网络中的激活函数介绍

    转载请注明出处:http://blog.csdn.net/gamer_gyt 博主微博:http://weibo.com/234654758 Github:https://github.com/thi ...

  3. GELU激活函数介绍和笔记

    GELU是一种常见的激活函数,全称为"Gaussian Error Linear Unit", 作为2020年提出的优秀激活函数,越来越多的引起了人们的注意.这里做个笔记,以便自己 ...

  4. 激活函数、Sigmoid激活函数、tanh激活函数、ReLU激活函数、Leaky ReLU激活函数、Parametric ReLU激活函数详细介绍及其原理详解

    相关文章 梯度下降算法.随机梯度下降算法.动量随机梯度下降算法.AdaGrad算法.RMSProp算法.Adam算法详细介绍及其原理详解 反向传播算法和计算图详细介绍及其原理详解 激活函数.Sigmo ...

  5. 都2021年了,不会还有人连深度学习都不了解吧(一)- 激活函数篇

    一.前言 本人目前研一,研究方向为基于深度学习的医学图像分割,转眼间已接触深度学习快1年,研一生活也即将结束,期间看了大量的英文文献,做了大量的实验,也算是对深度学习有了一个初步的了解吧.接下来的一段 ...

  6. randn函数加噪声_NLP入门指南01:感知机、激活函数、损失函数

    单层感知机 最简单的神经网络单元,感知机模拟生物神经元而来,有输入.输出,信号从输入流向输出. 每一个感知机都有一个输入 ,一个输出 ,和三个参数构成,它们分别是: 权重(weight) 偏置(bia ...

  7. 常见激活函数及其求导相关知识

    文章目录 Sigmoid函数 Sigmoid函数介绍 Sigmoid函数求导 tanh 函数 tanh 函数介绍 tanh 函数求导 Relu函数 Relu函数介绍 Relu函数求导 Softmax函 ...

  8. sigmoid和softmax激活函数的区别

    一.简单说下sigmoid激活函数 解析: 常用的非线性激活函数有sigmoid.tanh.relu等等,前两者sigmoid/tanh比较常见于全连接层,后者relu常见于卷积层.这里先简要介绍下最 ...

  9. 机器学习入门(03)— 激活函数分类(阶跃函数和 sigmoid 函数的理论、实现、显示以及区别、非线性函数、ReLU 函数、tanh 函数)

    各种激活函数介绍,请参考下面链接: https://en.wikipedia.org/wiki/Activation_function 1. 阶跃函数 1.1 理论 式(3.3)表示的激活函数以阈值为 ...

最新文章

  1. 10个角度分析软件工程师应该知道的100件事
  2. VS Debug和Release版本的区别
  3. 用JDBC直连方式访问SQL Server 2005详解
  4. [转]char * 和字符数组
  5. Java获取成员变量构造函数信息
  6. 《Android进阶之光》--事件总线
  7. php依据地理坐标获取国家、省份、城市,及周边数据类
  8. 【干货】10个高质量的java自学网站推荐
  9. 一键获取阿里巴巴主图视频细节图评论图的步骤
  10. 计算机应用1.2版,计算机应用基础(附光盘基础模块Windows7+Office2010第2版中等职业教育课程改革国家规划新教材)...
  11. 学习uni-app之微信登录
  12. tomcat之连接器
  13. 1007: A+B 输入输出练习VIII
  14. python实现翻转金字塔图案
  15. L1-059 敲笨钟
  16. mye clipse中svn的使用
  17. 为什么说期货交易者依靠程序化交易系统接口才能获得成功
  18. 思考方法,程序员生存之道
  19. 我是如何诱骗你的-高级钓鱼技术
  20. 浅谈Kafka选举机制

热门文章

  1. jmeter常用插件介绍
  2. 云栖科技评论NO.2 | 张学友演唱会逃犯集中落网,真正的“神捕”其实是AI
  3. 如何改变Myeclipse编辑区背景色
  4. .NET引用类型与值类型
  5. 中小企业实施ERP更多是需要发展的眼光与坚定的决策
  6. DroidPilot V2.1 手写功能特别版
  7. 2011.5.21信息系统项目管理师考试案例关注点
  8. 利用IIS的配置“此资源内容来自共享”实现负载均衡
  9. c语言flash里能存文件吗,STM32内部FLASH打包读写
  10. 最大似然估计MLE和最大后验估计MAP理解