每日一问04 ——激活函数ReLU和Sigmoid那个效果更好?

每日一问04

Question:激活函数ReLU和Sigmoid那个效果更好?


首先我们先了解ReLU和Sigmoid函数具体是什么样的

Sigmoid

Sigmoid函数对应的公式为:

在这里插入图片描述
Sigmoid函数对应的图像为:

在这里插入图片描述

ReLU

ReLU对应的图像为:

在这里插入图片描述

对比

Sigmoid不是零中心的

为什么说Sigmoid不是零中心的呢,我们可以通过对Sigmoid函数进行求导可以分析,

在这里插入图片描述
所以sigmoid函数的导数为

在这里插入图片描述
而我们通过Sigmoid函数图像可以看到,在整个坐标轴上Sigmoid时恒大于零且小于1的,所以sigmoid函数的导数是恒大与零的。

既然sigmoid函数的导数是恒大与零的这就意味着在进行梯度下降进行w参数更新的时候w的更新值只与神经元的输入有关,当输入为正时,w向x正向更新,当输入为负时w向y轴负方向更新,这就导致梯度下降权重更新时呈“Z”字型下降,从而导致权重的优化效率。

在这里插入图片描述

Sigmoid的梯度消失问题

Sigmoid对应的导函数图像如图

在这里插入图片描述
由图可以看到Sigmoid的导数只有在0附近时梯度较大具有很好的激活性,而在正负饱和区,尤其是在小于-5和大于5的区域,梯度几乎为0,而这个梯度将会与整个损失函数关于该神经元输出的梯度相乘,那么相乘的结果也会接近零,这会导致梯度消失。

ReLU的稀疏性

ReLU激活函数求导不涉及浮点运算,所以速度更快。

由ReLU图像可以看到,在x正半轴的梯度始终为1;在x负半轴梯度始终为0;z等于零时的梯度可以当成1也可以当成0,实际应用中并不影响。

所以对于隐藏层,选择ReLU作为激活函数,能够保证z大于零时梯度始终为1,从而提高神经网络梯度下降算法运算速度。而当输入z小于零时,ReLU存在梯度为0的特点,一旦神经元的激活值进入负半区,那么该激活值就不会产生梯度/不会被训练,虽然减缓了学习速率,但也造成了网络的稀疏性——稀疏激活,这有助于减少参数的相互依赖,缓解过拟合问题的发生。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值