機器之心釋出
機器之心編輯部
近日,NeurIPS 2019 近日在加拿大溫哥華召開。騰訊 AI Lab 共 14 篇論文入選,位居國內企業前列。這也是騰訊 AI Lab 第四次參加 NeurIPS,會議期間,我們選取了一篇來自騰訊 AI Lab 的優秀論文進行解讀。
在這篇由騰訊 AI Lab 主導,和華南理工大學合作完成的論文中,作者利用強化學習的方法學習了一種神經網路結構轉換器。它能對任意的神經網路結構進行優化,將其轉換為更緊湊、識別精度更高的結構。以下為論文的詳細解讀。
NAT: Neural Architecture Transformer for Accurate and Compact Architectures
論文連結:https://papers.nips.cc/paper/8362-nat-neural-architecture-transformer-for-accurate-and-compact-architectures.pdf
現有的深度神經網路結構要麼是人工設計的,要麼是通過神經網路結構搜尋 (NAS) 方法自動搜尋得到的。然而,這些網路結構可能包含許多冗餘的計算操作,存在可優化的空間。為了實現網路結構的優化,作者提出了一個神經網路結構轉換器(Neural Architecture Transformer,簡稱為 NAT)的方法。該方法可以用計算複雜度更低的計算操作代替網路結構中冗餘的操作,從而實現效能提高的同時,保證不會引入額外的引數和計算量。
神經網路中的計算操作可以分為三類,即 S, N, O。其中,S 表示跳躍連線,N 表示為空連線(即兩個節點之間沒有連線),O 表示除了跳躍連線和空連線之外的其它操作(如:卷積、池化操作等)。顯然,這三者計算量的大小順序為:O>S>N。為了降低網路結構的計算複雜度,我們希望所學到的 NAT 用計算量更少的操作來代替原網路結構中的冗餘操作。因此,NAT 遵循以下的轉換規則:OàS, OàN, SàN。由於跳躍連線往往有助於提升模型的效能而且其引入的計算量非常少,因此 NAT 也允許 NàS。總之,NAT 的轉換方案如下圖所示。
具體來講,對於任意一個服從分佈p(·)的網路結構β,NAT 的目標為尋求找到,僅僅通過上述所允許的操作變化得到的,最優的結構α。這個優化問題可以寫成:
其中:
- R(α│β)=R(α,w_α )-R(β,w_β ),R(α,w_α ) 表示最優引數為 w_α的網路結構α在驗證集合上的效能;
- c(α)≤κ 是所得到的模型的計算開銷的一個約束。
然而,直接獲得最優的結構α是很困難的。因此,NAT 首先學習一個策略
,然後從學到的策略中取樣α,即α服從
。為了學習策略π,我們解決以下優化問題:
為了解決該優化問題,作者採用了強化學習方法中的策略梯度方法。為此,需要構造一個合適的策略函式。由於網路結構β可以用 (X,A) 表示(其中 A 為鄰接矩陣,X 為節點特徵),來表示,作者在這裡的策略π(α|β,θ) 採用了兩層的圖卷積神經網路(GCN),即:
其中,
此外文章採用了引數共享的方法來避免從頭訓練每個結構的引數。總體看來,優化思路就是對下面兩步進行迭代優化:
1、更新神經網路引數 w,(利用了引數共享的思想):
2、更新θ,(利用最大熵鼓勵探索):
其中第 2 步的流程示意圖如下所示:
為了驗證 NAT 的有效性,作者將 NAT 應用於人工設計的結構(如:VGG、ResNet、MobileNet)和 NAS 得到的結構(如:ENAS、DARTS、NAONet)。結果分別見表 1 和表 2 所示。
表 1. NAT 在人工設計的網路結構上的優化結果。
表 2. NAT 在 NAS 方法所得的網路結構上的優化結果。
從表 1 和表 2,可以觀察到,在 ImageNet 資料集上,經過 NAT 優化後的模型都比原來的基準模型,在計算複雜度相近甚至更低的情況下,獲得了更高的識別精度。
下面,對 NAT 優化後的模型結構進行視覺化。圖 1 和圖 2 分別給出了 NAT 在人工和 NAS 所設計的網路結構上的優化結果。
圖 1. NAT 在人工設計的網路結構上的優化結果。
如圖 1 所示,對於人工設計的網路結構,NAT 引入額外的跳躍連線來提高識別精度。
圖 2. NAT 在 NAS 設計的網路結構上的優化結果。
從圖 2 可以觀察到,對於 NAS 方法得到的網路結構,NAT 通過使用跳躍連線替換冗餘操作或者直接刪除連線的方法來降低計算量。
此外,作者還對比了不同的策略函式,發現 GCN 優於傳統的 LSTM 模型。總之,這項研究對自動化機器學習、網路結構設計,深度學習模型效能優化等諸多實際機器學習問題有重要的指導意義。