深度学习中激活函数的演变与应用:一个综述

摘要

本文全面回顾了深度学习中激活函数的发展历程,从早期的Sigmoid和Tanh函数,到广泛应用的ReLU系列,再到近期提出的Swish、Mish和GeLU等新型激活函数。深入分析了各类激活函数的数学表达、特点优势、局限性以及在典型模型中的应用情况。通过系统的对比分析,本文探讨了激活函数的设计原则、性能评估标准以及未来可能的发展方向,为深度学习模型的优化和设计提供理论指导。

1. 引言

激活函数是神经网络中的关键组件,它在神经元的输出端引入非线性特性,使得神经网络能够学习和表示复杂的非线性映射。没有激活函数,无论多么深的神经网络本质上都只能表示线性变换,这大大限制了网络的表达能力。
随着深度学习的快速发展,激活函数的设计和选择已成为影响模型性能的重要因素。不同的激活函数具有不同的特性,如梯度流动性、计算复杂度、非线性程度等,这些特性直接影响着神经网络的训练效率、收敛速度和最终性能。
本文旨在全面回顾激活函数的演变历程,深入分析各类激活函数的特性,并探讨其在现代深度学习模型中的应用。我们将从以下几个方面展开讨论:

  1. 经典激活函数:包括Sigmoid、Tanh等早期常用的激活函数。
  2. ReLU及其变体:包括ReLU、Leaky ReLU、PReLU、ELU等。
  3. 新型激活函数:如Swish、Mish、GeLU等近期提出的函数。
  4. 特殊用途的激活函数:如Softmax、Maxout等。
  5. 激活函数的比较与选择:讨论不同场景下激活函数的选择策略。
  6. 未来展望:探讨激活函数研究的可能发展方向。

通过这一系统的回顾和分析,希望能为研究者和实践者提供一个全面的参考,帮助他们在深度学习模型设计中更好地选择和使用激活函数。

2. 经典激活函数

2.1 Sigmoid函数

Sigmoid函数是最早被广泛使用的激活函数之一,其数学表达式为:
σ ( x ) = 1 1 + e − x \sigma(x) = \frac{1}{1 + e^{-x}} σ(x)=1+ex1
image.png

特点与优点:
  1. 输出范围有界:Sigmoid函数的输出范围在(0, 1)之间,这使其特别适合于处理概率问题。
  2. 平滑可导:函数在整个定义域内都是平滑且可导的,这有利于梯度下降算法的应用。
  3. 解释性强:输出可以被解释为概率,特别适用于二分类问题的输出层。
缺点与限制:
  1. 梯度消失问题:当输入值很大或很小时,梯度接近于零,这会导致深层网络中的梯度消失问题。
  2. 输出非零中心:Sigmoid的输出均为正值,这可能会导致后一层神经元的输入总是正的,影响模型的收敛速度。
  3. 计算复杂度:涉及指数运算,计算复杂度相对较高。
适用场景:
  1. 早期的浅层神经网络。
  2. 二分类问题的输出层。
  3. 需要将输出限制在(0, 1)范围内的场景。
与其他函数的对比:

相比于后来出现的ReLU等函数,Sigmoid在深度网络中的应用受到了很大限制,主要是因为其梯度消失问题。然而,在某些特定任务(如二分类)中,Sigmoid仍然是一个有效的选择。

2.2 Tanh函数

Tanh(双曲正切)函数可视为Sigmoid函数的改进版本,其数学表达式为:
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
image.png

特点与优点:
  1. 零中心输出:Tanh函数的输出范围在(-1, 1)之间,解决了Sigmoid的非零中心问题。
  2. 梯度更强:在输入接近零的区域,Tanh函数的梯度比Sigmoid函数更大,有助于加快学习速度。
  3. 平滑可导:与Sigmoid类似,Tanh也是平滑且可导的。
缺点与限制:
  1. 梯度消失问题:虽然比Sigmoid有所改善,但Tanh在输入值较大或较小时仍然存在梯度消失的问题。
  2. 计算复杂度:与Sigmoid类似,Tanh也涉及指数运算,计算复杂度较高。
