首页IT科技激活函数的主要作用(深度学习中的激活函数)

激活函数的主要作用(深度学习中的激活函数)

时间2025-07-30 09:09:30分类IT科技浏览7224
导读:排序有先后,后面的基本是基于前面方法的不足进行改进。 好的激活函数应该满足的条件...

排序有先后                ,后面的基本是基于前面方法的不足进行改进                 。

好的激活函数应该满足的条件

1.非线性:这是必须的                         ,也是添加激活函数的原因                        。

2.几乎处处可微:反向传播中        ,损失函数要对参数求偏导        ,如果激活函数不可微                         ,那就无法使用梯度下降方法更新参数了        。(ReLU只在零点不可微                 ,但是梯度下降几乎不可能收敛到梯度为0)

3.计算简单:神经元(units)越多        ,激活函数计算的次数就越多                        ,复杂的激活函数会降低训练速度                 。

4.非饱和性:饱和指在某些区间梯度接近于零                 ,使参数无法更新                         。Sigmoid和tanh都有这个问题,而ReLU就没有                        ,所以普遍效果更好        。

5.有限的值域:这样可以使网络更稳定                         ,即使有很大的输入,激活函数的输出也不会太大        。

现有比较好的激活函数(SiLU                ,Mish                         ,ELU)是有下界                 、无上界                        、平滑        、非单调                         。

有下界:可以提高正则化效果

无上界:防止网络饱和        ,及梯度为零

平滑:可以避免在不可导点的一些问题                ,更容易优化

非单调:可以保留一些负输入                         ,提高网络的表达能力

Sigmoid(逻辑函数logistic)

 缺点:

1.容易饱和:输入太大或太小都会使其梯度接近0        ,在反向传播中梯度接近0时参数就会难以更新                。另外还需要将参数初始化得比较小才能避免刚开始就梯度为0        。

2.非零均值:模型收敛需要更多时间                         。

解释:反向传播更新参数公式如下        ,xi是上层的输出                         ,恒正                 ,f(1-f)恒正        ,所以所有wi的更新方向一致                。

3.幂运算相对计算量较大

tanh(双曲正切)

 缺点:解决了非零均值问题                        ,仍存在梯度消失和计算量大的问题。

ReLU

ReLU                 ,线性整流函数(Rectified Linear Unit),又称修正线性单元                         。

优点:1.在正区间解决了梯度消失问题;2.计算速度快                        ,只需要判断正负;3.收敛速度快于Sigmoid和tanh

缺点:1.非零均值;2. Dead ReLU Problem:一些神经元可能永远不能被激活                         ,导致相应参数不能更新                        。

解释Dead ReLU Problem:

因为xi是上层各个神经元的输出,即上层每个神经元的激活函数的输出                ,可知其值一定为0或者正数                         ,为方便说明现在假设xi都为正数。看上式        ,现在xi为正数                ,学习率n肯定也是正数                         ,若损失函数对激活函数的导数也是正数且足够大        ,并假设学习率n也不小        ,那么很多wi更新这一次后就变成了负数                         ,这会导致下层的输入是负数                 ,下层的输出就变成0                 。

造成Dead ReLU Problem问题的主要原因可能为:1.学习率n太大导致参数更新幅度太大;2.糟糕的权重初始化                        。

解决方法:避免学习率设置过大        ,使用adagrad等可以自动调节学习率的方法        。

Softplus

优点类似于ReLU                        ,但有下界                 ,无上界,平滑

缺点:导数小于1                        ,可能存在梯度消失的问题;单调                         ,无法保留负输入;非零均值,收敛慢                 。

ELU(Exponential Linear Units)

指数的线性单元                ,

优点:解决了Dead ReLU Problem问题;有下界                 、无上界                         、平滑                         。

缺点:计算量较大

Leaky Relu(YOLOv5 5.0之前)

  α = 0.01(通常)

 优点:解决了Dead ReLU Problem问题以及所有ReLU的优点(在正区间解决了梯度消失的问题                         ,计算简单        ,收敛速度快)        。

SiLU(Swish)(YOLOv5 6.0之后)

β = 1就是SiLU

优点:ReLU有无上界和有下界的特点                ,而Swish相比ReLU又增加了平滑和非单调的特点                         ,这使得其在ImageNet上的效果更好        。

缺点:引入了指数函数        ,增加了计算量.

Mish

优点:平滑        、非单调        、无上界                         、有下界

缺点:引入了指数函数        ,增加了计算量

作者注:其实Mish那篇文章说比SiLU效果更好                         ,但是一些人复现后发现就差不多                 ,作者也认为差不多        ,函数和导数图像如此之像能有多大差别[掩面而泣]

创心域SEO版权声明:以上内容作者已申请原创保护,未经允许不得转载,侵权必究!授权事宜、对本内容有异议或投诉,敬请联系网站管理员,我们将尽快回复您,谢谢合作!

展开全文READ MORE
直播视频业务如何选择服务器端口呢(直播视频业务如何选择服务器) 服务器的危害(服务器哪些方面影响网站SEO)