各种激活函数
sigmoid
$$ f(z)=\frac{1}{1+e^{-z}} $$
其图像如下:
特点
- 能够将输入的连续实值变换为0到1之间的输出
缺点
- 在深度神经网络中梯度反向传播是容易造成梯度爆炸和梯度消失
sigmoid导数
$$ f’(z)=\frac{e^{-z}}{(1+e^{-z})^2} $$
其导数图像如下:
tanh
$$ tanh(x)=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}} $$
其图像如下:
特点
解决了sigmoid函数不是zero-centered的问题, 但是梯度消失依旧存在
导数
$$ tanh’(x)=1-(\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}})^2 $$
导数图像
Relu
$$ Relu(x)=max(0,x) $$
函数图像
导数
$$
Relu’(x)=\left{
\begin{array}{lr}
1 &x>0
\
0 &x<0
\end{array}
\right. $$
优点
- 解决了梯度消失问题
- 计算速度非常快
- 收敛速度远快于sigmoid和tanh
缺点
- 输出的不是zero-centered
- 有些神经元可能永远不会被激活(Dead ReLU)
- 不好的参数初始化
- 学习率过高, 导致网络不幸进入这种情况
Leaky Relu(PRelu)
$$ f(x)=max(\alpha x,x) $$
函数图像α=0.1
α=0.1
导数
$$
f’(x)=\left{
\begin{array}{lr}
1 &x\ge0
\
\alpha &x<0
\end{array}
\right. $$
图像
特点
- 具有ReLU的所有优点
- 不会有Dead ReLU问题
ELU
$$
f(x)=\left{
\begin{array}{lr}
x &x>0
\
\alpha(e^x-1) &x \leq0
\end{array}
\right. $$
函数图像α=1
α=1
导数
$$
f’(x)=\left{
\begin{array}{lr}
1 &x>0
\
\alpha e^x &x \leq0
\end{array}
\right. $$
图像α=1
α=1
特点
- 类似于Leaky ReLU
- 计算量稍大
- 不会有Dead ReLU问题
- 均值接近于0
SELU
$$
f(x)=\lambda\left{
\begin{array}{lr}
x &x>0
\
\alpha e^x - \alpha &x \leq0
\end{array}
\right. $$
λ=1.0507009873554804934193349852946
α=1.6732632423543772848170429916717
函数图像
导数
$$
f’(x)=\lambda \left{
\begin{array}{lr}
1 &x>0
\
\alpha e^x &\leq0
\end{array}
\right. $$
图像:
特点
- 在ELU的基础上求解了最佳的α
α , 并且扩大了λ
- λ倍,
- SELU拥有ELU所有的优点
- 不存在死区
SoftMax
$$ f(x_i)=\frac{e^{x_i}}{\sum_{j=1}^ne^{x_j}} $$
简单地说, 就是当前元素的值就等与e的当前元素次方在所有元素的e的次方和的比例
导数
当交叉熵作为损失函数时,$loss=-\sum_it_i \ lny_i$,其中,表$t_i$示真实值当预测第i个时,可以认为,$t_i=1$那么$loss=-\sum_i\ lny_i$因为softmax的和为1,那么$\sum_{i=1}^n(\frac{e^{x_i}}{\sum_{j=1}^ne^{x_j}})$,对loss求导后为: $$ y_i-1 $$
当交叉熵作为损失函数时,LOSS=−i∑tilnyi,其中,ti表示真实值当预测第i个时,可以认为ti=1,那么LOSS=−∑lnyi因为softmax的和为1,那么∑j=1nexjexi,对Loss求导后为−(1−∑jnexj∑i=jnexi)=yi−1
也就是说, 只要求出$y_i$,那么减一就是梯度.
特点
- Softmax会将整个超空间按照分类个数进行划分
- Softmax会比其他的激活函数更适合多分类问题最后的激活