本文為三星發(fā)表在 ECCV 2020 的基于二值網(wǎng)絡(luò)搜索的 NAS 工作(BATS),論文題目:BATS: Binary ArchitecTure Search。通過(guò)結(jié)合神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索,大大縮小了二值模型與實(shí)值之間的精度差距,并在CIFAR 和 ImageNet 數(shù)據(jù)集上的實(shí)驗(yàn)和分析證明了所提出的方法的有效性。
- 論文鏈接:BATS: Binary ArchitecTure Search
- 源碼鏈接(即將開(kāi)源):https://github.com/1adrianb/binary-nas
摘要
本文提出了二進(jìn)制架構(gòu)搜索(BATS),這是一個(gè)通過(guò)神經(jīng)架構(gòu)搜索(NAS)大幅縮小二進(jìn)制神經(jīng)網(wǎng)絡(luò)與其實(shí)值對(duì)應(yīng)的精度差距的框架。實(shí)驗(yàn)表明,直接將NAS 應(yīng)用于二進(jìn)制領(lǐng)域的結(jié)果非常糟糕。為了緩解這種情況,本文描述了將 NAS 成功應(yīng)用于二進(jìn)制領(lǐng)域的 3 個(gè)關(guān)鍵要素:
- (1) 引入并設(shè)計(jì)了一個(gè)新的面向二進(jìn)制的搜索空間。
- (2) 提出了一個(gè)新的控制和穩(wěn)定搜索拓?fù)浣Y(jié)構(gòu)的機(jī)制。
- (3) 提出并驗(yàn)證了一系列新的二進(jìn)制網(wǎng)絡(luò)搜索策略,以實(shí)現(xiàn)更快的收斂和更低的搜索時(shí)間。
實(shí)驗(yàn)重新結(jié)果證明了所提出的方法的有效性和直接在二進(jìn)制空間中搜索的必要性。并且,在CIFAR10、CIFAR100 和 ImageNet 數(shù)據(jù)集上設(shè)計(jì)了 SOTA 的二元神經(jīng)網(wǎng)絡(luò)架構(gòu)。
方法
搜索空間重定義
標(biāo)準(zhǔn) DARTS 搜索空間的問(wèn)題
標(biāo)準(zhǔn) DARTS 搜索空間下搜索得到的網(wǎng)絡(luò)結(jié)構(gòu)二值化訓(xùn)練是無(wú)法收斂的,原因如下:
- 深度可分離卷積(SepConv)二值化難。首先,實(shí)數(shù)深度可分離卷積本身就是普通標(biāo)準(zhǔn)卷積的“壓縮”版本,其次,經(jīng)過(guò)二值化后進(jìn)一步對(duì)深度可分離卷積進(jìn)行了近似操作。因此,深度可分離卷積二值化存在“雙重近似問(wèn)題”。
- 1x1卷積 & bottlneck 塊 二值化難。因?yàn)?strong>關(guān)鍵的FeatureMap信息,由于1x1卷積權(quán)重值少和bottlneck所處的重要位置被二值化后無(wú)法有效傳遞下去。
- DilConv & SepConv 二值化難。標(biāo)準(zhǔn)的 DARTS 搜索空間定義的
DilConv和SepConv操作包含的卷積序列個(gè)數(shù)不同。DilConv包含兩個(gè)卷積序列,SepConv包含四個(gè)卷積序列。導(dǎo)致訓(xùn)練過(guò)程中兩者的收斂速度不同,并且會(huì)因此放大二值化過(guò)程中的梯度衰減現(xiàn)象(論文是這樣描述的,不過(guò)具體原因不清楚)
二值神經(jīng)網(wǎng)絡(luò)搜索空間
二值神經(jīng)網(wǎng)絡(luò)搜索空間與標(biāo)準(zhǔn) DARTS 搜索空間對(duì)比如下圖所示:

