请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

Sigmoid对比ReLU

不太清楚这个问题放在这里是否合适。现在机器视觉中是不是已经不再使用Sigmoid转而使用ReLU了?我以前得到的解释是使用Sigmoid会让训练变得很困难,所以Sigmoid是比较传统的方法,而现在基本都用ReLU,我还见过使用Leaky ReLU。老师是否可以解释一下?

正在回答

1回答

同学你好,这是个很好的问题,flare老师在第8章卷积神经网络的章节也有提及“为什么CNN结构使用relu替代sigmoid作为激活函数”。flare老师和大家分享常用激活函数的优缺点:

sigmoid:

https://img1.sycdn.imooc.com//szimg/5e548cb109c09d8203320217.jpg

很直观的反映了二分类任务的事件可能性(概率),通过引入双边极值稳定的非线性函数关系能有效地模拟神经元信息机制,在逻辑回归与神经网络中被广泛使用。

缺陷:双边区域数值饱和(x很大或很小)导致随着x变化带来的y变化很小,导数趋于零,容易造成模型求解梯度消失问题。当我们建立一个复杂的神经网络,比如用于机器视觉的卷积神经网络,多层信息传递后,对模型进行反传导的梯度求解会存在梯度消失的情况,导致无法找到最优解。

tanh:和sigmoid挺像的,也是双边极值稳定的非线性函数关系,而且因为正负方向以原点对称,输出均值是0(与很多样本的分布均值接近),使得其收敛速度要比sigmoid快,减少迭代次数。也存在梯度消失问题。

https://img1.sycdn.imooc.com//szimg/5e548d9009c07eb903410203.jpg

relu:全称是Rectified Linear Units,是一种后来才出现的激活函数。 

https://img1.sycdn.imooc.com//szimg/5e548db5098f0fdd03320246.jpg

可以看到,当x<0时,ReLU饱和,而当x>0时,则不存在饱和问题。所以,ReLU 能够在x>0时保持梯度不衰减,从而缓解梯度消失问题。相比于纯线性的激活函数,relu函数存在梯度不相同的两个区域,从而能实现非线性关系的拟合。
然而,随着训练的推进,部分输入会落入硬饱和区,导致对应权重无法更新。这种现象被称为“神经元死亡”。为了解决这个问题,就有了Leaky Relu

https://img1.sycdn.imooc.com//szimg/5e548e4009f3d0e303460253.jpg

我们可以看到,Leaky Relu对原来relu的饱和区域做了调整,以解决x<0区域的梯度消失问题。

6 回复 有任何疑惑可以回复我~
  • 提问者 谢思阳 #1
    非常感谢!
    回复 有任何疑惑可以回复我~ 2020-02-25 12:00:07
  • flare_zhao 回复 提问者 谢思阳 #2
    加油,后面还很多章节
    回复 有任何疑惑可以回复我~ 2020-02-25 12:02:17
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信