同学你好,这是个很好的问题,flare老师在第8章卷积神经网络的章节也有提及“为什么CNN结构使用relu替代sigmoid作为激活函数”。flare老师和大家分享常用激活函数的优缺点:
sigmoid:
很直观的反映了二分类任务的事件可能性(概率),通过引入双边极值稳定的非线性函数关系能有效地模拟神经元信息机制,在逻辑回归与神经网络中被广泛使用。
缺陷:双边区域数值饱和(x很大或很小)导致随着x变化带来的y变化很小,导数趋于零,容易造成模型求解梯度消失问题。当我们建立一个复杂的神经网络,比如用于机器视觉的卷积神经网络,多层信息传递后,对模型进行反传导的梯度求解会存在梯度消失的情况,导致无法找到最优解。
tanh:和sigmoid挺像的,也是双边极值稳定的非线性函数关系,而且因为正负方向以原点对称,输出均值是0(与很多样本的分布均值接近),使得其收敛速度要比sigmoid快,减少迭代次数。也存在梯度消失问题。
relu:全称是Rectified Linear Units,是一种后来才出现的激活函数。
可以看到,当x<0时,ReLU饱和,而当x>0时,则不存在饱和问题。所以,ReLU 能够在x>0时保持梯度不衰减,从而缓解梯度消失问题。相比于纯线性的激活函数,relu函数存在梯度不相同的两个区域,从而能实现非线性关系的拟合。
然而,随着训练的推进,部分输入会落入硬饱和区,导致对应权重无法更新。这种现象被称为“神经元死亡”。为了解决这个问题,就有了Leaky Relu
我们可以看到,Leaky Relu对原来relu的饱和区域做了调整,以解决x<0区域的梯度消失问题。
finally:flare老师的实战课程“零基础入门人工智能:系统学习+实战”课程已经上线,新课上线希望大家多多支持,和flare老师一起学习AI,掌握AI工具,解决实际问题。
读后有收获可以扫码(不是加好友噢)请作者喝咖啡:
扫码有惊喜
还可以分享给朋友。
来源:CSDN
作者:flare zhao
链接:https://blog.csdn.net/dfly_zx/article/details/104493048