适用场景:
  1. 在需要零中心化输出的场景中优于Sigmoid。
  2. 在循环神经网络(RNN)和长短时记忆网络(LSTM)中经常使用。
  3. 在一些归一化输出很重要的场景中使用。
改进与对比:

Tanh函数可以看作是Sigmoid函数的改进版本,主要改进在于输出的零中心化。这一特性使得Tanh在许多情况下比Sigmoid表现更好,特别是在深度网络中。然而,与后来出现的ReLU等函数相比,Tanh仍然存在梯度消失的问题,在非常深的网络中可能会影响模型的性能。
Sigmoid和Tanh这两个经典的激活函数在深度学习早期发挥了重要作用,它们的特性和局限性也推动了后续激活函数的发展。虽然在很多场景下已经被更新的激活函数所替代,但在特定的任务和网络结构中,它们仍然有其独特的应用价值。

3. ReLU及其变体

3.1 ReLU (Rectified Linear Unit)

ReLU函数的提出是激活函数发展的一个重要里程碑。其数学表达式简单:
ReLU ( x ) = max ⁡ ( 0 , x ) \text{ReLU}(x) = \max(0, x) ReLU(x)=max(0,x)
image.png

特点与优点:
  1. 计算简单:ReLU的计算复杂度远低于Sigmoid和Tanh,有利于加速网络训练。
  2. 缓解梯度消失:对于正输入,ReLU的梯度恒为1,有效缓解了深层网络中的梯度消失问题。
  3. 稀疏激活:ReLU可以使一部分神经元的输出为0,导致网络的稀疏表达,这在某些任务中是有益的。
  4. 生物学解释:ReLU的单侧抑制特性与生物神经元的行为相似。
缺点与限制:
  1. "死亡ReLU"问题:当输入为负时,梯度为零,可能导致神经元永久失活。
  2. 非零中心输出:ReLU的输出均为非负值,这可能会影响下一层的学习过程。
适用场景:
  1. 深度卷积神经网络(如ResNet, VGG)中广泛使用。
  2. 适用于大多数前馈神经网络。
与其他函数的对比:

相比Sigmoid和Tanh,ReLU在深度网络中表现出显著优势,主要体现在训练速度和缓解梯度消失方面。然而,"死亡ReLU"问题促使研究者们提出了多种改进版本。

3.2 Leaky ReLU

