【深度残差收缩网络】Deep Residual Shrinkage Network

深度残差收缩网络(Deep Residual Shrinkage Networks,DRSN)是深度残差网络(Deep Residual Networks)的一种改进形式。顾名思义,深度残差收缩网络,就是对“深度残差网络”的“残差路径”进行“收缩(软阈值化)”的一种网络。深度残差收缩网络的设计体现了一种思想:在特征学习的过程中,剔除冗余信息也是非常重要的

1. 深度残差网络基础

残差模块(Residual Building Unit, RBU)是深度残差网络基本组成部分。如下图所示,长方体表示通道数为C、宽度为W、高为1的特征图;一个残差模块可以包含两个批标准化(Batch Normalization, BN)、两个整流线性单元激活函数(Rectifier Linear Unit activation function, ReLU)、两个卷积层(Convolutional layer)和恒等映射(Identity shortcut)。恒等映射是深度残差网络的核心贡献,极大程度地降低了深度神经网络训练的难度。K表示卷积层中卷积核的个数,在此图中K与输入特征图的通道数C相等。在这张图中,输出特征图的尺寸和输入特征图的尺寸相等。

图1. 残差模块(输入特征图尺寸=输出特征图尺寸)

在残差模块中,输出特征图的宽度可以发生改变。例如,在下图中,将卷积层中卷积核的移动步长设置为2(用"/2"表示),那么输出特征图的宽度就会减半,变成0.5W。

图2. 残差模块(输出特征图宽度减半)

输出特征图的通道数也可以发生改变。例如,在下图中,如果将卷积层中卷积核的个数设置为2C,那么输出特征图的通道数就会变成2C,也就是使得输出特征图的通道数翻倍。

图3. 残差模块(输出特征图宽度减半,通道数翻倍)

深度残差网络的整体结构如下图所示。我们可以看到,一个深度残差网络,从前到后,包含了一个卷积层、一定数量的残差模块、一个批标准化、一个ReLU激活函数、一个全局均值池化和一个全连接输出层。深度残差网络的主体部分就是由很多个残差模块构成的。在深度残差网络进行基于反向传播的模型训练时,其损失不仅能够通过卷积层等进行逐层的反向传播,而且能够通过恒等映射进行更为方便的反向传播,从而更容易训练得到更优的模型。

图4. 深度残差网络的整体结构示意图

2. 深度残差收缩网络

深度残差收缩网络面向的是带有“噪声”的信号,将“软阈值化”作为“收缩层”引入残差模块之中,并且提出了自适应设置阈值的方法。实际上,这里的“噪声”可以宽泛地理解为“与当前任务无关的特征信息”。

2.1 软阈值化

首先解释软阈值化的概念。软阈值化是将输入数据朝着零的方向进行收缩的一种函数,经常在信号降噪算法中使用。其公式如下:

x表示输入特征,y表示输出特征,τ表示阈值。在这里,阈值需要是一个正数,并且不能太大。如果阈值比所有的输入特征的绝对值都大,那么输出特征y就只能为零。这样的话,软阈值化就没有了意义。同时,软阈值化函数的导数公式如下:

我们可以看出,软阈值化函数的导数要么为零,要么为一。这个性质是和ReLU激活函数相同的,因此软阈值化函数也有利于防止“梯度消失”和“梯度爆炸”。将上述两个公式以图片的形式展示出来,得到下图:

图5. (a) 软阈值化及其(b)导数

2.2 网络结构

这部分首先介绍一种改进后的残差模块。我们可以对比图1和图6的区别。相较于图1,图6中的残差模块里多了一个小型的子网络。这个子网络的作用就是自适应地设置阈值。通过仔细观察这个子网络,可以发现,这个子网络所设置的阈值,其实就是(特征图的绝对值的平均值)×(一个系数α)。在sigmoid函数的作用下,α是一个0和1之间的数字。在这种方式下,阈值不仅是一个正数,而且不会太大,即不会使输出全部为零。

