zoukankan      html  css  js  c++  java
  • 深度学习激活函数比较

    一、Sigmoid函数

      1)表达式

        

             

     

      2)函数曲线

      

      3)函数缺点

        •  梯度饱和问题。先看一下反向传播计算过程:

              反向求导:

              而其中:

              

                

               所以,由上述反向传播公式可以看出,当神经元数值无线接近1或者0的时候,在反向传播计算过程中,梯度也几乎为0,就导致模型参数几乎不更新了,对模型的学习贡献也几乎为零。也称为参数弥散问题或者梯度弥散问题

              同时,如果初始权重设置过大,会造成一开始就梯度接近为0,就导致模型从一开始就不会学习的严重问题。

        •  函数不是关于原点中心对称的。 

          这个特性会导致后面网络层的输入也不是零中心的,进而影响梯度下降的运作。

          因为如果输入都是正数的话(如 $$f=w^{T}x+b$$ 中每个元素都 $$x>0$$ ),那么关于 $$w$$ 的梯度在反向传播过程中,要么全是正数,要么全是负数(具体依据整个表达式 $$f$$ 而定),这将会导致梯度下降权重更新时出现 z 字型的下降。

                     

    二、tanh函数

      1)公式

     

      2) 导数

        

      3)曲线

     

     

     

      

      tanh(x)=2sigmoid(2x)-1

          tanh 函数同样存在饱和问题,但它的输出是零中心的,因此实际中 tanh 比 sigmoid 更受欢迎。

     

    三、ReLU函数

     

       1)表达式  

          f(x)=max(0,x)

      

     

      2)曲线  

        

     

      相较于 sigmoid 和 tanh 函数,ReLU 对于 SGD 的收敛有巨大的加速作用(Alex Krizhevsky 指出有 6 倍之多)。有人认为这是由它的线性、非饱和的公式导致的。我觉得最起码在右半轴ReLU函数的梯度是恒定的,不存在饱和情况,只是在左侧存在梯度硬饱和,sigmoid函数属于两端都软饱和,这可能是ReLU函数相对比较受欢迎的原因吧,最起码有一端比较完美了。

      ReLU 的缺点是,它在训练时比较脆弱并且可能“死掉”,就是在梯度为0硬饱和的时候,容易出现这种死掉的情况。

      局限性

    3)改进

     

    参考链接:https://cloud.tencent.com/developer/article/1399909

  • 相关阅读:
    Difference between application/xml and text/xml
    [转]ASP.NET MVC URL 路由简介
    js Unicode编码转换
    svn更改用户名
    招商银行开发成功国内业界第一个实用的数据仓库系统
    Response.ContentType 详细列表备忘使用(转载)
    WebClient UploadData UploadFile 用法
    char tchar wchar_t WCHAR LPCTSTR LPCWSTR
    网站测试自动化系统—系统应该有的功能
    网站测试自动化系统—收集测试结果
  • 原文地址:https://www.cnblogs.com/gczr/p/7520723.html
Copyright © 2011-2022 走看看