zoukankan      html  css  js  c++  java
  • 【摘】关于神经网络中relu和sigmoid的选择

    ReLU比Sigmoid效果好的理由:

    https://blog.csdn.net/ljyljyok/article/details/88394212

    Relu的gradient大多数情况下是常数,有助于解决深层网络的收敛问题。Relu的另一个优势是在生物上的合理性,它是单边的,相比sigmoid和tanh,更符合生物神经元的特征。

    sigmoid和tanh的gradient在饱和区域非常平缓,接近于0,很容易造成vanishing gradient的问题,减缓收敛速度。vanishing gradient在网络层数多的时候尤其明显,是加深网络结构的主要障碍之一。ReLU更容易学习优化。因为其分段线性性质,导致其前传,后传,求导都是分段线性。而传统的sigmoid函数,由于两端饱和,在传播过程中容易丢弃信息。对于深层网络,sigmoid函数反向传播时,很容易就会出现梯度消失的情况(在sigmoid接近饱和区时,变换太缓慢,导数趋于0,这种情况会造成信息丢失,参见 @Haofeng Li 答案的第三点),从而无法完成深层网络的训练。

    还有表达区间问题,sigmoid和tanh区间是0到1,或着-1到1,在表达上,尤其是输出层的表达上有优势。

    采用sigmoid等函数,算激活函数时(指数运算),计算量大,反向传播求误差梯度时,求导涉及除法,计算量相对大,而采用Relu激活函数,整个过程的计算量节省很多。

    ReLu的另一个优势是稀疏度(Sparsity),因为当a<=0时,输出总是0, 每一层的神经元越多,结果就会越稀疏;另一方面Sigmoid总是会产生非零值,从而生成稠密表示(Dense Representations)。 稀疏表示(Sparse Representations )是学习变得更简单和快捷。

    Sigmoid优势:

    https://www.zhihu.com/question/342749179

    sigmoid和tanh,它们全程可导。

     

     

  • 相关阅读:
    Java正则表达式的使用
    萤火虫小巷2(看完了)
    第七章--Java基础类库--与用户的互动
    Android界面编程--使用活动条(ActionBar)--通过ActionBar菜单改变TextView的字体和颜色
    电影:换肤(Replace)
    Android界面编程--使用活动条(ActionBar)
    萤火虫小巷1
    大三下半学期(3月4日定下的学习计划)
    12月17日问题
    JQuery 分页显示jquery-pager-1.0.js
  • 原文地址:https://www.cnblogs.com/rinroll/p/13477382.html
Copyright © 2011-2022 走看看