AI技术百科
深度残差网络(Deep Residual Network, ResNet)
深度残差网络(Deep Residual Network, ResNet)是一种非常成功的深度学习方法,自2015年底在arXiv上公布以来,在谷歌学术(Google Scholar)上的引用次数已经接近3万次。深度残差收缩网络是ResNet的一种新型改进,后续这篇文章将进行具体的介绍。
首先,深度残差网络的核心贡献在于,引入了恒等映射,也就是下图中的Identity
shortcut。普通的卷积神经网络是没有跨层的恒等映射的。更具体地,下图中的(a)-©展示了三种残差模块(residual building
unit,
RBU),每个残差模块都包含了一个恒等映射。在图(a)中,输入特征图和输出特征图的尺寸是相同的。在图(b)和©中,输出特征图的尺寸是和输入特征图不同的。深度残差网络的整体结构如图(d)所示。我们可以看到,深度残差网络的主体部分,是由很多残差模块堆叠而成的。
软阈值化及阈值的要求
通常情况下,样本中含有噪声,或者与标签无关的冗余信息,会导致深度学习算法的效果有所降低。那么怎么解决这个问题呢?深度残差收缩网络提供了一种思路。
深度残差收缩网络的主要工作之一,就是在残差模块中添加了软阈值化,作为非线性的变换。如下图(a)所示,软阈值化将绝对值小于某一阈值的特征,直接赋值为零。将其他的特征,朝着零的方向,进行一定程度的“收缩”。这也是深度残差收缩网络名称的由来。
在图(b)中,作者进一步分析了软阈值化函数的梯度特性:梯度值要么为0,要么为1。与ReLU激活函数类似,这一特性减小了深度学习在训练时遭遇“梯度消失”和“梯度爆炸”的风险。
另外,阈值的取值是要满足一些条件的。第一,阈值是正数。第二,阈值不能太大。假设输入特征的取值都在-1和1之间,如果阈值为10,那么输出就会全部是0。第三,每个样本都应该根据自己的噪声含量,确定自己的阈值。也就是说,样本之间,应该有不同的阈值设置。
深度残差收缩网络的网络结构
在深度残差收缩网络的残差模块中,嵌入了一个子模块(类似于Squeeze-and-Excitation Networks),用于自动地设置软阈值化函数所用到的阈值。在图(a)中,整个特征图共用一个阈值。在图©中,特征图的每个通道各有一个独立的阈值。同时,图(b)和图(d)展示了两种深度残差收缩网络(DRSN-CS和DRSN-CW)的整体结构。我们可以发现,它们的整体结构其实是一致的,唯一的区别在于残差模块的不同。
我们可以看到,在这种网络结构之下,所获得的阈值,不仅为正数,而且取值不会太大(不会让所有输出全部为0)。另外,每个样本的阈值都是根据自己的特征图所确定的,因此每个样本都会有它自己独特的一组阈值。从而满足了上述关于阈值的三个条件。
原文网址:
https://my.oschina.net/u/4223274/blog/3113022
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