激活函数ReLU和Sigmoid的优劣对比

  统计/机器学习 深度学习 人工神经网络    浏览次数: 1283
2

神经网络最常用的两个激活函数应该就是ReLU和Sigmoid函数。

它们各自有什么优劣?通常选哪个更好?


 

风云使者   2018-01-22 13:16



   4个回答 
9

一般而言在激活函数上使用的ReLu函数,理由如下:

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

第二,对于深层网络,sigmoid函数反向传播时,很容易就会出现梯度消失的情况(在sigmoid接近饱和区时,变换太缓慢,导数趋于0,这种情况会造成信息丢失,从而无法完成深层网络的训练。

第三,Relu会使一部分神经元的输出为0,这样就造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生。

综上所述建议使用ReLu函数。

BrianLv   2018-01-22 16:05

5

对于二元分类问题,输出层的激活函数只能是sigmoid

但是中间隐藏层的确更推荐ReLU,原因也是正如另一个回答所说的三点

1. 计算量更小

2. 没有梯度消失的问题

3. 稀疏表达(奥卡姆剃刀原理)


Marvin_THU   2018-01-23 23:25

4

1.Relu计算量小,

2.没有饱和区,没有梯度消失

3.用Relu去估计非线型函数时收敛更快。AlexNet论文里说大概比sigmoid快6倍。

4.有个缺点是Relu输出为0后,梯度没发反向传递,这个Relu就死掉了。在作参数(weight,bias)初始化时,不要把太多Relu弄死掉。所以后面有leakRelu之类。

Zealing   2018-03-25 23:54

0

应该叫 激励函数 吧

bopowang   2018-02-05 17:32



  相关主题

神经网络里每层的激活函数必须是一样的吗?   1回答

多项式网络(polynomial networks)的结构和激活函数?   0回答

人工神经网络有哪些常用的激活函数?   3回答

怎么理解神经网络中的激活函数hard sigmoid?   1回答

LeakyReLu是什么意思?   1回答

如果特征都是非负的,那么用RELU作为激活函数还有意义吗?   2回答

elu激活函数是什么?   1回答

keras中怎么增加Leaky relu的激活层   1回答

神经网络中的gradient check是什么意思?   2回答

deep learning中的pooling是什么意思?   3回答

神经网络中的Dropout和Bagging   1回答

神经网络中的dense和sparse是什么意思?   2回答



回答问题时需要注意什么?

我们谢绝在回答前讲“生动”的故事。

我们谢绝“这么简单,你自己想”、“书上有的,你认真看”这类的回答;如果你认为对方的提问方式或者内容不妥,你可以直接忽略该问题,不用进行任何作答,甚至可以对该问题投反对票。

我们谢绝答非所问。

我们谢绝自己不会、硬要回答。

我们感激每一个用户在编写答案时的努力与付出!