深度殘差收縮網(wǎng)絡(luò)(Deep Residual Shrinkage Networks,DRSN)是深度殘差網(wǎng)絡(luò)(Deep Residual Networks)的一種改進形式。顧名思義,深度殘差收縮網(wǎng)絡(luò),就是對“深度殘差網(wǎng)絡(luò)”的“殘差路徑”進行“收縮(軟閾值化)”的一種網(wǎng)絡(luò)。深度殘差收縮網(wǎng)絡(luò)的設(shè)計體現(xiàn)了一種思想:在特征學(xué)習(xí)的過程中,剔除冗余信息也是非常重要的。
1. 深度殘差網(wǎng)絡(luò)基礎(chǔ)
殘差模塊(Residual Building Unit, RBU)是深度殘差網(wǎng)絡(luò)基本組成部分。如下圖所示,長方體表示通道數(shù)為C、寬度為W、高為1的特征圖;一個殘差模塊可以包含兩個批標(biāo)準(zhǔn)化(Batch Normalization, BN)、兩個整流線性單元激活函數(shù)(Rectifier Linear Unit activation function, ReLU)、兩個卷積層(Convolutional layer)和恒等映射(Identity shortcut)。恒等映射是深度殘差網(wǎng)絡(luò)的核心貢獻,極大程度地降低了深度神經(jīng)網(wǎng)絡(luò)訓(xùn)練的難度。K表示卷積層中卷積核的個數(shù),在此圖中K與輸入特征圖的通道數(shù)C相等。在這張圖中,輸出特征圖的尺寸和輸入特征圖的尺寸相等。

在殘差模塊中,輸出特征圖的寬度可以發(fā)生改變。例如,在下圖中,將卷積層中卷積核的移動步長設(shè)置為2(用"/2"表示),那么輸出特征圖的寬度就會減半,變成0.5W。

輸出特征圖的通道數(shù)也可以發(fā)生改變。例如,在下圖中,如果將卷積層中卷積核的個數(shù)設(shè)置為2C,那么輸出特征圖的通道數(shù)就會變成2C,也就是使得輸出特征圖的通道數(shù)翻倍。

深度殘差網(wǎng)絡(luò)的整體結(jié)構(gòu)如下圖所示。我們可以看到,一個深度殘差網(wǎng)絡(luò),從前到后,包含了一個卷積層、一定數(shù)量的殘差模塊、一個批標(biāo)準(zhǔn)化、一個ReLU激活函數(shù)、一個全局均值池化和一個全連接輸出層。深度殘差網(wǎng)絡(luò)的主體部分就是由很多個殘差模塊構(gòu)成的。在深度殘差網(wǎng)絡(luò)進行基于反向傳播的模型訓(xùn)練時,其損失不僅能夠通過卷積層等進行逐層的反向傳播,而且能夠通過恒等映射進行更為方便的反向傳播,從而更容易訓(xùn)練得到更優(yōu)的模型。

2. 深度殘差收縮網(wǎng)絡(luò)
深度殘差收縮網(wǎng)絡(luò)面向的是帶有“噪聲”的信號,將“軟閾值化”作為“收縮層”引入殘差模塊之中,并且提出了自適應(yīng)設(shè)置閾值的方法。實際上,這里的“噪聲”可以寬泛地理解為“與當(dāng)前任務(wù)無關(guān)的特征信息”。
2.1 軟閾值化
首先解釋軟閾值化的概念。軟閾值化是將輸入數(shù)據(jù)朝著零的方向進行收縮的一種函數(shù),經(jīng)常在信號降噪算法中使用。其公式如下:

x表示輸入特征,y表示輸出特征,τ表示閾值。在這里,閾值需要是一個正數(shù),并且不能太大。如果閾值比所有的輸入特征的絕對值都大,那么輸出特征y就只能為零。這樣的話,軟閾值化就沒有了意義。同時,軟閾值化函數(shù)的導(dǎo)數(shù)公式如下:

我們可以看出,軟閾值化函數(shù)的導(dǎo)數(shù)要么為零,要么為一。這個性質(zhì)是和ReLU激活函數(shù)相同的,因此軟閾值化函數(shù)也有利于防止“梯度消失”和“梯度爆炸”。將上述兩個公式以圖片的形式展示出來,得到下圖:

2.2 網(wǎng)絡(luò)結(jié)構(gòu)
這部分首先介紹一種改進后的殘差模塊。我們可以對比圖1和圖6的區(qū)別。相較于圖1,圖6中的殘差模塊里多了一個小型的子網(wǎng)絡(luò)。這個子網(wǎng)絡(luò)的作用就是自適應(yīng)地設(shè)置閾值。通過仔細觀察這個子網(wǎng)絡(luò),可以發(fā)現(xiàn),這個子網(wǎng)絡(luò)所設(shè)置的閾值,其實就是(特征圖的絕對值的平均值)×(一個系數(shù)α)。在sigmoid函數(shù)的作用下,α是一個0和1之間的數(shù)字。在這種方式下,閾值不僅是一個正數(shù),而且不會太大,即不會使輸出全部為零。

將圖4中的基本殘差模塊,替換成圖6中改進的殘差模塊RSBU-CS,就得到了第一種深度殘差網(wǎng)絡(luò)(Deep Residual Shrinkage Network with channel-shared thresholds, DRSN-CS)的結(jié)構(gòu),如下圖所示:

再介紹另一種改進后的殘差模塊。相較于圖6,圖8中的殘差模塊所獲得的閾值,不是一個值,而是一個向量,也就是特征圖的每一個通道都對應(yīng)著一個收縮閾值。

類似的,將圖4中的基本殘差模塊,替換成圖8中改進的殘差模塊RSBU-CW,就得到了第一種深度殘差網(wǎng)絡(luò)(Deep Residual Shrinkage Network with Channel-Wise thresholds, DRSN-CW)的結(jié)構(gòu),如下圖所示:

3. 實驗驗證
論文采集了8種不同健康狀態(tài)下的振動信號,進行深度殘差收縮網(wǎng)絡(luò)的分類效果驗證。為了體現(xiàn)深度殘差收縮網(wǎng)絡(luò)對噪聲的抑制能力,在振動信號中分別添加了不同量的高斯噪聲、拉普拉斯噪聲和粉紅噪聲,信噪比分別為-5dB至5dB,并且與卷積神經(jīng)網(wǎng)絡(luò)(ConvNet)和深度殘差網(wǎng)絡(luò)(ResNet)進行了對比。
下圖展示了在不同程度高斯噪聲情況下的實驗結(jié)果:

然后是不同程度拉普拉斯噪聲情況下的實驗結(jié)果:

最后是不同程度粉紅噪聲情況下的實驗結(jié)果:

將一組測試樣本的高層特征約簡到二維平面,以散點圖的形式繪制出來,得到下圖:

將算法訓(xùn)練過程中的交叉熵誤差隨迭代次數(shù)的變化,以曲線的形式繪制出來,得到下圖:

2019年10月19日更新:
個人理解,軟閾值化能把“一定取值范圍[-τ,τ]內(nèi)的特征”置為零,而且這個取值范圍[-τ,τ]在論文里是可以自適應(yīng)調(diào)整的,是一種更靈活的、刪除冗余信息的方式吧。
如果跟前一層的偏置b放在一起看的話,被置為零的取值范圍就變成了[-τ+b,τ+b]。τ和b都是可以自動學(xué)習(xí)得到的參數(shù)。這么看的話,這種刪除冗余特征的方式,似乎可以將任意范圍的特征給刪除掉。
總之,大概就是,先通過卷積層學(xué)習(xí)得到一些特征,然后判斷哪個取值范圍內(nèi)的特征是冗余的,并且刪除掉它們。
2019年12月23日更新:
在TensorFlow里,我覺得軟閾值化可以這么編:output_feature = tf.multiply(tf.sign(input_feature), tf.maximum(tf.abs(input_feature)-threshlds,0))
轉(zhuǎn)載網(wǎng)址:
https://zhuanlan.zhihu.com/p/85238942
原文網(wǎng)址:
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/