我們給你一個(gè)舞臺(tái),Show出你的精彩!歡迎掃描文末二維碼進(jìn)行投稿本文出自商湯研究院石建萍團(tuán)隊(duì)(SenseTime Research)及浙大DCD實(shí)驗(yàn)室李璽團(tuán)隊(duì)。原論文發(fā)表于CVPR2020。 設(shè)計(jì)一個(gè)輕量級(jí)的語(yǔ)義分割分割網(wǎng)絡(luò)往往需要研究者經(jīng)過大量實(shí)驗(yàn)從而得到一個(gè)在精度和速度之間權(quán)衡得比較好的網(wǎng)絡(luò),該過程往往是費(fèi)時(shí)、費(fèi)力且要求研究者在分割領(lǐng)域有著較深的見解。本文作者從實(shí)時(shí)小網(wǎng)絡(luò)的實(shí)際訴求 (精度和速度的極致權(quán)衡) 出發(fā),構(gòu)建了一個(gè)新的搜索空間,從而更高效的完成小網(wǎng)絡(luò)的搜索,具體包括:
一、背景1.1 Cell共享的NAS方法常見的NAS方法搜索兩種類型的Cell (Normal Cell和Reduction Cell),然后將搜索到的Cell堆疊形成整個(gè)網(wǎng)絡(luò),這極大的減小了搜索空間和優(yōu)化難度,且在理論上也驗(yàn)證對(duì)性能不會(huì)有太大的影響。然而,實(shí)時(shí)的小網(wǎng)絡(luò)需要在精度和速度間進(jìn)行權(quán)衡,我們?cè)趯?shí)驗(yàn)過程中發(fā)現(xiàn),如果直接使用傳統(tǒng)的NAS方法會(huì)產(chǎn)生兩方面不足: a) 在不添加任何網(wǎng)絡(luò)速度的約束時(shí),容易搜索到復(fù)雜Cell結(jié)構(gòu) (精度Reward),堆疊形成的網(wǎng)絡(luò)會(huì)有較高的Latency,無(wú)法滿足速度需求;b) 當(dāng)添加Latency約束時(shí),很容易學(xué)習(xí)到簡(jiǎn)單的Cell(傾向于選擇簡(jiǎn)單的operations),堆疊形成的網(wǎng)絡(luò)雖然有較高的速度,但精度經(jīng)常無(wú)法滿足要求; a) 復(fù)雜Cell堆疊形成的高Latency網(wǎng)絡(luò);b) 簡(jiǎn)單Cell堆疊形成的低性能網(wǎng)絡(luò);c) 在Latency約束下,每個(gè)Cell結(jié)構(gòu)能夠自適應(yīng),更好的權(quán)衡速度和精度; 因此,我們認(rèn)為在搜索實(shí)時(shí)小網(wǎng)絡(luò)時(shí),應(yīng)該打破這種共享的關(guān)系,讓每個(gè)Cell可以自適應(yīng)的決定自己的結(jié)構(gòu)(如上圖c)。這樣,為了達(dá)到一個(gè)更好的權(quán)衡狀態(tài),網(wǎng)絡(luò)可以在淺層處使用較為簡(jiǎn)單的Cell以加快速度,而在深層使用稍微復(fù)雜的Cell以提高精度,從而在搜索的過程中靈活地進(jìn)行精度和速度的權(quán)衡。 1.2 自適應(yīng)Cell的優(yōu)化依上節(jié)所述,為了能夠更加靈活地進(jìn)行精度和速度的權(quán)衡,Cell應(yīng)該具備獨(dú)立搜索的能力。但通過實(shí)驗(yàn),我們發(fā)現(xiàn)兩個(gè)現(xiàn)象:1) 如果只是簡(jiǎn)單的讓每個(gè)Cell獨(dú)立的進(jìn)行搜索,搜索出來(lái)的網(wǎng)絡(luò)精度會(huì)有較大的損失,原因在于Cell的獨(dú)立擴(kuò)大了搜索空間,從而增加了優(yōu)化的難度 (論文中Fig 5)。2) 傳統(tǒng)的NAS使用了共享的Cell,相當(dāng)于網(wǎng)絡(luò)中的每一個(gè)Cell都知道其他Cell的選擇(identical),但獨(dú)立的方式丟失了這部分信息。基于這兩個(gè)發(fā)現(xiàn),一個(gè)直觀的想法是,在搜索過程中讓Cell間能夠彼此進(jìn)行信息交流(or 共享信息)是有必要的。具體地,我們利用圖卷積神經(jīng)網(wǎng)絡(luò)在每?jī)蓚€(gè)相鄰Cell間構(gòu)建了一個(gè)推理圖,作為信息傳播(information propagation)機(jī)制,從而能夠?qū)⑸弦粋€(gè)Cell的狀態(tài)信息(i.e. 操作選擇信息)傳播至當(dāng)前Cell。這樣,從第一個(gè)Cell開始,每一個(gè)Cell的狀態(tài)信息都能夠傳播給下一個(gè)Cell,從而達(dá)到信息共享的目的。 1.3 Latency導(dǎo)向的實(shí)時(shí)網(wǎng)絡(luò)搜索為了得到一個(gè)實(shí)時(shí)的分割網(wǎng)絡(luò),在搜索過程中,我們將網(wǎng)絡(luò)的Latency納入考慮,使得搜索朝著高精度,低Latency方向進(jìn)行。具體地,我們測(cè)量了每個(gè)候選operation的前向GPU耗時(shí),并構(gòu)建了離線的Latency查找表,將網(wǎng)絡(luò)的Latency作為另一個(gè)優(yōu)化目標(biāo)。 二、方法整體的方案如下圖所示,主要包括網(wǎng)絡(luò)結(jié)構(gòu)搜索和圖引導(dǎo)模塊。具體的,網(wǎng)絡(luò)由一系列相互獨(dú)立的Cell堆疊而成,并在每?jī)蓚€(gè)相鄰的Cell間用一個(gè)圖引導(dǎo)模塊 (GGM) 進(jìn)行引導(dǎo),達(dá)到信息傳播的目的。 于此同時(shí),在搜索的過程中,我們將 Latency 納入考慮,整個(gè)搜索問題可以用公式(1)進(jìn)行表示: (1) 其中, 代表整個(gè)搜索空間,和 分別是驗(yàn)證集的分割損失和Latency損失,搜索的目的是找到一個(gè)在精度和Latency間有最佳權(quán)衡的網(wǎng)絡(luò)結(jié)構(gòu)。 2.1 網(wǎng)絡(luò)結(jié)構(gòu)搜索不同于SNAS,為了能夠更靈活的在精度和速度之間做權(quán)衡,我們使用了更細(xì)粒度的Cell結(jié)構(gòu),即每個(gè)Cell只有兩個(gè)中間節(jié)點(diǎn)(區(qū)別于SNAS每個(gè)Cell的四個(gè)中間節(jié)點(diǎn))。這樣,通過更細(xì)粒度的Cell,搜索方案能夠根據(jù)實(shí)際的速度需求在多個(gè)Cell間進(jìn)行更靈活、更微妙的適配。 具體的,Cell結(jié)構(gòu)如下圖所示,每個(gè)Cell是一個(gè)有向圖(DAG),包含有兩個(gè)輸入節(jié)點(diǎn) i1和i2,兩個(gè)中間節(jié)點(diǎn) x1和 x2,輸出中間節(jié)點(diǎn)的concat結(jié)果。在DAG中,節(jié)點(diǎn)代表潛在的表征,即Feature Map,邊代表可選的operation,如Conv,Pooling等。每個(gè)中間節(jié)點(diǎn)都會(huì)接收它的所有前繼的節(jié)點(diǎn)作為輸入,這樣 x1節(jié)點(diǎn)的輸入為 ,而x2節(jié)點(diǎn)的輸入則為 . 那么,中間節(jié)點(diǎn)的計(jì)算方式如公式(2)所示,其中 是邊(h,i)搜索到的最終operation結(jié)果。
(2) 在搜索過程中,整個(gè)搜索空間由一個(gè)one-hot的向量集合進(jìn)行表征,其采樣自聯(lián)合分布p(Z)1。具體的,邊 (h, i) 會(huì)關(guān)聯(lián)一個(gè)one-hot 向量 , 該向量會(huì)作為一個(gè)mask乘到該邊上的所有候選的operations 上. 這樣,中間節(jié)點(diǎn)在搜索過程中的計(jì)算方式如公式 (3). (3) 利用重參數(shù)方法2可以讓離散的結(jié)構(gòu)參數(shù)變連續(xù),從而讓p(Z)可導(dǎo),具體如公式(4)所示: (4) 是邊 (h,i) 的架構(gòu)參數(shù), 是隨機(jī)的Gumbel變量,Uh,i是一個(gè)均勻分布變量,則控制softmax的Temperature。 在operation的搜索過程中,整個(gè)搜索空間由一個(gè)one-hot的向量集合進(jìn)行表征,其采樣自聯(lián)合分布$p(Z)$[1]。利用重參數(shù)方法[2]可以讓離散的結(jié)構(gòu)參數(shù)變連續(xù)。 我們使用了如下8種類型的operation進(jìn)行搜索: 3x3 max pooling, 3x3 conv, 3x3 separable conv 3x3 dilated separable conv (dilation=2) 3x3 dilated separable conv (dilation=4) 3x3 dilated separable conv (dilation=8) skip connection, zero operation 2.2 圖引導(dǎo)模塊如前所述,每?jī)蓚€(gè)相鄰的Cell中會(huì)有一個(gè)圖卷積網(wǎng)絡(luò)作為交流機(jī)制,而后通過圖卷積操作進(jìn)行圖例,從而將上一個(gè)Cell的信息傳播到當(dāng)前的Cell。在實(shí)驗(yàn)中,我們利用相鄰Cell中邊的相似性來(lái)構(gòu)建推理圖,這樣,上一個(gè)Cell狀態(tài)的改變就能通過圖推理將信息傳播至當(dāng)前的Cell。用表征第k個(gè)Cell的架構(gòu)參數(shù),其是一個(gè) pxq的矩陣,p是Cell中邊個(gè)數(shù),q等于候選operations的數(shù)目,以此類推,也是一個(gè)pxq的矩陣,我們采用式(5)對(duì)當(dāng)前Cell狀態(tài)的進(jìn)行更新: (5) 其中, G代表改推理圖,Adj代表該推理圖的鄰接矩陣, 和 則代表兩個(gè)1D Convolution轉(zhuǎn)換。 我們利用邊的相似性關(guān)系來(lái)構(gòu)建推理圖 G的鄰接矩陣,給定第 k-1個(gè) Cell 和 第 k個(gè) Cell,通過公式(6)計(jì)算推理圖的鄰接矩陣,結(jié)果是一個(gè) pxp矩陣: (6) 其中,, 代表兩個(gè)類似的映射,參數(shù)和 都是qxq大小,并且可以通過反向傳播進(jìn)行學(xué)習(xí)更新?;谏鲜龅泥徑泳仃?,推理圖的信息傳播按照式(7)進(jìn)行,其中,代表推理圖的參數(shù), 實(shí)驗(yàn)中該參數(shù)維度設(shè)置為64, 則代表殘差連接。 (7) 三、實(shí)驗(yàn)3.1 圖引導(dǎo)模塊消融實(shí)驗(yàn)為驗(yàn)證圖引導(dǎo)模型的作用,我們Cityscape數(shù)據(jù)集上進(jìn)行實(shí)驗(yàn),具體的配置為: a) 傳統(tǒng)的Cell 共享方式;b) Cell 獨(dú)立的方式;c) Cell 獨(dú)立,但采用Fully Connected 作為信息交流機(jī)制;d) Cell獨(dú)立,但采用圖卷積網(wǎng)絡(luò)作為交流機(jī)制。實(shí)驗(yàn)結(jié)果匯總在下圖中,可以發(fā)現(xiàn),直接讓Cell獨(dú)立,不加入任何的交流機(jī)制,精度從 68.5% 降低 66.9% 。為了消除這個(gè)影響,我們探索了Fully Connected (在相鄰Cell間加入FC)和圖引導(dǎo)兩種方式,實(shí)驗(yàn)發(fā)現(xiàn),相比于FC,利用圖引導(dǎo)模塊能夠極大的提升模型的精度,同時(shí)搜索到的網(wǎng)絡(luò)也具有更小的Param Size,僅2.18M。 我們也對(duì)比了GAS和隨機(jī)采樣方法,實(shí)驗(yàn)對(duì)隨機(jī)采樣設(shè)置兩種配置,a) 完全隨機(jī)采樣,b) 在隨機(jī)采樣的過程中選出速度符合108FPS左右的網(wǎng)絡(luò),對(duì)比結(jié)果如表(1)所示,可見,我們的方法在速度和精度上達(dá)到了一個(gè)很好的權(quán)衡,進(jìn)一步體現(xiàn)了我們方法的優(yōu)勢(shì)。 3.2 GAS性能為了驗(yàn)證所提出的GAS方法的優(yōu)越性,作者在Cityscapes分割數(shù)據(jù)集進(jìn)行了實(shí)驗(yàn),并在該數(shù)據(jù)集上獲得了新的SOTA結(jié)果。作者和現(xiàn)有最優(yōu)秀的幾種小型網(wǎng)絡(luò)結(jié)構(gòu)作對(duì)比,包括BiSeNet、DFANet、CAS等,結(jié)果匯總在表2中,這些模型都包含了mIoU和FPS,其中,F(xiàn)PS是在Titan XP GPU上的測(cè)試結(jié)果。從結(jié)果中我們可以看到,和之前的SOTA方法相比,GAS能夠在維持相同速度下,精度有1.3 - 3個(gè)點(diǎn)的提升。
3.3 圖引導(dǎo)模塊作用分析如前所述,圖引導(dǎo)模塊在搜索過程中扮演了重要的角色,我們猜想其主要來(lái)源于如下幾個(gè)方面:
|
|
來(lái)自: 西北望msm66g9f > 《培訓(xùn)》