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

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

1. 激活函数

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

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

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

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

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

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

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

2. 注意力机制

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

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

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

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

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

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

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

参考文献:

[1] He K, Zhang X, Ren S, et al. Delving deep into rectifiers: Surpassing human-level performance on imagenet classification[C]//Proceedings of the IEEE international conference on computer vision. 2015: 1026-1034.

[2] Hu J, Shen L, Sun G. Squeeze-and-excitation networks[C]//Proceedings of the IEEE conference on computer vision and pattern recognition. 2018: 7132-7141.

[3] 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.

原文地址:https://www.cnblogs.com/uizhi/p/12388387.html

时间: 2024-10-10 04:38:56

注意力机制下的激活函数:自适应参数化ReLU的相关文章

深度残差收缩网络:(四)注意力机制下的阈值设置

对于基于深度学习的分类算法,其关键不仅在于提取与标签相关的目标信息,剔除无关的信息也是非常重要的,所以要在深度神经网络中引入软阈值化.阈值的自动设置,是深度残差收缩网络的核心贡献.需要注意的是,软阈值化中的阈值,需要满足一定的条件.这篇文章中的阈值设置,事实上,是在注意力机制下进行的.下面分别介绍阈值需要满足的条件.注意力机制以及具体的阈值设置方法. (1)阈值需要满足的条件 在软阈值化中,阈值的取值有一定的要求:首先,阈值必须是正数:其次,阈值不能太大,否则输出会全部为零. 更重要的是,每个样

Pytorch系列教程-使用Seq2Seq网络和注意力机制进行机器翻译

前言 本系列教程为pytorch官网文档翻译.本文对应官网地址:https://pytorch.org/tutorials/intermediate/seq2seq_translation_tutorial.html 系列教程总目录传送门:我是一个传送门 本系列教程对应的 jupyter notebook 可以在我的Github仓库下载: 下载地址:https://github.com/Holy-Shine/Pytorch-notebook 本教程我们将会搭建一个网络来将法语翻译成英语. [KE

Hulu机器学习问题与解答系列 | 十二:注意力机制

几天不见想死你们啦~ 今儿的课题很好玩,跟上队伍一起来读! 今天的内容是 [注意力机制] 场景描述 作为生物体,我们的视觉和听觉会不断地获得带有序列的声音和图像信号,并交由大脑理解:同时我们在说话.打字.开车等过程中,也在不断地输出序列的声音.文字.操作等信号.在互联网公司日常要处理的数据中,也有很多是以序列形式存在的,例如文本.语音.视频.点击流等.因此如何更好的对序列进行建模,一向是研究的要点. 为了解决这些问题,注意力机制(attention mechanism)被引入Seq2Seq模型中

深度学习之注意力机制(Attention Mechanism)

这篇文章整理有关注意力机制(Attention Mechanism )的知识,主要涉及以下几点内容: 1.注意力机制是为了解决什么问题而提出来的? 2.软性注意力机制的数学原理: 3.软性注意力机制与Encoder-Decoder框架: 4.自注意力模型的原理. 一.注意力机制可以解决什么问题? 神经网络中的注意力机制(Attention Mechanism)是在计算能力有限的情况下,将计算资源分配给更重要的任务,同时解决信息超载问题的一种资源分配方案.在神经网络学习中,一般而言模型的参数越多则

关于《注意力模型--Attention注意力机制》的学习

关于<注意力模型--Attention注意力机制>的学习 此文大部分参考深度学习中的注意力机制(2017版) 张俊林的博客,不过添加了一些个人的思考与理解过程.在github上找到一份基于keras框架实现的可运行的注意模型代码:Attention_Network_With_Keras (对这个模型的详细理解可参考:<注意力模型的一个实例代码的实现与分析>) 注意力模型:对目标数据进行加权变化.人脑的注意力模型,说到底是一种资源分配模型,在某个特定时刻,你的注意力总是集中在画面中的

[转] 深度学习中的注意力机制

from: https://zhuanlan.zhihu.com/p/37601161 注意力模型最近几年在深度学习各个领域被广泛使用,无论是图像处理.语音识别还是自然语言处理的各种不同类型的任务中,都很容易遇到注意力模型的身影.所以,了解注意力机制的工作原理对于关注深度学习技术发展的技术人员来说有很大的必要. 人类的视觉注意力 从注意力模型的命名方式看,很明显其借鉴了人类的注意力机制,因此,我们首先简单介绍人类视觉的选择性注意力机制. 图1 人类的视觉注意力 视觉注意力机制是人类视觉所特有的大

Seq2Seq模型与注意力机制

Seq2Seq模型 基本原理 核心思想:将一个作为输入的序列映射为一个作为输出的序列 编码输入 解码输出 解码第一步,解码器进入编码器的最终状态,生成第一个输出 以后解码器读入上一步的输出,生成当前步输出 组成部件: Encoder Decoder 连接两者的固定大小的State Vector 解码方法 最核心部分,大部分的改进 贪心法 选取一种度量标准后,在当前状态下选择最佳的一个结果,直到结束 计算代价低 局部最优解 集束搜索(Beam Search) 启发式算法 保存beam size个当

unity5打包机制下,一种资源打ab和资源管理的方案

unity5打包机制下,一种资源打ab和资源管理的方案.1.打ab: 1.设置平台 2.清楚所有资源的assetbundlename: string[] abNameArr = AssetDatabase.GetAllAssetBundleNames(); AssetDatabase.RemoveAssetBundleName(abNameArr[i],true); 3.创建ab目录 4.根据配置把需要打包的资源找出来,对每一个setAbName 5.调用BuildPipeline.BuildA

各种attention注意力机制之间的比较

1.Show, Attend and Tell: Neural Image Caption Generation with Visual Attention.Kelvin Xu, Jimmy Ba, Ryan Kiros, Kyunghyun Cho, Aaron Courville, Ruslan Salakhudinov, Rich Zemel, Yoshua Bengio ; Proceedings of the 32nd International Conference on Machi