激活函数总结(八):基于Gate mechanism机制的激活函数补充(GLU、SwiGLU、GTU、Bilinear、ReGLU、GEGLU)

news/2025/2/27 12:15:03

激活函数总结(八):基于Gate mechanism机制的激活函数补充

1 引言

在前面的文章中已经介绍了介绍了一系列激活函数 (SigmoidTanhReLULeaky ReLUPReLUSwishELUSELUGELUSoftmaxSoftplusMishMaxoutHardSigmoidHardTanhHardswishHardShrinkSoftShrinkTanhShrinkRReLUCELUReLU6)。在这篇文章中,会接着上文提到的众多激活函数继续进行介绍,给大家介绍关于最近大语言模型中较火的GLU模型。这里放一张激活函数的机理图:
在这里插入图片描述

最后,对于文章中没有提及到的激活函数,大家可以通过评论指出,作者会在后续的文章中进行添加补充。

2 激活函数

本章节主要介绍了基本结构GLU激活函数和最近特别火的SwiGLU激活函数,其余GLU变体激活函数只展示基本公式。

2.1 GLU激活函数

论文链接:Language Modeling with Gated Convolutional Networks

GLU是在语言建模论文中引入的,这是一个神经网络层,定义为输入的两个线性变换(矩阵乘法)的分量乘积,其中一个是Sigmoid激活的。这是在变压器出现之前,非循环方法第一次在一些大型语言任务上与强大的循环模型竞争。GLU的数学表达式如下所示:

G L U ( x ) = s i g m o i d ( x W + b ) ⊗ ( x V + c ) GLU(x) = sigmoid(xW+b) ⊗ (xV+c) GLU(x)=sigmoid(xW+b)(xV+c)

在这里,我们看到我们有两个可训练矩阵 W W W V V V,其中 V V V 用于计算门控单元。门在激活后提供了一个额外的过滤器,可以在训练期间学习,并取决于输入本身。 ⊗ ⊗ 运算是逐元素乘法。

根据矩阵运算可视化 GLU,而不使用偏置矩阵 b 和 c:
在这里插入图片描述
可以看到:上面最后一个操作中显示的重叠矩阵条目相乘,因此 x V + c xV+c xV+c 的输出充当另一半操作的过滤器。因此,根据过滤器中的矩阵值,这些相同的条目会变得突出或从 sigmoid 激活矩阵中减少

优点:

  • 稳定且高效:GLU比ReLU稳定得多,学习速度也比sigmoid快。
  • 缓解梯度消失:GLU还具有非线性功能,但具有梯度的线性路径,因此减少了梯度消失问题。

当前,GLU在自然语言处理架构中广泛使用,当然还有它的变体模型!!!!

2.2 SwiGLU激活函数

论文链接:GLU Variants Improve Transformer
SwiGLU是Swish和GLU激活函数的组合。在 SwiGLU 中,Swish 函数用于门控 GLU 的线性函数。这使得SwiGLU能够抓住Swish和GLU的优势,同时克服它们各自的缺点。SwiGLU已被证明在各种任务中优于Swish和GLU,包括图像分类语言建模机器翻译。SwiGLU的数学表达式如下所示:
S w i G L U ( x ) = S w i s h β ( x W + b ) ⊗ ( x V + c ) SwiGLU(x) = Swish_{\beta}(xW+b)⊗ (xV+c) SwiGLU(x)=Swishβ(xW+b)(xV+c)
其中 W W W V V V b b b c c c β \beta β 是可训练的参数。

优点:

  • 平滑度:SwiGLU比ReLU更平滑,可以带来更好的优化更快的收敛
  • 非单调性:SwiGLU是非单调性的,这使其能够捕获输入和输出之间的复杂非线性关系。
  • 门控机制:SwiGLU使用门控机制,允许它根据接收到的输入选择性地激活神经元。这有助于减少过度拟合并改善泛化。
  • 普遍性:SwiGLU已被证明在各种任务优于其他激活功能,包括SwishGLU

当前,SwiGLU是transformer领域的大火模型!!!!对于使用transformer的同学很适合进行尝试!!!!

2.3 GTU激活函数

论文链接:Language Modeling with Gated Convolutional Networks

GTU是一种GLU变体,它使用Tanh作为激活函数。GTU的数学表达式如下所示:
G T U ( x ) = T a n h ( x W + b ) ⊗ s i g m o i d ( x V + c ) GTU(x) = Tanh(xW+b)⊗ sigmoid(xV+c) GTU(x)=Tanh(xW+b)sigmoid(xV+c)

当前,虽然SwiGLU大火,但是GTU几乎没有使用环境。。。

2.4 Bilinear激活函数

论文链接:GLU Variants Improve Transformer