图6. 改进的残差模块(通道间共享阈值),英文名:Residual Shrinkage Building Unit with Channel-Shared thresholds,简称RSBU-CS

将图4中的基本残差模块,替换成图6中改进的残差模块RSBU-CS,就得到了第一种深度残差网络(Deep Residual Shrinkage Network with channel-shared thresholds, DRSN-CS)的结构,如下图所示:

图7. 深度残差收缩网络(通道间共享阈值),简称DRSN-CS

再介绍另一种改进后的残差模块。相较于图6,图8中的残差模块所获得的阈值,不是一个值,而是一个向量,也就是特征图的每一个通道都对应着一个收缩阈值。

图8. 改进的残差模块(逐通道不同阈值),英文名:Residual Shrinkage Building Unit with Channel-wise thresholds,简称RSBU-CW

类似的,将图4中的基本残差模块,替换成图8中改进的残差模块RSBU-CW,就得到了第一种深度残差网络(Deep Residual Shrinkage Network with Channel-Wise thresholds, DRSN-CW)的结构,如下图所示:

图9. 深度残差收缩网络(逐通道不同阈值),简称DRSN-CW

3. 实验验证

论文采集了8种不同健康状态下的振动信号,进行深度残差收缩网络的分类效果验证。为了体现深度残差收缩网络对噪声的抑制能力,在振动信号中分别添加了不同量的高斯噪声、拉普拉斯噪声和粉红噪声,信噪比分别为-5dB至5dB,并且与卷积神经网络(ConvNet)和深度残差网络(ResNet)进行了对比。

下图展示了在不同程度高斯噪声情况下的实验结果:

图10. 高斯噪声下(-5dB到5dB)的训练准确率和测试准确率

然后是不同程度拉普拉斯噪声情况下的实验结果:

图11. 拉普拉斯噪声下(-5dB到5dB)的训练准确率和测试准确率

最后是不同程度粉红噪声情况下的实验结果:

图12. 粉红噪声下(-5dB到5dB)的训练准确率和测试准确率

将一组测试样本的高层特征约简到二维平面,以散点图的形式绘制出来,得到下图:

图13. (a) 卷积神经网络,(b) 深度残差网络,(c) 深度残差收缩网络(通道间共享阈值),(d)深度残差收缩网络(逐通道不同阈值)

将算法训练过程中的交叉熵误差随迭代次数的变化,以曲线的形式绘制出来,得到下图:

图14. (a) 卷积神经网络,(b) 深度残差网络,(c) 深度残差收缩网络(通道间共享阈值),(d)深度残差收缩网络(逐通道不同阈值)

2019年10月19日更新:

个人理解,软阈值化能把“一定取值范围[-τ,τ]内的特征”置为零,而且这个取值范围[-τ,τ]在论文里是可以自适应调整的,是一种更灵活的、删除冗余信息的方式吧。

如果跟前一层的偏置b放在一起看的话,被置为零的取值范围就变成了[-τ+b,τ+b]。τ和b都是可以自动学习得到的参数。这么看的话,这种删除冗余特征的方式,似乎可以将任意范围的特征给删除掉。

总之,大概就是,先通过卷积层学习得到一些特征,然后判断哪个取值范围内的特征是冗余的,并且删除掉它们。

2019年12月23日更新:

在TensorFlow里,我觉得软阈值化可以这么编:output_feature = tf.multiply(tf.sign(input_feature), tf.maximum(tf.abs(input_feature)-threshlds,0))

转载网址:

https://zhuanlan.zhihu.com/p/85238942

原文网址:

M. Zhao, S. Zhong, X. Fu, B. Tang, M. Pecht, Deep Residual Shrinkage Networks for Fault Diagnosis, IEEE Transactions on Industrial Informatics, 2019, DOI: 10.1109/TII.2019.2943898

https://ieeexplore.ieee.org/document/8850096/

你可能感兴趣的:(【深度残差收缩网络】Deep Residual Shrinkage Network)