深度学习中常见的激活函数

常见激活函数

  • Sigmoid激活函数
  • Tanh激活函数
  • Relu激活函数
  • Leaky Relu激活函数
  • P-Relu激活函数
  • ELU激活函数
  • R-Relu激活函数
  • Gelu激活函数
  • swich激活函数
  • Selu激活函数

img

图片引用自:Dance Moves of Deep Learning Activation Functions

激活函数可以分为两大类 :

  • 饱和激活函数:sigmoid、tanh
  • 非饱和激活函数: ReLU、Leaky Relu、ELU【指数线性单元】、PReLU【参数化的ReLU 】、RReLU【随机ReLU】

在这里插入图片描述


Sigmoid

image-20221106195256423

image-20221106195312373

image-20221106195437177
在这里插入图片描述

可以将任何输入映射到0 - 1 之间,是一个阈值函数,近些年研究人员使用该函数的频率越来越低了,主要是因为:(缺点)

  1. 过饱和会丢失剃度,当输入非常大或者非常小,神经元的活跃度在0和1会饱和。这些地方的梯度趋近于零,导致该神经元的参数没有变化。
  2. 输出不是零均值的。影响梯度下降。

优点:

  • Sigmoid 函数的输出范围是 0 到 1。由于输出值限定在 0 到 1,因此它对每个神经元的输出进行了归一化;
  • 用于将预测概率作为输出的模型。由于概率的取值范围是 0 到 1,因此 Sigmoid 函数非常合适;
  • 梯度平滑,避免「跳跃」的输出值;
  • 函数是可微的。这意味着可以找到任意两个点的 sigmoid 曲线的斜率;
  • 明确的预测,即非常接近 1 或 0
  • 输出映射在(0,1)之间,单调连续,输出范围有限,优化稳定,可用作输出层;
  • 求导容易。

缺点:

  1. 易造成梯度消失;
  2. 输出非0均值,收敛慢;
  3. 幂运算复杂,训练时间长。
    sigmoid函数可应用在训练过程中。然而,当处理分类问题作出输出时,sigmoid却无能为力。简
    单地说,sigmoid函数只能处理两个类,不适用于多分类问题。而softmax可以有效解决这个问题,并
    且softmax函数大都运用在神经网路中的最后一层网络中,使得值得区间在(0,1)之间,而不是二分类

Tanh函数

image-20221106195806211

image-20221106195814884
在这里插入图片描述

输出的值域为: -1, 1。 是零均值的。

优点:

  1. 比sigmoid函数收敛速度更快。
  2. 相比sigmoid函数,其输出以0为中心。

缺点:

  1. 指数运算,计算速度慢。不适合嵌入式应用算法。
  2. 存在梯度弥散问题。

ReLU函数

近些年流行起来的激活函数。称之为修正函数:
在这里插入图片描述

image-20221106195950383
在这里插入图片描述

该函数简单设置0为阈值,输出的范围为: [0, 正无穷]。

好处:

  1. 比前面二个函数有更快的收敛速度
  2. 前面的函数都是指数形式的,计算复杂,ReLU函数简单的设计为线性函数,
  3. 解决了梯度消失问题(在正区间);
  4. 只需判断输入是否大于0 算速度快;
  5. 收敛速度远快于sigmoid和tanh,因为sigmoid和tanh涉及很多expensive的操作;
  6. 提供了神经网络的稀疏表达能力

缺点:

  1. 神经元十分脆弱,可能在训练中变成无用的激活函数,大梯度经过ReLU可能会导致权值更新错误。
  2. 输出非0均值,收敛慢;

Leaky ReLU

image-20221106221107039

在这里插入图片描述

tensorflower api

理论上来讲,Leaky ReLU有ReLU的所有优点,外加不会有Dead ReLU问题,但是在实际操作当
中,并没有完全证明Leaky ReLU总是好于ReLU。

PReLU - Parametric ReLU

Softmax

img

对神经网络全连接层输出进行变换,使其服从概率分布,即每个值都位于[0,1]区间且和为1。

tf.nn.softmax(
    logits, axis=None, name=None
)
Args
logitsA non-empty Tensor. Must be one of the following types: half, float32, float64. 注意这里,输入必须为浮点数
axisThe dimension softmax would be performed on. The default is -1 which indicates the last dimension.
nameA name for the operation (optional).

选用激活函数建议

对于初学者的建议:

  1. 首选ReLU激活函数;
  2. 学习率设置较小值;
  3. 输入特征标准化,即让输入特征满足以0为均值,1为标准差的正态分布;
  4. 初始化问题:初始参数中心化,即让随机生成的参数满足以0为均值, 当 前 层 输 入 特 征 个 数 为标准差的
    正态分布

本文参考

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

早睡的叶子

你的鼓励就是我的动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值