十个激活函数

2023-11-04

图片

激活函数(Activation Function)是一种添加到人工神经网络中的函数,旨在帮助网络学习数据中的复杂模式。类似于人类大脑中基于神经元的模型,激活函数最终决定了要发射给下一个神经元的内容。

在人工神经网络中,一个节点的激活函数定义了该节点在给定的输入或输入集合下的输出。标准的计算机芯片电路可以看作是根据输入得到开(1)或关(0)输出的数字电路激活函数。因此,激活函数是确定神经网络输出的数学方程式,本文概述了深度学习中常见的十种激活函数及其优缺点。

1.Sigmoid激活函数

图片

Sigmoid 函数的图像看起来像一个 S 形曲线。

函数表达式如下:

图片

在什么情况下适合使用 Sigmoid 激活函数呢

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

Sigmoid 激活函数有哪些缺点?

  • 倾向于梯度消失;
  • 函数输出不是以 0 为中心的,这会降低权重更新的效率;
  • Sigmoid 函数执行指数运算,计算机运行得较慢。
⚠️:sigmoid函数,范围是(0,1)。如果你想要你的数据近可能的处在0或1上,或者你要进行**二分类**,就用这个函数吧。其他的情况尽量不要用。或者几乎从来不用。因为,下面的这个函数几乎在任何场合都比sigmoid更加优越。

2.Tanh/双曲正切激活函数

图片

tanh 激活函数的图像也是 S 形,表达式如下:

图片

tanh 是一个双曲正切函数。tanh 函数和 sigmoid 函数的曲线相对相似。但是它比 sigmoid 函数更有一些优势。

图片
  • 首先,当输入较大或较小时,输出几乎是平滑的并且梯度较小,这不利于权重更新。二者的区别在于输出间隔,tanh 的输出间隔为 1,并且整个函数以 0 为中心,比 sigmoid 函数更好;
  • 在 tanh 图中,负输入将被强映射为负,而零输入被映射为接近零。
注意⚠️:在一般的二元分类问题中,tanh 函数用于隐藏层,而 sigmoid 函数用于输出层,但这并不是固定的,需要根据特定问题进行调整。
tanh函数,范围是(-1,1)。如果想让数据尽可能在-1和1之间,就考虑这个吧。
但是,sogmoid和tanh有个很明显的缺点:在z很大或者很小的时候,导数几乎是零,也就是在梯度下降优化时几乎更新不了。然而在机器学习中最受欢迎的莫过于修正线性单元reLU(rectified Linear Unit)。

3.ReLU激活函数

图片

ReLU 激活函数图像如上图所示,函数表达式如下:

图片

ReLU 函数是深度学习中较为流行的一种激活函数,相比于 sigmoid 函数和 tanh 函数,它具有如下优点:

  • 当输入为正时,不存在梯度饱和问题。
  • 计算速度快得多。ReLU 函数中只存在线性关系,因此它的计算速度比 sigmoid 和 tanh 更快。

当然,它也有缺点:

  1. Dead ReLU 问题。当输入为负时,ReLU 完全失效,在正向传播过程中,这不是问题。有些区域很敏感,有些则不敏感。但是在反向传播过程中,如果输入负数,则梯度将完全为零,sigmoid 函数和 tanh 函数也具有相同的问题;
  2. 我们发现 ReLU 函数的输出为 0 或正数,这意味着 ReLU 函数不是以 0 为中心的函数。
注意⚠️:
reLU = max(0, z) 当z小于零时,导数为0,当z大于0时,导数为1。这个激活函数几乎变成默认的激活函数,如果你不知道用什么激活函数的话。

虽然遇到向量z(0,0,0,0,0,0,0,0,...,0)的几率贼小。

4.Leaky ReLU

它是一种专门设计用于解决 Dead ReLU 问题的激活函数:

图片

ReLU vs Leaky ReLU

为什么 Leaky ReLU 比 ReLU 更好?

