FBNet: Hardware-Aware Efficient ConvNet Design via Differentiable Neural Architecture Search

——Facebook-Berkeley-Nets

摘要:

為移動設(shè)備設(shè)計卷積網(wǎng)絡(luò)挑戰(zhàn)巨大涎拉,因為設(shè)計空間巨大咆槽,現(xiàn)有NAS方法在計算上是昂貴的速那。另外,之前的工作關(guān)注降低FLOPs懈涛,但是FLOPs并不總是反應(yīng)真實的延遲。因此基于differentiable neural architecture search(DNAS)泳猬,采用梯度優(yōu)化的方法優(yōu)化卷積結(jié)構(gòu)批钠,避免像以前的方法那樣分別枚舉和訓練各個體系結(jié)構(gòu)。FBNets-B在ImageNet上top-1準確率為74.1%得封,295M FLOPs埋心,在三星S8上23.1ms延遲,比MobileNetv2小2.4倍忙上,快1.5倍踩窖。

DNAS for ConvNet

DNAS搜索一個層次空間,ConvNet的每一層都可以選擇不同的塊晨横,搜索空間由一個隨機超網(wǎng)絡(luò)表示洋腮,搜索過程使用SGD訓練隨機超網(wǎng)以優(yōu)化架構(gòu)分布箫柳,從訓練的分布中采樣最佳體系結(jié)構(gòu)。 在目標設(shè)備上測量每個操作的延遲并用于計算超網(wǎng)的損失啥供。

介紹

設(shè)計準確高效的ConvNet有如下挑戰(zhàn):

未知的設(shè)計空間悯恍,ConvNet的設(shè)計空間是組合的,訓練ConvNet是非常耗時的伙狐,因此之前的網(wǎng)絡(luò)設(shè)計基本不怎么搜索整個設(shè)計空間涮毫。采用強化學習和遺傳算法的NAS非常耗時。

不可廣泛移植的最優(yōu)解贷屎,最優(yōu)的卷積結(jié)構(gòu)受很多因素限制罢防,比如輸入分辨率和目標設(shè)備。一旦這些因素改變唉侄,最優(yōu)解的結(jié)構(gòu)就會變化咒吐。

不一致的效率度量,大多數(shù)效率度量不僅依賴于網(wǎng)絡(luò)結(jié)構(gòu)也依賴目標設(shè)備的硬件和軟件配置属划。之前的許多工作都用了硬件無關(guān)的度量比如FLOPs(乘加操作的次數(shù))去評估效率恬叹。然而,F(xiàn)LOP計數(shù)低的網(wǎng)絡(luò)不一定快同眯。硬件無關(guān)的度量和實際的效率之間的不一致性使卷積網(wǎng)絡(luò)的設(shè)計更加困難绽昼。

DNAS用操作隨機執(zhí)行的超級網(wǎng)絡(luò)代表搜索空間,將找到最佳架構(gòu)的問題放松到找到產(chǎn)生最佳架構(gòu)分布的問題须蜗,通過使用Gumbel Softmax技術(shù)硅确,可以直接基于梯度優(yōu)化(SGD)的方法訓練結(jié)構(gòu)分布。用于訓練隨機超級網(wǎng)絡(luò)的損失不僅僅是交叉熵損失明肮,還包括延時損失疏魏。為了評估網(wǎng)絡(luò)結(jié)構(gòu)的延時,本文將計算搜索空間每個操作的延時并且使用速查表模型去計算所有操作的延時(每個操作的時間加起來)晤愧,使用這個模型可以快速的估量龐大的搜索空間中網(wǎng)絡(luò)結(jié)構(gòu)的延時大莫。更重要的是,它使得延時關(guān)于層結(jié)構(gòu)選擇是可微的官份。

Gumbel Softmax

最近的工作

DARTS著重在cell級別的架構(gòu)搜索只厘,并且同樣的cell結(jié)構(gòu)重復(fù)堆疊得到網(wǎng)絡(luò)整體,cell級結(jié)構(gòu)是硬件不友好的舅巷,并且實際效率也很低羔味。MnasNet研究了一個stage級的分層搜索空間,允許不同的block用于網(wǎng)絡(luò)的不同stage钠右,不過同一個stage中的block仍然是相同的赋元。不同于關(guān)注FLOPs,[20]目的在于優(yōu)化目標設(shè)備的延時。

