深度学习:激活函数Activaton Function

一、为什么需要激活函数?

神经网络本质上是多个线性变换(矩阵乘法)叠加。如果没有激活函数,即使叠加多层,整体仍等价于一个线性函数:

f(x) = W_nW_{n-1}\cdot \cdot \cdot W_1x+b

这样的网络无法学习和拟合现实世界中复杂的非线性关系。

激活函数的作用:

  • 在每一层加入非线性变换,使得网络具有逼近任意非线性函数的能力。
  • 激活神经元,产生“信息通过/抑制”的门控效果。

二、常见激活函数列表与直觉图示

名称公式输出范围图像形状是否中心对称使用场景
Sigmoid
\sigma \left ( x \right )=\frac{1}{1+e^{-x}}
(0,1)S型概率输出,二分类
Tanh
tanh(x)=\frac{e^{x}-e^{-x}}{e^{x}+e^{-x}}
(-1,1)中心对称S型RNN隐藏层
ReLU
f(x) = max(0,x)
[0,+∞)截断线性默认隐藏层函数
Leaky ReLU(-∞,+∞)左侧带缓坡缓解ReLU死神经元问题
ELU/GELUSmooth ReLU变体(-1,∞)平滑曲线深层网络(如BERT)
Softmax
Softmax(x_{i})=\frac{e^{x_{i}}}{\sum_{j}^{e^{x_{j}}}}
(0,1)且总和=1多维映射多分类输出层

三、每种激活函数详细讲解

3.1 Sigmoid函数(逻辑激活)

                                                       \sigma (x) = \frac{1}{1+e^{-x}}

特性:

  • 输出范围在(0,1),可理解为概率
  • 单调递增,饱和区梯度小(梯度消失问题严重)
  • 在0附近比较线性,但远离0时趋近于平稳

优点:

  • 直观表示“激活程度”(介于0与1之间)
  • 在早期神经网络和输出层应用广泛

缺点:

  •  梯度消失问题:远离0时梯度趋近于0
  • 输出非中心对称:导致后一层神经元输入偏向正方向

使用建议:

  • 不推荐用于隐藏层
  • 可用于输出为“概率”的任务(如二分类输出层) 

3.2 Tanh函数(双曲正切)

                                                tanh(x) = \frac{e^x-e^{-x}}{e^x+e^{-x}} = 2\sigma (2x)-1

特性:

  • 输出范围(-1,1),是中心对称的S型函数
  • 在0附近几乎线性,表现比Sogmoid更好。

优点:

  • 零均值输出,收敛速度通常比Sigmoid快。

 缺点:

  • 也存在梯度消失问题(在±2左右开始饱和)

使用建议:

  • 在RNN等早期模型中较为常见。
  • 若模型对“负激活”有需求,可以使用Tanh。

3.3 ReLU(Rectified Linear Unit) 

                                                                f(x)=max(0,x)

 特性:

  • 最常用的激活函数,非线性强,计算简单。
  • 在x>0区域内导数为1,在x≤0区域内导数为0。

优点:

  • 计算快,易于优化,不易发生梯度消失。
  • 会产生稀疏激活(部分神经元输出为0),提高泛化能力。

缺点:

  • 死亡神经元问题:一旦某个神经元进入负区间并梯度为0,则该神经元永远不会激活。

使用建议:

  • 深度神经网络的隐藏层默认激活函数。
  • 若出现大量“死神经元”,可以使用Leaky ReLU或ELU替代。

3.4  Leaky ReLU

                                    f(x) = x(x\geq 0),\alpha x(x<0)     α通常为0.01 

特性:

  • 为ReLU的改进版本,在负区间保留少量梯度。

优点:

  • 缓解了ReLU的“死亡神经元”问题。
  • 在某些任务上收敛更稳定。

缺点:

  • 依赖于α超参数,需调参。

使用建议:

  • 如果ReLU网络中出现大量神经元输出恒为0,可尝试替换为Leaky ReLU

3.5 GELU(Gaussian Error Linear Unit)

                             f(x) = x \cdot \phi (x)\phi (x)是标准正态分布的累积分布函数

 特性:

  • 是ReLU与Sigmoid的混合形式。
  • 表现为平滑的非线性函数。

优点:

  • 在Transformer,BERT,ViT中广泛使用 。
  • 理论上更优,经验上在大模型中性能更好。

使用建议:

  • 在使用Transformer,BERT,T5等模型,默认激活就是GELU。 

3.6 Softmax(用于输出层)

                                                     Softmax(x_i)=\frac{e^{x_i}}{\sum_{j}^{}e^{x_j}}

