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

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

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

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


 

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



   3个回答 
7

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

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

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

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

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

BrianLv   2018-01-22 16:05

3

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

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

1. 计算量更小

2. 没有梯度消失的问题

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


Marvin_THU   2018-01-23 23:25

0

应该叫 激励函数 吧

bopowang   2018-02-05 17:32



  相关问题

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

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

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

pytorch 的交叉熵损失总是报错,同样的结构改成MSELoss就没有问题   1回答

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

深度学习和人工神经网络是一回事吗?   1回答

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

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

前馈神经网络如何选择隐藏层的数量   2回答

训练神经网络中经常提到的epoch是什么意思   2回答

keras.models.Sequential()是一种什么模型   1回答

用神经网络做二元分类,输出层用Sigmoid还是Softmax?   1回答



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

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

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

我们谢绝答非所问。

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

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