日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

论文笔记系列-Efficient Neural Architecture Search via Parameter Sharing

發(fā)布時(shí)間:2025/3/20 编程问答 35 豆豆
生活随笔 收集整理的這篇文章主要介紹了 论文笔记系列-Efficient Neural Architecture Search via Parameter Sharing 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

Summary

本文提出超越神經(jīng)架構(gòu)搜索(NAS)的高效神經(jīng)架構(gòu)搜索(ENAS),這是一種經(jīng)濟(jì)的自動化模型設(shè)計(jì)方法,通過強(qiáng)制所有子模型共享權(quán)重從而提升了NAS的效率,克服了NAS算力成本巨大且耗時(shí)的缺陷,GPU運(yùn)算時(shí)間縮短了1000倍以上。在Penn Treebank數(shù)據(jù)集上,ENAS實(shí)現(xiàn)了55.8的測試?yán)Щ蠖?#xff1b;在CIFAR-10數(shù)據(jù)集上,其測試誤差達(dá)到了2.89%,與NASNet不相上下(2.65%的測試誤差)

Research Objective 作者的研究目標(biāo)

設(shè)計(jì)一種快速有效且耗費(fèi)資源低的用于自動化網(wǎng)絡(luò)模型設(shè)計(jì)的方法。主要貢獻(xiàn)是基于NAS方法提升計(jì)算效率,使得各個(gè)子網(wǎng)絡(luò)模型共享權(quán)重,從而避免低效率的從頭訓(xùn)練。

Problem Statement 問題陳述,要解決什么問題?

本文提出的方法是對NAS的改進(jìn)。NAS存在的問題是它的計(jì)算瓶頸,因?yàn)镹AS是每次將一個(gè)子網(wǎng)絡(luò)訓(xùn)練到收斂,之后得到相應(yīng)的reward,再將這個(gè)reward反饋給RNN controller。但是在下一輪訓(xùn)練子網(wǎng)絡(luò)時(shí),是從頭開始訓(xùn)練,而上一輪的子網(wǎng)絡(luò)的訓(xùn)練結(jié)果并沒有利用起來。

另外NAS雖然在每個(gè)節(jié)點(diǎn)上的operation設(shè)計(jì)靈活度較高,但是固定了網(wǎng)絡(luò)的拓?fù)浣Y(jié)構(gòu)為二叉樹。所以ENAS對于網(wǎng)絡(luò)拓?fù)浣Y(jié)構(gòu)的設(shè)計(jì)做了改進(jìn),有了更高的靈活性。

Method(s) 解決問題的方法/算法

ENAS算法核心

回顧NAS,可以知道其本質(zhì)是在一個(gè)大的搜索圖中找到合適的子圖作為模型,也可以理解為使用單個(gè)有向無環(huán)圖(single directed acyclic graph, DAG)來表示NAS的搜索空間。

基于此,ENAS的DAG其實(shí)就是NAS搜索空間中所有可能的子模型的疊加。

下圖給出了一個(gè)通用的DAG示例

如圖示,各個(gè)節(jié)點(diǎn)表示本地運(yùn)算,邊表示信息的流動方向。圖中的6個(gè)節(jié)點(diǎn)包含有多種單向DAG,而紅色線標(biāo)出的DAG則是所選擇的的子圖。

以該子圖為例,節(jié)點(diǎn)1表示輸入,而節(jié)點(diǎn)3和節(jié)點(diǎn)6因?yàn)槭嵌斯?jié)點(diǎn),所以作為輸出,一般是將而二者合并求均值后輸出。

在討論ENAS的搜索空間之前,需要介紹的是ENAS的測試數(shù)據(jù)集分別是CIFAR-10和Penn Treebank,前者需要通過ENAS生成CNN網(wǎng)絡(luò),后者則需要生成RNN網(wǎng)絡(luò)。

所以下面會從生成RNN和生成CNN兩個(gè)方面來介紹ENAS算法。

1.Design Recurrent Cells

本小節(jié)介紹如何從特定的DAG和controller中設(shè)計(jì)一個(gè)遞歸神經(jīng)網(wǎng)絡(luò)的cell(Section 2.1)?

首先假設(shè)共有\(N\)個(gè)節(jié)點(diǎn),ENAS的controller其實(shí)就是一個(gè)RNN結(jié)構(gòu),它用于決定

  • 哪條邊需要激活
  • DAG中每個(gè)節(jié)點(diǎn)需要執(zhí)行什么樣的計(jì)算

下圖以\(N=4\)為例子展示了如何生成RNN。

