原文鏈接:https://arxiv.org/pdf/1910.04465.pdf? 發(fā)表:CVPR 2019
編輯:牛濤
code:https://github.com/D-X-Y/NAS-Projects
作者argue的還是之前的RL或EA的NAS方法復(fù)雜度太高昆著,提出一種基于梯度的高效NAS方法畅厢。
本文依舊是搜索cell然后堆疊成網(wǎng)絡(luò)激率,cell也是分為normal和reduction射窒。每個cell中1、2為輸入節(jié)點,中間為計算節(jié)點,最終為輸出節(jié)點缕贡,輸出節(jié)點的結(jié)果是計算節(jié)點結(jié)果的concat。
之前的NAS方法拣播,每個節(jié)點間都有一組可學(xué)習(xí)參數(shù)晾咪,過softmax后變成概率分布,用這個分布來抽樣決定節(jié)點間采取哪種操作贮配。但是這個抽樣過程不可微谍倦,因此作者利用了gumbel-softmax的方式,使得梯度可以傳遞泪勒。
本文中昼蛀,每個計算節(jié)點的輸出都是之前所有節(jié)點根據(jù)所選操作計算后的疊加,如下式
網(wǎng)絡(luò)中的網(wǎng)絡(luò)參數(shù)與結(jié)構(gòu)參數(shù)是交替更新的圆存。在更新網(wǎng)絡(luò)參數(shù)時叼旋,在訓(xùn)練集上根據(jù)gumbel-max的輸出選擇最大的那個操作;在更新結(jié)構(gòu)參數(shù)時辽剧,在驗證集上使用gumbel-softmax可以傳遞梯度送淆。(沒有看代碼,但是文章似乎是每次只根據(jù)argmax選最大的操作用來更新網(wǎng)絡(luò)參數(shù)與結(jié)構(gòu)參數(shù)怕轿,這樣不會很吃初始化嗎?同時gumbel-softmax中的溫度如果調(diào)控不好辟拷,不會很容易偏向一個操作嗎撞羽?)
由于訓(xùn)練時只選擇了一個最大的操作來更新,因此可以節(jié)省N倍的顯存并加快訓(xùn)練衫冻,本方法可以直接用于大規(guī)模數(shù)據(jù)集的搜索诀紊,但是文章說并沒有得到很好的結(jié)果。訓(xùn)練完成后隅俘,每個node只保留兩個支路邻奠。