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

各种激活函数及其图像

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

各种激活函数及其图像

引用
CSDN
1.
https://blog.csdn.net/weixin_37536336/article/details/109386930

Sigmoid

Sigmoid函数的数学表达式为:

$$
f(z) = \frac{1}{1 + e^{-z}}
$$

其图像如下:

特点

  • 能够将输入的连续实值变换为0到1之间的输出

缺点

  • 在深度神经网络中梯度反向传播时容易造成梯度爆炸和梯度消失

Sigmoid导数

Sigmoid函数的导数为:

$$
f'(z) = \frac{e^{-z}}{(1+e^{-z})^2} = \frac{1}{1+e^{-z}} - \frac{1}{(1+e^{-z})^2}
$$

其导数图像如下:

Tanh

Tanh函数的数学表达式为:

$$
tanh(x) = \frac{e^x - e^{-x}}{e^x + e^{-x}}
$$

其图像如下:

特点

  • 解决了sigmoid函数不是zero-centered的问题
  • 但是梯度消失问题依旧存在

导数

Tanh函数的导数为:

$$
tanh'(x) = 1 - tanh(x)^2 = 1 - \left(\frac{e^x - e^{-x}}{e^x + e^{-x}}\right)^2
$$

导数图像:

ReLU

ReLU函数的数学表达式为:

$$
Relu(x) = max(0, x)
$$

函数图像:

导数

ReLU函数的导数为:

$$
Relu'(x) =
\begin{cases}
0 & \text{if } x \leq 0 \
1 & \text{if } x > 0
\end{cases}
$$

优点

  • 解决了梯度消失问题
  • 计算速度非常快
  • 收敛速度远快于sigmoid和tanh

缺点

  • 输出的不是zero-centered
  • 有些神经元可能永远不会被激活(Dead ReLU)
  • 不好的参数初始化可能导致学习率过高,网络不幸进入这种情况

Leaky ReLU (PReLU)

Leaky ReLU函数的数学表达式为:

$$
f(x) = max(\alpha x, x)
$$

函数图像(α = 0.1):

导数

Leaky ReLU函数的导数为:

$$
f'(x) =
\begin{cases}
\alpha & \text{if } x \leq 0 \
1 & \text{if } x > 0
\end{cases}
$$

特点

  • 具有ReLU的所有优点
  • 不会有Dead ReLU问题

ELU

ELU函数的数学表达式为:

$$
f(x) =
\begin{cases}
x & \text{if } x > 0 \
\alpha(e^x - 1) & \text{if } x \leq 0
\end{cases}
$$

函数图像(α = 1):

导数

ELU函数的导数为:

$$
f'(x) =
\begin{cases}
1 & \text{if } x > 0 \
f(x) + \alpha = \alpha e^x & \text{if } x \leq 0
\end{cases}
$$

图像(α = 1):

特点

  • 类似于Leaky ReLU
  • 计算量稍大
  • 不会有Dead ReLU问题
  • 均值接近于0

SELU

SELU函数的数学表达式为:

$$
selu(x) = \lambda
\begin{cases}
x & \text{if } x > 0 \
\alpha(e^x - 1) & \text{if } x \leq 0
\end{cases}
$$

其中 $\lambda = 1.0507009873554804934193349852946$,$\alpha = 1.6732632423543772848170429916717$

函数图像:

导数

SELU函数的导数为:

$$
selu'(x) = \lambda
\begin{cases}
1 & \text{if } x > 0 \
\alpha e^x & \text{if } x \leq 0
\end{cases}
$$

图像:

特点

  • 在ELU的基础上求解了最佳的α,并且扩大了λ倍
  • SELU拥有ELU所有的优点
  • 不存在死区

SoftMax

SoftMax函数的数学表达式为:

$$
f(x_i) = \frac{e^{x_i}}{\sum_{j=1}^n e^{x_j}}
$$

简单地说,就是当前元素的值等于e的当前元素次方在所有元素的e的次方和的比例。

导数

当交叉熵作为损失函数时,$LOSS = -\sum_i t_i ln y_i$,其中,$t_i$表示真实值。当预测第i个时,可以认为$t_i=1$,那么$LOSS = -\sum lny_i$。因为Softmax的和为1,那么$\frac{e^{x^i}}{\sum_{j=1}^n e^{x_{j}}}$,对Loss求导后为$-(1-\frac{\sum^n_{i\neq j}e^{x_i}}{\sum^n_je^{x_j}})=y_i-1$。

也就是说,只要求出$j_i$,那么减一就是梯度。

特点

  • Softmax会将整个超空间按照分类个数进行划分
  • Softmax会比其他的激活函数更适合多分类问题最后的激活
© 2023 北京元石科技有限公司 ◎ 京公网安备 11010802042949号