方法

將結(jié)構(gòu)搜索問題建模為min_{a\in A}min_{w_a}L(a,w_a)搁凸,給定一個結(jié)構(gòu)空間A媚值,期望去尋找一個最優(yōu)結(jié)構(gòu)a\in A,使得訓練它的權(quán)重w_a之后护糖,可以使得損失L(a,w_a)最小化褥芒。在任務(wù)中,關(guān)注三個因素:1嫡良、搜索空間A锰扶,2、損失函數(shù)L(a,w_a)(考慮延時)寝受,3坷牛、一個高效的搜索算法。

搜索空間

之前的工作關(guān)注cell級別的搜索(單元級別)很澄,一旦單元結(jié)構(gòu)搜索得到京闰,網(wǎng)絡(luò)就由這些單元堆疊得到。但是痴怨,許多搜索得到的單元結(jié)構(gòu)非常復(fù)雜和瑣碎忙干,因此在移動端前向速度很慢器予。而且浪藻,同一結(jié)構(gòu)的單元在不同深度回會網(wǎng)絡(luò)的精度和延時有不同影響,因此本文允許不同的層選擇不同的blocks來獲得更好的精度和延時乾翔。

本文建立一個層次級別的搜索空間爱葵,其宏觀結(jié)構(gòu)固定,每層可以選擇不同的block反浓,整體結(jié)構(gòu)如下圖萌丈,Block這一列代表著block的類型,“TBS”表示需要被搜索層類型雷则,f列代表著一個Block中卷積核的個數(shù)辆雾,n列代表著Block的個數(shù),s列代表著第一個Block的stride月劈。1504(1984)代表1\times 1卷積的個數(shù)度迂。

整體結(jié)構(gòu)

網(wǎng)絡(luò)整體結(jié)構(gòu)確定了網(wǎng)絡(luò)層數(shù)和每層的輸入輸出的維數(shù)。網(wǎng)絡(luò)的前三層和最后三層有著固定的操作猜揪。對于剩下的層惭墓,他們的Block需要被尋找。每層的卷積核個數(shù)是人為預(yù)先確定好的而姐,對于淺層腊凶,使用相對較小的通道數(shù),因為淺層的特征圖分辨率較大,F(xiàn)LOP與輸入尺寸的二次冪成正比钧萍。

網(wǎng)絡(luò)中的每個可搜索層可以從層次搜索空間中選擇不同的塊褐缠,Block的結(jié)構(gòu)來源于MobileNetv2和ShiftNet,如下圖:包含1\times 1的point-wise卷積划煮,K\times K的depthwise卷積送丰,以及一個1\times 1的point-wise卷積,ReLU函數(shù)跟在第一個1\times 1卷積和第二個K\times K卷積之后弛秋,最后一個1\times 1卷積之后不接激活函數(shù)器躏,如果輸入分維度與輸出分維度相同,則使用短路連接將輸入與輸出相加蟹略。同樣仿照MobileNet-v2和ShiftNet以一個擴展比例e來控制Block登失。它決定了第一個1\times 1卷積將輸入特征圖的通道擴大多少,對于Depth-wise卷積挖炬,卷積核的大小可以是3\times 35\times 5揽浙,對于第一個和最后一個1\times 1的卷積,使用group卷積(point-wise)來降低計算量意敛。當使用group卷積時馅巷,仿照ShuffleNet來進行通道信息融合。

Block的結(jié)構(gòu)

在實驗中草姻,層級的搜索空間包含9個候選Blocks钓猬,它們的設(shè)置如表:

9中不同的Block

skip表示直接將輸入特征圖輸出而不經(jīng)過任何操作。候選Block可以幫助降低網(wǎng)絡(luò)的深度撩独。整體來看敞曹,搜索空間包含22層,每層可以選擇9中候選的Blocks综膀。

Loss

損失函數(shù)定義為L(a,w_a)=CE(a,w_a) \times \alpha log(LAT(a))^\beta

