美!最常用的10个激活函数!
共 3787字,需浏览 8分钟
·
2021-08-18 21:57
点击上方“程序员大白”,选择“星标”公众号
重磅干货,第一时间送达
![](https://filescdn.proginn.com/dbed265d89230a64b974556dfa726fe5/3ce54d55521b64a495e1f65b836d7cd9.webp)
![](https://filescdn.proginn.com/de2c05a72b5a2ff35f1a195cef4943f9/2bd631fc890145d71e4b4134f39d1705.webp)
![](https://filescdn.proginn.com/6bbde3c9b1086aa6d21e00a637f1e653/8a068a9bf320aa07e33084448b8c24cc.webp)
![](https://filescdn.proginn.com/ffd2f5455b22fc5adeeb45dbdf2ad9b0/7896b99f305a2166730ed3320243e2c1.webp)
![](https://filescdn.proginn.com/509f0f2876c3b61f1b881d849515ce1e/5b74e1c2860a6584021f0e5556e68d9e.webp)
![](https://filescdn.proginn.com/11b6b897d05e779e632b06f6230b1630/70ec8729b2e6ef19eedb69843995bbad.webp)
Sigmoid 函数的输出范围是 0 到 1。由于输出值限定在 0 到 1,因此它对每个神经元的输出进行了归一化;
用于将预测概率作为输出的模型。由于概率的取值范围是 0 到 1,因此 Sigmoid 函数非常合适;
梯度平滑,避免「跳跃」的输出值;
函数是可微的。这意味着可以找到任意两个点的 sigmoid 曲线的斜率;
明确的预测,即非常接近 1 或 0。
倾向于梯度消失;
函数输出不是以 0 为中心的,这会降低权重更新的效率;
Sigmoid 函数执行指数运算,计算机运行得较慢。
![](https://filescdn.proginn.com/d9345ea0c03b676e62c2f88ee820f38b/ba317be25ab71e34087cc270d45dc3c7.webp)
![](https://filescdn.proginn.com/d6b6a87e7a4ab25e33a9dbeaa0c972ca/c43489283af322720ec5a8b573e2652c.webp)
![](https://filescdn.proginn.com/ffdd9d2c9952b128d8c695e4ef91298e/a1f98229c24dcc430ac8f2fa53e4e599.webp)
首先,当输入较大或较小时,输出几乎是平滑的并且梯度较小,这不利于权重更新。二者的区别在于输出间隔,tanh 的输出间隔为 1,并且整个函数以 0 为中心,比 sigmoid 函数更好;
在 tanh 图中,负输入将被强映射为负,而零输入被映射为接近零。
![](https://filescdn.proginn.com/d7c57a3feece690989cd80deb98f596f/c3aa91109bf226f0874307983a76734a.webp)
![](https://filescdn.proginn.com/ba88f814fdc9d154c16e882d642340c2/b8800e90693309b28463835bd2a4539a.webp)
当输入为正时,不存在梯度饱和问题。
计算速度快得多。ReLU 函数中只存在线性关系,因此它的计算速度比 sigmoid 和 tanh 更快。
Dead ReLU 问题。当输入为负时,ReLU 完全失效,在正向传播过程中,这不是问题。有些区域很敏感,有些则不敏感。但是在反向传播过程中,如果输入负数,则梯度将完全为零,sigmoid 函数和 tanh 函数也具有相同的问题;
我们发现 ReLU 函数的输出为 0 或正数,这意味着 ReLU 函数不是以 0 为中心的函数。
![](https://filescdn.proginn.com/c9fff2ea0dc78aacae3009055a27ad58/4cbaaecf5c48f8385c919fa371b6c2da.webp)
![](https://filescdn.proginn.com/128b39bad32a3d39ec55520ce2da4f77/f0f02292a661ba661611a6c6114a3338.webp)
Leaky ReLU 通过把 x 的非常小的线性分量给予负输入(0.01x)来调整负值的零梯度(zero gradients)问题;
leak 有助于扩大 ReLU 函数的范围,通常 a 的值为 0.01 左右;
Leaky ReLU 的函数范围是(负无穷到正无穷)。
![](https://filescdn.proginn.com/ff1b0afbe51c0b104fec1bc0cd225396/a5375a794540895ce4022f8215e91051.webp)
![](https://filescdn.proginn.com/edc04f859e8948820cbab7268a7c9bbf/20d31c0689c100359fd32b25900d4bcc.webp)
没有 Dead ReLU 问题,输出的平均值接近 0,以 0 为中心;
ELU 通过减少偏置偏移的影响,使正常梯度更接近于单位自然梯度,从而使均值向零加速学习;
ELU 在较小的输入下会饱和至负值,从而减少前向传播的变异和信息。
![](https://filescdn.proginn.com/eb9a75ba8e59d9a005af766c9f21484c/c0bd47fbbfdfb36b4fec3a31716bae95.webp)
![](https://filescdn.proginn.com/f300020715a5dde6a854cc1660812579/c431e448b2d84ef29659c0915ab957b7.webp)
如果 a_i= 0,则 f 变为 ReLU
如果 a_i> 0,则 f 变为 leaky ReLU
如果 a_i 是可学习的参数,则 f 变为 PReLU
在负值域,PReLU 的斜率较小,这也可以避免 Dead ReLU 问题。
与 ELU 相比,PReLU 在负值域是线性运算。尽管斜率很小,但不会趋于 0。
![](https://filescdn.proginn.com/e4a10df257aa6cba04c60d21c4c0556a/dc3bd47b8b59214b442399ed5b523d35.webp)
![](https://filescdn.proginn.com/300ae1a8a5043ba597628c49cd90a953/6cbb31ea79d1db73ab35bce5bcbd97fd.webp)
在零点不可微;
负输入的梯度为零,这意味着对于该区域的激活,权重不会在反向传播期间更新,因此会产生永不激活的死亡神经元。
![](https://filescdn.proginn.com/d82346e5b7eb15b59b78744df1cc2367/370c442bf757baff3e525ded16110af5.webp)
「无界性」有助于防止慢速训练期间,梯度逐渐接近 0 并导致饱和;(同时,有界性也是有优势的,因为有界激活函数可以具有很强的正则化,并且较大的负输入问题也能解决);
导数恒 > 0;
平滑度在优化和泛化中起了重要作用。
![](https://filescdn.proginn.com/ff8a0e5afa7f2f77d37ceb5ed8de82f0/69aa8f85f65f6af7474406d5f3b6331d.webp)
![](https://filescdn.proginn.com/8099e6442b6f1ae4f8bd519fa0bc5993/ef4e85117402cfe75b969874593c690a.webp)
![](https://filescdn.proginn.com/8e390626f743350369fbd4b4d29d77a3/0354f35dab0bf3e42ce18acb45a356cd.webp)
![](https://filescdn.proginn.com/661eb6f355a617b5cf993705bdd1ac23/375ca72b93e934fcb136a595e8ef60e4.webp)
![](https://filescdn.proginn.com/2af5d897ea09576930c8b7ba86a128bb/0678c3bbf887604d8df39a4440b48ba9.webp)
![](https://filescdn.proginn.com/bb2ba87bfa4eebd1cc7f0b4b2d10105f/7c1179a8d882d64b83493b52f2113108.webp)
Softplus 函数类似于 ReLU 函数,但是相对较平滑,像 ReLU 一样是单侧抑制。它的接受范围很广:(0, + inf)。
推荐阅读
关于程序员大白
程序员大白是一群哈工大,东北大学,西湖大学和上海交通大学的硕士博士运营维护的号,大家乐于分享高质量文章,喜欢总结知识,欢迎关注[程序员大白],大家一起学习进步!