主要存在以下幾方面的修改:
- 刪除了 1x1 卷積。
-
重新分配了深度可分離卷積中 Group Size 與 Channel 的關(guān)系。標(biāo)準(zhǔn)的深度可分離卷積中
#groups = #in_channel。本文中,CIFAR數(shù)據(jù)集上預(yù)定義Group卷積為12 Groups x 3 Channels = 36 Channels;ImageNet 數(shù)據(jù)集上預(yù)定義Group卷積為16 Groups x 5 Channels = 80 Channels。 - 每個(gè)opetation只包含一個(gè)卷積序列,便于學(xué)習(xí)和實(shí)現(xiàn)低延時(shí)。
-
每個(gè)卷積操作都加上
Skip-Connect操作,有利于保持FeatureMap信息的傳遞和保留。
搜索的正則化和穩(wěn)定性
DARTS 搜索的不穩(wěn)定分析
盡管 DARTS 取得了成功,但根據(jù)隨機(jī)種子的不同,DARTS 的精度在運(yùn)行之間可能會(huì)有很大的差異。事實(shí)上,在有些情況下,隨機(jī)搜索獲得的架構(gòu)甚至比搜索得到的架構(gòu)通過(guò)表現(xiàn)的更好。此外,特別是當(dāng)訓(xùn)練時(shí)間較長(zhǎng)或在較大的數(shù)據(jù)集上進(jìn)行搜索時(shí),DARTS可能會(huì)出現(xiàn) Skip-Connect 富集的問(wèn)題。常用的解決方法包括:
- 在架構(gòu)搜索過(guò)程中對(duì)跳連應(yīng)用dropout
- 通過(guò)保留每個(gè)單元最多2個(gè)跳連作為后處理步驟,簡(jiǎn)單地促成概率第二高的操作
但是,這種機(jī)制仍然會(huì)導(dǎo)致大量的隨機(jī)性,而且并不總是有效的:例如,它可能會(huì)用池化層(沒(méi)有學(xué)習(xí)能力)取代跳過(guò)連接,或者搜索的架構(gòu)跳連包含的太少。當(dāng)搜索是在二進(jìn)制域中直截了當(dāng)?shù)剡M(jìn)行時(shí),這樣的問(wèn)題就更加明顯了。鑒于在搜索過(guò)程中,節(jié)點(diǎn) j 的輸入是通過(guò)對(duì)所有輸入邊的加權(quán)和來(lái)獲得的,為了最大限度地提高信息流,架構(gòu)參數(shù) α 傾向于收斂到相同的值,使得最終架構(gòu)的選擇存在問(wèn)題,并且容易受到噪聲的影響,導(dǎo)致拓?fù)浣Y(jié)構(gòu)的性能可能比隨機(jī)選擇更差。此外,搜索高度偏向于實(shí)值操作(池化和跳連),使得搜索在早期階段可以提供更大的收益。
溫度正則(temperature regularization)
為了緩解上述問(wèn)題,并使得搜索程序更具辨別力,迫使其做出 "harder" 的決策,本文借鑒知識(shí)蒸餾的思路,建議使用溫度因子 T<1 的正則策略,定義從節(jié)點(diǎn)i到j(luò)的流程如下公式所示:
采用溫度正則方法可以使架構(gòu)參數(shù)的分布不那么均勻,更加尖銳(即更有辨別力)。在搜索過(guò)程中,由于信息流是使用加權(quán)進(jìn)行聚合的,所以網(wǎng)絡(luò)不能從所有信息流中提取信息,來(lái)平等地(或接近平等地)依賴所有可能的操作。相反,為了確保收斂到一個(gè)滿意的解決方案,它必須將最高的概率分配給一個(gè)非0操作的路徑,由一個(gè)次元溫度(T <1)強(qiáng)制執(zhí)行。這種行為也更接近評(píng)估過(guò)程,從而減少搜索(網(wǎng)絡(luò)從所有路徑中提取信息)和評(píng)估之間的性能差異。

上圖中,圖1描述了給定單元在不同溫度下的架構(gòu)參數(shù)分布。對(duì)于低溫(T=0.2),網(wǎng)絡(luò)被迫做出更多的判別性決策,這反過(guò)來(lái)又使它減少了對(duì) Skip-Connect 的依賴。圖2 進(jìn)一步證實(shí)了這一點(diǎn),它描述了在不同溫度下搜索過(guò)程結(jié)束時(shí),在 Normal Cell 中各操作被選擇的概率。
二值搜索策略
盡管二值網(wǎng)絡(luò)具有加速和節(jié)省空間的特點(diǎn),但與實(shí)值網(wǎng)絡(luò)相比,二值網(wǎng)絡(luò)的訓(xùn)練仍然比較困難,其方法通常需要一個(gè)預(yù)訓(xùn)練階段或仔細(xì)調(diào)整超參數(shù)和優(yōu)化器。對(duì)于搜索二值網(wǎng)絡(luò)的情況,直接實(shí)現(xiàn)二值權(quán)重和激活的架構(gòu)搜索,在大多數(shù)嘗試中,要么導(dǎo)致退化的拓?fù)浣Y(jié)構(gòu),要么訓(xùn)練簡(jiǎn)單地收斂到極低的精度值。此外,直接在實(shí)域中執(zhí)行搜索,然后對(duì)網(wǎng)絡(luò)進(jìn)行二值化是次優(yōu)的。
為了緩解這個(gè)問(wèn)題,本文提出了一個(gè)兩階段的優(yōu)化過(guò)程,在搜索過(guò)程中,激活是二值化的,而權(quán)重是實(shí)值化的,一旦發(fā)現(xiàn)了最佳架構(gòu),我們?cè)谠u(píng)估階段也要對(duì)權(quán)重進(jìn)行二值化?!靖唧w地說(shuō),在評(píng)估過(guò)程中,首先從頭開(kāi)始訓(xùn)練一個(gè)具有二值激活和實(shí)值權(quán)重的新網(wǎng)絡(luò),然后對(duì)權(quán)重進(jìn)行二值化。最后,在測(cè)試集上對(duì)完全二值化的網(wǎng)絡(luò)進(jìn)行評(píng)估?!窟@是因?yàn)閷?shí)值網(wǎng)絡(luò)的權(quán)重通??梢员欢祷?,而不會(huì)顯著降低精度,但激活的二值化就不一樣了,由于可能的狀態(tài)數(shù)量有限,網(wǎng)絡(luò)內(nèi)部的信息流急劇下降。因此,本文提出將問(wèn)題有效地分成兩個(gè)子問(wèn)題:權(quán)重和特征二值化,在搜索過(guò)程中,嘗試解決最難的一個(gè)問(wèn)題,即激活的二值化。一旦完成了這一點(diǎn),權(quán)重的二值化以下總是會(huì)導(dǎo)致精度的小幅下降(~1%)。
實(shí)驗(yàn)
消融實(shí)驗(yàn)

二值網(wǎng)絡(luò)架構(gòu)

CIFAR

ImageNet

