1. 程式人生 > 其它 >論文閱讀:《DARTS: Differentiable Architecture Search》(閱讀中)

論文閱讀:《DARTS: Differentiable Architecture Search》(閱讀中)

pdf


方法

拓撲結構

首先我們作一張有向無環圖。圖中節點記為\(x^{(i)}\),表示資料的某種潛在表達,例如一個特徵圖;邊記為\((i,j)\),邊的意義記作\(o^{(i,j)}\),可認為是“操作”。

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

也就是說,每一個節點所代表的數都是由其前驅節點完全總結而成。
特別地,我們引入零操作\(\mathbf{0}(x)=0\)表示空缺的連線。例如,如果\(o^{(i,j)}=\mathbf{0}\),那麼就可以認為節點i和節點j之間沒有連線。
以上就是DARTS中圖的基本拓撲結構。

連續鬆弛

進一步地,我們展示連續鬆弛方法。
在連續鬆弛圖中,我們沿用上述拓撲結構,並加以修改。

這是原文中沒有的,而是我基於原文的文意重新總結出來的。

\[\bar{o}^{(i,j)}(x)= \sum_{o\in\mathcal{O}} \cfrac {\exp(\alpha_o^{(i,j)})} {\sum_{o'\in\mathcal{O}} \exp(\alpha_{o'}^{(i,j)})}o(x)\]

相當於是說,\(\bar{o}\)\(o\)的加權和,加權方式類似於softmax,權重為\(\alpha_o^{(i,j)}\),也就是每條邊對應不止一個\(o\),每條邊的每個\(o\)對應一個權重\(\alpha\)
並且,\(\mathcal{O}\)表示操作\(o\)

的候選型別,例如卷積、池化等。

隨後我們需要規定訓練時損失\(\mathcal{L}_{train}\)和評估時損失\(\mathcal{L}_{val}\)
我們的訓練任務可以表示成如下的2級優化問題:

\[\min_{\alpha}\mathcal{L}_val(w^*(\alpha),\alpha) \]\[s.t. w^*(\alpha)=\arg\min_w\mathcal{L}_{train}(w,\alpha) \]

訓練演算法

為每個edge建立一個混合操作\(\bar{o}^{(i,j)}\),其中這個混合操作受到引數\(\alpha^{(i,j)}\)的調控。
當未收斂時,執行:

  • 1,通過下降\(\nabla_{\alpha}\mathcal{L}_{val}(w-\xi\nabla_w\mathcal{L}_{train}(w,\alpha),\alpha)\)來更新\(\alpha\)。如果是first-order approximation的情況,則\(\xi\)為零。
  • 2,通過下降\(\nabla_w\mathcal{L}_{trrain}(w,\alpha)\)來更新\(w\)

根據最終學習到的\(\alpha\)得到最終架構。

基本的框架就是這個兩部下降迴圈。
\(\alpha\)在此處叫做結構引數,\(w\)在此處叫做權重。

近似架構梯度

在上述演算法框架中可見,我們認為

\[\nabla_{\alpha}\mathcal{L}_{val}(w^*(\alpha),\alpha) \approx \nabla_{\alpha}\mathcal{L}_{val}(w-\xi\nabla_w\mathcal{L}_{train}(w,\alpha),\alpha)\]

。這種近似是在NAS【評估】階段的改進,為的是在對w的訓練還不完全收斂時就得出對應的\(\alpha\)的損失函式。

“近似架構梯度”這個直譯可能並不貼切。意譯的話應該譯作“結構引數梯度的近似”。

推導離散架構

相對於應用了\(\alpha\)的“連續架構”而言,我們還需要一個離散架構作為最終結果。


論文十問

Q1 論文試圖解決什麼問題?
Q2 這是否是一個新的問題?
Q3 這篇文章要驗證一個什麼科學假設?
Q4 有哪些相關研究?如何歸類?誰是這一課題在領域內值得關注的研究員?
Q5 論文中提到的解決方案之關鍵是什麼?
Q6 論文中的實驗是如何設計的?
Q7 用於定量評估的資料集是什麼?程式碼有沒有開源?
Q8 論文中的實驗及結果有沒有很好地支援需要驗證的科學假設?
Q9 這篇論文到底有什麼貢獻?
Q10 下一步呢?有什麼工作可以繼續深入?