神经网络中激活函数的总结

激活函数出现的原因

1、遇到线性不可分的数据。神经网络也找不到一条合适的直线。
在这里插入图片描述
2、如何解决

  1. 尝试单层感知机。
    在这里插入图片描述
  2. 尝试多层感知机
    在这里插入图片描述
  3. 化简后发现仍然是一个线性分类器。
    在这里插入图片描述

3、激活函数的作用

  1. 在隐藏层和输出层之间加入一个激活函数,sigmoid。
    在这里插入图片描述
  2. 多层感知器
    在这里插入图片描述
    激活函数就是在神经元上加一个壳,为神经元带来非线性因素,提升模型的表达能力。第一步计算线性变化,第二步计算非线性变换。

激活函数大全

1、一致或线性激活函数

  1. 最简单的激活函数,输出与输入成比例,导数为常数,所以梯度也将是一个常数,下降时将会是恒定的梯度。
  2. 在这里插入图片描述
  3. 范围:负无穷到正无穷
    在这里插入图片描述

2、Heaviside(二值型激活函数,0或1,high或low)步长函数

  1. 早期单层感知器中使用,对二进制分类任务有用,输入累加和高过某个阈值输出值为1,低于某个阈值输出0.
  2. 在这里插入图片描述
  3. 值域范围0-1
    在这里插入图片描述

3、Sigmoid或Logistic激活函数(Soft Step)

  1. 主要应用在二进制的分类问题,具有梯度消失。

在这里插入图片描述

  1. 求导:
    在这里插入图片描述

  2. 缺点:由导数可以看出当Z的值非常大或者非常小的时候,导数接近0,会导致权重W的梯度接近0,也就是梯度更新变慢,最后梯度消失。函数输出的均值并不是0,不便于下一层计算,所以可以作为输出层进行二分类,不适合在隐藏层。
    i. 梯度消失的原理
    a.
    在这里插入图片描述
    b. 对上图的第一个隐藏层节点进行计算,假设实际值为a,激活值为a[1],则代价函数为

    在这里插入图片描述
    其中a[1]的计算过程一般为两步,第一步线性变换
    在这里插入图片描述
    第二步非线性变换
    在这里插入图片描述
    权重w11的梯度为
    在这里插入图片描述
    c. 可以看出
    在这里插入图片描述
    Z[1]非常大或者非常小的时候,导数都为0,梯度也就为0.
    e) 范围(0,1)
    在这里插入图片描述

4、双曲正切函数(TanH)

扫描二维码关注公众号,回复: 5622988 查看本文章
  1. 看起来像一个缩放的S形函数,数据以零为中心。收敛速度更快。、

在这里插入图片描述

  1. 求导:
    在这里插入图片描述
  2. 缺点:和sigmoid函数一样当Z很大或者很小时,导数接近于0,梯度消失问题。
    但是弥补了均值问题。
  3. 范围(-1,1)
    在这里插入图片描述

5、修正线性单元(ReLU)

  1. 比tanh快6倍,当输入值小于零时,输出值为零。输入值大于等于零时,输出值等于输入值。导数为1.
  2. 函数:
    在这里插入图片描述
  3. 求导:
    在这里插入图片描述
  4. 优点:输入为正数时,不存在梯度消失的问题。因为是分段线性的原因,所以计算速度是比sigmoid和tanh函数的计算指数要快的。
    缺点:当输入为负时,梯度为0,会产生梯度消失的问题。
  5. 范围(0,x)
    在这里插入图片描述

6、Leaky ReLU(PReLU)

在这里插入图片描述

  1. 导数:
    在这里插入图片描述
  2. 优点可以避免ReLU的输入为负时的梯度消失问题
  3. 范围:负无穷到正无穷 a取值(0,1)
    在这里插入图片描述

参考文章:
https://www.cnblogs.com/lliuye/p/9486500.html
https://blog.csdn.net/SIGAI_CSDN/article/details/80724034
https://blog.csdn.net/program_developer/article/details/78704224
https://mp.weixin.qq.com/s/4gElB_8AveWuDVjtLw5JUA

猜你喜欢

转载自blog.csdn.net/weixin_40192195/article/details/88209838
今日推荐