包含結(jié)構(gòu)a與參數(shù)w_a的交叉熵損失澳迫,以網(wǎng)絡(luò)在目標設(shè)備上的延時損失。我們不可能去對所有的網(wǎng)絡(luò)結(jié)構(gòu)進行延時測試剧劝,為了簡化問題橄登,使用一個延時速查表模型來評估整個網(wǎng)絡(luò)的延時(基于每個操作的延時),因此:

LAT(a)=\sum_{l}LAT(b_{l}^{(a)} )

其中讥此,b_l^{(a)}代表結(jié)構(gòu)a的第l層拢锹,每個操作的延時是獨立于其他操作的灸蟆。使用這樣的方法启泣,使得掩飾對于Block的選擇是可微的,因此可以使用SGD來進行優(yōu)化充择。

Search Algorithm

為了降低計算復(fù)雜度取胎,有些算法將內(nèi)層問題替換為在簡單的數(shù)據(jù)集(CIFAR-10)上訓練候選結(jié)構(gòu)展哭,盡管如此湃窍,訓練依然是耗時的。

本文首先將搜索空間表示為一個隨機的超級網(wǎng)絡(luò)匪傍。這個超級網(wǎng)絡(luò)有著上表所示的整體結(jié)構(gòu)您市,每層包含9個上表所示并行的Blocks,在超級網(wǎng)絡(luò)的前向過程中役衡,只有一個候選的Block被采樣進來茵休,并以以下采樣概率執(zhí)行:

采樣概率

包含著決定第l層采樣每種Block的概率的參數(shù),第l層的輸出為x_{l+1}=\sum_{i}m_{l,i}b_{l,i}(x_l)

m_{l,i}=1表示Blockb_{l,i}被采樣手蝎,否則為0榕莺,b_{l,i}(x_l)表示第l層的第i個Block的輸出(給定輸入特征圖x_l),每層獨立采樣棵介,因此結(jié)構(gòu)可以定義為:

P_{\theta}(a)=\prod_{l}P_{\theta_{l}}(b_l=b_{l,i}^{(a)})钉鸯,\theta是由\theta_{l,i}組成的向量(第l層的第i個Block),b_{l,i}^{(a)}表示在采樣的結(jié)構(gòu)a中邮辽,第l層選擇第i個Block唠雕。重寫優(yōu)化問題的表達形式:

最小化損失在結(jié)構(gòu)分布上的期望

其中的損失函數(shù)對于權(quán)重w_a明顯可微,可以采用SGD解決吨述,但是該損失對于抽樣參數(shù)\theta并不是直接可微的岩睁,因為梯度不能由變量m_{l,i} 傳遞至\theta_{l,i},為了避開這個問題揣云,將離散隨機變量m_{l,i}擴展為:

GumbelSoftmax

其中捕儒,

耿貝爾分布

是一個服從Gumbel分布的隨機噪音。Gumbel Softmax函數(shù)由溫度參數(shù)\tau 控制灵再,當其接近0時肋层,m_{l,i}近似服從P_{\theta}(a)=\prod_{l}P_{\theta_{l}}(b_l=b_{l,i}^{(a)})所決定的離散類別抽樣亿笤,當溫度參數(shù)變大時翎迁,m_{l,i}變成一個連續(xù)隨機變量,無論其怎么變化净薛,m_{l,i}\theta_{l,i} 都是直接可微的汪榔。對于延時損失,使用速查表進行效率估計肃拜,因此:

LAT(a)=\sum_{l}LAT(b_{l}^{(a)} )寫作LAT(a)=\sum_{l}\sum_{i}m_{l,i}LAT(b_{l,i} )

每個操作LAT(b_{l,i})的延時是常數(shù)痴腌,因此整體延時對m_{l,i},\theta_{l,i}都是可微的,因此損失函數(shù)對于權(quán)重w_a和結(jié)構(gòu)分布參數(shù)\theta都是可微的燃领,因此可以使用SGD解決士聪。

搜索過程等價于去訓練隨機super net。訓練過程中猛蔽,計算:損失對于權(quán)重的偏導數(shù)剥悟,去訓練super net中每個操作f的權(quán)重灵寺,這部分與傳統(tǒng)的卷積神經(jīng)網(wǎng)絡(luò)沒有分別,操作搜索訓練完城后区岗,不同的操作使得整體網(wǎng)絡(luò)的精度和速度不同略板,因此計算損失對于網(wǎng)絡(luò)結(jié)構(gòu)分布的偏導數(shù),去更新每個操作的抽樣概率P_{\theta}慈缔。這一步會使得網(wǎng)絡(luò)整體的精度和速度更高叮称,因為抑制了低精度和低速度的選擇,super net訓練完成之后藐鹤,可以從結(jié)構(gòu)分布P_{\theta}中抽樣獲得最優(yōu)的結(jié)構(gòu)瓤檐。

