当前位置: 首页 > news >正文

深度学习——激活函数

一、什么是激活函数?

在​​深度学习​​中,​​激活函数(Activation Function)​​ 是神经网络中每个神经元上应用的一个非线性函数,它决定了该神经元是否应该被“激活”,即是否将输入信号传递到下一层。

​数学表示:​

如果一个神经元的输入是 z(通常是加权求和加上偏置:z=w⋅x+b),那么经过激活函数 σ后的输出为:

​​​​​​​        

二、为什么要用激活函数?

神经网络的核心能力在于​​学习复杂的非线性映射关系​​,而如果只使用线性运算(如矩阵乘法加偏置),无论多少层网络叠加,其整体依然是一个线性模型:

这本质上还是​​线性变换​​,无法表达复杂的函数关系,比如异或(XOR)、图像、语音等。

👉 ​​激活函数的引入,打破了线性性,使神经网络具有表达非线性函数的能力,是深度学习模型能够学习复杂模式的关键。​


三、激活函数的分类

激活函数大致可以分为以下几类:


1. ​​线性激活函数(Linear Activation)​

​​​​​​​        
  • 特点:输出等于输入,无任何非线性。
  • 缺点:整个网络仍然是线性的,无法学习复杂特征。
  • 使用场景:仅在回归问题的输出层,或者特殊情况下使用。

2. ​​非线性激活函数(Non-linear Activation)​

这是深度学习中最常用的激活函数类型,常见的有:


(1)​​Sigmoid 函数​

✅ ​​优点:​

  • 输出在 0 到 1 之间,可用于表示概率。
  • 平滑、处处可导。

❌ ​​缺点:​

  • 容易导致​​梯度消失​​(在输入很大或很小时,梯度接近0)。
  • 输出不是以 0 为中心,影响优化效率。

📌 ​​适用场景:​​ 二分类问题的输出层(输出概率)。


(2)​​Tanh 函数(双曲正切)​

✅ ​​优点:​

  • 输出以 0 为中心,比 Sigmoid 更好。
  • •平滑可导。

❌ ​​缺点:​

  • 仍然存在​​梯度消失​​问题。

📌 ​​适用场景:​​ 隐藏层(比 Sigmoid 效果略好)。


(3)​​ReLU 函数(Rectified Linear Unit,修正线性单元)​

✅ ​​优点:​

  • 计算简单,速度快。
  • 在正区间不会饱和,缓解了梯度消失问题。
  • 实践中表现非常好,是当前最常用的激活函数之一。

❌ ​​缺点:​

  • ​神经元死亡问题​​:某些神经元可能永远不被激活(输出恒为 0)。

📌 ​​适用场景:​​ 隐藏层(最常用!)


(4)​​Leaky ReLU​

✅ ​​优点:​

  • 解决了 ReLU 的“神经元死亡”问题,负区间有小的梯度。
  • 通常比 ReLU 效果更好。

📌 ​​适用场景:​​ 当你担心某些神经元不激活时使用。


(5)​​Parametric ReLU (PReLU)​
  • Leaky ReLU 的升级版,其中 α是一个​​可学习参数​​,不是固定的。

(6)​​ELU(Exponential Linear Unit)​

✅ ​​优点:​

  • 负值区域有非零输出,有助于让输出均值接近零,加速收敛。
  • 比 ReLU 更平滑。

📌 ​​适用场景:​​ 深层网络,对训练稳定性要求较高的场景。


(7)​​Softmax 函数​

✅ ​​特点:​

  • •将一组数值转化为概率分布,所有输出之和为 1。
  • •常用于​​多分类问题的输出层​​。

📌 ​​适用场景:​​ 多分类任务的输出层。


四、激活函数的选择指南

任务/层类型

推荐激活函数

原因说明

​隐藏层(一般情况)​

​ReLU​​、​​Leaky ReLU​

训练快,效果好,不容易梯度消失

​隐藏层(深层网络)​

​ReLU / ELU / Leaky ReLU​

更稳定,缓解梯度问题

​二分类输出层​

​Sigmoid​

输出概率,范围 (0,1)

​多分类输出层​

​Softmax​

输出类别概率分布

​回归问题输出层​

​线性(无激活函数)​​ 或根据需求选择

输出连续值

​避免神经元死亡​

​Leaky ReLU / PReLU / ELU​

负区间有梯度


五、激活函数的发展趋势

随着深度学习的发展,研究者提出了许多改进的激活函数,目标是:

  • 缓解梯度消失 / 梯度爆炸
  • 加速网络收敛
  • 提高模型泛化能力
  • 避免神经元死亡

