神经网络的激活函数(六)GELU和Mish GELU 10 GELU(Gaussian Error Linear Unit,高斯误差线性单元)是一种在深度学习中广泛应用的激活函数。GELU通过高斯误差函数(即标准正态分布的累积分布函数)对输入进行平滑处理,从而提高模型的性能。GELU在许多任务中表现出色,特别是在自然语言处理(NLP)和计算机视觉任务中。 1.1 数学定义 GELU函数的数学表达式为: $$\text{GELU}(x) = x \cdot \Phi(x)$$ 其中: $x$ 是输入。
神经网络的激活函数(六)GELU和Mish
GELU(Gaussian Error Linear Unit,高斯误差线性单元)是一种在深度学习中广泛应用的激活函数。GELU通过高斯误差函数(即标准正态分布的累积分布函数)对输入进行平滑处理,从而提高模型的性能。GELU在许多任务中表现出色,特别是在自然语言处理(NLP)和计算机视觉任务中。
GELU函数的数学表达式为:
其中:
其中,\text{erf}(x) 是误差函数。
为了简化计算,GELU函数通常采用以下近似表达式:
这种近似计算在实际应用中非常常见,因为它计算效率更高。
GELU激活函数是在2016年由Dan Hendrycks和Kevin Gimpel在论文《Gaussian Error Linear Units (GELUs)》中提出的。
以下是一个简单的Python示例,展示如何计算GELU函数:
from scipy.special import erf # 定义GELU函数 def gelu(x): return 0.5 * x * (1 + erf(x / np.sqrt(2)))
Mish激活函数是一种在深度学习中使用的非线性激活函数,由Diganta Misra在2019年提出。Mish激活函数通过平滑的非线性变换来增强模型的性能,并且在许多任务中表现出色,包括计算机视觉和自然语言处理。
Mish激活函数的数学表达式为:
其中:
Mish激活函数是在2019年由Diganta Misra在论文《Mish: A Self Regularized Non-Monotonic Neural Activation Function》中提出的。
以下是一个简单的Python示例,展示如何计算Mish函数:
import numpy as np import matplotlib.pyplot as plt # 定义Softplus函数 def softplus(x): return np.log1p(np.exp(x)) # 定义Mish函数 def mish(x): return x * np.tanh(softplus(x))
[1] Gaussian Error Linear Units (GELUs)
[2] Mish: A Self Regularized Non-Monotonic Neural Activation Function
仓库上有原始的Markdown文件,完全开源,欢迎大家Star和Fork!