自動化機器學習(AutoML)最近變得越來越火,是機器學習下個發展方向之一。其中的神經網絡結構搜索(NAS)是其中重要的技術之一。人工設計網絡需要豐富的經驗和專業知識,神經網絡有衆多的超參數,導致其搜索空間巨大。NAS即是在此巨大的搜索空間裏自動地找到最優的網絡結構,實現深度學習的自動化。自2017年穀歌與MIT各自在ICLR上各自發表基於強化學習的NAS以來,已產出200多篇論文,僅2019年上半年就有100多篇論文。此係列文章將解讀AutoDL領域的經典論文與方法,筆者也是剛接觸這個領域,有理解錯誤的地方還請批評指正!
此係列的計劃寫作文章列表(不定期更新):
- AutoDL論文解讀(一):基於強化學習的開創性工作
- AutoDL論文解讀(二):基於遺傳算法的典型方法
- AutoDL論文解讀(三):基於塊搜索的NAS
- AutoDL論文解讀(四):權值共享的NAS
- AutoDL論文解讀(五):可微分方法的NAS
- AutoDL論文解讀(六):基於代理模型的NAS
- AutoDL論文解讀(七):基於one-shot的NAS
- AutoDL論文解讀(八):NAS中的遷移學習
- AutoDL論文解讀(九):強化學習基礎
- AutoDL論文解讀(十):遺傳算法基礎
此篇博文介紹CMU的《DARTS:Differentiable Architecture Search》。之前介紹的NAS方法搜索空間都是離散的,而可微分方法將搜索空間鬆弛化使其變成連續的,則可以使用梯度的方法來解決。
一、DARTS:Differentiable Architecture Search
1、搜索空間
DARTS也是搜索卷積cell然後堆疊cell形成最終的網絡。這裏的cell是一個包含有向無環圖,包含一個有N個節點的有序序列。每個節點x(i)是一個隱含表示(比如特徵圖),每個有向的邊(i,j)是變換x(i)的操作o(i,j)。作者假設cell有兩個輸入加點和一個輸出節點,cell的輸入輸出設置和《Learning Transferable Architectures for Scalable Image Recognition》裏的一致。每個中間節點是它所有的前驅節點計算得到:
x(i)=j<i∑o(i,j)(x(j))
一個特殊的操作:zero,包括在可能的操作集合裏,表示兩個節點之間沒有連接。學習cell結構的任務就轉換成了學習邊上的操作。
2、鬆散化和優化
令O爲可選操作的集合(比如卷積、最大池化、zero),每個操作表示作用在x(i)上的函數o(⋅)。爲了使搜索空間連續化,作者將特定操作的選擇鬆弛化爲在所有可能操作上的softmax:
oˉ(i,j)(x)=o∈O∑∑o′∈Oexp(αo′(i,j))exp(αo(i,j))o(x)
一對節點(i,j)之間的操作被一個∣O∣維向量α(i,j)參數化。鬆弛化之後,搜索任務就變成了學習一組連續的變量α={α(i,j)},如下圖所示:
圖(a)表示初始化的邊,操作是未知的。圖(b)通過在每條邊放置混合的候選操作來鬆弛搜索空間,每個顏色的線表示不同的操作。圖(c)是通過解決一個優化問題,聯合訓練候選操作的概率和網絡的權重,不同的粗細表示了α(i,j)的大小。圖(d)是最終學習到的結構。
學習到了所有操作的可能性oˉ(i,j)後,選擇其中最優可能的操作,也就是o(i,j)=argmaxo∈Oαo(i,j)。接下來,我們都用α表示結構。
鬆弛化之後,我們的目標就是共同地學習結構α和權重w,DARTS的目標是用梯度下降優化驗證集損失。令Ltrain和Lval分別表示訓練和驗證損失,我們就是要找到一個最優的α∗最小化驗證集損失Lval(w∗,α∗),其中w∗通過最小化訓練集損失Ltrain(w,α∗)。這是一個雙層優化問題(bilevel opyimization problem),α是上層變量,w是下層變量:
minα s.t. Lval(w∗(α),α)w∗(α)=argminwLtrain(w,α)(1)
3、近似迭代求解優化問題
解決上面的雙層優化問題是困難的,因爲任何α的改變都會要求重新計算w∗(α)。因此作者提出了一種近似的迭代解法,用梯度下降在權重空間和結構空間中輪流地優化w和α:
在第k步,給定當前結構αk−1,我們通過在最小化Ltrain(wk−1,αk−1)的方向上移動wk−1來獲得wk。然後固定wk,用單步梯度下降最小化驗證集損失,以此更新結構:
Lval(wk−ξ∇wLtrain(wk,αk−1),αk−1)(2)
其中ξ是學習率。通過求用式(2)關於α的導數得到結構梯度(爲了簡介,省略了角標k):
∇αLval(w′,α)−ξ∇α,w2Ltrain(w,α)∇w′Lval(w′,α)(3)
其中w′=w−ξ∇wLtrain(w,α)。上式第二項包含了矩陣向量乘積,難以計算。不過使用有限差分近似可以大大降低複雜度,令ϵ是一個很小的數,w+=w+ϵ∇w′Lval(w′,α) ,w−=w−ϵ∇w′Lval(w′,α),那麼:
∇α,w2Ltrain(w,α)∇w′Lval(w′,α)≈2ϵ∇αLtrain(w+,α)−∇αLtrain(w−,α)(4)
當ϵ=0時,式(3)的二階導數消失,結構梯度僅由∇αLval(w,α)提供,通過假設α和w相互獨立來啓發式地最優化驗證集損失。這會加速計算,但通過實驗發現效果並不好。因此要選擇一個合適的ϵ值。作者稱ϵ=0的情況爲一階近似,ϵ>0爲二階近似
參考文獻
[1] Liu, Hanxiao, Karen Simonyan, and Yiming Yang. “Darts: Differentiable architecture search.” arXiv preprint arXiv:1806.09055 (2018).
[2] 《深度理解AutoML和AutoDL》