假設(shè)\(x[t]\)為輸入,\(h[t-1]\)表示上一個(gè)時(shí)刻的輸出狀態(tài)。

  • 節(jié)點(diǎn)1:由圖可知,controller在節(jié)點(diǎn)1上選擇的操作是tanh運(yùn)算,所以有\(h_1=tanh(X_t·W^{(X)}+h_{t-1}·W_1^{(h)})\)
  • 節(jié)點(diǎn)2:同理有\(h_2 = ReLU(h_1·W_{2,1}^{(h)})\)
  • 節(jié)點(diǎn)3:\(h_3 = ReLU(h_2·W_{3,2}^{(h)})\)
  • 節(jié)點(diǎn)4:\(h_4 = ReLU(h_1·W_{4,1}^{(h)})\)
  • 節(jié)點(diǎn)3和節(jié)點(diǎn)4因?yàn)椴皇瞧渌?jié)點(diǎn)的輸入,所以二者的平均值作為輸出,即\(h_t=\frac{h_3+h_4}{2}\)

由上面的例子可以看到對于每一組節(jié)點(diǎn)\((node_i,node_j),i<j\),都會有對應(yīng)的權(quán)重矩陣\(W_{j,i}^{(h)}\)。因此在ENAS中,所有的recurrent cells其實(shí)是在搜索空間中共享這樣一組權(quán)重的。

但是我們可以很容易知道ENAS的搜索空間是非常龐大的,例如假設(shè)共有4中激活參數(shù)(tanh,identity,sigmoid,ReLU)可以選擇,節(jié)點(diǎn)數(shù)為N,那么搜索空間大小則為\(4^N * N!\),如果N=12,那么就將近有\(10^{15}\)種模型參數(shù)。

2.1 Design Convolutional Networks

本小節(jié)解釋如何設(shè)計(jì)卷積結(jié)構(gòu)的搜索空間

回顧上面的Recurrent Cell的設(shè)計(jì),我們知道controller RNN在每一個(gè)節(jié)點(diǎn)會做如下兩個(gè)決定:a)該節(jié)點(diǎn)需要連接前面哪一個(gè)節(jié)點(diǎn) b)使用何種激活函數(shù)。

而在卷積模型的搜索空間中,controller RNN也會做如下兩個(gè)覺得:a)該節(jié)點(diǎn)需要連接前面哪一個(gè)節(jié)點(diǎn) b)使用何種計(jì)算操作。

在卷積模型中,(a)決定 (連接哪一個(gè)節(jié)點(diǎn)) 其實(shí)就是skip connections。(b)決定一共有6種選擇,分別是3*3和5*5大小的卷積核、3*3和5*5大小的深度可分離卷積核,3*3大小的最大池化和平均池化。

下圖展示了卷積網(wǎng)絡(luò)的生成示意圖。

2.2 Design Convolutional Cell

本文并沒有采用直接設(shè)計(jì)完整的卷積網(wǎng)絡(luò)的方法,而是先設(shè)計(jì)小型的模塊然后將模塊連接以構(gòu)建完整的網(wǎng)絡(luò)(Zoph et al., 2018)。

下圖展示了這種設(shè)計(jì)的例子,其中設(shè)計(jì)了卷積單元和 reduction cell。

接下來將討論如何利用 ENAS 搜索由這些單元組成的架構(gòu)。

假設(shè)下圖的DAG共有\(B\)個(gè)節(jié)點(diǎn),其中節(jié)點(diǎn)1和節(jié)點(diǎn)2是輸入,所以controller只需要對剩下的\(B-2\)個(gè)節(jié)點(diǎn)都要做如下兩個(gè)決定:a)當(dāng)前節(jié)點(diǎn)需要與那兩個(gè)節(jié)點(diǎn)相連 b)所選擇的兩個(gè)節(jié)點(diǎn)需要采用什么樣的操作。(可選擇的操作有5種:identity(id,相等),大小為3*3或者5*5的separate conv(sep),大小為3*3的最大池化。)

可以看到對于節(jié)點(diǎn)3而言,controller采樣的需要連接的兩個(gè)節(jié)點(diǎn)都是節(jié)點(diǎn)2,兩個(gè)節(jié)點(diǎn)預(yù)測的操作分別是sep 5*5和identity。

3.Training ENAS and Deriving Architectures

本小節(jié)介紹如何訓(xùn)練ENAS以及如何從ENAS的controller中生成框架結(jié)構(gòu)。(Section 2.2)