图片

  1. Leaky ReLU 通过把 x 的非常小的线性分量给予负输入(0.01x)来调整负值的零梯度(zero gradients)问题;
  2. leak 有助于扩大 ReLU 函数的范围,通常 a 的值为 0.01 左右;
  3. Leaky ReLU 的函数范围是(负无穷到正无穷)。

**注意:**从理论上讲,Leaky ReLU 具有 ReLU 的所有优点,而且 Dead ReLU 不会有任何问题,但在实际操作中,尚未完全证明 Leaky ReLU 总是比 ReLU 更好。

5. ELU

图片

ELU vs Leaky ReLU vs ReLU

ELU 的提出也解决了 ReLU 的问题。与 ReLU 相比,ELU 有负值,这会使激活的平均值接近零。均值激活接近于零可以使学习更快,因为它们使梯度更接近自然梯度。

图片

显然,ELU 具有 ReLU 的所有优点,并且:

  • 没有 Dead ReLU 问题,输出的平均值接近 0,以 0 为中心;
  • ELU 通过减少偏置偏移的影响,使正常梯度更接近于单位自然梯度,从而使均值向零加速学习;
  • ELU 在较小的输入下会饱和至负值,从而减少前向传播的变异和信息。

一个小问题是它的计算强度更高。与 Leaky ReLU 类似,尽管理论上比 ReLU 要好,但目前在实践中没有充分的证据表明 ELU 总是比 ReLU 好。

6. PReLU(Parametric ReLU)

图片

PReLU 也是 ReLU 的改进版本:

图片

看一下 PReLU 的公式:参数α通常为 0 到 1 之间的数字,并且通常相对较小。

  • 如果 a_i= 0,则 f 变为 ReLU
  • 如果 a_i> 0,则 f 变为 leaky ReLU
  • 如果 a_i 是可学习的参数,则 f 变为 PReLU

PReLU 的优点如下:

  1. 在负值域,PReLU 的斜率较小,这也可以避免 Dead ReLU 问题。
  2. 与 ELU 相比,PReLU 在负值域是线性运算。尽管斜率很小,但不会趋于 0。

7. Softmax

图片

Softmax 是用于多类分类问题的激活函数,在多类分类问题中,超过两个类标签则需要类成员关系。对于长度为 K 的任意实向量,Softmax 可以将其压缩为长度为 K,值在(0,1)范围内,并且向量中元素的总和为 1 的实向量。

图片

Softmax 与正常的 max 函数不同:max 函数仅输出最大值,但 Softmax 确保较小的值具有较小的概率,并且不会直接丢弃。我们可以认为它是 argmax 函数的概率版本或「soft」版本。

Softmax 函数的分母结合了原始输出值的所有因子,这意味着 Softmax 函数获得的各种概率彼此相关。

Softmax 激活函数的主要缺点是:

  1. 在零点不可微;
  2. 负输入的梯度为零,这意味着对于该区域的激活,权重不会在反向传播期间更新,因此会产生永不激活的死亡神经元。
注意⚠️:
通俗易懂的讲,soft max激活函数就是把上一层每一个参与工作的神经元的输出作为输入,进行softmax分类,分类结果是每一个输出对应一个(0,1)的概率值,所有概率值之和为1.
logistic 回归是针对二分类问题,softmax则是针对多分类问题,logistic可看成softmax的特例。

8. Swish

图片

函数表达式:y = x * sigmoid (x)

Swish 的设计受到了 LSTM 和高速网络中 gating 的 sigmoid 函数使用的启发。我们使用相同的 gating 值来简化 gating 机制,这称为 self-gating。

self-gating 的优点在于它只需要简单的标量输入,而普通的 gating 则需要多个标量输入。这使得诸如 Swish 之类的 self-gated 激活函数能够轻松替换以单个标量为输入的激活函数(例如 ReLU),而无需更改隐藏容量或参数数量。

Swish 激活函数的主要优点如下:

  • 「无界性」有助于防止慢速训练期间,梯度逐渐接近 0 并导致饱和;(同时,有界性也是有优势的,因为有界激活函数可以具有很强的正则化,并且较大的负输入问题也能解决);
  • 导数恒 > 0;
  • 平滑度在优化和泛化中起了重要作用。

