文獻閱讀(91)

  • 題目:proxyless NAS: direct neural architecture search on target task and hardware
  • 時間:2019
  • 會議:ICLR
  • 研究機構:韓松

1 縮寫 & 引用

2 abstract & introduction

強化學習計算量太大了,使用proxy的話又不能保證是最優的,這裏提出的是不用proxy的算法,能在大規模數據集

在這裏插入圖片描述
本篇論文的貢獻:

  1. 提出了算法Proxyless NAS,不需要proxy,就能在大規模數據集上直接NAS
  2. 對NAS提出了基於路徑的剪枝
  3. 對於硬件的延時或者其他指標,提出了基於梯度的方法: latency regularization loss
  4. 在CIFAR-10和ImageNet數據集上取得了很好的效果

3 相關工作

傳統NAS被認定是一個meta-learning過程,有一個meta控制器如RNN,但是計算量太大了
爲了提升效率,重點在於減少重訓練的時間,hypernetwork可以爲每個採樣的網絡產生權重,不需要重新訓練。不過這些工作都是在比較小規模的數據集
one-shot或者DARTS不需要meta控制器或者hypernetwork,他們認爲就是從一個over-parameterized的網絡開始,這個over-parameterized的網絡有所有的候選路徑,但是這也需要proxy的方法來減少顯存佔用的空間

4 方法論

4.1 構建一個over-parameterized網絡

在這裏插入圖片描述
對於某一層,假設一共有N種可能的操作,如卷積、池化、identity之類的,那麼最開始這一層就有N條路經,每一條路徑都有一個概率值或者叫architecture參數αi\alpha_i,最後這一層用哪個算子就是取最高的αi\alpha_i,所以

3.2 二值化的path

pi=exp(αi)exp(α)p_i=\frac{exp(\alpha_i)}{\sum {exp(\alpha)}}
在這裏插入圖片描述
每次訓練的時候,可能要把這N中可能的路徑都走一遍,每次就是按照概率pip_i隨機選一個算子作爲這一層的操作,
在這裏插入圖片描述
訓練權重的時候,固定architecture參數αi\alpha_i不變,按照上面辦法隨機選一條路,在訓練集按照標準的梯度下降來更新權重。
訓練architecture參數αi\alpha_i時,固定權重不變,在validation集中更新architecture參數,那怎麼更新呢?這是自己提出的一個類似的基於梯度的方法,可以計算出Lαi\frac{\partial L}{\partial \alpha_i}

3.3 基於硬件的latency

每一個算子有一個latency,那麼這一層的latency就是各個算子的latency和算子的概率的加權和
在這裏插入圖片描述
上式的F就表示latency,在損失函數中既有cross-entropy又有latency
在這裏插入圖片描述

3.4 基於強化學習的方法

強化學習的最終目的是爲了最大化reward,這需要找到每一層最好的binary gate,也就是更新binarized參數α\alpha

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