controller網(wǎng)絡(luò)是含有100個(gè)隱藏節(jié)點(diǎn)的LSTM。LSTM通過softmax分類器做出選擇。另外在第一步時(shí)controller會接收一個(gè)空的embedding作為輸入。

在ENAS中共有兩組可學(xué)習(xí)的參數(shù):

  • 子網(wǎng)絡(luò)模型的共享參數(shù),用\(w\)表示。
  • controller網(wǎng)絡(luò)(即LSTM網(wǎng)絡(luò)參數(shù)),用\(θ\)表示。

而訓(xùn)練ENAS的步驟主要包含兩個(gè)交叉階段:第一部訓(xùn)練子網(wǎng)絡(luò)的共享參數(shù)\(w\);第二個(gè)階段是訓(xùn)練controller的參數(shù)\(θ\)。這兩個(gè)階段在ENAS的訓(xùn)練過程中交替進(jìn)行,具體介紹如下:

子網(wǎng)絡(luò)模型共享參數(shù)\(w\)的訓(xùn)練

在這個(gè)步驟中,首先固定controller的policy network,即\(π(m;θ)\)。之后對\(w\)使用SGD算法來最小化期望損失函數(shù)\(E_{m~π}[L(m;w)]\)

其中\(L(m;w)\)是標(biāo)準(zhǔn)的交叉熵?fù)p失函數(shù):\(m\)表示根據(jù)policy network \(π(m;θ)\)生成的模型,然后用這個(gè)模型在一組訓(xùn)練數(shù)據(jù)集上計(jì)算得到的損失值。

根據(jù)Monte Carlo估計(jì)計(jì)算梯度公式如下:

\[\nabla_w E_{m-~π}(m;θ)[L(m;w)] ≈ \frac{1}{M} \sum_i^M \nabla_wL(m_i;w) \]

其中上式中的\(m_i\)表示由\(π(m;θ)\)生成的M個(gè)模型中的某一個(gè)模型。

雖然上式給出了梯度的無偏估計(jì),但是方差比使用SGD得到的梯度的方差大。但是當(dāng)\(M=1\)時(shí),上式效果還可以。

訓(xùn)練controller參數(shù)θ

在這個(gè)步驟中,首先固定\(w\),之后通過求解最大化期望獎(jiǎng)勵(lì)\(E_{m~π}[R(m;w)]\)來更新\(θ\)。其中在語言模型實(shí)驗(yàn)中\(R(m;w)=\frac{c}{valid\_ppl}\),perplexity是基于小批量驗(yàn)證集計(jì)算得到的;在分類模型試驗(yàn)中,\(R(m;w)\)等于基于小批量驗(yàn)證集的準(zhǔn)確率。

導(dǎo)出模型架構(gòu)

首先使用\(π(m,θ)\)生成若干模型。

之后對于每一個(gè)采樣得到的模型,直接計(jì)算其在驗(yàn)證集上得到的獎(jiǎng)勵(lì)。

最后選擇獎(jiǎng)勵(lì)最高的模型再次從頭訓(xùn)練。

當(dāng)然如果像NAS那樣把所有采樣得到的子模型都先從頭訓(xùn)練一邊,也許會對實(shí)驗(yàn)結(jié)果有所提升。但是ENAS之所以Efficient,就是因?yàn)樗挥眠@么做,原理繼續(xù)看下文。

Evaluation 評估方法

1.在 Penn Treebank 數(shù)據(jù)集上訓(xùn)練的語言模型

2.在 CIFAR-10 數(shù)據(jù)集上的圖像分類實(shí)驗(yàn)

由上表可以看出,ENAS的最終結(jié)果不如NAS,這是因?yàn)镋NAS沒有像NAS那樣從訓(xùn)練后的controller中采樣多個(gè)模型架構(gòu),然后從中選出在驗(yàn)證集上表現(xiàn)最好的一個(gè)。但是即便效果不如NAS,但是ENAS效果并不差太多,而且訓(xùn)練效率大幅提升。

下圖是生成的宏觀搜索空間。

ENAS 用了 11.5 個(gè)小時(shí)來發(fā)現(xiàn)合適的卷積單元和 reduction 單元,如下圖所示。

Conclusion

ENAS能在Penn Treebank和CIFAR-10兩個(gè)數(shù)據(jù)集上得到和NAS差不多的效果,而且訓(xùn)練時(shí)間大幅縮短,效率大大提升。



MARSGGBO原創(chuàng)





2018-8-7



總結(jié)

以上是生活随笔為你收集整理的论文笔记系列-Efficient Neural Architecture Search via Parameter Sharing的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。