9. Maxout

图片

在 Maxout 层,激活函数是输入的最大值,因此只有 2 个 maxout 节点的多层感知机就可以拟合任意的凸函数。

单个 Maxout 节点可以解释为对一个实值函数进行分段线性近似 (PWL) ,其中函数图上任意两点之间的线段位于图(凸函数)的上方。

图片

Maxout 也可以对 d 维向量(V)实现:

图片

假设两个凸函数 h_1(x) 和 h_2(x),由两个 Maxout 节点近似化,函数 g(x) 是连续的 PWL 函数。

图片

因此,由两个 Maxout 节点组成的 Maxout 层可以很好地近似任何连续函数。

图片

10. Softplus

图片

Softplus 函数:f(x)= ln(1 + exp x)

Softplus 的导数为

f ′(x)=exp(x) / ( 1+exp⁡ x )

= 1/ (1 +exp(−x ))

,也称为 logistic / sigmoid 函数。

Softplus 函数类似于 ReLU 函数,但是相对较平滑,像 ReLU 一样是单侧抑制。它的接受范围很广:(0, + inf)。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

十个激活函数 的相关文章

  • Caffe中的优化方法

    在Deep Learning中 往往loss function是非凸的 没有解析解 我们需要通过优化方法来求解 Caffe通过协调的进行整个网络的前向传播推倒以及后向梯度对参数进行更新 试图减小损失 Caffe已经封装好了三种优化方法 分别