Bilinear激活函数省略 sigmoid 函数的 GLU 变体。它是一个双线性变换,然后是逐元素乘积。Bilinear的数学表达式如下所示:
B i l i n e a r ( x ) = ( x W + b ) ⊗ ( x V + c ) Bilinear(x) = (xW+b)⊗ (xV+c) Bilinear(x)=(xW+b)(xV+c)

当前,虽然SwiGLU大火,但是Bilinear几乎没有使用环境。。。

2.5 ReGLU激活函数

论文链接:GLU Variants Improve Transformer

ReGLU是一种GLU变体,它使用ReLU作为激活函数。ReGLU的数学表达式如下所示:
R e G L U ( x ) = R e L U ( x W + b ) ⊗ ( x V + c ) ReGLU(x) = ReLU(xW+b)⊗ (xV+c) ReGLU(x)=ReLU(xW+b)(xV+c)

当前,虽然SwiGLU大火,但是ReGLU几乎没有使用环境。。。

2.6 GEGLU激活函数

论文链接:GLU Variants Improve Transformer

GEGLU是使用GELU作为激活函数的GLU变体。GEGLU的数学表达式如下所示:
G E G L U ( x ) = G E L U ( x W + b ) ⊗ ( x V + c ) GEGLU(x) = GELU(xW+b)⊗ (xV+c) GEGLU(x)=GELU(xW+b)(xV+c)

当前,虽然SwiGLU大火,但是GEGLU几乎没有使用环境。。。

3. 总结

到此,使用 激活函数总结(八) 已经介绍完毕了!!! 如果有什么疑问欢迎在评论区提出,对于共性问题可能会后续添加到文章介绍中。如果存在没有提及的激活函数也可以在评论区提出,后续会对其进行添加!!!!

如果觉得这篇文章对你有用,记得点赞、收藏并分享给你的小伙伴们哦😄。


http://www.niftyadmin.cn/n/4937099.html

相关文章

【MySQL】并发执行事务可能存在的问题, 事务的四种隔离级别

文章目录 前言一、并发执行事务可能存在的问题1, 脏读问题2, 不可重复读3, 幻读 二、MySQL 的四种隔离级别1, READ UNCOMMITTED 读未提交2, READ COMMITTED 读已提交3, REPEATABLE READ 可重复读 (MySQL 的默认事务隔离级别)4, SERIALIZABLE 串行化 总结 前言 各位读者好, 我是…

Mathematica 常见指令汇编

Mathematica 常见指令汇编 常见指令 NDSolve 求解结果的保存 sol NDSolve[{y[x] x^2, y[0] 0, g[x] -y[x]^2, g[0] 1}, {y, g}, {x, 0, 1}]; numericSoly sol[[1, 1, 2]]; numericSolg sol[[1, 2, 2]]; data Table[{x, numericSoly[x], numericSolg[x]}, {x, 0, 1, 0…

Oracle PL/SQL 类型(Type):索引表、嵌套表、变长数组、pipelined 管道

1、Oracle 新建员工表和部门表.sql。 集合类型 1、Oracle 集合是相同类型元素的组合,在集合中,使用唯一的下标来标识其中的每个元素,与 Java 的 List 很像。 2、常用集合方式: 类型语法下标元素个数初始值.extend能否存在DB中…

base64转二进制流,file文件

base64转二进制流 img标签src属性,可以直接使用base64字符串,base64需要先解码,然后再转为流 /*** Base64字符串转二进制流* param {String} dataurl Base64字符串(字符串包含Data URI scheme,例如:data:image/png;b…

微信小程序有哪几种变现途径?

纵观现在市面上的微信小程序,目前变现的途径主要有:广告变现、电商变现、游戏付费、服务付费等。 1.广告变现 广告变现是小游戏、工具类、资讯类小程序变现的主要方式。微信官方为游戏开发者提供的扶植政策,对于工具类、资讯类小程序&#…

产品经理如何突破职业瓶颈,杀出重围?

随着社会的进步和科技的发展,互联网行业从未停止过发展的脚步。而在这个充满机遇和挑战的赛道上,互联网产品经理的角色显得尤为重要。然而,随着互联网产品经理的数量逐年增加,内卷化现象也日益严重。那么,产品经理应该…

背上小书包准备面试之TypeScript篇

目录 typescript是啥?与javascript的区别? typescript数据类型? typescript中枚举类型?应用场景? typescript中接口的理解?应用场景? typescript中泛型的理解?应用场景&#xf…

790. 多米诺和托米诺平铺

题目描述&#xff1a; 主要思路&#xff1a; class Solution { public:int numTilings(int n) {long long f[n][4],mod1e97;f[0][0]1;f[0][1]f[0][2]0;f[0][3]1;for(int i1;i<n;i){f[i][0]f[i-1][3];f[i][1] (f[i-1][0]f[i-1][2])%mod;f[i][2] (f[i-1][0]f[i-1][1])%mod;f…