码迷,mamicode.com
首页 > 其他好文 > 详细

ReLU

时间:2015-10-06 18:11:11      阅读:809      评论:0      收藏:0      [点我收藏+]

标签:

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


标准的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)

ReLU

标签:

原文地址:http://www.cnblogs.com/suanec/p/4857457.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!