自适应参数化ReLU:一种新的注意力机制下的激活函数

简介:

本文在简述传统激活函数和注意力机制的基础上,解读了一种新的注意力机制下的激活函数,即自适应参数化修正线性单元(Adaptively Parametric Rectifier Linear Unit,APReLU),希望对大家有所帮助。

1. 经典激活函数

激活函数是现代人工神经网络的重要组成部分,其作用是实现人工神经网络的非线性化。我们首先来介绍几种最常见的激活函数,即Sigmoid激活函数、Tanh激活函数和ReLU激活函数,分别如下图所示。
2

Sigmoid激活函数和Tanh激活函数的梯度取值范围分别是(0,1)和(-1,1)。当层数较多时,人工神经网络可能会遭遇梯度消失的问题。ReLU激活函数的梯度要么是零,要么是一,能够很好地避免梯度消失和梯度爆炸的问题,因此在近年来得到了广泛的应用。

然而,ReLU激活函数依然存在一点瑕疵。如果在人工神经网络的训练过程中,遇到了特征全部小于零的情况,那么ReLU激活函数的输出就全部为零。这个时候就训练失败了。为了避免这种情况,有些学者就提出了leaky ReLU激活函数,不将小于零的特征置为零,而是将小于零的特征乘以一个很小的系数,例如0.1和0.01。

在leaky ReLU中,这个系数的取值是人工设置的。但是人工设置的系数未必是最佳的,因此何恺明等人提出了Parametric ReLU激活函数(参数化ReLU激活函数,PReLU激活函数),将这个系数设置为一个可以训练得到的参数,在人工神经网络的训练过程中和其他参数一起采用梯度下降法进行训练。然而,PReLU激活函数有一个特点:一旦训练过程完成,则PReLU激活函数中的这个系数就变成了固定的值。换言之,对于所有的测试样本,PReLU激活函数中这个系数的取值是相同的。
2

到这里我们就大概介绍了几种常用的激活函数。这些激活函数有什么问题呢?我们可以思考一下,如果一个人工神经网络采用上述的某种激活函数,抑或是上述多种激活函数的组合,那么这个人工神经网络在训练完成之后,在被应用于测试样本时,对全部测试样本所采用的非线性变换是相同的。也就是说,所有的测试样本,都会经历相同的非线性变换。这其实是一种比较呆板的方式。

如下图所示,我们如果以左边的散点图表示原始特征空间,以右边的散点图表示人工神经网络所学习得到的高层特征空间,以散点图中的小圆点和小方块代表两种不同类别的样本,以F、G和H表示非线性函数。那么这些样本是通过相同的非线性函数实现原始特征空间到高层特征空间的变换的。也就是说,图片中的“=”意味着,对于这些样本,它们所经历的非线性变换是完全相同的。
2

那么,我们能不能根据每个样本的特点,单独为每个样本设置激活函数的参数、使每个样本经历不同的非线性变换呢?本文后续所要介绍的APReLU激活函数,就做到了这一点。

2. 注意力机制

本文所要介绍的APReLU激活函数借鉴了经典的Squeeze-and-Excitation Network(SENet),而SENet是一种非常经典的、注意力机制下的深度学习方法。SENet的基本原理如下图所示:
2

这里介绍一下SENet所蕴含的思想。对于许多样本而言,其特征图中的各个特征通道的重要程度很可能是不同的。例如,样本A的特征通道1非常重要,特征通道2不重要;样本B的特征通道1不重要,特征通道2很重要;那么在这个时候,对于样本A,我们就应该把注意力集中在特征通道1(即赋予特征通道1更高的权重);反过来,对于样本B,我们应该把注意力集中在特征通道2(即赋予特征通道2更高的权重)。

为了实现这个目的,SENet通过一个小型的全连接网络,学习得到了一组权重系数,对原先特征图的各个通道进行加权。通过这种方式,每个样本(包括训练样本和测试样本)都有着自己独特的一组权重,用于自身各个特征通道的加权。这其实是一种注意力机制,即注意到重要的特征通道,进而赋予其较高的权重。

3. 自适应参数化修正线性单元(APReLU)激活函数

APReLU激活函数,在本质上,就是SENet和PReLU激活函数的集成。在SENet中,小型全连接网络所学习得到的权重,是用于各个特征通道的加权。APReLU激活函数也通过一个小型的全连接网络获得了权重,进而将这组权重作为PReLU激活函数里的系数,即负数部分的权重。APReLU激活函数的基本原理如下图所示。
2

