MobileNetV2: Linear Bottleneck重解讀與原文翻譯

原文arxiv鏈接
Keras官方模型
網絡上的文章對於ReLU在低維空間上操作時會丟失信息這一理解沒有錯,也能夠說明爲什麼在倒殘差結構中要移去最後一層的非線性激活函數,但是對於設計的動機解釋的不清晰。
以下是個人理解:
每一個卷積塊會學習出一個模式,而這個模式是在低維空間上線性的(原文把這種模式稱作“興趣流形”,這個流形可以在低維空間上展開),所以會在卷積塊中增加一個低維的卷積層來學習這種模式,由於這個層比其它層維度低,所以形象的取名爲瓶頸。一般的來說一個卷積層後會跟一個非線性激活ReLU層,但是ReLU激活函數在低維空間操作時會損失信息,所以新增的瓶頸層中不帶有非線性激活層,所以這個層就被稱作線性瓶頸。
以下是個人疑問:
原文中證明ReLU對可以在低維空間展開的流形操作沒有損失,但如何證明神經網絡學習的興趣流形是可以在低維空間展開的呢?原文用了很不嚴謹的“It has been long assumed”。
以下是原論文線性瓶頸段落的中文翻譯:
一個深度神經網絡由nnLiL_i組成,每層有一個維度爲hiwidih_i*w_i*d_i的激活張量。通過這個章節我們將會討論這些激活張量的基本屬性,我們把這些張量看做有did_ihiwih_i*w_i像素的容器。非正式的,對於一組輸入的真實的圖像,我們可以說這一組層激活(對於任何LiL_i層)形成了一個“興趣流形”。長期以來有一個假設說 神經網絡的感興趣流形可以被嵌入到低維子空間。換句話說,當我們觀察一個深度卷積層所有單獨的dd通道的像素,被編碼成這些數值的信息實際上存在與某些可嵌入到一個低維子空間的流形中。

乍一看,可以通過簡單地減小層的維度從而減小操作空間的維度來達到這個目的。 這已被MobileNetV1成功運用,MobileNetV1通過寬度乘數參數有效地在計算和精度之間進行權衡,並且這一操作已被併入其他網絡的模型設計中。 按照這種直覺,寬度乘數法可以減小激活空間的尺寸,直到感興趣的流形平鋪整個空間爲止。 但是,當我們回想起深度卷積神經網絡實際上具有非線性轉換(例如ReLU)時,這種直覺就失效了。 例如,將ReLU應用於一維空間中的一條線會產生“射線”,而在RnR_n空間中,它通常會生成具有nn個連接點的分段線性曲線。

容易看到,通常,如果層變換ReLUBx(Bx)的結果具有非零的體積SS,則映射到內部SS的點是通過輸入的線性變換BB獲得的,因此表明對應於一維輸出的輸入空間僅限於線性變換。 換句話說,深度網絡僅在輸出域的非零體積部分具有線性分類器的功能。 參考補充材料以獲得更正式的說明。

另一方面,當ReLU壓縮通道時,它不可避免地會丟失該通道中的信息。 但是,如果我們有很多通道,並且激活流形中有一個結構,信息可能仍會保留在其他通道中。 在補充材料中,我們表明,如果可以將輸入流形嵌入到激活空間的明顯較低維度的子空間中,那麼ReLU轉換將保留信息,同時將所需的複雜性引入可表達的函數集中。 總而言之,我們重點介紹了兩個屬性,這些屬性指示所需的流形應位於高維激活空間的低維子空間中:

  1. 如果感興趣的流形在ReLU轉換後仍保持非零體積 ,它對應於線性變換。

  2. ReLU能夠保留有關輸入流形的完整信息,但前提是輸入流形位於輸入空間的低維子空間中。

這兩個見解爲我們提供了優化現有神經體系結構的經驗提示:假設感興趣的流形是低維的,我們可以通過將線性瓶頸層插入到卷積塊中來利用這一點。實驗證據表明,使用線性層至關重要,因爲它可以防止非線性破壞過多的信息。在第6節中,我們通過經驗證明,在瓶頸中使用非線性層確實會降低性能百分之幾,從而進一步驗證了我們的假設。我們注意到,在[29]中報道了類似的報告,其中非線性得到了幫助,其中從傳統殘差塊的輸入層中去除了非線性,從而提高了CIFAR數據集的性能。在本文的其餘部分,我們將利用瓶頸卷積。我們將輸入瓶頸的大小與內部大小之間的比率稱爲擴展比率。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章