特性:

  • 将向量转换为“概率分布”:每个值在(0,1),总和为1。
  • 常用于多分类任务的输出层。

使用建议:

  • 不用于隐藏层,仅用于输出层。
  • 通常与交叉熵损失函数一起使用。 

 

四、总结对比表

函数是否线性输出范围是否对称梯度问题使用推荐
Sigmoid(0, 1)易梯度消失输出层(二分类)
Tanh(-1, 1)易梯度消失RNN、需要对称时
ReLU[0, ∞)死神经元默认隐藏层
Leaky ReLU(-∞, ∞)有梯度替代 ReLU
GELU(-∞, ∞)平滑收敛好BERT等大模型
Softmax(0, 1) 且和为1N/A多分类输出

五、激活函数的三大核心指标

指标含义重要性
非线性能力是否能打破线性叠加所有激活函数的基本功能
是否有梯度梯度在输入范围内是否为0决定反向传播是否可行
零中心性输出是否以0为中心有助于加速收敛,避免梯度偏移

六、隐藏层和输出层的激活函数选择原则

层类型推荐激活函数原因
隐藏层ReLU/Leaky ReLU/GELU快速收敛,低计算开销,有效抑制梯度问题
输出层-二分类Sigmoid输出概率,可与BCE Loss配合
输出层-多分类Softmax输出概率分布,可与CrossEntropyLoss配合
输出层-回归无激活/Linear输出连续值(如房价)

 

七、ReLU系列变体的扩展图谱

1.Leaky ReLU:缓解死神经元问题

2.PReLU(Parametric ReLU):负斜率α可学习

3.RReLU(Randomized ReLU):训练时负斜率为随机数

4.ELU(Exponential Linear Unit):负区间指数形状,避免输出偏正

5.SELU(Scaled ELU):自归一化网络(Self-Normalizing NN)

八、实际工程中激活函数的选型建议

场景推荐函数理由
默认情况ReLU简单快速,表现好
出现大量死神经元Leaky ReLU/PReLU保持梯度
大模型(Transformer等)GELU平滑非线性,更强表征能力
医疗/金融等数据对称Tanh输出中心对称,利于稳定性
多标签任务输出层Sigmoid与BCE loss搭配使用
多分类任务输出层Softmax与交叉熵搭配使用

九、激活函数与神经网络结构的关系 

激活函数不是孤立使用的,而是与网络层数,归一化方法,损失函数等协同设计:

网络结构建议激活函数原因
MLP(多层感知机)ReLU/LeakyReLU层数少,避免梯度消失即可
CNN(卷积网络)ReLU/LeakyReLU图像任务中默认激活,训练快
RNN/LSTMTanh/Sigmoid(门控)RNN天然处理时序信息,Tanh为主,Sigmoid用于控制门结构
TransformerGELU/ReLUBERT,GPT中使用GELU收敛更平稳,ReLU计算更快
自归一化网络(SNN)SELU与特殊初始化+dropout配合,自动归一化每层输出
GAN生成器ReLU/LeakyReLU生成端需非线性表达能力强
GAN判别器LeakyReLU判别器中避免ReLU死神经元影响判别能力

 

十、训练中因激活函数导致的典型问题与解决方案

问题可能原因解决方案
训练不收敛Sigmoid/Tanh导致梯度消失改用ReLU/GELU
大量神经元恒为0ReLU死神经元问题改用LeakyReLU/PReLU
loss起伏大梯度爆炸 or 梯度不稳定尝试使用平滑激活函数(GELU/Swish)
模型准确率震荡输出分布不均衡检查是否中心兑成(可尝试Tanh/SELU)

十一、激活函数与归一化层的顺序问题

在使用BatchNorm/LayerNorm时,激活函数的位置非常关键。

顺序类型建议顺序说明
CNN(BatchNorm)Conv➡BN➡ReLU主流做法,BN规范分布后再非线性激活
Transformer(LayerNorm)LN➡Linear➡GELU大模型默认顺序(PreNorm)
ResNet残差结构ReLU放在跳跃前还是后?大多在残差和主路路径相见之后ReLU

十二、激活函数的梯度可视化

激活函数导数(梯度)梯度图像直觉
Sigmoidσ′(x)=σ(x)(1−σ(x))\sigma'(x) = \sigma(x)(1 - \sigma(x))梯度最大在 x=0,越远越趋近于0(易梯度消失)
Tanhtanh⁡′(x)=1−tanh⁡2(x)\tanh'(x) = 1 - \tanh^2(x)梯度范围比 Sigmoid 更广,但仍有饱和问题
ReLUf′(x)=1 if x>0;0 elsef'(x) = 1 \text{ if } x>0; 0 \text{ else}梯度恒定,简单高效
Leaky ReLUf′(x)=1 if x>0;α elsef'(x) = 1 \text{ if } x>0; \alpha \text{ else}保留负区间小梯度
GELU近似导数为高斯变换平滑过渡,梯度分布均衡(大模型表现好)

