【概念梳理】激活函数

article/2025/9/27 8:28:20

一、引言

常用的激活函数如下:
1、Sigmoid函数
2、Tanh函数
3、ReLU函数
4、ELU函数
5、PReLU函数
6、Leaky ReLU函数
7、Maxout函数
8、Mish函数

二、激活函数的定义

神经元
多层神经网络中,上层节点的输出和下层节点的输入之间具有一个函数关系,这个函数称为激活函数(Activation Function)。

三、激活函数的作用

一句话总结:为了提高模型的表达能力。
激活函数能让中间输出多样化,从而能够处理更复杂的问题。如果不使用激活函数,那么每一层的输出都是上一层输入的线性函数,最后的输出也只是最开始输入数据的线性组合而已。而激活函数可以给神经元引入非线性因素,当加入到多层神经网络时,就可以让神经网络拟合任何线性函数或非线性函数,从而使得网络可以适合更多的非线性问题,而不仅仅是线性问题。
激活函数被定义为一个几乎处处可微的函数。

四、饱和的概念

当函数满足 l i m x → + ∞ f ′ ( x ) = 0 \ lim_{x\to+\infty}f'(x)=0  limx+f(x)=0时,称为右饱和
当函数满足 l i m x → − ∞ f ′ ( x ) = 0 \ lim_{x\to-\infty}f'(x)=0  limxf(x)=0时,称为左饱和
f ( x ) \ f(x)  f(x)同时满足左饱和和右饱和时,称为饱和

在饱和定义的基础上,如果存在常数 C 1 \ C1  C1,当 x > C 1 \ x >C1  x>C1时,恒满足 f ′ ( x ) = 0 \ f'(x)=0  f(x)=0,称为右硬饱和;同样,如果存在常数 C 2 \ C2  C2,当 x < C 2 \ x <C2  x<C2时,恒满足 f ′ ( x ) = 0 \ f'(x)=0  f(x)=0,称为左硬饱和

相对的,只有当 x \ x  x趋于极值时, f ′ ( x ) = 0 \ f'(x)=0  f(x)=0,则称为软饱和

五、常用的激活函数

1、Sigmod函数

Sigmoid 是常用的非线性的激活函数,它的数学形式如下:
f ( x ) = 1 1 + e − x \ f(x) = \frac{1}{1+e^{-x}}  f(x)=1+ex1

Sigmoid的几何图像如下:
Sigmoid
特点:
它能够把输入的连续实值映射为0和1之间的输出,特别的,如果是非常大的负数,输出就是0;如果是非常大的正数,输出就是1。
优点:
(1)单调递增,容易优化;
(2)求导容易。
缺点:
(1)Sigmod函数是软饱和,容易产生梯度消失;
(2)求导收敛速度慢;
(3)幂运算导致训练耗时。

Sigmod函数导数如下:
f ′ ( x ) = f ( x ) ( 1 − f ( x ) ) \ f'(x)=f(x)(1-f(x))  f(x)=f(x)(1f(x))

导数的集合图像
在这里插入图片描述

2、Tanh函数

tanh函数为双切正切函数,过 ( 0 , 0 ) \ (0,0)  (0,0)点,数学形式如下:

f ′ ( x ) = s i n h ( x ) c o s h ( x ) = 1 − e − 2 x 1 + e − 2 x = e x − e − x e x + e − x = e 2 x − 1 e 2 x + 1 = 2 S i g m o d ( x ) − 1 \ f'(x)=\frac{sinh(x)}{cosh(x)}=\frac{1-e^{-2x}}{1+e^{-2x}}=\frac{e^x-e^{-x}}{e^x+e^{-x}}=\frac{e^{2x}-1}{e^{2x}+1}=2Sigmod(x)-1  f(x)=cosh(x)sinh(x)=1+e2x1e2x=ex+exexex=e2x+1e2x1=2Sigmod(x)1

tanh函数及其导数的几何图像如下图:
在这里插入图片描述

tanh读作Hyperbolic Tangent,它解决了Sigmoid函数的不是零均值(zero-centered)输出的问题。然而,梯度消失(gradient vanishing)的问题和幂运算导致的耗时问题仍然存在。
优点:
(1)收敛速度相比Sigmod快
缺点:
(1)未能解决梯度消失的问题

问题1:什么是零均值化(zero-centered)?
对所有输入数据进行预处理,计算训练数据中每组数据的均值,然后每组数据的值减去对应的均值。零均值化后的数据以 ( 0 , 0 ) \ (0,0)  (0,0)为中心,所有数据的均值为0。

