自适应参数化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.

相关文章
|
机器学习/深度学习 PyTorch 算法框架/工具
为什么大型语言模型都在使用 SwiGLU 作为激活函数?
SwiGLU可以说是在大语言模型中最常用到的激活函数,我们本篇文章就来对他进行详细的介绍。
2027 9
|
JavaScript 前端开发
Bpmn.js 进阶指南之Lint流程校验(一)
Bpmn.js 进阶指南之Lint流程校验(一)
1754 0
|
机器学习/深度学习 编解码 知识图谱
RT-DETR改进策略【卷积层】| HWD,引入`Haar小波变换`到下采样模块中,减少信息丢失
RT-DETR改进策略【卷积层】| HWD,引入`Haar小波变换`到下采样模块中,减少信息丢失
577 11
RT-DETR改进策略【卷积层】| HWD,引入`Haar小波变换`到下采样模块中,减少信息丢失
|
机器学习/深度学习 编解码 人工智能
InvSR:开源图像超分辨率生成模型,提升分辨率,修复老旧照片为超清图像
InvSR 是一个创新的图像超分辨率模型,基于扩散模型的逆过程恢复高分辨率图像。它通过深度噪声预测器和灵活的采样机制,能够高效地提升图像分辨率,适用于老旧照片修复、视频监控、医疗成像等多个领域。
2879 9
InvSR:开源图像超分辨率生成模型,提升分辨率,修复老旧照片为超清图像
|
IDE 开发工具 C语言
C++一分钟之-嵌入式编程与裸机开发
通过这些内容的详细介绍和实例解析,希望能帮助您深入理解C++在嵌入式编程与裸机开发中的应用,提高开发效率和代码质量。
458 13
|
机器学习/深度学习 编解码 计算机视觉
【YOLOv8改进】D-LKA Attention:可变形大核注意力 (论文笔记+引入代码)
YOLO目标检测专栏探讨了Transformer在医学图像分割的进展,但计算需求限制了模型的深度和分辨率。为此,提出了可变形大核注意力(D-LKA Attention),它使用大卷积核捕捉上下文信息,通过可变形卷积适应数据模式变化。D-LKA Net结合2D和3D版本的D-LKA Attention,提升了医学分割性能。YOLOv8引入了可变形卷积层以增强目标检测的准确性。相关代码和任务配置可在作者博客找到。
|
机器学习/深度学习 计算机视觉
智慧教室—基于人脸表情识别的考试防作弊系统
智慧教室—基于人脸表情识别的考试防作弊系统
456 2
|
机器学习/深度学习 资源调度 自然语言处理
Softmax激活函数介绍
【10月更文挑战第2天】
1366 0
|
机器学习/深度学习 编解码 PyTorch
深入 YOLOv8:探索 block.py 中的模块,逐行代码分析(四)
深入 YOLOv8:探索 block.py 中的模块,逐行代码分析(四)
|
数据处理 开发者 索引
【Python】已解决:FutureWarning: The frame.append method is deprecated and will be removed from pandas in
【Python】已解决:FutureWarning: The frame.append method is deprecated and will be removed from pandas in
1296 0

热门文章

最新文章