对于基于深度学习的分类算法,其关键不仅在于提取与标签相关的目标信息,剔除无关的信息也是非常重要的,所以要在深度神经网络中引入软阈值化。阈值的自动设置,是深度残差收缩网络的核心贡献。需要注意的是,软阈值化中的阈值,需要满足一定的条件。这篇文章中的阈值设置,事实上,是在注意力机制下进行的。下面分别介绍阈值需要满足的条件、注意力机制以及具体的阈值设置方法。
(1)阈值需要满足的条件
在软阈值化中,阈值的取值有一定的要求:首先,阈值必须是正数;其次,阈值不能太大,否则输出会全部为零。
更重要的是,每个样本,应该有不同的阈值。这是因为,许多样本所含的噪声量经常是不同的。
例如,样本A所含噪声较少,样本B所含噪声较多。那么,在降噪算法里面,样本A的阈值就应该大一点,样本B的阈值就应该小一些。在深度学习算法里,由于这些特征没有明确的物理意义,阈值的大小也无法得到解释。但是道理是相通的,即每个样本应该有不同的阈值。
(2)注意力机制
注意力机制可以从视觉的角度进行解释。人类能够通过快速扫描图像,发现目标物体,进而将更多的注意力集中在目标物体上,以捕获更多细节,同时抑制其他区域的无关信息。
Squeeze-and-Excitation Network(SENet)是一种典型的带有注意力机制的深度学习方法。对于不同的样本,不同通道上的特征,在分类任务中的重要程度,经常是不同的。SENet可以学习一组权重,自动地调整不同通道的特征的大小。这个过程,就相当于施加不同的注意力在各个通道的特征上(见下图)。
需要注意的是,每个样本,都有自己独特的一组权重。任意两个样本,它们的这些权重,都是不同的。在SENet中,具体的网络结构如下图所示。学习权重的路径就是,全局池化→全连接层→ReLU→全连接层→Sigmoid。
(3)具体的阈值设置方法
深度残差收缩网络采用了一个子网络来自动地设置阈值。这个子网络的结构,就借鉴了上述的SENet。
首先来看“通道之间共享阈值的深度残差收缩网络(Deep Residual Shrinkage Networks with Channel-shared Thresholds,简称DRSN-CS)”。我们可以看到,在红色虚线框里的子网络,学习得到了一个阈值,应用在特征图的所有通道上。
在这个子网络中,首先对输入特征图内的所有元素,取绝对值。然后经过全局均值池化(Global Average Pooling, GAP)和求平均(Average),就得到了一个特征。为了方便描述,将这个特征记为A。在另一条路径中,全局均值池化之后的特征,输入到一个小型的全连接网络之中。这个全连接网络以一个Sigmoid激活函数作为最后一步,其目的在于将输出调整到0和1之间,记为α。最终的阈值就是α×A。这样的话,阈值就是,一个0和1之间的数字×特征图的绝对值的平均值。通过这种方式,保证了阈值不仅为正数,而且不会太大。
然后再看“逐通道不同阈值的深度残差收缩网络(Deep Residual Shrinkage Networks with Channel-wise Thresholds,简称DRSN-CW)”。与上述的DRSN-CS相似,在红色虚线框里的子网络,学习得到了一组阈值。以相同的方式,确保了阈值有着合适的取值范围。
值得指出的是,通过这种方式,不同的样本就有了不同的阈值。在一定程度上,也可以理解为一种注意力机制:注意到不重要的特征,将它们剔除掉;或者说,注意到重要的特征,将它们保留下来。另外,虽然跨层的恒等路径(Identity shortcut)将不重要的特征也传递到了高层特征中,但是通过很多残差模块的堆叠,这些不重要的特征所占的比重越来越低,最终实现不重要特征的消除。
前三篇的内容:
深度残差收缩网络:(一)背景知识 https://www.cnblogs.com/yc-9527/p/11598844.html
深度残差收缩网络:(二)整体思路 https://www.cnblogs.com/yc-9527/p/11601322.html
深度残差收缩网络:(三)网络结构 https://www.cnblogs.com/yc-9527/p/11603320.html
原文的链接:
M. Zhao, S. Zhong, X. Fu, B. Tang, and M. Pecht, “Deep Residual Shrinkage Networks for Fault Diagnosis,” IEEE Transactions on Industrial Informatics, 2019, DOI: 10.1109/TII.2019.2943898