为了解决ReLU的"死亡"问题,Leaky ReLU被提出:
Leaky ReLU ( x ) = { x , if  x > 0 α x , if  x ≤ 0 \text{Leaky ReLU}(x) = \begin{cases} x, & \text{if } x > 0 \\ \alpha x, & \text{if } x \leq 0 \end{cases} Leaky ReLU(x)={x,αx,if x>0if x0
其中, α \alpha α 是一个小的正常数,通常取0.01。
image.png

特点与优点:
  1. 缓解"死亡ReLU"问题:在输入为负时仍然保留一个小的梯度,避免神经元完全失活。
  2. 保留ReLU的优点:在正半轴保持线性,计算简单,有助于缓解梯度消失。
缺点与限制:
  1. 引入超参数 α \alpha α值的选择需要调优,增加了模型复杂度。
  2. 非零中心输出:与ReLU类似,输出仍然不是零中心的。
适用场景:
  1. 在ReLU表现不佳的场景中作为替代选择。
  2. 在需要保留一些负值信息的任务中使用。

3.3 PReLU (Parametric ReLU)

PReLU是Leaky ReLU的一个变体,其中负半轴的斜率是可学习的参数:
PReLU ( x ) = { x , if  x > 0 α x , if  x ≤ 0 \text{PReLU}(x) = \begin{cases} x, & \text{if } x > 0 \\ \alpha x, & \text{if } x \leq 0 \end{cases} PReLU(x)={x,αx,if x>0if x0
这里的 α \alpha α 是通过反向传播学习得到的参数。
image.png

特点与优点:
  1. 自适应学习:可以根据数据自动学习最适合的负半轴斜率。
  2. 性能潜力:在某些任务中,PReLU可以获得比ReLU和Leaky ReLU更好的性能。
缺点与限制:
  1. 增加模型复杂度:引入额外的可学习参数,增加了模型的复杂度。
  2. 可能过拟合:在某些情况下,可能导致过拟合,特别是在小数据集上。
适用场景:
  1. 大规模数据集上的深度学习任务。
  2. 需要自适应激活函数的场景。

3.4 ELU (Exponential Linear Unit)

ELU试图结合ReLU的优点和负值输入的处理,其数学表达式为:
ELU ( x ) = { x , if  x > 0 α ( e x − 1 ) , if  x ≤ 0 \text{ELU}(x) = \begin{cases} x, & \text{if } x > 0 \\ \alpha(e^x - 1), & \text{if } x \leq 0 \end{cases} ELU(x)=

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/45599.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

详解MySQL中的递归查询

MySQL中的递归查询主要通过WITH RECURSIVE语句来实现,这在处理具有层级关系或树形结构的数据时非常有用。下面将通过一个具体的例子来详细解释如何在MySQL中使用递归查询。 示例场景 假设我们有一个部门表(departments),其中包含…

老板新招的牛人,竟然用1天搭建了一套完整的仓库管理系统!

仓储管理系统是什么? 仓储管理系统(WMS)是一个全面的软件解决方案,旨在帮助企业优化仓库管理流程、管理和控制日常仓库运营。通过数学模型和信息手段,对仓库管理的各个环节进行优化和调控,涵盖了从货物入库…

使用网关和Spring Security进行认证和授权

个人名片 🎓作者简介:java领域优质创作者 🌐个人主页:码农阿豪 📞工作室:新空间代码工作室(提供各种软件服务) 💌个人邮箱:[2435024119qq.com] &#x1f4f1…

怎么录制视频?电脑录制,试试这3种方法

在数字化快速发展的时代,视频已经成为我们传递信息、分享生活、表达情感的重要载体。每一个人都希望自己能够掌握视频录制技巧,轻松驾驭影像的力量,创造出属于自己的视觉盛宴。 那么,怎么录制视频呢?首先选择一款好用…

《信息与电脑(理论版)》是什么级别的期刊?是正规期刊吗?能评职称吗?

问题解答 问:《信息与电脑(理论版)》是不是核心期刊? 答:不是,是知网收录的正规学术期刊。 问:《信息与电脑(理论版)》级别? 答:省级。主管单位:北京电子控股有限责任公司 主办…

实践致知第16享:设置Word中某一页横着的效果及操作

一、背景需求 小姑电话说:现在有个word文档,里面有个表格太长(如下图所示),希望这一个设置成横的,其余页还是保持竖的! 二、解决方案 1、将鼠标放置在该页的最前面闪烁,然后选择“页面”》“↘…

【Stable Diffusion】(基础篇三)—— 图生图基础

图生图基础 本系列笔记主要参考B站nenly同学的视频教程,传送门:B站第一套系统的AI绘画课!零基础学会Stable Diffusion,这绝对是你看过的最容易上手的AI绘画教程 | SD WebUI 保姆级攻略_哔哩哔哩_bilibili 本文主要讲解如何使用S…

K8s集群初始化遇到的问题

kubectl describe pod coredns-545d6fc579-s9g5s -n kube-system 找到原因1:CoreDNS Pod 处于 Pending 状态的原因是集群中的节点都带有 node.kubernetes.io/not-ready 污点 journalctl -u kubelet -f 14:57:59.178592 3553 remote_image.go:114] "PullIma…

pear-admin-fast项目修改为集成PostgreSQL启动

全局搜索代码中的sysdate(),修改为now() 【前者是mysql特有的,后者是postgre特有的】修改application-dev.yml中的数据库url使用DBeaver把mysql中的数据库表导出csv,再从postgre中导入csv脚本转换后出现了bpchar(xx)类型,那么一定…

python数据可视化(6)——绘制散点图

课程学习来源:b站up:【蚂蚁学python】 【课程链接:【【数据可视化】Python数据图表可视化入门到实战】】 【课程资料链接:【链接】】 Python绘制散点图查看BMI与保险费的关系 散点图: 用两组数据构成多个坐标点,考察…

如何降低老年人患帕金森病的风险?

降低老年人患帕金森病风险的方法 避免接触有害物质:长期接触某些化学物质、农药或其他有害物质可能会增加患帕金森病的风险。应减少这些物质的暴露,例如在工作或生活中采取防护措施。 健康饮食:均衡饮食,多吃富含抗氧化剂的食物&a…

做了一个万能搜索框

最近给网页做了一个搜索框,现在搜索比以前更加方便了,下面简单介绍一下如何使用 我们进入网页版(app.zyjj.cc)点击右上角的搜索就可以看到这个新版的搜索框了 目前支持中文、拼音、首字母等多种搜索方式,大家可以随意…

【Linux】常见指令(下)

【Linux】常见指令(下) 通配符 *man指令cp指令echo指令cat指令(简单介绍)cp指令 mv指令alias指令which ctrl ccat指令linux下一切皆文件 more指令less指令head指令tail指令管道 通配符 ‘*’ 通配符’ *‘,是可以匹配…

4 C 语言控制流与循环结构的深入解读

目录 1 复杂表达式的计算过程 2 if-else语句 2.1 基本结构及示例 2.2 if-else if 多分支 2.3 嵌套 if-else 2.4 悬空的 else 2.5 注意事项 2.5.1 if 后面不要加分号 2.5.2 省略 else 2.5.3 省略 {} 2.5.4 注意点 3 while 循环 3.1 一般形式 3.2 流程特点 3.3 注…

数电基础 - 可编程逻辑器件

目录 ​编辑 一. 简介 二. 现场可编程逻辑阵列 三. 可编程阵列逻辑 四. 通用阵列逻辑 五. 可擦除的可编程逻辑器件 六. 复杂的可编程逻辑器件 七. 现场可编程门阵列 一. 简介 可编程逻辑器件(Programmable Logic Device,PLD)是一种用…

Gmsh用户界面

主要指出几何、网格、求解三个模块. 几何模块分为基本实体和物理组两个部分,主要对几何体进行操作,并设置物理属性 网格模块主要定义了对网格的操作和对应的算法 求解主要指出了网格求解方法 所有的界面操作都是基于这三个方法的

半导体仿真文件传输面临时间和经济成本挑战,一招就能解决

对于芯片设计企业来说,其面临的最大考验就是芯片设计质量和时间成本控制之间的矛盾,具体表现在芯片的设计、仿真验证过程存在着较大的挑战: 芯片设计过程包括了仿真验证这一重要的一环,但芯片设计企业在仿真验证这一环却面临着较…

数据结构--二叉树遍历

目录 1.介绍 (1)前序遍历 (2)定义结构体 (3)前序遍历实现 (4)中序遍历实现 (5)二叉树的节点个数 (6)二叉树树叶节点个数 &…

东软医疗 踩在中国医疗科技跃迁的风口上

恐怕没有哪一家本土医疗装备企业能像东软医疗一样,每一段成长的升维都发生在中国医疗科技跃迁史最重要的节点上。 在工业制造领域,医疗装备产业由于涉及数十个学科领域,其技术复合程度毫不逊于今天公众所熟知的EUV光刻机,是一门技…

【TES807】 基于XCKU115 FPGA的双FMC接口万兆光纤传输信号处理平台

板卡概述 TES807是一款基于千兆或者万兆以太网传输的双FMC接口信号处理平台。该平台采用XILINX的Kintex UltraSacle系列FPGA:XCKU115-2FLVF1924I作为主处理器,FPGA外挂两组72位DDR4 SDRAM,用来实现超大容量数据缓存,DDR4的最高数据…