zoukankan      html  css  js  c++  java
  • ReLU

    预训练的用处:规则化,防止过拟合;压缩数据,去除冗余;强化特征,减小误差;加快收敛速度。


    标准的sigmoid输出不具备稀疏性,需要用一些惩罚因子来训练出一大堆接近0的冗余数据来,从而产生稀疏数据,例如L1、L1/L2或Student-t作惩罚因子。因此需要进行无监督的预训练。
    而ReLU是线性修正,公式为:g(x) = max(0, x),是purelin的折线版。它的作用是如果计算出的值小于0,就让它等于0,否则保持原来的值不变。这是一种简单粗暴地强制某些数据为0的方法,然而经实践证明,训练后的网络完全具备适度的稀疏性。而且训练后的可视化效果和传统方式预训练出的效果很相似,这也说明了ReLU具备引导适度稀疏的能力。


    从函数图形上看,ReLU比sigmoid更接近生物学的激活模型。
    实际测量数据:纵坐标轴是神经元的放电速率(Firing Rate);横轴是毫秒(ms)


    基于生物学的数学规则化激活模型(LIF)

    网上相关的测试数据很多,随便贴一个:


    (Softplus是ReLU的圆滑版,公式为:g(x)=log(1+e^x),从上面的结果看,效果比ReLU稍差)
    ReLU在经历预训练和不经历预训练时的效果差不多,而其它激活函数在不用预训练时效果就差多了。ReLU不预训练和sigmoid预训练的效果差不多,甚至还更好。
    相比之下,ReLU的速度非常快,而且精确度更高。
    因此ReLU在深度网络中已逐渐取代sigmoid而成为主流。


    ReLU导数(分段):
    x <= 0时,导数为0
    x > 0时,导数为1


    softplus的导数刚好是sigmoid:
    g'(x) = e^x/(e^x+1) = 1/(1+e^-x)
  • 相关阅读:
    一次开发中使用过的shell命令
    MySQL 数据库 Having 和Where的区别
    mysql 正则表达式
    mysql union与 union all 的区别
    压缩与解压
    MySQL Shell
    MGR监控报警
    MySQL Router单点隐患通过Keepalived实现
    expdp和impdp
    ogg trail文件序列号不一致
  • 原文地址:https://www.cnblogs.com/suanec/p/4857457.html
Copyright © 2011-2022 走看看