zoukankan      html  css  js  c++  java
  • 激活函数

    常用激活函数及其导数

    • Sigmoid函数
      • 形式

      [f(z)=frac{1}{1+exp(-z)} ]

      • 导数

      [f^{'}(z)=f(z)(1-f(z)) ]

    • Tanh激活函数
      • 形式

      [f(z)=tanh(z)=frac{e^z - e^{-z}}{e^z + e^{-z}} ]

      • 导数

      [f^{'}(z)=1-(f(z))^2 ]

    • ReLU激活函数
      • 形式

      [f(z) = max(0, z) ]

      • 导数:略
    • GTU激活函数
      • 形式

      [f(X) = tanh(X cdot W+b)cdot sigma(X cdot V+c) ]

      • 结构:tanh激活单元+sigmoid激活单元
      • 存在梯度消失问题
    • GLU激活函数
      • 形式

      [f(X) = (Xcdot W+b) cdot sigma(X cdot V+c) ]

      • 结构:ReLU激活单元+sigmoid激活单元
      • 不会存在梯度消失问题
    • SELU (scaled exponential linear units)激活函数
      • 形式

      [egin{aligned} ext{selu}(z) = lambda egin{cases} z quad & ext{if} z > 0 \ alpha e^z - alpha quad & ext{if} z le 0 end{cases} end{aligned} ]

      • 具有自归一化功能。其中(alpha, lambda)是两个常数
    • Swish激活函数
      • 形式

      [f(z)=zcdot sigma(z) ]

      • 导数

      [f^{'}(z)=f(z) + sigma(z)(1-f(z)) ]

    Sigmoid和Tanh梯度消失问题

    • Sigmoid函数在(z)很大或者很小时,导数趋近于0,造成梯度消失
    • Tanh函数相当于Sigmoid的平移,梯度消失问题类似

      [ anh(x)=2sigmoid(2x)-1 ]

    ReLU优缺点

    • 优点
      • 不需要计算指数,方便
      • 非饱和性有效解决梯度消失问题,提供相对宽的激活边界
      • 单侧抑制提供了网络的稀疏表达能力
    • 局限性
      • 神经元死亡问题
        • 负梯度在经过该ReLU单元时被置为0,且在之后不被激活,梯度永远为0
        • 如果学习率设置较大,会导致一定比例的神经元不可逆死亡,进而参数梯度无法更新
      • 改进
        • Leaky ReLU

          [f(z)=egin{cases} z, z > 0 \ az, z < 0 end{cases} ]

          一般(a)为小常数,既实现单侧抑制,又保留了部分负梯度,但(a)的选择增加了问题难度
        • PReLU
          • 将负轴部分斜率(a)作为网络中的可学习参数
        • Random ReLU
          • 训练过程中,(a)作为一个满足某种分布的随机采样
          • 测试时固定
  • 相关阅读:
    MFC TeeChart 用法整理二 (画二维图)
    CFileFind类的详解以及应用实例
    error C2065: 'AfxCriticalTerm' : undeclared identifier 解决办法
    error LNK2001
    ShellExecute详细用法(可以单独打开一个文件)
    java连接SQL Server数据库
    Java 异常处理
    eclipse 无法自动匹配
    Java简单的表格模型
    Java 字符串常用操作(String类)
  • 原文地址:https://www.cnblogs.com/weilonghu/p/11922739.html
Copyright © 2011-2022 走看看