十三、激活函数的数学本质:非线性特征空间映射

从数学角度来看,激活函数在整个神经网络中充当非线性特征映射角色:

网络每一层执行的是

                                                           x_{l+1} = \phi (W_lx_l+b_l)

其中 \phi是激活函数

本质上是将低维空间的线性表示映射到高维非线性空间,从而可以更好地学习复杂关系(类似SVM的核函数思想)

十四、小结

场景首选激活函数替代备选
图像分类ReLULeaky ReLU / GELU
序列建模Tanh / GELUReLU
大型TransformerGELUSwish
输出为概率(二分类)Sigmoid
多分类输出层Softmax
GAN 判别器Leaky ReLUReLU
出现死神经元Leaky ReLUPReLU

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

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

相关文章

deepseek: 切分类和长函数到同名文件中

import re import sys import os import ast from tokenize import generate_tokens, COMMENT, STRING, NL, INDENT, DEDENT import iodef extract_entities(filename):"""提取类和函数到单独文件"""with open(filename, r, encodingutf-8) as f…

新型融合肽递送外泌体修饰可注射温敏水凝胶用于骨再生

温敏水凝胶因能模拟细胞外基质微环境&#xff0c;且具有原位注射性和形态适应性&#xff0c;在骨组织工程中应用广泛。小肠黏膜下层&#xff08;SIS&#xff09;作为天然细胞外基质来源&#xff0c;富含 I 型和 III 型胶原蛋白及多种生物活性因子&#xff0c;其制备的水凝胶在组…

SPI接口的4种模式(根据时钟极性和时钟相位)

SPI&#xff08;Serial Peripheral Interface&#xff09; 接口根据时钟极性&#xff08;CPOL&#xff09;和时钟相位&#xff08;CPHA&#xff09;的不同组合&#xff0c;共有 4种工作模式。这些模式决定了数据采样和传输的时序关系&#xff0c;是SPI通信中必须正确配置的关键…

Java:高频面试知识分享2

HashSet 和 TreeSet 的区别&#xff1f;底层实现&#xff1a;HashSet 基于 HashMap 实现&#xff0c;使用哈希表存储元素&#xff1b;TreeSet 基于 TreeMap&#xff0c;底层为红黑树。元素顺序&#xff1a;HashSet 无序&#xff1b;TreeSet 会根据元素的自然顺序或传入的 Compa…

C语言习题讲解-第九讲- 常见错误分类等

C语言习题讲解-第九讲- 常见错误分类等1. C程序常见的错误分类不包含&#xff1a;&#xff08; &#xff09;2. 根据下面递归函数&#xff1a;调用函数 Fun(2) &#xff0c;返回值是多少&#xff08; &#xff09;3. 关于递归的描述错误的是&#xff1a;&#xff08; &#x…

A∗算法(A-star algorithm)一种在路径规划和图搜索中广泛使用的启发式搜索算法

A∗A*A∗算法&#xff08;A-star algorithm&#xff09;是一种在路径规划和图搜索中广泛使用的启发式搜索算法&#xff0c;它结合了Dijkstra算法的广度优先搜索思想和启发式算法的效率优势&#xff0c;能够高效地找到从起点到终点的最短路径。 1. 基本原理 A*算法的核心是通过估…

UniappDay06

1.填写订单-渲染基本信息 静态结构&#xff08;分包&#xff09;封装请求API import { http } from /utils/http import { OrderPreResult } from /types/orderexport const getmemberOrderPreAPI () > {return http<OrderPreResult>({method: GET,url: /member/orde…

论文略读:GINGER: Grounded Information Nugget-Based Generation of Responses

SIGIR 2025用户日益依赖对话助手&#xff08;如 ChatGPT&#xff09;来满足多种信息需求&#xff0c;这些需求包括开放式问题、需要推理的间接回答&#xff0c;以及答案分布在多个段落中的复杂查询RAG试图通过在生成过程中引入检索到的信息来解决这些问题但如何确保回应的透明性…

从内部保护你的网络

想象一下&#xff0c;你是一家高端俱乐部的老板&#xff0c;商务贵宾们聚集在这里分享信息、放松身心。然后假设你雇佣了最顶尖的安保人员——“保镖”——站在门口&#xff0c;确保你准确掌握所有进出的人员&#xff0c;并确保所有人的安全。不妨想象一下丹尼尔克雷格和杜安约…

