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

激活函数篇(2):SwiGLU | GLU | Swish | ReLU | Sigmoid

参考视频:3分钟理解SwiGLU激活函数_哔哩哔哩_bilibili

激活函数篇一链接:激活函数(Sigmoid | Tanh | ReLU | Leaky ReLU | Parametric ReLU)-CSDN博客


Sigmoid

公式为:

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

输出范围是 [0,1]

优点

平滑且连续。

输出值范围在 [0,1],可以很好地解释为概率值。

缺点

梯度消失问题:在输入值较大或较小时,Sigmoid 函数的梯度接近于零,导致权重更新很慢,在深层网络中难以传播有效的梯度信号。

不易收敛:输出总是正值,不是零中心,这可能导致权重更新时的效率较低。

应用场景:(1)用于二分类输出层,因为其输出值是 [0,1],可以解释为概率;(2)用于简单模型中作为隐藏层激活函数。


ReLU(Rectified Linear Unit)

公式为:

ReLU(x)=max(0,x)

优点

简单高效:只需判断输入是否大于零,计算成本很低。

解决梯度消失问题:当 x>0时,梯度恒为 1,因此它在反向传播中可以很好地传播梯度。

稀疏激活:ReLU 的输出中有大量的零值(当 x≤0时),可以引入稀疏性,有助于特征筛选。

缺点

死亡 ReLU 问题:当 x≤0 时,梯度为零,可能导致权重无法更新,某些神经元“死亡”且永远不会被激活。

对输入分布的敏感性较高


Swish 或 SILU(Sigmoid Weighted Linear Unit)

公式为:

Swish_\beta (x) = x\cdot \frac{1}{1+x^{-\beta \cdot x}}

当β=1时,Swish_1(x) = x\cdot \frac{1}{1+x^{- x}}=x\cdot \sigma (x)

优点

平滑输出:Swish 是一个平滑的激活函数,相比 ReLU 的分段线性结构,Swish 的非线性表现更强。

没有零死区:在 −∞<x<∞ 时,Swish 始终可导。

Swish 在一些现代神经网络中(如 EfficientNet)表现优于 ReLU,特别是在深层网络中。

缺点

计算复杂度稍高于 ReLU;

理论上 Swish 的性能依赖于输入分布,在某些情况下可能并不优于 ReLU。

参考链接:swish激活函数_swish函数-CSDN博客

其实针对死亡ReLU问题,Leaky  ReLU也对其做了简单的改进,即直接在负半轴引入一个小的斜率,解决了 ReLU 在负数输入区域的梯度为零的问题。这意味着即使在负值区域,Leaky ReLU 也能传递一些梯度,防止神经元在训练过程中“死亡”。

Swish 更复杂,具有非单调性和光滑性,通常能在复杂任务中提供更好的表现。


GLU(Gated Linear Unit)

GLU 是门控线性单元,通常用在 Transformer、语言模型等深度学习模型中。公式为:

GLU(x,W,V)=\sigma (xW)\bigodot (xV)

  • x 是输入向量。
  • W 和 V 是权重矩阵。
  • σ 是 Sigmoid 激活函数。
  • ⊙ 表示元素乘法(Hadamard 乘积),即对应元素相乘。

输入 x 被分别与两个不同的权重矩阵 W 和 V 相乘,得到两个不同的线性变换结果。

门控机制

计算 σ(xW):首先,输入 x 通过权重 W 进行线性变换,然后通过 Sigmoid 激活函数。这部分输出的值在 [0,1] 范围内,充当“门”的作用,控制信息流的多少。

计算(xV):输入 x 通过权重 V 进行线性变换,得到主要信息流。

优点

门控机制:动态地控制 信息流动。

高效的表示能力:GLU 的设计有效融合了线性部分和非线性部分。

缺点

增加模型参数量,因为需要两倍的输入维度;

计算复杂度较高。

应用场景:在语言模型(如 Transformer)中,GLU 常作为激活函数使用,能够有效提升表达能力。用于捕获特征间的复杂关系。


SwiGLU

SwiGLU = Swish + GLU

公式为:

SwiGLU(x) = Swish_{1}(xW)\bigodot (xV)=(\frac{xW}{1+e^{-xW}})\bigodot (xV)

优点

更高的非线性表现:Swish 的组合使得激活函数对输入特征更敏感。

动态门控能力增强:相比 GLU,SwigLU 可以更好地捕获复杂关系。

缺点

计算复杂度进一步提高。

增加了输入维度和模型参数量。

应用场景:SwigLU 是 Transformer 和语言模型中常用的一种激活函数,特别是在深度学习模型中(如 GPT、BERT)表现优异。适合高维空间的特征选择和复杂关系建模。

http://www.dtcms.com/a/327789.html

相关文章:

  • 如何查看当前Redis的密码、如何修改密码、如何快速启动以及重启Redis (Windows)
  • 鹧鸪云:光伏施工流程管理的智能“导航仪”
  • 云平台监控-云原生环境Prometheus企业级监控实战
  • 【Redis与缓存预热:如何通过预加载减少数据库压力】
  • RoboNeo美图AI助手
  • 如何单独修改 npm 版本(不改变 Node.js 版本)
  • npm、pnpm、yarn区别
  • 深度解析Mysql的开窗函数(易懂版)
  • docker-compose安装ElasticSearch,ik分词器插件,kibana【超详细】
  • 夜莺开源监控,模板函数一览
  • 集合,完整扩展
  • 任务调度系统设计与实现:Quartz、XXL-JOB 和 Apache Airflow 对比与实践
  • 【项目设计】高并发内存池
  • windows系统端口异常占用删除教程
  • Go面试题及详细答案120题(0-20)
  • [TryHackMe]Internal(hydra爆破+WordPress主题修改getshell+Chisel内网穿透)
  • 《Q————Mysql连接》
  • Linux软件编程:IO(二进制文件)、文件IO
  • 【25-cv-08993】T Miss Toys 启动章鱼宠物玩具版权维权,15 项动物玩偶版权均需警惕
  • 如何使用gpt进行模式微调(2)?
  • 使用Spring Boot对接欧州OCPP1.6充电桩:解决WebSocket连接自动断开问题
  • 无文件 WebShell攻击分析
  • php+apache+nginx 更换域名
  • SpringCloud 核心内容
  • 82. 删除排序链表中的重复元素 II
  • 计算机网络摘星题库800题笔记 第4章 网络层
  • “冒险玩家”姚琛「万里挑一」特别派对 打造全新沉浸式户外演出形式
  • Javase 之 字符串String类
  • 亚马逊手工制品类目重构:分类逻辑革新下的卖家应对策略与增长机遇
  • 高性能web服务器Tomcat