ML —— 激活函数总结

SoftPlus

适用 / 特点:

  • SoftPlus可以看作是ReLU的平滑;
  • SoftPlus能够返回任何大于0的值;
  • SoftPlus的导数是连续的、非零的,这可以防止出现静默神经元;
  • SoftPlus的导数常小于1,所以在深度神经网络中可能会出现梯度消失;

函数形式:
f ( x ) = log ⁡ e ( 1 + e x ) f(x)=\log_e(1+e^x) f(x)=loge(1+ex)
函数图像:
在这里插入图片描述
使用pytorch生成(其他激活函数生成同理):

import torch
import torch.nn.functional as f
import matplotlib.pyplot as plt

x = torch.linspace(-10, 10, 200)

y_softplus = f.softplus(x)

plt.title('softplus')
plt.plot(x, y_softplus, c='red')
plt.show()

Softmax

适用 / 特点:

  • 将多分类的结果以概率的形式展现出来;

函数形式:
p ( y ∣ x ) = exp ⁡ ( W y . x ) ∑ c = 1 C exp ⁡ ( W c . x ) p(y|x)=\frac{\exp(W_y.x)}{\sum_{c=1}^C\exp(W_c.x)} p(yx)=c=1Cexp(Wc.x)exp(Wy.x)

Sigmoid

适用 / 特点:

  • Sigmoid函数可以看作Softmax函数的二分类情况;
  • Sigmoid函数在logistic 回归中具有重要地位;
  • Sigmoid函数导数非零,且很容易计算: f ′ ( x ) = f ( x ) ( 1 − f ( x ) ) f^\prime(x)=f(x)(1-f(x)) f(x)=f(x)(1f(x))
  • Sigmoid函数对中央区的信号增益较大,对两侧区的信号增益小,可以将重点特征推向中央区,将非重点特征推向两侧区;

函数形式:
σ ( x ) = 1 1 + e − x \sigma(x)=\frac{1}{1+e^{-x}} σ(x)=1+ex1
函数图像:
在这里插入图片描述

修正线性单元(Rectified linear unit,ReLU)

适用 / 特点:

  • 神经网络中最常用的激活函数;
  • 在输入大于0区域内,斜率为1,可以避免梯度弥散与梯度消失的问题;
  • 只需要判断输入是否大于0即可,计算速度快(ReLU函数与其导数都不包括复杂的数学运算);
  • ReLU会使一部分神经元的输出为0,造成了网络的稀疏性,并且减少了参数的相互依存关系,缓解了过拟合问题的发生;
  • 当输入为负值的时候,梯度为零,从而其权重无法得到更新,在剩下的训练过程中会一直保持静默;
  • 收敛速度远快于Sigmoid和Tanh;

函数形式:
f ( x ) = { 0 , x < 0 x , x ≥ 0 f(x)= \begin{cases} 0&, &x<0\\ x&, &x\geq0 \end{cases} f(x)={0x,,x<0x0
函数图像:
在这里插入图片描述

参数化修正线性单元(Parameteric Rectified Linear Unit,PReLU)

适用 / 特点:

  • 为负值输入添加了一个线性项,但是这个线性项的斜率是在模型训练中学习到的

函数形式:
f ( x ) = { α x , x < 0 x , x ≥ 0 f(x)= \begin{cases} \alpha x&, &x<0\\ x&, &x\geq0 \end{cases} f(x)={αxx,,x<0x0
函数图像:
在这里插入图片描述

带泄露修正线性单元(Leaky ReLU)

适用 / 特点:

  • 输出对负值输入有很小的坡度,由于导数总是不为零,减少了静默神经元的出现,允许基于梯度的学习(但是很慢);

函数形式:
f ( x ) = max ⁡ ( α x , x ) f(x)=\max(\alpha x,x) f(x)=max(αx,x)
函数图像:
在这里插入图片描述

指数线性单元(Exponential Linear Unit,ELU)

适用 / 特点:

  • 相比于ReLU,ELU为负值输入添加了一个非零输出,包括一个负指数项,防止静默神经元出现,导数收敛为零,提高学习效率;

函数形式:
f ( x ) = { α ( e x − 1 ) , x ≤ 0 x , x > 0 f(x)= \begin{cases} \alpha (e^x-1) &, &x\leq0\\ x &, &x>0 \end{cases} f(x)={α(ex1)x,,x0x>0
f ′ ( x ) = { f ( x ) + α , x ≤ 0 1 , x > 0 f^\prime(x)= \begin{cases} f(x)+\alpha&,&x\leq0\\ 1&,&x>0 \end{cases} f(x)={f(x)+α1,,x0x>0
函数图像:
在这里插入图片描述

双曲正切函数(Tanh)

适用 / 特点:

  • Tanh函数为奇函数、完全可微分,在分类任务中,正逐渐取代Sigmoid函数作为标准的激活函数;
  • Tanh函数的输出和输入能够保持非线性单调上升和下降关系,符合BP网络的梯度求解,容错性好,有界,渐进于0、1,符合人脑神经饱和的规律;

函数形式:
tanh ⁡ ( x ) = e x − e − x e x + e − x \tanh(x)=\frac{e^x-e^{-x}}{e^x+e^{-x}} tanh(x)=ex+exexex
函数图像:
在这里插入图片描述

Hard Tanh

适用 / 特点:

  • Hard Tanh 是 Tanh 激活函数的线性分段近似,更易计算,学习计算的速度更快;

函数形式:
f ( x ) = { − 1 , x < − 1 x , − 1 ≤ x ≤ 1 1 , x > 1 f(x)= \begin{cases} -1&,&x<-1\\ x&,&-1\leq x\leq 1\\ 1&,&x>1 \end{cases} f(x)=1x1,,,x<11x1x>1
函数图像:
在这里插入图片描述

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值