原文鏈接:https://arxiv.org/pdf/1910.05733.pdf? 發(fā)表:ICCV 2019
編輯:牛濤
code:無(wú)
作者認(rèn)為悄窃,盡管One-Shot NAS很高效恬砂,但是典型的oneshot方法需要1)隨機(jī)采樣一堆網(wǎng)絡(luò) 2)挨個(gè)驗(yàn)證 3)選最好的君仆。大多數(shù)采樣的網(wǎng)絡(luò)沒(méi)用不說(shuō),采樣到的也只是搜索空間內(nèi)的一小部分但骨,離最優(yōu)解可能相差甚遠(yuǎn)卸勺。本文提出一種根據(jù)提出的evaluator進(jìn)行采樣的NAS方法,比起隨機(jī)選更容易選到最優(yōu)解瞎暑。
本質(zhì)上講本文就是在討論如何從一個(gè)全連接(即一個(gè)cell中所有節(jié)點(diǎn)都相連的拓?fù)浣Y(jié)構(gòu))中摳出每個(gè)cell的子結(jié)構(gòu)。對(duì)于這樣的全連接網(wǎng)絡(luò)(文章成為template network)忿偷,作者采用均勻采樣的方式確定每個(gè)node的輸入金顿,有順序均勻采樣的方式?jīng)Q定這兩個(gè)輸入要進(jìn)行何種操作,如下
之所以有順序是因?yàn)槿绻麅蓚€(gè)輸入相同時(shí)鲤桥,不至于出現(xiàn)操作也相同導(dǎo)致重復(fù)的情況揍拆。在更新網(wǎng)絡(luò)參數(shù)的時(shí)候,只根據(jù)采樣結(jié)果更新采樣到的操作中的參數(shù)茶凳,這樣不僅省顯存嫂拴,均勻采樣也防止網(wǎng)絡(luò)傾向于淺且快速收斂的結(jié)構(gòu)。
那么如何更新結(jié)構(gòu)參數(shù)呢贮喧?首先對(duì)于兩個(gè)輸入筒狠,對(duì)應(yīng)有兩個(gè)概率分布參數(shù),有它生成的分布進(jìn)行采樣決定輸入情況箱沦;對(duì)于操作辩恼,由于是有序均勻采樣,因此共有
種可能性谓形,說(shuō)白了就是N個(gè)操作里抽兩個(gè)那么多灶伊。對(duì)應(yīng)會(huì)有個(gè)概率分布向量,從這個(gè)里抽樣得到對(duì)應(yīng)的操作寒跳。但是采樣每個(gè)傳遞梯度聘萨,因此類似于DARTS,在更新結(jié)構(gòu)參數(shù)的時(shí)候每個(gè)node的輸出寫成了所有輸入及操作的概率求和童太,如下
上式先給定操作米辐,然后分別對(duì)所有輸入求和胸完,在對(duì)所有操作概率求和,得到一個(gè)mix-operation翘贮。其實(shí)本質(zhì)上赊窥,可以將輸出看為所有操作關(guān)于輸入的概率求和,會(huì)有一個(gè)操作對(duì)是概率很大的择膝,那這一項(xiàng)所對(duì)應(yīng)的加權(quán)求和又會(huì)受到輸入概率分布影響誓琼,所以其實(shí)操作概率最大且輸入概率最大的那一組可能得到的輸出,會(huì)占整個(gè)輸出的很大一部分肴捉。在網(wǎng)絡(luò)參數(shù)確定的情況下腹侣,我們就是要通過(guò)梯度下降找到這樣的組合。
值得一提的是齿穗,網(wǎng)絡(luò)參數(shù)是在訓(xùn)練集上更新的傲隶,而結(jié)構(gòu)參數(shù)是在驗(yàn)證集上(和之前的DARTS也類似)。
當(dāng)template network中的網(wǎng)絡(luò)參數(shù)與estimator對(duì)應(yīng)的結(jié)構(gòu)參數(shù)都收斂后窃页,我們根據(jù)estimator的概率分布采樣1000次并驗(yàn)證得到最好的那個(gè)跺株。由于template network已經(jīng)收斂,采樣得到的網(wǎng)絡(luò)就是已經(jīng)效果很好的脖卖,按理說(shuō)不需要再進(jìn)行額外訓(xùn)練了乒省。算法的偽代碼如下: