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)

时间: 2024-10-11 07:02:07

ReLU的相关文章

ReLu(Rectified Linear Units)激活函数

ReLu(Rectified Linear Units)激活函数 论文参考:Deep Sparse Rectifier Neural Networks (很有趣的一篇paper) 起源:传统激活函数.脑神经元激活频率研究.稀疏激活性 传统Sigmoid系激活函数 传统神经网络中最常用的两个激活函数,Sigmoid系(Logistic-Sigmoid.Tanh-Sigmoid)被视为神经网络的核心所在. 从数学上来看,非线性的Sigmoid函数对中央区的信号增益较大,对两侧区的信号增益小,在信号的

利用ReLU输出稀疏性加速卷积

一篇讲利用ReLU输出的稀疏性来加速卷积计算的论文,其目的和另一篇文章<More is less> 有点类似. 实验效果似乎还不错,但似乎并没有很大的创新. 文章链接: <Speeding up Convolutional Neural Networks By Exploiting the Sparsity of Rectifier Units> Motivation 下图的结论是:使用ReLU作为激活函数的网络,其网络输出通常都非常稀疏. 另一方面,目前的稀疏矩阵运算效率并不高.

ReLU 和sigmoid 函数对比

详细对比请查看:http://www.zhihu.com/question/29021768/answer/43517930 . 激活函数的作用: 是为了增加神经网络模型的非线性.否则你想想,没有激活函数的每层都相当于矩阵相乘.就算你叠加了若干层之后,无非还是个矩阵相乘罢了.所以你没有非线性结构的话,根本就算不上什么神经网络. 2. 为什么ReLU效果好: 重点关注这章6.6节:Piecewise Linear Hidden Unitshttp://www.iro.umontreal.ca/~b

在UNC学习DL的日子——Relu函数

以下网址介绍了Relu的前世今生 http://www.cnblogs.com/neopenx/p/4453161.html 第一个问题:为什么引入非线性激励函数? 如果不用激励函数(其实相当于激励函数是f(x) = x),在这种情况下你每一层输出都是上层输入的线性函数,很容易验证,无论你神经网络有多少层,输出都是输入的线性组合,与没有隐藏层效果相当,这种情况就是最原始的感知机(Perceptron)了.正因为上面的原因,我们决定引入非线性函数作为激励函数,这样深层神经网络就有意义了(不再是输入

What are the advantages of ReLU over sigmoid function in deep neural network?

The state of the art of non-linearity is to use ReLU instead of sigmoid function in deep neural network, what are the advantages? I know that training a network when ReLU is used would be faster, and it is more biological inspired, what are the other

PReLU与ReLU

PReLU激活函数,方法来自于何凯明paper <Delving Deep into Rectifiers:Surpassing Human-Level Performance on ImageNet Classification> PReLU激活 PReLU(Parametric Rectified Linear Unit), 顾名思义:带参数的ReLU.二者的定义和区别如下图:  如果ai=0,那么PReLU退化为ReLU:如果ai是一个很小的固定值(如ai=0.01),则PReLU退化为

tensorflow Relu激活函数

1.Relu激活函数 Relu激活函数(The Rectified Linear Unit)表达式为:f(x)=max(0,x). 2.tensorflow实现 #!/usr/bin/env python # -*- coding: utf-8 -*- import tensorflow as tf input_data = tf.constant( [[0, 10, -10],[-1,2,-3]] , dtype = tf.float32 ) output = tf.nn.relu(input

ReLU为什么比Sigmoid效果好

附:双曲函数类似于常见的(也叫圆函数的)三角函数.基本双曲函数是双曲正弦"sinh",双曲余弦"cosh",从它们导出双曲正切"tanh" sigmod函数: Relu函数: 综合: @作者:约翰曰不约  为什么通常Relu比sigmoid和tanh强,有什么不同?主要是因为它们gradient特性不同.sigmoid和tanh的gradient在饱和区域非常平缓,接近于0,很容易造成vanishing gradient的问题,减缓收敛速度.va

ReLU函数

Rectifier(neural networks) 在人工神经网络中,rectfier(整流器,校正器)是一个激活函数,它的定义是:参数中为正的部分. , 其中,x是神经元的输入.这也被称为ramp function(斜坡函数),类似于电气工程中半波整流. 由来: 2000年由Hahnloser et al等人首次将该激活函数引入动态网络中,具有强烈的生物学动机和数学理论. 此激活函数在 convolutional networks中被广泛应用,比logistic sigmoid更有效和实用.