深度学习 - 激活函数

激活函数(Activation functions)


sigmoid

  • 公式:

a = σ ( z ) = 1 1 + e z


sigmoid

  • 求导:

    a = a ( 1 a ) = 1 1 + e z ( 1 1 1 + e z )

  • 优点:

    • 常用于二分类的输出层, 其他地方基本不使用
    • 是softmax的一种特殊形式
    • 结果介于[0, 1]
  • 缺点:
    • 在z特别大或者特别小的时候,导数的梯度或者说函数的斜率会接近于0, 从而使得梯度下降很慢,造成梯度消失

tanh

  • 公式:

a = t a n h ( z ) = e z e z e z + e z


tanh

  • 求导:
    a = 1 ( t a n h ( z ) ) 2
  • 优点:
    • tanh函数是sigmoid的向下平移和伸缩后的结果
    • 在隐藏层的效果优于sigmoid
    • 结果介于[-1, 1]
  • 缺点:
    • 在z特别大或者特别小的时候, 导数的梯度或者说函数的斜率会接近于0, 从而使得梯度下降很慢, 也会造成梯度消失

ReLu

  • 公式:

a = m a x ( 0 , z )


relu

  • 求导:
    a = { 0 z < 0 1 z > 0 0 1 z = 0
  • 优点:
    • 函数计算简单,方便求导, 与其他激活函数相比, 速度更快
    • 如果不确定是用什么激活函数, 那么默认使用ReLu
  • 缺点
    • 梯度等于0时, 神经元此时不会训练,产生所谓的稀疏性, 改进版Leaky Relu没有这个问题

Leaky Relu

  • 公式:

a = m a x ( a l p h a z , z )


lrelu

  • 求导:

a = { a l p h a z < 0 1 z > 0 0 1 z = 0

  • 优点:
    • alpha取值一般为0.1或者0.01
    • ReLu的改进版, 当z较小时, 避免梯度为0造成神经元”死亡”
    • 效果比ReLu要好, 但是实际中使用的并不多

猜你喜欢

转载自blog.csdn.net/u012678352/article/details/80748186
今日推荐