AutoDL論文解讀(五):可微分方法的NAS

自動化機器學習(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是一個包含有向無環圖,包含一個有NN個節點的有序序列。每個節點x(i)x^{(i)}是一個隱含表示(比如特徵圖),每個有向的邊(i,j)(i,j)是變換x(i)x^{(i)}的操作o(i,j)o^{(i,j)}。作者假設cell有兩個輸入加點和一個輸出節點,cell的輸入輸出設置和《Learning Transferable Architectures for Scalable Image Recognition》裏的一致。每個中間節點是它所有的前驅節點計算得到:

x(i)=j<io(i,j)(x(j))x^{(i)}=\sum_{j<i}o^{(i,j)}(x^{(j)})

一個特殊的操作:zerozero,包括在可能的操作集合裏,表示兩個節點之間沒有連接。學習cell結構的任務就轉換成了學習邊上的操作。

2、鬆散化和優化

O\mathcal O爲可選操作的集合(比如卷積、最大池化、zerozero),每個操作表示作用在x(i)x^{(i)}上的函數o()o(\cdot)。爲了使搜索空間連續化,作者將特定操作的選擇鬆弛化爲在所有可能操作上的softmax:

oˉ(i,j)(x)=oOexp(αo(i,j))oOexp(αo(i,j))o(x) \bar{o}^{(i, j)}(x)=\sum_{o \in \mathcal{O}} \frac{\exp \left(\alpha_{o}^{(i, j)}\right)}{\sum_{o^{\prime} \in \mathcal{O}} \exp \left(\alpha_{o^{\prime}}^{(i, j)}\right)} o(x)

一對節點(i,j)(i,j)之間的操作被一個O|\mathcal O|維向量α(i,j)\alpha^{(i,j)}參數化。鬆弛化之後,搜索任務就變成了學習一組連續的變量α={α(i,j)}{\alpha} = \{\alpha^{(i,j)} \},如下圖所示:
在這裏插入圖片描述
圖(a)表示初始化的邊,操作是未知的。圖(b)通過在每條邊放置混合的候選操作來鬆弛搜索空間,每個顏色的線表示不同的操作。圖(c)是通過解決一個優化問題,聯合訓練候選操作的概率和網絡的權重,不同的粗細表示了α(i,j)\alpha^{(i,j)}的大小。圖(d)是最終學習到的結構。

學習到了所有操作的可能性oˉ(i,j)\bar{o}^{(i, j)}後,選擇其中最優可能的操作,也就是o(i,j)=argmaxoOαo(i,j)o^{(i,j)}={\rm argmax}_{o \in {\mathcal O}}\alpha_{o}^{(i,j)}。接下來,我們都用α\alpha表示結構。

鬆弛化之後,我們的目標就是共同地學習結構α\alpha和權重ww,DARTS的目標是用梯度下降優化驗證集損失。令Ltrain\mathcal L_{train}Lval\mathcal L_{val}分別表示訓練和驗證損失,我們就是要找到一個最優的α\alpha^{\ast}最小化驗證集損失Lval(w,α)\mathcal L_{val}(w^{\ast},\alpha^{\ast}),其中ww^{\ast}通過最小化訓練集損失Ltrain(w,α)\mathcal L_{train}(w,\alpha^{\ast})。這是一個雙層優化問題(bilevel opyimization problem),α\alpha是上層變量,ww是下層變量:

minαLval(w(α),α) s.t. w(α)=argminwLtrain(w,α)(1) \begin{aligned} \begin{array}{cl}{\min _{\alpha}} & {\mathcal{L}_{v a l}\left(w^{*}(\alpha), \alpha\right)} \tag1\\ {\text { s.t. }} & {w^{*}(\alpha)=\operatorname{argmin}_{w} \mathcal{L}_{\text {train}}(w, \alpha)}\end{array} \end{aligned}

3、近似迭代求解優化問題

解決上面的雙層優化問題是困難的,因爲任何α\alpha的改變都會要求重新計算w(α)w^{\ast}(\alpha)。因此作者提出了一種近似的迭代解法,用梯度下降在權重空間和結構空間中輪流地優化wwα\alpha
在這裏插入圖片描述
在第k步,給定當前結構αk1\alpha_{k-1},我們通過在最小化Ltrain(wk1,αk1){\mathcal L}_{train}(w_{k-1},\alpha_{k-1})的方向上移動wk1w_{k-1}來獲得wkw_{k}。然後固定wkw_{k},用單步梯度下降最小化驗證集損失,以此更新結構:

Lval(wkξwLtrain(wk,αk1),αk1)(2) \mathcal{L}_{v a l}\left(w_{k}-\xi \nabla_{w} \mathcal{L}_{t r a i n}\left(w_{k}, \alpha_{k-1}\right), \alpha_{k-1}\right) \tag2

其中ξ\xi是學習率。通過求用式(2)關於α\alpha的導數得到結構梯度(爲了簡介,省略了角標k):

αLval(w,α)ξα,w2Ltrain(w,α)wLval(w,α)(3) \nabla_{\alpha} \mathcal{L}_{v a l}\left(w^{\prime}, \alpha\right)-\xi \nabla_{\alpha, w}^{2} \mathcal{L}_{t r a i n}(w, \alpha) \nabla_{w^{\prime}} \mathcal{L}_{v a l}\left(w^{\prime}, \alpha\right) \tag3

其中w=wξwLtrain(w,α)w^{\prime}=w-\xi \nabla_{w} \mathcal{L}_{t r a i n}(w, \alpha)。上式第二項包含了矩陣向量乘積,難以計算。不過使用有限差分近似可以大大降低複雜度,令ϵ\epsilon是一個很小的數,w+=w+ϵwLval(w,α)w^{+}=w+\epsilon \nabla_{w^{\prime}} \mathcal{L}_{v a l}\left(w^{\prime}, \alpha\right)w=wϵwLval(w,α)w^{-}=w-\epsilon \nabla_{w^{\prime}} \mathcal{L}_{v a l}\left(w^{\prime}, \alpha\right),那麼:

α,w2Ltrain(w,α)wLval(w,α)αLtrain(w+,α)αLtrain(w,α)2ϵ(4) \nabla_{\alpha, w}^{2} \mathcal{L}_{t r a i n}(w, \alpha) \nabla_{w^{\prime}} \mathcal{L}_{v a l}\left(w^{\prime}, \alpha\right) \approx \frac{\nabla_{\alpha} \mathcal{L}_{t r a i n}\left(w^{+}, \alpha\right)-\nabla_{\alpha} \mathcal{L}_{t r a i n}\left(w^{-}, \alpha\right)}{2 \epsilon} \tag4

ϵ=0\epsilon=0時,式(3)的二階導數消失,結構梯度僅由αLval(w,α)\nabla_{\alpha} \mathcal{L}_{v a l}(w, \alpha)提供,通過假設α\alphaww相互獨立來啓發式地最優化驗證集損失。這會加速計算,但通過實驗發現效果並不好。因此要選擇一個合適的ϵ\epsilon值。作者稱ϵ=0\epsilon=0的情況爲一階近似,ϵ>0\epsilon>0爲二階近似

參考文獻

[1] Liu, Hanxiao, Karen Simonyan, and Yiming Yang. “Darts: Differentiable architecture search.” arXiv preprint arXiv:1806.09055 (2018).
[2] 《深度理解AutoML和AutoDL》

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