例如:

  • ​Swish​​(Google 提出):f(x)=x⋅σ(βx),一个自门控的激活函数,表现有时优于 ReLU。
  • ​GELU(高斯误差线性单元)​​:被用于 Transformer 模型(如 BERT),结合了 ReLU 和 Dropout 的思想。
  • ​Mish​​:f(x)=x⋅tanh(ln(1+ex)),近年来在一些任务中表现优异。

但这些高级激活函数一般在特定任务或模型中表现更好,ReLU 及其变种仍是最常用、最通用的选择。

六、激活函数总结表(PyTorch版)

激活函数

PyTorch类

PyTorch函数

是否常用

适用位置

ReLU

nn.ReLU()

F.relu()

✅✅✅

隐藏层

LeakyReLU

nn.LeakyReLU()

F.leaky_relu()

✅✅

隐藏层(防死亡)

Sigmoid

nn.Sigmoid()

F.sigmoid()

二分类输出层

Tanh

nn.Tanh()

F.tanh()

隐藏层(效果不如 ReLU)

Softmax

nn.Softmax(dim=-1)

F.softmax(x, dim=-1)

多分类输出层

LogSoftmax

nn.LogSoftmax(dim=-1)

F.log_softmax(x, dim=-1)

分类 + NLLLoss

ELU

nn.ELU()

F.elu()

隐藏层(平滑负值)

GELU

nn.GELU()

F.gelu()

✅(如BERT)

隐藏层(Transformer类模型)

SELU

nn.SELU()

F.selu()

✅(自归一化网络)

隐藏层

Swish

无(可用 x * torch.sigmoid(x)或 F.silu(x)

F.silu(x)

✅(Google提出)

隐藏层

🔥 ​​推荐默认选择:​

  • 隐藏层:ReLU、LeakyReLU、GELU、ELU​
  • ​输出层:​
    • 二分类 → ​​Sigmoid​
    • 多分类 → ​​Softmax​
    • 回归 → ​​无激活函数(或线性)​

七、总结

项目

说明

​定义​

激活函数给神经元引入非线性,是神经网络能够学习复杂模式的关键

​为什么重要​

没有激活函数,神经网络等效于线性模型,无法处理复杂任务

​常用激活函数​

Sigmoid、Tanh、ReLU、Leaky ReLU、ELU、Softmax 等

​如何选择​

根据任务类型(分类/回归)、网络深度、训练效果等决定

​当前主流​

​ReLU 及其变种(Leaky ReLU、ELU等)在隐藏层最常用;Softmax 用于多分类输出;Sigmoid 用于二分类输出​

http://www.xdnf.cn/news/1373185.html

相关文章:

  • 【stm32简单外设篇】-4×4 薄膜键盘
  • 区块链技术探索与应用:从密码学奇迹到产业变革引擎
  • 【PS实战】制作hello标志设计:从选区到色彩填充的流程(大学作业)
  • 开发electron时候Chromium 报 Not allowed to load local resource → 空白页。
  • 【分布式技术】Kafka 数据积压全面解析:原因、诊断与解决方案
  • 基于muduo库的图床云共享存储项目(一)
  • More Effective C++ 条款10:在构造函数中防止资源泄漏
  • Tomcat的VM options
  • 广告推荐模型3:域感知因子分解机(Field-aware Factorization Machine, FFM)
  • 变压器副边电流计算
  • ARP地址解析协议
  • 嵌入式C语言进阶:结构体封装函数的艺术与实践
  • Java 集合笔记
  • 宝石组合(蓝桥杯)
  • 2025最新的软件测试热点面试题(答案+解析)
  • 【Linux 34】Linux-主从复制
  • plantsimulation知识点 RGV小车前端与后端区别
  • CNN 中 3×3 卷积核等设计背后的底层逻辑
  • spring如何通过实现BeanPostProcessor接口计算并打印每一个bean的加载耗时
  • 如何下载MySQL小白指南 (以 Windows 为例)
  • 基础|Golang内存分配
  • 学习游戏制作记录(保存装备物品技能树和删除存档文件)8.26
  • 数据结构的线性表 之 链表
  • 深度学习——神经网络(PyTorch 实现 MNIST 手写数字识别案例)
  • 2026 届最新大数据专业毕设选题推荐,毕业设计题目汇总
  • typescript 中的访问修饰符
  • 工业数据消费迎来“抖音式”革命:TDengine IDMP 让数据自己开口说话
  • 利用3台机器搭建Kubernetes集群
  • 工业大模型五层架构全景解析:从算力底座到场景落地的完整链路
  • 《分布式任务调度中“任务重复执行”的隐性诱因与根治方案》