共计 2412 个字符,预计需要花费 7 分钟才能阅读完成。
自适应参数化 ReLU 是一种动态激活函数,对所有输入不是“一视同仁”,在 2019 年 5 月 3 日投稿至 IEEE Transactions on Industrial Electronics,2020 年 1 月 24 日录用,2020 年 2 月 13 日在 IEEE 官网公布。
本文在综述传统激活函数和注意力机制的基础上,解读了一种注意力机制下的动态激活函数,即自适应参数化修正线性单元(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 激活函数使每个样本都可以有自己独特的一组非线性变换,提供了一种更灵活的动态非线性变换方式,具有提高模式识别准确率的潜力。
参考文献:
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, Date of Publication: 13 February 2020