“非深度網路”12層打敗50層,普林斯頓+英特爾:更深不一定更好

曉查 發自 凹非寺

量子位 報道 | 公眾號 QbitAI

“深度”是深度神經網路(DNN)的關鍵詞。但網路越深也就意味著,訓練時反向傳播的鏈條更長,推理時順序計算步驟更多、延遲更高。

而深度如果不夠,神經網路的效能往往又不好。

這就引出了一個問題:是否有可能構建高效能的“非深度”神經網路?

普林斯頓大學和英特爾最新的論文證明,確實能做到。

他們只用了12層網路ParNet就在ImageNet上達到了接近SOTA的效能。

“非深度網路”12層打敗50層,普林斯頓+英特爾:更深不一定更好

ParNet在ImageNet上準確率超過80%、在CIFAR10上超過 96%、在CIFAR100上top-1準確率 達到了81%,另外在MS-COCO上實現了48%的AP。

他們是如何在網路這麼“淺”的情況下做到的?

並行子網提升效能

ParNet 中的一個關鍵設計選擇是使用並行子網,不是按順序排列層,而是在並行子網中排列層。

ParNet由處理不同解析度特徵的並行子結構組成。我們將這些並行子結構稱為流(stream)。來自不同流的特徵在網路的後期融合,這些融合的特徵用於下游任務。

“非深度網路”12層打敗50層,普林斯頓+英特爾:更深不一定更好

在 ParNet 中,作者使用VGG樣式的塊。但是對於非深度網路來說,只有3×3卷積感受野比較有限。

為了解決這個問題,作者構建了一個基於Squeeze-and-Excitation設計的 Skip-Squeeze-Excitation (SSE) 層。使用SSE模組修改後的Rep-VGG稱之為Rep VGG-SSE。

對於ImageNet等大規模資料集,非深度網路可能沒有足夠的非線性,從而限制了其表示能力。因此,作者用SiLU啟用函式替代了ReLU。

“非深度網路”12層打敗50層,普林斯頓+英特爾:更深不一定更好

除了RepVGG-SSE塊的輸入和輸出具有相同的大小外,ParNet還包含下采樣和融合塊。

模組降低解析度並增加寬度以實現多尺度處理,而融合塊組合來自多個解析度的資訊,有助於減少推理期間的延遲。

為了在小深度下實現高效能,作者透過增加寬度、解析度和流數量來擴充套件ParNet。

作者表示,由於摩爾定律放緩,處理器頻率提升空間也有限,因此平行計算有利於神經網路實現更快的推理。而並行結構的非深度網路ParNet在這方面具有優勢。

實際效能如何

在ImageNet資料集上,無論是Top-1還是Top-5上,ParNet都接近SOTA效能。

“非深度網路”12層打敗50層,普林斯頓+英特爾:更深不一定更好

在MS-COCO任務中,ParNet在效能最佳的同時,延遲最低。

“非深度網路”12層打敗50層,普林斯頓+英特爾:更深不一定更好

不過也有人質疑“非深度網路”的實際表現,因為雖然層數少,但網路寬度變大,實際上ParNet比更深的ResNet50的引數還要多,似乎不太有說服力。

“非深度網路”12層打敗50層,普林斯頓+英特爾:更深不一定更好

但作者也表示“非深度”網路在多GPU下能發揮更大的平行計算優勢。

最後,ParNet的GitHub頁已經建立,程式碼將在不久後開源。

參考連結:

[1]https://arxiv。org/abs/2110。07641

[2]https://github。com/imankgoyal/NonDeepNetworks

TAG: ParNet深度網路並行ImageNet