實驗


實驗結(jié)果
搜索網(wǎng)絡(luò)可視化
最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市娱节,隨后出現(xiàn)的幾起案子距帅,更是在濱河造成了極大的恐慌,老刑警劉巖括堤,帶你破解...
    沈念sama閱讀 212,718評論 6 492
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件碌秸,死亡現(xiàn)場離奇詭異,居然都是意外死亡悄窃,警方通過查閱死者的電腦和手機讥电,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 90,683評論 3 385
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來轧抗,“玉大人恩敌,你說我怎么就攤上這事『崦模” “怎么了纠炮?”我有些...
    開封第一講書人閱讀 158,207評論 0 348
  • 文/不壞的土叔 我叫張陵,是天一觀的道長灯蝴。 經(jīng)常有香客問我恢口,道長,這世上最難降的妖魔是什么穷躁? 我笑而不...
    開封第一講書人閱讀 56,755評論 1 284
  • 正文 為了忘掉前任耕肩,我火速辦了婚禮,結(jié)果婚禮上问潭,老公的妹妹穿的比我還像新娘猿诸。我一直安慰自己,他們只是感情好狡忙,可當我...
    茶點故事閱讀 65,862評論 6 386
  • 文/花漫 我一把揭開白布梳虽。 她就那樣靜靜地躺著,像睡著了一般灾茁。 火紅的嫁衣襯著肌膚如雪窜觉。 梳的紋絲不亂的頭發(fā)上是复,一...
    開封第一講書人閱讀 50,050評論 1 291
  • 那天,我揣著相機與錄音竖螃,去河邊找鬼淑廊。 笑死,一個胖子當著我的面吹牛特咆,可吹牛的內(nèi)容都是我干的季惩。 我是一名探鬼主播,決...
    沈念sama閱讀 39,136評論 3 410
  • 文/蒼蘭香墨 我猛地睜開眼腻格,長吁一口氣:“原來是場噩夢啊……” “哼画拾!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起菜职,我...
    開封第一講書人閱讀 37,882評論 0 268
  • 序言:老撾萬榮一對情侶失蹤青抛,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后酬核,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體蜜另,經(jīng)...
    沈念sama閱讀 44,330評論 1 303
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 36,651評論 2 327
  • 正文 我和宋清朗相戀三年嫡意,在試婚紗的時候發(fā)現(xiàn)自己被綠了举瑰。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,789評論 1 341
  • 序言:一個原本活蹦亂跳的男人離奇死亡蔬螟,死狀恐怖此迅,靈堂內(nèi)的尸體忽然破棺而出,到底是詐尸還是另有隱情旧巾,我是刑警寧澤耸序,帶...
    沈念sama閱讀 34,477評論 4 333
  • 正文 年R本政府宣布,位于F島的核電站鲁猩,受9級特大地震影響坎怪,放射性物質(zhì)發(fā)生泄漏。R本人自食惡果不足惜绳匀,卻給世界環(huán)境...
    茶點故事閱讀 40,135評論 3 317
  • 文/蒙蒙 一芋忿、第九天 我趴在偏房一處隱蔽的房頂上張望炸客。 院中可真熱鬧疾棵,春花似錦、人聲如沸痹仙。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,864評論 0 21
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽开仰。三九已至拟枚,卻和暖如春薪铜,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背恩溅。 一陣腳步聲響...
    開封第一講書人閱讀 32,099評論 1 267
  • 我被黑心中介騙來泰國打工隔箍, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人脚乡。 一個月前我還...
    沈念sama閱讀 46,598評論 2 362
  • 正文 我出身青樓蜒滩,卻偏偏與公主長得像,于是被迫代替她去往敵國和親奶稠。 傳聞我的和親對象是個殘疾皇子俯艰,可洞房花燭夜當晚...
    茶點故事閱讀 43,697評論 2 351