【机器学习300问】66、ReLU激活函数相对于Sigmoid和Tanh激活函数的优点是什么?ReLU它有局限性吗?如何改进?

一、ReLU相对于Sigmoid和Tanh的优点

(1)计算效率高

ReLU函数数学形式简单,仅需要对输入进行阈值操作,大于0则保留,小于0则置为0。Sigmoid和Tanh需要指数运算但ReLU不需要。所以相比之下它会更快,降低了神经网络的运行时间和计算资源消耗。

(2)解决梯度消失问题

Sigmoid和Tanh在输入值较大或较小时,其导数接近于0,易导致梯度消失。而ReLU在正区间内导数恒为1,这意味着对于正输入,梯度不会随着网络层的增加而衰减,这有助于解决深度网络中的梯度消失问题。关于这方面我单独写了一篇文章:【机器学习300问】65、为什么Sigmoid和Tanh激活函数会导致梯度消失?http://t.csdnimg.cn/MmRdi

(3)稀疏激活性

在ReLU中,所有的负输入都会输出0,这导致了网络中的神经元输出是稀疏的,即在任何时候都只有一部分神经元是激活的,这样的稀疏性可以提高网络的表达能力,有助于降低过拟合风险,提高模型的泛化能力。

二、ReLU它的局限性和改进方案

(1)ReLU的局限性

  • 神经元死亡问题:这是由于负梯度经过ReLU的时候被置0,且以后也再也不被任何数据激活,即流经该神经元的梯度永远为0,不对任何数据产生响应。如果在实际训练中,如果不恰当的参数初始化或者学习率设置较大,会导致一定比例的神经元会不可逆的死亡,进而参数梯度无法跟新,导致训练失败。
  • 非连续梯度问题: ReLU在原点处的梯度突然从1变为0,这种不连续性可能在某些情况下导致训练不稳定。

ReLU函数

ReLU函数的导函数

(2)改进方法

可以采用ReLU的变种**Leaky ReLU(LReLU)**这个函数的表达式为:

LReLU在正区间的行为与ReLU相同,其中的α是一个很小的正常数。图像如下:

它解决"死神经元"局限性的原理是引入一个小的、固定的梯度α(如α = 0.01), 即使在输入值为负数的情况下也允许神经元有一个小的、非零的梯度。LReLU的这个α值是人为设定的,对所有负值输入统一适用,训练过程中不进行学习或调整。

基于这种思想,参数化的Parametric ReLU (PReLU) 应运而生,他和LReLU的主要区别是对于负值输入,PReLU引入了一个可学习的参数α,这里的α不再是一个固定的常数,而是在训练过程中根据反向传播算法和优化过程自动学习得到的,它可以是每个神经元独享的一个参数,也可以是共享于整个网络层的所有神经元。

相关推荐
虾球xz几秒前
游戏引擎学习第159天
人工智能·学习·游戏引擎
大囚长15 分钟前
deepseek连续对话与API调用机制
人工智能
带鱼工作室24 分钟前
cuda12.4安装tensorflow-gpu 2.18.0
人工智能·python·tensorflow
量子纠缠BUG25 分钟前
DeepSeek:开启机器人智能化的革命性突破
人工智能·机器人
万事可爱^28 分钟前
集成学习(上):Bagging集成方法
人工智能·随机森林·机器学习·集成学习·bagging
剑盾云安全专家28 分钟前
如何用AI轻松制作完美PPT,节省时间又提升效率
人工智能·科技·aigc·powerpoint·软件
HABuo35 分钟前
【YOLOv8】YOLOv8改进系列(6)----替换主干网络之VanillaNet
人工智能·深度学习·yolo·目标检测·计算机视觉
莫叫石榴姐40 分钟前
DeepSeek大模型在政务服务领域的应用
人工智能·政务
若兰幽竹1 小时前
【机器学习】主成分分析法求数据前n个主成分
机器学习
youngerwang1 小时前
【嵌入式硬件测试之道连载之开篇语+第一章】
网络·功能测试·嵌入式硬件·深度学习·硬件架构·硬件工程·测试覆盖率