问小白 wenxiaobai
资讯
历史
科技
环境与自然
成长
游戏
财经
文学与艺术
美食
健康
家居
文化
情感
汽车
三农
军事
旅行
运动
教育
生活
星座命理

神经网络中的Sigmoid型激活函数:Logistic与Tanh详解

创作时间:
作者:
@小白创作中心

神经网络中的Sigmoid型激活函数:Logistic与Tanh详解

引用
CSDN
1.
https://blog.csdn.net/liruiqiang05/article/details/145859070

激活函数在神经网络中扮演着至关重要的角色,它们决定了神经元的输出特性,影响着网络的学习能力和表示能力。本文将详细介绍神经网络中常用的Sigmoid型激活函数,包括Logistic函数和Tanh函数,以及它们的性质、应用场景和优化版本。

一、Sigmoid型函数

Sigmoid型函数是一类S型曲线函数,具有两端饱和的特性。具体来说,如果函数$f(x)$在$x \rightarrow -\infty$时其导数$f'(x) \rightarrow 0$,则称其为左饱和;如果在$x \rightarrow +\infty$时其导数$f'(x) \rightarrow 0$,则称其为右饱和。当同时满足左、右饱和时,就称为两端饱和。

二、Logistic函数

1. 定义

Logistic函数的数学表达式为:
$$
\sigma(x) = \frac{1}{1 + e^{-x}}
$$

2. 特性说明

  • Logistic函数可以将实数域的输入“挤压”到(0, 1)区间。
  • 当输入值在0附近时,Logistic函数近似为线性函数。
  • 当输入值靠近两端时,对输入进行抑制。
  • 输入越小,输出越接近0;输入越大,输出越接近1。

3. 梯度与训练

Logistic函数的导数具有一个简单的形式:
$$
\sigma'(z) = \sigma(z)(1 - \sigma(z))
$$

这种形式在梯度下降算法中非常有用,因为它使得反向传播中梯度计算简单且高效。同时,当$z$处于极端值(很大或很小)时,导数趋近于0,这也会引起梯度消失问题,这一点在设计神经网络时需要注意。

三、Tanh函数

Tanh函数,即双曲正切函数,其数学表达式为:
$$
\tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}
$$

1. 基本性质

  • 输出范围:tanh(x)的输出在-1到1之间。当$x$越大时,tanh(x)趋近于1;当$x$越小(即负数绝对值越大)时,tanh(x)趋近于-1。
  • 对称性:tanh(x)是一个奇函数(关于原点对称),即$\tanh(-x) = -\tanh(x)$。
  • 平滑性:tanh(x)是连续且可微的,导数为:
    $$
    \tanh'(x) = 1 - \tanh^2(x)
    $$

2. 与其他激活函数的比较

  • 与Logistic函数:tanh(x)可以看作放大并平移的Logistic函数,其值域是(-1, 1)。具体关系为:
    $$
    \tanh(x) = 2\sigma(2x) - 1
    $$
  • 非线性特性:两者都具有S型(sigmoidal)曲线,但由于输出范围不同,tanh(x)在处理数据时往往能更好地平衡正负信息。

3. 实际应用

在神经网络中,tanh(x)常作为隐藏层的激活函数,帮助模型引入非线性。由于它的输出是零中心化的,能在一定程度上帮助缓解梯度下降过程中梯度偏移的问题。

四、Hard-Logistic函数

1. 定义

Logistic函数在0附近的一阶泰勒展开为:
$$
\sigma(x) \approx \frac{1}{2} + \frac{x}{4}
$$

因此,Logistic函数可以用分段函数hard-logistic(x)来近似:
$$
\text{hard-logistic}(x) = \begin{cases}
0 & \text{if } x < -1 \
\frac{1}{2} + \frac{x}{4} & \text{if } -1 \leq x \leq 1 \
1 & \text{if } x > 1
\end{cases}
$$

2. 形状

五、Hard-Tanh函数

1. 定义

Tanh函数在0附近的一阶泰勒展开为:
$$
\tanh(x) \approx x
$$

因此,Tanh函数可以用分段函数hard-tanh(x)来近似:
$$
\text{hard-tanh}(x) = \begin{cases}
-1 & \text{if } x < -1 \
x & \text{if } -1 \leq x \leq 1 \
1 & \text{if } x > 1
\end{cases}
$$

2. 形状

六、“hard”激活函数的应用场景和优势

  • 计算效率:“Hard”激活函数由于只涉及简单的加减和比较运算,相比于传统的Sigmoid或Tanh,可以大幅减少计算量,适合于对计算资源要求较高的场景(如移动设备、嵌入式系统)。
  • 简单性:它们的数学表达和梯度形式非常简单,这在理论分析和工程实现中都具有优势。
  • 应用实例:在一些深度学习网络或强化学习模型中,为了加速训练和推理,可以选择使用Hard-Tanh或Hard-Logistic作为激活函数,从而在保持性能的同时提升效率。

七、附加:tanh(x) = 2σ(2x) - 1的推导过程

1. 推导过程

步骤 1:调整Logistic函数的输入和输出范围

Logistic函数的输出范围为(0,1),而tanh的输出范围为(-1,1)。需对Logistic函数进行线性变换:
$$
\tanh(x) = A \cdot \sigma(Bx) + C
$$
其中A、B、C为待定系数。

步骤 2:确定参数B(缩放输入)

将Logistic函数的输入缩放为2x,即:
$$
\sigma(2x)
$$
这样做的目的是使Logistic函数的斜率更陡峭,与tanh的形状更接近。

步骤 3:确定参数A和C(调整输出范围)

将$\sigma(2x)$的输入调整后,进一步通过线性变换将其输出从(0,1)映射到(-1,1):
$$
2\sigma(2x) - 1
$$

步骤 4:代数化简

将等式右侧通分:
$$
2\sigma(2x) - 1 = \frac{2}{1 + e^{-2x}} - 1 = \frac{2 - (1 + e^{-2x})}{1 + e^{-2x}} = \frac{1 - e^{-2x}}{1 + e^{-2x}}
$$

步骤 5:与tanh的表达式对比

2. 关键推导总结

  • 输入缩放:通过将输入$x$放大为$2x$,使得Logistic函数$\sigma(2x)$的斜率与tanh匹配。
  • 输出调整:通过线性变换$2\sigma(2x) - 1$,将输出范围从(0,1)映射到(-1,1)。
  • 代数恒等式:化简后与tanh的定义式完全一致。

3. 直观理解

  • 几何意义:tanh是中心对称的S型曲线(关于原点对称),而Logistic函数是右移的S型曲线。通过缩放输入(2x)和调整输出(2σ-1),Logistic函数被“拉伸”并“平移”为tanh。
  • 参数作用
  • B=2:使Logistic函数的斜率加倍,与tanh的陡峭度一致。
  • A=2和C=-1:将输出范围从(0,1)线性映射到(-1,1)。

通过缩放Logistic函数的输入(2x)和调整输出(2σ-1),可以精确得到双曲正切函数tanh(x)。这一关系在神经网络中常用于激活函数的转换,尤其在需要中心化输出时(如循环神经网络)。

© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号