返回顶部
首页 > 资讯 > 后端开发 > Python >GELU激活函数
  • 465
分享到

GELU激活函数

机器学习python深度学习 2023-09-08 21:09:22 465人浏览 八月长安

Python 官方文档:入门教程 => 点击学习

摘要

GELU是一种常见的激活函数,全称为“Gaussian Error Linear Unit”, 作为2020年提出的优秀激活函数,越来越多的引起了人们的注意。 GELU (Gaussian Error

GELU是一种常见的激活函数,全称为“Gaussian Error Linear Unit”, 作为2020年提出的优秀激活函数,越来越多的引起了人们的注意。

GELU (Gaussian Error Linear Units) 是一种基于高斯误差函数的激活函数,相较于 ReLU 等激活函数,GELU 更加平滑,有助于提高训练过程的收敛速度和性能。下面是 GELU 激活层的数学表达式:

GELU表达

GELU ⁡ ( x ) = x ∗ P ( X ⩽ x ) = x ∗ Φ ( x ) \operatorname{GELU}(x)=x * P(X \leqslant x)=x * \Phi(x) GELU(x)=xP(Xx)=xΦ(x)

其中 Φ ( x ) \Phi(x) Φ(x)表示正态分布的累积分布函数,即:

Φ ( x ) = 12 ⋅ (1+erf⁡ ( x 2 ) ) \Phi(x)=\frac{1}{2} \cdot\left(1+\operatorname{erf}\left(\frac{x}{\sqrt{2}}\right)\right) Φ(x)=21(1+erf(2 x))

e r f ( x ) erf(x) erf(x) 表示高斯误差函数。

该函数可进一步表示为
x ∗ P ( X ⩽ x ) = x ∫ − ∞ x e − ( X − μ ) 2 2 σ 2 2 π σ d X x * P(X \leqslant x)=x \int_{-\infty}^x \frac{e^{-\frac{(X-\mu)^2}{2 \sigma^2}}}{\sqrt{2 \pi} \sigma} d X xP(Xx)=xx2π σe2σ2(Xμ)2dX

其中 μ \mu μ σ \sigma σ分别代表正太分布的均值和标准差.由于上面这个函数是无法直接计算的,研究者在研究过程中发现 GELU 函数可以被近似地表示为 GELU ⁡ ( x ) = 0.5 x [1+tanh⁡ (2 π ( x + 0.047715 x 3 ) ) ] \operatorname{GELU}(x)=0.5 x\left[1+\tanh \left(\sqrt{\frac{2}{\pi}}\left(x+0.047715 x^3\right)\right)\right] GELU(x)=0.5x[1+tanh(π2 (x+0.047715x3))]或者 GELU ⁡ ( x ) = x ∗ σ ( 1.702 x ) \operatorname{GELU}(x)=x * \sigma(1.702 x) GELU(x)=xσ(1.702x)

上述表达式可以简单地通过 python NumPy 库实现:

import numpy as npdef GELU(x):    return 0.5 * x * (1 + np.tanh(np.sqrt(2 / np.pi) * (x + 0.044715 * np.power(x, 3))))

其中 2 / π \sqrt{2 / \pi} 2/π 和 0.044715 是 GELU 函数的两个调整系数。

相较于 ReLU 函数,GELU 函数在负值区域又一个非零的梯度,从而避免了死亡神经元的问题。另外,GELU 在 0 附近比 ReLU 更加平滑,因此在训练过程中更容易收敛。值得注意的是,GELU 的计算比较复杂,因此需要消耗更多的计算资源。

GeLu和ReLu函数图像对比

在这里插入图片描述

在这里插入图片描述

各自的优势和缺点

相对于 Sigmoid 和 Tanh 激活函数,ReLU 和 GeLU 更为准确和高效,因为它们在神经网络中的梯度消失问题上表现更好。梯度消失通常发生在深层神经网络中,意味着梯度的值在反向传播过程中逐渐变小,导致网络梯度无法更新,从而影响网络的训练效果。而 ReLU 和 GeLU 几乎没有梯度消失的现象,可以更好地支持深层神经网络的训练和优化

而 ReLU 和 GeLU 的区别在于形状和计算效率。ReLU 是一个非常简单的函数,仅仅是输入为负数时返回0,而输入为正数时返回自身,从而仅包含了一次分段线性变换。但是,ReLU 函数存在一个问题,就是在输入为负数时,输出恒为0,这个问题可能会导致神经元死亡,从而降低模型的表达能力。GeLU 函数则是一个连续的 S 形曲线,介于 Sigmoid 和 ReLU 之间,形状比 ReLU 更为平滑,可以在一定程度上缓解神经元死亡的问题。不过,由于 GeLU 函数中包含了指数运算等复杂计算,所以在实际应用中通常比 ReLU 慢。

总之,ReLU 和 GeLU 都是常用的激活函数,它们各有优缺点,并适用于不同类型的神经网络和机器学习问题。一般来说,ReLU 更适合使用在卷积神经网络(CNN)中,而 GeLU 更适用于全连接网络(FNN)。

来源地址:https://blog.csdn.net/qq_41296039/article/details/130148750

--结束END--

本文标题: GELU激活函数

本文链接: https://lsjlt.com/news/400652.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • GELU激活函数
    GELU是一种常见的激活函数,全称为“Gaussian Error Linear Unit”, 作为2020年提出的优秀激活函数,越来越多的引起了人们的注意。 GELU (Gaussian Error...
    99+
    2023-09-08
    机器学习 python 深度学习
  • GELU激活函数算法
    Gaussian Error Linerar Units(GELUS) 论文链接:https://arxiv.org/abs/1606.08415 最近在看bert源码,发现里边的激...
    99+
    2024-04-02
  • PyTorch学习笔记:nn.LeakyReLU——LeakyReLU激活函数
    PyTorch学习笔记:nn.LeakyReLU——LeakyReLU激活函数 功能:逐元素对数据应用如下函数公式进行激活 LeakyReLU(x)=max⁡(0,x)+α∗m...
    99+
    2023-10-08
    pytorch 学习 python
  • PyTorch学习笔记:nn.Tanh——Tanh激活函数
    PyTorch学习笔记:nn.Tanh——Tanh激活函数 torch.nn.Tanh() 功能:逐元素应用Tanh函数(双曲正切)对数据进行激活,将元素调整到区间(-1,1)内 函数方程: ...
    99+
    2023-08-31
    pytorch 学习 python
  • win7激活密钥永久激活
    很多人用win7 ISO镜像安装win7后却不知道该怎么使win7激活密钥永久激活,win7有一个激活期限,30天后如不能激活就会每隔一小时重启一次,这严重影响了我们的办事效率。要激活wn7,需要使用win7激活密钥。接下来,我将分享我整理...
    99+
    2023-07-12
  • Python中常用的激活函数有哪些
    本篇内容介绍了“Python中常用的激活函数有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、激活函数定义激活函数 (Activati...
    99+
    2023-07-06
  • Neuroph提供哪些常用的激活函数
    Neuroph提供了以下常用的激活函数: Sigmoid函数(也称为Logistic函数) 双曲正切函数(Tanh) 线性函数 R...
    99+
    2024-04-02
  • windows10激活密钥如何激活win10
    这篇文章给大家分享的是有关windows10激活密钥如何激活win10的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。密钥:NPPR9-FWDCX-D2C8J-H872K-2YT43NPPR9-FWDCX-D2C8...
    99+
    2023-06-26
  • win7激活命令如何激活windows7
    很多人都在纠结于自己电脑安装了win7系统后不知道如何激活系统,下面就和大家分享一下激活命令如何激活win7的方法吧。1、点击左下角的win7图标。2、搜索栏里输入cmd,会自动过滤搜索结果。3、右键,以管理员身份运行。4、打开cmd窗口如...
    99+
    2023-07-19
  • PyCharm激活
    1、修改hosts文件将0.0.0.0 account.jetbrains.com添加到hosts文件最后,注意hosts文件无后缀,如果遇到无法修改或权限问题,可以采用覆盖的方法去替换hosts文件修改后请检查hosts文件是否修改,激...
    99+
    2023-01-30
    PyCharm
  • 怎么激活win11系统?win11激活密钥+激活工具分享
    怎么激活win11?win11激活密钥怎么获取?哪款激活工具可以激活win11系统?Win11预览版提前泄露发布!很多用户已经开始测试win11了,但是很多用户还不知道怎么激活win11,所以今天我们小编给大家分享最新的...
    99+
    2023-05-23
    win11激活 win11密钥 win11激活工具
  • 怎么使用激活向导激活Office
    要使用激活向导激活Office,您可以按照以下步骤操作:1. 打开任意Office应用程序(如Word、Excel等)。2. 在顶部...
    99+
    2023-09-14
    Office
  • YOLO v4常见的非线性激活函数详解
    YOLO v4中用到的激活函数是Mish激活函数 在YOLO v4中被提及的激活函数有: ReLU, Leaky ReLU, PReLU, ReLU6, SELU, Swish, M...
    99+
    2024-04-02
  • pytorch自定义不可导激活函数的操作
    pytorch自定义不可导激活函数 今天自定义不可导函数的时候遇到了一个大坑。 首先我需要自定义一个函数:sign_f import torch from torch.autog...
    99+
    2024-04-02
  • python人工智能tensorflow常用激活函数Activation Functions
    目录前言常见的激活函数种类及其图像1 sigmoid(logsig)函数2 tanh函数3 relu函数4 softplus函数tensorflow中损失函数的表达1 sigmoid...
    99+
    2024-04-02
  • Caffe框架中常用的激活函数有哪些
    在 Caffe 框架中,常用的激活函数有: Sigmoid 激活函数:将输入值映射到 0 到 1 之间,通常用于二分类问题。 Ta...
    99+
    2024-04-02
  • 怎么激活windows11?win11激活密钥/序列号分享 附激活工具
    如何获得Windows11激活密钥?windows11预览版需要激活系统才能使用全部功能,所以想要体验的朋友必须激活系统。怎么免费获取windows11激活码呢?windows11激活密钥怎么使用呢?想要激活window...
    99+
    2023-05-23
    windows11 激活码 密钥 激活工具 怎么激活win11
  • windows激活工具如何激活win10系统
    小编给大家分享一下windows激活工具如何激活win10系统,希望大家阅读完这篇文章之后都有所收获,下面让我们一起去探讨吧!我们可以使用小马激活工具来激活windows系列系统,具体步骤如下:首先下载小马Win10激活工具,然后通过win...
    99+
    2023-06-26
  • 激活码win10无法激活怎么解决
    部分用户在给电脑安装上win10系统后,无论用激活工具和激活密钥都无法激活,这种情况要如何解决呢?下面就和大家分享一个win10系统激活的方法吧。1、在桌面新建一个文本文档,把以下代码复制进去,如图所示: slmgr /ipk W269N-...
    99+
    2023-07-10
  • 如何使用windows7激活工具激活win7
    在电脑安装了微软系统之后,很多小伙伴可能也发现系统是需要激活的了,不过很多用户都不知道如何激活,下面就和大家分享一个电脑系统激活工具的使用教程吧。1、首先下载win7 activation,双击打开,进入工具的首界面。2、在该界面中点击“激...
    99+
    2023-07-10
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作