问题2:为什么要对数据零均值化(zero-centered)?
一句话总结:为了在反向传播中加快网络中每一层权重参数的收敛。
假设图中蓝色箭头方向理想最优 w \ w  w向量,当 x \ x  x全为正或者全为负时,每次返回的梯度都只会沿着一个方向发生变化,即梯度变化的方向就会向图中红色箭头所示,一会向上太多,一会向下太多。这样就会使得权重收敛效率很低。但当 x \ x  x正负数量“差不多”时,就能对梯度变化方向进行“修正”,使其接近上图中蓝色箭头的方向,加快了权重的收敛。
在这里插入图片描述

3、ReLU函数

ReLU函数的数学形式如下:
f ( x ) = m a x ( 0 , x ) = { 0 , x ≤ 0 x , x > 0 \ f(x)=max(0,x)=\begin{cases} 0,&x\leq0\\ x,&x>0 \end{cases}  f(x)=max(0,x)={0,x,x0x>0

ReLU函数及其导数的几何图像如下图:
在这里插入图片描述
优点:
(1)收敛速度快与Sigmod函数和Tanh函数;
(2)有效缓解了梯度消失问题(在正区间);
(3)训练耗时优于Sigmod函数和Tanh函数;
(4)对神经网络可以使用稀疏表达;
缺点:
(1)在训练过程中容易出现神经元死亡(Dead ReLU Problem),之后梯度永远为0。
产生该问题的原因有两点:
(1)非常不幸的参数初始化,这种情况比较少见;
(2)学习率(learning rate)太大导致在训练过程中参数更新幅度太大,不幸使网络进入这种状态。解决方法是可以采用Xavier初始化方法,以及避免将学习率设置太大或使用adagrad等自动调节学习率的优化算法。

4、ELU函数

ELU函数(Exponential Linear Units)的数学形式如下:
f ( x ) = m a x ( α ( e x − 1 ) , x ) = { x , x > 0 α ( e x − 1 ) , x ≤ 0 \ f(x)=max(\alpha(e^x-1),x)=\begin{cases} x,& x>0 \\ \alpha(e^x-1),&x\le0\end{cases}  f(x)=max(α(ex1),x)={x,α(ex1),x>0x0
其中, α \ \alpha  α是可学习的参数。

ELU函数及其导数的几何图像如下图:
在这里插入图片描述
优点:
(1)ELU是为解决ReLU存在的问题而提出,显然,ELU有ReLU的基本所有优点,并可以消除ReLU中神经元死亡问题,在输入为负数时,具有一定输出,而且这部分输出具有一定的抗干扰能力。
缺点:
(1)幂运算增加了训练耗时。

5、PReLU函数

PReLU函数的数学形式如下:
f ( x ) = m a x ( α x , x ) = { x , x > 0 α x , x ≤ 0 \ f(x)=max(\alpha x,x)=\begin{cases} x,& x>0 \\ \alpha x,&x\le0\end{cases}  f(x)=max(αx,x)={x,αx,x>0x0
其中, α \ \alpha  α是可学习的参数。

优点:
(1)相比于ELU函数,PReLU函数在负数区域是线性的,斜率虽小,但不会趋于0,因为没有了幂运算,训练速度也会快一些。

6、Leaky ReLU函数

Leaky ReLU函数的数学形式如下:
f ( x ) = m a x ( 0.01 x , x ) = { x , x > 0 0.01 x , x ≤ 0 \ f(x)=max(0.01 x,x)=\begin{cases} x,& x>0 \\ 0.01 x,&x\le0\end{cases}  f(x)=max(0.01x,x)={x,0.01x,x>0x0

Leaky ReLU函数及其导数的几何图像如下图:
在这里插入图片描述
相比于PReLU函数,当 α \ \alpha  α0.01时,PReLU函数就变成了Leaky ReLU函数了。

7、Maxout函数

待更新

8、Mish函数

Leaky ReLU函数的数学形式如下:
f ( x ) = x ∗ t a n h ( l n ( 1 + e x ) ) \ f(x)=x*tanh(ln^{(1+e^x)})  f(x)=xtanh(ln(1+ex))

Mish函数及其导数的几何图像如下图:
在这里插入图片描述
这与另一个被称为Swish函数的激活函数非常相似,Swish函数的数学形式如下:
f ( x ) = x ∗ S i g m o i d ( x ) \ f(x)=x*Sigmoid(x)  f(x)=xSigmoid(x)

Swish函数及其导数的几何图像如下图:
在这里插入图片描述

Mish函数是YOLOv4中使用的激活函数,原因是它的低成本和它的平滑、非单调、上无界、有下界等特点。

Mish函数的性能详细说明如下:
(1)无上界有下界:无上界是任何激活函数都需要的特性,因为它避免了导致训练速度急剧下降的梯度饱和,可加快训练过程。有下界属性有助于实现强正则化效果,适当的拟合模型(Mish的这个性质类似于ReLU和Swish的性质,其范围是 ( ≈ 0.31 , + ∞ ] \ (\approx0.31,+\infty]  (0.31,+]);
(2)非单调函数:这种性质有助于保持小的负值,从而稳定网络梯度流。大多数常用的激活函数,如ReLU、 Leaky ReLU,由于其差分为0,不能保持负值,因此大多数神经元没有得到更新;
(3)无穷阶连续性和光滑性:Mish是光滑函数,具有较好的泛化能力和结果的有效优化能力,可以提高结果的质量。在图中,可以看到ReLU和Mish之间的一个随机初始化的神经网络在宏观平滑度上的剧烈变化。然而,在Swish和Mish的情况下,宏观上或多或少还是相似的;
在这里插入图片描述
(4)计算量较大,但是效果更好:与ReLU相比,它的计算量比较大,但在深度神经网络中显示了比ReLU更好的结果。
(5)自门控:此属性受到Swish函数的启发,其中标量输入被提供给gate。它优于像ReLU这样的点式激活函数,后者只接受单个标量输入,而不需要更改网络参数。

参考资料

1、常用激活函数(激励函数)理解与总结
2、YOLOv4 中的 Mish 激活函数

声明

本博客的目的仅为学习交流和记录,谢谢大家的浏览。


http://chatgpt.dhexx.cn/article/7sRE0GkU.shtml

相关文章

一文搞懂激活函数

目录 1、什么是激活函数 2、激活函数的用途&#xff08;为什么需要激活函数&#xff09;&#xff1f; 3、常见的激活函数介绍 3.1 Sigmoid函数 3.2 tanh函数 3.3.RelU函数 3.4 Leaky ReLU函数 和 PReLU 函数 --- ReLU 变体的提出 3.5 ELU (Exponential Linear Units) 函…

激活函数(Relu,sigmoid,Tanh,softmax)详解

目录 1 激活函数的定义 2 激活函数在深度学习中的作用 3 选取合适的激活函数对于神经网络有什么样的重要意义 4 常用激活函数 4.1 Relu 激活函数 4.2 sigmoid 激活函数 4.3 Tanh激活函数 4.4 softmax 激活函数 1 激活函数的定义 激活函数&#xff08;Activation Funct…

激活函数(Activation Function)

目录 1 激活函数的概念和作用 1.1 激活函数的概念 1.2 激活函数的作用 1.3 通俗的理解一下激活函数(图文结合) 1.3.1 无激活函数的神经网络 1.3.2 带激活函数的神经网络 2 神经网络梯度消失与梯度爆炸 2.1 简介梯度消失与梯度爆炸 2.2 梯度不稳定问题 2.3 产生梯度消…

常用的激活函数合集(详细版)

目录 一、定义以及作用 二、常用激活函数解析 1、Sigmoid函数 1.1 公式 1.2 对应的图像 1.3 优点与不足之处 1.4 对应pytorch的代码 2、Tanh函数 2.1 公式 2.2 对应的图像 2.3 优点与不足之处 2.4 对应pytorch的代码 3、ReLU 3.1 公式 3.2 对应的图像 3.3 优点与不…

优化算法——FTRL

ctr预测中&#xff0c;单个样本由向量x表示&#xff0c;w是模型参数&#xff0c;预测样本x被点击的概率psigmoid(w * x)&#xff0c;sigmoid(x) 1/(1exp(x))。样本label为{0, 1}表示是否被点击。模型损失函数为交叉熵损失&#xff1a; L -ylog - (1-y)log(1-p)&#xff0c;梯…

【深度学习】优化算法-Ftrl

脑图 代码实现 DO WHAT THE FUCK YOU WANT TO PUBLIC LICENSEVersion 2, December 2004Copyright (C) 2004 Sam Hocevar <samhocevar.net>Everyone is permitted to copy and distribute verbatim or modified copies of this license document, and changing it is all…

谷歌13年提出来的类似于lr的算法 - ftrl论文翻译(七)

论文链接&#xff1a;https://static.googleusercontent.com/media/research.google.com/zh-CN//pubs/archive/41159.pdf 概要 预测广告点击率&#xff08;CTR&#xff09;是一个巨大的规模学习问题&#xff0c;是在线广告业数十亿美元的核心问题。 我们从最近的实验中选择出…

FTRL 算法

本文会尝试总结FTRL的发展由来&#xff0c;总结从LR -> SGD -> TG -> FOBOS -> RDA -> FTRL 的发展历程。本文的主要目录如下&#xff1a; 一、 反思魏则西事件。 二、 LR模型 三、 SGD算法 四、 TG算法 五、 FOBOS算法 六、 RDA算法 七、 FTRL算法 注&…

排序模型进阶-FMFTRL

日萌社 人工智能AI&#xff1a;Keras PyTorch MXNet TensorFlow PaddlePaddle 深度学习实战&#xff08;不定时更新&#xff09; 5.8 排序模型进阶-FM&FTRL 学习目标 目标 无应用 无 5.8.1 问题 在实际项目的时候&#xff0c;经常会遇到训练数据非常大导致一些算法实际…

以我视角深入理解FTRL模型原理

以我视角深入理解FTRL模型原理 FTRL算法是吸取了FOBOS算法和RDA算法的优点而衍生而来的算法。 1.FOBOS算法 小结&#xff1a; 2. RDA算法 RDA也叫正则对偶平均算法&#xff0c;特征权重更新如下&#xff1a; 小结&#xff1a; 3.FTRL算法原理 从loss function的形式来看&am…

FTRL实战之LR+FTRL(代码采用的稠密数据)

理解要点&#xff1a;主要是梯度更新的方法使用了FTRL。即更改了梯度的update函数。 相关参考&#xff1a;https://github.com/wan501278191/OnlineLearning_BasicAlgorithm/blob/master/FTRL.py FTRL&#xff08;Follow The Regularized Leader&#xff09;是一种优化…

DL基本知识(七)FTRL优化器

契机 最近工作方向为缩减模型规模&#xff0c;切入点为L1正则化&#xff0c;选择该切入点的理由如下&#xff0c; 众所周知&#xff0c;L1正则化能令权重矩阵更稀疏。在推荐系统中特征多为embedding&#xff0c;权重矩阵稀疏意味着一些embedding_weight为0&#xff0c;模型部…

FTRL算法详解

一、算法原理 二、算法逻辑 三、个人理解 从loss function的形式来看&#xff1a;FTRL就是将RDA-L1的“梯度累加”思想应用在FOBOS-L1上&#xff0c;并施加一个L2正则项。【PS&#xff1a;paper上是没有加L2正则项的】这样达到的效果是&#xff1a; 累积加和限定了新的迭代结果…

FTRL算法理解

本文主要是对FTRL算法来源、原理、应用的总结和自己的思考。 解决的问题 1、训练数据层面&#xff1a;数据量大、特征规模大 2、常用的LR和FM这类模型的参数学习&#xff0c;传统的学习算法是batch learning算法&#xff0c;无法有效地处理大规模的数据集&#xff0c;也无法…

ftrl 流式更新 java_深入理解FTRL

FTRL算法是吸取了FOBOS算法和RDA算法的两者优点形成的Online Learning算法。读懂这篇文章&#xff0c;你需要理解LR、SGD、L1正则。 FOBOS算法 前向后向切分(FOBOS&#xff0c;Forward Backward Splitting)是 John Duchi 和 Yoran Singer 提出的。在该算法中&#xff0c;权重的…

排序模型-FTRL

排序模型进阶-FTRL 1 问题 在实际项目的时候&#xff0c;经常会遇到训练数据非常大导致一些算法实际上不能操作的问题。比如在推荐行业中&#xff0c;因为DSP的请求数据量特别大&#xff0c;一个星期的数据往往有上百G&#xff0c;这种级别的数据在训练的时候&#xff0c;直接…

FTRL代码实现

FTRL&#xff08;Follow The Regularized Leader&#xff09;是一种优化方法&#xff0c;就如同SGD&#xff08;Stochastic Gradient Descent&#xff09;一样。这里直接给出用FTRL优化LR&#xff08;Logistic Regression&#xff09;的步骤&#xff1a; 其中ptσ(Xt⋅w)ptσ(X…

FTRL算法

概述 GBDT算法是业界比较好用筛选特征的算法&#xff0c;在线学习考虑效率和数据量&#xff0c;经常用GBDT离线筛选特征&#xff0c;输入到在线模型进行实时训练&#xff0c;如今比较好用的方法是GBDTLR&#xff0c;而FTRL是另外一种很高效的算法&#xff0c;与其类似的有OGD&…

FTRL-Proximal

Ad Click Prediction: a View from the Trenches ABSTRACT 广告点击率预测是一个大规模的学习问题&#xff0c;对数十亿美元的在线广告行业至关重要。我们从部署的CTR预测系统的设置中提供了一些案例研究和从最近的实验中提取的话题&#xff0c;包括基于FTRL-Proximal在线学习…

FTRL

一、算法原理 二、算法逻辑 三、个人理解 从loss function的形式来看:FTRL就是将RDA-L1的“梯度累加”思想应用在FOBOS-L1上,并施加一个L2正则项。【PS:paper上是没有加L2正则项的】 这样达到的效果是: 累积加和限定了新的迭代结果W**不要离“已迭代过的解”太远**; 因为…