Redis 中 ZipList 的级联更新问题

ZipList 的结构ZipList 是 Redis 中用于实现 ZSet 的压缩数据结构&#xff0c;其元素采用连续存储方式&#xff0c;具有很高的内存紧凑性。ZipList 结构组成如下&#xff1a;zlbytes&#xff1a;4字节&#xff0c;记录整个ziplist的字节数zltail&#xff1a;4字节&#xff0c;记…

【苍穹外卖项目】Day05

&#x1f4d8;博客主页&#xff1a;程序员葵安 &#x1faf6;感谢大家点赞&#x1f44d;&#x1f3fb;收藏⭐评论✍&#x1f3fb; 一、Redis入门 Redis简介 Redis是一个基于内存的 key-value 结构数据库 基于内存存储&#xff0c;读写性能高适合存储热点数据&#xff08;热…

语音识别dolphin 学习笔记

目录 Dolphin简介 Dolphin 中共有 4 个模型&#xff0c;其中 2 个现在可用。 使用demo Dolphin简介 Dolphin 是由 Dataocean AI 和清华大学合作开发的多语言、多任务语音识别模型。它支持东亚、南亚、东南亚和中东的 40 种东方语言&#xff0c;同时支持 22 种汉语方言。该模…

视频生成中如何选择GPU或NPU?

在视频生成中选择GPU还是NPU&#xff0c;核心是根据场景需求、技术约束和成本目标来匹配两者的特性。以下是具体的决策框架和场景化建议&#xff1a; 核心决策依据&#xff1a;先明确你的“视频生成需求” 选择前需回答3个关键问题&#xff1a; 生成目标&#xff1a;视频分辨率…

从豆瓣小组到深度洞察:一个基于Python的舆情分析爬虫实践

文章目录 从豆瓣小组到深度洞察:一个基于Python的舆情分析爬虫实践 摘要 1. 背景 2. 需求分析 3. 技术选型与实现 3.1 总体架构 3.2 核心代码解析 4. 难点分析与解决方案 5. 总结与展望 对爬虫、逆向感兴趣的同学可以查看文章,一对一小班教学:https://blog.csdn.net/weixin_…

RustDesk 使用教程

说明&#xff1a; 使用RustDesk 需要在不同的电脑安装对应系统型号的客户端&#xff0c;然后再去云服务器安装一个服务端即可。 1、到网站下载客户端&#xff1a;https://rustdesk.com/zh-cn/ 两台电脑安装客户端。 2、在云服务器安装服务端 1&#xff09;官网教程&#xff1a;…

【C语言网络编程基础】TCP 服务器详解

在网络通信中&#xff0c;TCP&#xff08;Transmission Control Protocol&#xff0c;传输控制协议&#xff09;是一种可靠、面向连接的协议。一个 TCP 服务器正是基于这种协议&#xff0c;为客户端提供稳定的网络服务。本文将详细介绍 TCP 服务器的基本原理和工作流程。 一、什…

一篇就够!Windows上Docker Desktop安装 + 汉化完整指南(包含解决wsl更新失败方案)

前言 在现代软件开发和人工智能应用中&#xff0c;环境的稳定性和可移植性至关重要。Docker 作为一种轻量级的容器化技术&#xff0c;为开发者提供一致的运行环境&#xff0c;使得软件可以在不同平台上无缝运行&#xff0c;极大地提升了开发和部署的效率。无论是本地开发、测试…

设计模式(二十四)行为型:访问者模式详解

设计模式&#xff08;二十四&#xff09;行为型&#xff1a;访问者模式详解访问者模式&#xff08;Visitor Pattern&#xff09;是 GoF 23 种设计模式中最具争议性但也最强大的行为型模式之一&#xff0c;其核心价值在于将作用于某种数据结构中的各元素的操作分离出来&#xff…

USRP X440 和USRP X410 直接RF采样架构的优势

USRP X440 和USRP X410 直接RF采样架构的优势概述什么是直接RF采样&#xff1f;如何实现直接采样&#xff1f;什么情况下应考虑使用直接RF采样架构&#xff1f;概述 转换器技术每年都在发展。主要半导体公司的模数转换器(ADC)和数模转换器(DAC)的采样速率比十年前的产品快了好…

P4568 [JLOI2011] 飞行路线

P4568 [JLOI2011] 飞行路线 题目描述 Alice 和 Bob 现在要乘飞机旅行&#xff0c;他们选择了一家相对便宜的航空公司。该航空公司一共在 nnn 个城市设有业务&#xff0c;设这些城市分别标记为 000 到 n−1n-1n−1&#xff0c;一共有 mmm 种航线&#xff0c;每种航线连接两个城市…