作者 | 科 雨
編輯 | 叢 末
針對深度卷積網絡任務中的穩定優化性和通用泛化性,正則化層和激活函數一直都占有至關重要的位置。在各種前沿的研究中,這兩個成分經常會彼此並置。大量研究人員對這兩個成分的研究有著很廣泛的研究,但他們常常是將兩者獨立開來,分別討論。學界中,基本的假設就是正則化層和激活函數一定要分別獨立設計,並且先後運行(如BatchNorm—RELU),這一舉措很可能不是最優的。
論文地址:https://arxiv.org/pdf/2004.02967.pdf
1 改進方案
1、整體介紹
本篇文章則通過將正則化層和激活層公式化為一個單獨的構建模塊,來研究他們的協同設計。
2、困難性
由於多種原因,搜索該統一層具有很大的挑戰性。比如,首先,該模型要避開那些單獨考慮下的歷史設計結果,而較少的先驗知識會導致更大的搜索空間,但是,這一搜索空間所包含的有意義的層設置少之又少;與此同時,一個有用的層設計必須有好的泛化性能,可以在多個模型和新任務中使用,而可以達到這一目標的例子就是BatchNorm—RELU,這個模型是研究者大量的努力和廣泛的探索才得到的,想要超越該模型並不容易。
3、設計思路
本文主要使用自動的方法來解決上述挑戰。
(1)為了保證能儘量少的使用到先驗知識,研究者將每個層都表示為由許多基礎算法模塊(如加法,懲罰和交叉維度聚合等)組成的張量計算圖。
(2)接著,他們使用在模型自動進化過程中使用了拒絕機制(rejection mechanism),以此來保證在巨大稀疏空間中搜索的高效性。
(3)為了保證搜索層涵蓋了獨立設計的結果,本文將單個候選層與多種結構進行配對和評估,並將這一要求明確作為模型進化目標。
使用層搜索方法,本文可以發現新穎的結構集合,這個集合被稱為EvoNorms,它的性能可以超過現有的設計模式。在這個集合中,研究者展示了依賴於batch的EvoNorm-B和只依賴於個體樣本的EvoNorm-S,並在一系列圖像分類任務的結構上檢驗了這些層的性能,實驗結果證明其可以極大提高分類準確度。同時,研究者還在圖像實物分割任務和圖像生成任務上對此層結構進行了評估,結果證明本文提出的方法也可以很好的提升這兩個任務的性能。
下圖展示了EvoNorm-S0在ResNet-50上的運行結果:
4、主要貢獻
(1)本文證明了網絡架構可以從最原始的成分出發,來重新構造網絡層結構,而不是只能依賴於已有的設計。
(2)本文提出了一種尋找通用模塊的層搜索(Layer Search)方法。相對於專注於特定網絡的結構搜索方法,本模型可以優化泛化性和一般性。
(3)本文發現,基於層搜索算法找到的新層結構,在圖像分類領域,相比已有的經典算法(包括ResNets,mobileNetV2,MnasNet,EfficientNets等),可以提升各個不同任務的分類準確性。
(4)最後,作者證明了這些層在新的任務上的可遷移性,如實物檢測和分割領域和圖像合成領域。
2 相關工作
研究者在單獨設計激活層或正則化層方向上做了許多努力,他們或使用手動設計方法(He et al., 2015; Clevert et al., 2016),或使用自動設計方法(Ramachandran et al., 2018)。Singh&Krishnan在2019年手動同時設計了兩種層結構,不過,他們的設計將這兩個層視為分離開的兩個部分。
與之前的研究不同的是,通過將正則化層和激活層結合起來,並視作一個統一的部分,本文取消了正則化層和激活層設計的界限。與此同時,在搜索空間方面,相對現有自動方法,本文也面臨著更大的挑戰性。
3 模型架構
1、 搜索空間
(1)層表示
本文將正則化-激活層表示為計算圖,該計算圖將輸入的張量轉化為具有相同形狀的輸出張量,每個中間節點代表一個一元或者二元操作的結果。這些運算符經過設計,可以保持輸入張量的維度不變,這樣就可以保證圖中的節點的維度兼容。圖中有四種初始節點:輸入節點,常量0節點,以及兩種可訓練的和
節點,這兩種節點被初始化為0和1。
下圖就是一個依賴於batch的EvoNorm-S0模型的計算圖例子:
本文使用了順序生成隨機計算圖的方法。從初始節點出發,作者隨機採樣原始運算符,並使用這些運算符,對輸入節點進行隨機操作,來生成新的節點。這個過程持續多次,知道生成最後一個節點,這個節點就被視為計算圖的輸出。同時,未使用的節點也被保留下來,從而可供之後的生成過程挑選。
(2) 原始成分
下表展示了搜索空間中的原始成分,這些成分被分為兩類:(1)按元素操作,適用於每個張量中的每個元素(2)可以在張量的不同維度進行的聚合操作
2、 層搜索方法
本文的搜索方法的關鍵如下:
通過將每一層與多個結構配對的結果模型在輕量代理級的任務上運行,本文評估了每一層設計的效果。
使用進化算法,可以優化多目標邊界,同時,作者使用高效的篩選掉不需要的層的拒絕機制(rejection mechanism)來實現對這一過程的增強。
下圖展示了層搜索方法的整體工作流程:
(1)層評估
很多人期望有用的層設計可以適用於很多結構,比如BatchNorm-RELU。然而,下圖顯示,這個層設計只能在單一結構上表現出優異的效果,而在轉化到其他任務的情況下,該設計並不能達到預期。
為了提高模型的泛化性能,本文將搜索過程處理為多目標優化問題,將每個候選層在一系列K個(K > 1)錨點結構的運行結果作為泛化性評估參考。
(2) 代理任務和錨點結構
為實現快速反饋,一個理想的代理任務應該是足夠輕量級。同時,錨點結構必須足夠有挑戰性,來保證從優化的角度對層設計進行壓力測試。基於以上兩點,本文作者產生了設計小型任務和深度結構的想法。
作者將代理任務設置為在CIFAR-10上的圖像分類任務,並使用了將三個具有代表性(足夠深)的ImageNet結構,這三個結構分別是預激活的ResNet50,MobileNetV2以及EfficientNet-B0。
下圖從左到右分別是ResNet-CIFAR, MobileNetV2-CIFAR 以及EfficientNet-CIFAR 。
(3)進化
本文的進化算法是錦標賽選擇算法(tournament selection)的變體。在每一步中,作者基於全部層的隨機子集構建錦標賽。錦標賽的勝利者則可以產生變化後的進化版本,這個新版本在評估之後會被加入到候選層種。隨著這一過程的不斷疊代,候選層的整體質量會逐步提升。同時,通過保持候選層最近使用部分的滑動窗口,研究人員實現了進化過程的正則化。
選擇標準
由於每個層設計都有多個分數,選擇錦標賽獲勝者的標準並不惟一。下面是兩個選擇標準:
平均值:具有最高平均準確度的層成為獲勝者(如下圖中的B)
帕累托(Pareto):在帕累托邊界的隨機層設計成為獲勝者(下圖中的A,B和C都有同樣的機率獲勝)
上圖中的每個點都代表一種候選層設計。
獲勝者的變化
本文作者使用三個步驟來改變計算圖:
Step1: 隨機均勻選擇一個中間節點
Step2: 隨機均勻的將當前操作替換為原始成分表中的新操作。
Step3: 隨機均勻的選擇該節點新的子節點。
(4) 拒絕機制
質量
研究者選擇丟棄在任意三個錨點結構進行100次疊代後驗證準確率低於20%的層設計。這一舉措可以保證計算資源能集中在候選層里一小部分子集的完整訓練過程中。
穩定性除了質量之外,研究人員還拒絕了數值不穩定的層設計。進行這一操作的基本原則是,向著梯度範數最大的方向對抗式調整卷積權重
,從而對候選層進行壓力測試。
4 實驗
使用ImageNet數據集,研究人員將搜索到的層設計和普遍使用的歸一化激活層進行了比較,如下表所示:
此結果顯示了不同的層設計在ImageNet上的測試準確率,其中藍字標註了需要移動平均的項。使用同樣的訓練設置,使用相同的代碼庫在相同的架構上會得到一樣的結果。
下圖展示了在另外一個搜索過程實驗中EvoNorms在樣本層設計上的性能表現。(這些樣本層沒有使用batch聚合操作)。
同時,本文還進行了具有超大batch規格的學習動態過程的可視化。在訓練設置相同的情況下,相比BN-RELU和ResNet-50,雖然訓練損失較大,但是,EvoNorm-B0展現了更好的泛化性能。在其他所有的情況下,EvoNorm同時實現了優化性能和泛化性能的提升。
為了探索本文的層設計是否可以使用在實體分割任務上,本文將該模型和Mask R-CNN和ResNet-FPN在目標檢測和實體分割任務(COCO)上表現的性能做了對比,結果如下表所示:
結果顯示,相對於BN-RELU和GN-RELU,EvoNorm-B0和EvoNorm-S0都有更好的性能表現,同時絕大情況下EvoNorm-B0表現最好。
接著,研究者進一步測試了EvoNorm在訓練GAN時的可行性。使用BigGAN的訓練步驟進行操作後,研究人員在下表中給出了最佳結果:
下圖是使用EvoNorm-B0的BigGAN-deep生成的部分樣本圖像:
基於代理任務,下圖對比了進化和隨機搜索以及BN—RELU的搜索過程。結果顯示,這三種方法在優化搜索目標的採樣效率上存在很大差異。
5 結論
通過將正則層和歸一層視為由低層次原始成分組成的統一計算圖,本文實現了搜索過程。這一獨特的搜索方法,帶領研究團隊發現了新穎設計的候選層集合——EvoNorms,並在圖像分類任務,實體分割任務和GAN任務上顯示了明顯的性能提升。相對於利用結構搜索在特定網絡上搜尋的前人研究方法,本文的方法展示了利用層搜索的AutoML在探索廣泛網絡結構設計的使用價值和潛力。