随机推荐

  • TypeError: ‘builtin_function_or_method‘ object is not subscriptable解决办法

    python报 TypeError builtin function or method object is not subscriptable 这个错 大概率是因为括号用错了 比如应该用圆括号 用成了方括号 或者缺少括号 应检查括号是否使
  • 进阶项目(12)PS2键盘驱动程序设计讲解

    写在前面的话 我们从小就开始接触电脑 曾经多么羡慕那些在键盘上洋洋洒洒的人 手指轻柔的飞舞 刻画出一章章美丽的篇幅 那么作为工程师的我们 同样拥有着属于我们的情怀 如果曾经的向往变成我们喜欢的玩具 如果曾经的神秘变成我们夜以继日的痴迷 那么
  • 【转】C/C++中的 mutable、volatile 关键字作用详解

    mutable和volatile 很少遇到这两个关键字 学嵌入式估计知道后者 深入研究 C 的估计知道前者 1 mutable 在 C 中 mutable 是为了突破 const 的限制而设置的 被 mutable 修饰的变量 将永远处于可
  • Error: Cannot find module ‘webpack/lib/rules/BasicEffectRulePlugin‘

    目录 出错现象 出错原因 解决方案 出错现象 这个报错是我在安装webpack vue loader的配置中遇到的 如果你不是这个背景请绕行 不然可能无法解决你的问题 主要是安装了npm i vue loader plugin save d
  • #pragma once与 #ifndef的区别

    为了避免同一个文件被include多次 可以采用两种方法 1 ifndef方式2 pragma once方式在能够支持这两种方式的编译器上 二者并没有太大的区别 但是两者仍然还是有一些细微的区别 方式一 ifndef SOMEFILE H
  • matlab 小波分析实例,小波分析MATLAB实例

    小波分析MATLAB实例 由会员分享 可在线阅读 更多相关 小波分析MATLAB实例 7页珍藏版 请在人人文库网上搜索 1 到小波分析1 背景传统的信号理论 是建立在Fourier分析基础上的 而Fourier变换作为一种全局性的变化 其有
  • GitLab安装配置教程-Docker方式安装

    文章目录 一 安装 二 配置 三 使用 四 SSH连接方式 五 Http连接方式 参考文档 一 安装 环境准备 CentOS 7 6 Minimal 192 168 73 140 Docker 20 10 12 创建一个目录用于存放日志 配
  • zabbix详解(十二)——zabbix监控MySQL主从状态实战

    今天继续给大家介绍Linux运维相关知识 本文主要内容是zabbix监控MySQL主从同步状态 本文旨在配置实现zabbix对MySQL主从同步状态的监控 并且当MySQL主从同步状态宕机后 进行邮件报警 一 MySQL主从配置 关于MyS
  • Java版PPT处理控件Aspose.Slides迎来v19.12升级!轻松创建旭日图并调整样式

    Aspose Slides for Java是独特的演示处理API 使应用程序能够读取 编写 修改和转换PowerPoint演示文稿 作为独立的API 它提供了管理PowerPoint关键功能的功能 例如管理文本 形状 表格和动画 向幻灯片
  • RFID门禁系统

    RFID门禁系统 前言 一 RFID射频 二 功能演示 三 我们使用的硬件和软件 三 使用步骤 1 新建工程 2 程序 总结 前言 这一个RFID项目主要是通过RC522模块来达到智能识别ID卡 RFID卡 通过识别ID卡号从而实现门禁的功
  • 歌尔股份2021年报:AR/VR、游戏主机成主要营收来源

    过去1年中 Quest 2 Neo 3等VR一体机愈加流行 关注度越来愈高 与此同时 作为AR VR产业ODM厂商 在声光电多方面积极部署的歌尔优势正在显现 根据歌尔2021年报中显示 AR VR 游戏主机等智能硬件业务业绩大涨 已经成为营
  • Windows共享文件夹

    Windows共享文件夹 将服务器相应磁盘设置为共享式 本机可远程访问服务器 共享到本地 注意 将服务器相应磁盘设置为共享式 这里E已经是共享式 将D也设置为共享式 Desktop erps210 d 本机可远程访问服务器 将本机和服务器的
  • NUC980开源项目3-硬件进度

    上面是我的微信和QQ群 欢迎新朋友的加入 今天已下单 外观上和参考电路是一致的 不过我把走线改了下 可能是EDA下载的时候 有些数据乱了 不能搞到原版文件 3D效果
  • Java面试题--网络

    当你用浏览器打开一个链接的时候 计算机做了哪些工作步骤 1 解析域名 2 发起TCP的3次握手 3 建立TCP请求后发起HTTP请求 4 服务器相应HTTP请求 5 浏览器得到HTML代码 进行解析和处理JSON数据 并请求HTML代码中的
  • htmlspecialchars详解

    1 首先看下面的代码 你运行一下会发现显示完全正确 显示为 This is br text 你查看源代码会发现 This is lt br gt text htmlspecialchars 的作用就是显示完全正确 但是源码改变 具体改变规则
  • Redis的5种基本数据类型

    一 什么是Redis 在介绍redis的五种数据类型之前 我们要知道什么是redis redis是英文Remote Dictionary Server的缩写 也就是远程字典服务 它是一个开源的使用ANSI C语言编写的 支持网络 可基于内存
  • 数据库中的表关系

    1 一对一关系实例 假设现在有两张表 一个是妻子表 一个是丈夫表 这两张表很明显存在一对一的关系 存在两张表A和B 分别添加主键 在其中一张表当中设置外键关联另一张表当中的主键 2 一对多关系实例 一对多表关系当中 一方的表称为主表 多表的
  • 常见web漏洞原理整理

    文章目录 一 SQL注入 1 1SQL注入漏洞原理 1 2 SQL注入的两个关键点 1 3 与Mysql注入相关的知识点 1 4 SQL注入的主要分类 1 5 SQL注入的流程 1 5 1 普通SQL注入 1 5 2 盲注 1 6 SQL注
  • 微信和支付宝对我们生活产生翻天覆地的改变

    移动支付同样也是移动互联网发展的产物之一 如今我们基本已经告别了现金时代 大家出门兜里都不放现金了 所有的消费几乎都可以通过线上支付来实现 微信和支付宝的出现 对我们的生活产生了翻天覆地的改变 科技千万种 能够便民利民 解决用户需求的科技
  • 十个激活函数

    激活函数 Activation Function 是一种添加到人工神经网络中的函数 旨在帮助网络学习数据中的复杂模式 类似于人类大脑中基于神经元的模型 激活函数最终决定了要发射给下一个神经元的内容 在人工神经网络中 一个节点的激活函数定义了