我们可以看到,在APReLU激活函数中,其非线性变换的函数形式是和PReLU激活函数一模一样的。唯一的差别在于,APReLU激活函数里对负数特征的权重系数,是通过一个小型全连接网络学习得到的。当人工神经网络采用APReLU激活函数时,每个样本都可以有自己独特的权重系数,即独特的非线性变换(如下图所示)。同时,APReLU激活函数的输入特征图和输出特征图有着相同的尺寸,这意味着APReLU可以被轻易地嵌入到现有的深度学习算法之中。
2

综上所述,APReLU激活函数使每个样本都可以有自己独特的一组非线性变换,提供了一种更灵活的非线性变换方式,具有提高模式识别准确率的潜力。

参考文献:

Zhao M, Zhong S, Fu X, et al. Deep residual networks with adaptively parametric rectifier linear units for fault diagnosis[J]. IEEE Transactions on Industrial Electronics, 2020, DOI: 10.1109/TIE.2020.2972458.

相关文章
|
2月前
|
机器学习/深度学习 Shell 计算机视觉
一文搞懂 卷积神经网络 卷积算子应用举例 池化 激活函数
这篇文章通过案例详细解释了卷积神经网络中的卷积算子应用、池化操作和激活函数,包括如何使用卷积算子进行边缘检测和图像模糊,以及ReLU激活函数如何解决梯度消失问题。
|
3月前
|
机器学习/深度学习 算法 测试技术
【YOLOv8改进 - 注意力机制】Focused Linear Attention :全新的聚焦线性注意力模块
YOLOv8专栏探讨了该目标检测算法的创新改进,包括使用聚焦线性注意力模块,解决了Transformer在视觉任务中的效率和表达力问题。该模块增强自注意力,提高焦点能力和特征多样性,保持线性复杂度。文章提供了实证证据证明其在多个基准上的性能提升,并在GitHub上发布了代码。论文和更多实战案例链接见文中。
|
3月前
|
机器学习/深度学习 测试技术 网络架构
【YOLOv10改进-注意力机制】MSCAAttention多尺度卷积注意力
YOLOv10专栏介绍了一种新的卷积网络架构SegNeXt,它在语义分割任务中展现出优于Transformer模型的效率和效果。SegNeXt通过名为Multi-Scale Convolutional Attention (MSCA)的组件,结合局部信息聚合、多尺度上下文捕获和通道关系模拟,提升了性能。在多个数据集上,SegNeXt以较少参数实现了超过现有SOTA的性能,特别是在Pascal VOC 2012上,以1/10的参数量达到90.6%的mIoU。YOLOv10引入了MSCA模块,用于增强目标检测的上下文关注。相关代码和配置详情可在链接中找到。
|
4月前
|
机器学习/深度学习 关系型数据库
【YOLOv8改进 - 注意力机制】NAM:基于归一化的注意力模块,将权重稀疏惩罚应用于注意力机制中,提高效率性能
**NAM: 提升模型效率的新颖归一化注意力模块,抑制非显著权重,结合通道和空间注意力,通过批量归一化衡量重要性。在Resnet和Mobilenet上的实验显示优于其他三种机制。源码见[GitHub](https://github.com/Christian-lyc/NAM)。**
|
5月前
|
机器学习/深度学习
一文弄清池化层(pooling)的作用
一文弄清池化层(pooling)的作用
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch: 池化-线性-激活函数层
PyTorch: 池化-线性-激活函数层
174 0
|
机器学习/深度学习
LeNet5模型与全连接模型的差异
LeNet5模型与全连接模型的差异
96 0
|
算法 PyTorch 算法框架/工具
pytorch实现空洞卷积+残差网络实验(torch实现)
pytorch实现空洞卷积+残差网络实验(torch实现)
387 0
|
机器学习/深度学习 编解码 算法
【Pytorch神经网络理论篇】 32 PNASNet模型:深层可分离卷积+组卷积+空洞卷积
PNASNet模型是Google公司的AutoML架构自动搜索所产生的模型,它使用渐进式网络架构搜索技术,并通过迭代自学习的方式,来寻找最优网络结构。即用机器来设计机器学习算法,使得它能够更好地服务于用户提供的数据。该模型在ImageNet数据集上Top-1准确率达到82.9%,Top-5准确率达到96。2%,是目前最好的图片分类模型之一。
195 0
|
机器学习/深度学习 自然语言处理 索引
【神经网络】MLP 编码器-解码器 注意力机制 残差连接
【神经网络】MLP 编码器-解码器 注意力机制 残差连接
668 0
【神经网络】MLP 编码器-解码器 注意力机制 残差连接