麻省理工最新研究 | 自動(dòng)為目標(biāo)任務(wù)和硬件定制高效CNN結(jié)構(gòu)
導(dǎo) 讀
NAS受限于其過(guò)高的計(jì)算資源需求,仍無(wú)法在大規(guī)模任務(wù)上直接進(jìn)行神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)。
今天分享的這篇文章主要解決NAS代理機(jī)制下無(wú)法搜索到全局最優(yōu)的問(wèn)題,改進(jìn)搜索策略,一定程度上解決資源消耗的問(wèn)題。其主要是基于DARTs改的,那就先談?wù)凞ARTs的一些問(wèn)題:
· 只搜索cell,然后不斷的堆疊起來(lái),實(shí)際上只要網(wǎng)絡(luò)堆疊的夠深,性能并不會(huì)太差;
· 一些operation的結(jié)構(gòu)參數(shù)非常接近,比如兩個(gè)op的結(jié)構(gòu)參數(shù)分別是20.2%,20.1%,似乎選擇20.2%和20.1% 并沒(méi)有太大的差別;
· 一開(kāi)始是在整個(gè)Net上進(jìn)行訓(xùn)練,但是選取的時(shí)候只是選擇一個(gè)子網(wǎng)絡(luò),中間可能會(huì)出現(xiàn)一些問(wèn)題。
作者提出了ProxylessNAS,第一個(gè)在沒(méi)有任何Proxy的情況下直接在ImageNet量級(jí)的大規(guī)模數(shù)據(jù)集上搜索大設(shè)計(jì)空間的的NAS算法,并首次專門(mén)為硬件定制CNN架構(gòu),作者還將模型壓縮(減枝、量化)的思想與NAS進(jìn)行結(jié)合,把NAS的計(jì)算成本(GPU時(shí)間和內(nèi)存)降低到與常規(guī)訓(xùn)練相同的規(guī)模,同時(shí)保留了豐富的搜索空間,并將神經(jīng)網(wǎng)絡(luò)的硬件性能(延時(shí),能耗)也直接納入到優(yōu)化目標(biāo)中。
引言
目前一個(gè)普遍的做法是在一個(gè)小型的Proxy任務(wù)上進(jìn)行網(wǎng)絡(luò)學(xué)習(xí),然后再遷移到目標(biāo)任務(wù)上。這樣的Proxy包括:1) 訓(xùn)練極少量輪數(shù);2)在較小的網(wǎng)絡(luò)下學(xué)習(xí)一個(gè)結(jié)構(gòu)單元,然后通過(guò)重復(fù)堆疊同樣的block構(gòu)建一個(gè)大的網(wǎng)絡(luò);3) 在小數(shù)據(jù)集(如:CIFAR)上進(jìn)行搜索。然而,這些在 Proxy 上優(yōu)化的網(wǎng)絡(luò)結(jié)構(gòu)在目標(biāo)任務(wù)上并不是最優(yōu)的。
作者最后提出的ProxylessNAS在CIFAR-10和ImageNet的實(shí)驗(yàn)驗(yàn)證了「直接搜索」和「為硬件定制」的有效性。在CIFAR-10上,作者新提出的模型僅用5.7M參數(shù)就達(dá)到了2.08%的測(cè)試誤差。對(duì)比之前的最優(yōu)模型AmoebaNet-B,ProxylessNAS僅用了六分之一的參數(shù)量就達(dá)到了更好的結(jié)果。在ImageNet上,ProxylessNAS比MobilenetV2高了3.1%的Top-1正確率,并且在GPU上比MobilenetV2快了20%。在同等的top-1準(zhǔn)確率下(74.5%以上),ProxylessNAS的手機(jī)實(shí)測(cè)速度是當(dāng)今業(yè)界標(biāo)準(zhǔn)MobileNetV2的1.8倍。在用ProxylessNAS來(lái)為不同硬件定制神經(jīng)網(wǎng)絡(luò)的同時(shí),作者發(fā)現(xiàn)各個(gè)平臺(tái)上搜索到的神經(jīng)網(wǎng)絡(luò)在結(jié)構(gòu)上有很大不同。這些發(fā)現(xiàn)為之后設(shè)計(jì)高效CNN結(jié)構(gòu)提供新的思路。
相關(guān)背景
近期研究中,神經(jīng)結(jié)構(gòu)搜索(NAS)已經(jīng)在各種深度學(xué)習(xí)任務(wù)(如圖像識(shí)別)的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)自動(dòng)化方面取得了很大成功。然而,傳統(tǒng)NAS算法的計(jì)算量巨大,如NASNet需要10^4 GPU hours來(lái)運(yùn)行。以DARTs為代表的Differentiable NAS雖減少了計(jì)算需求,可隨著搜索空間線性增長(zhǎng)的內(nèi)存成了新的瓶頸。由于這些局限,之前的NAS都利用了Proxy任務(wù),例如僅訓(xùn)練少量Epoch,只學(xué)習(xí)幾個(gè)Block,在較小的數(shù)據(jù)集上搜索(如CIFAR)再遷移。這些Proxy任務(wù)上優(yōu)化的結(jié)構(gòu),并不一定在目標(biāo)任務(wù)上是最佳的。同時(shí)為了實(shí)現(xiàn)可轉(zhuǎn)移性,這些方法往往僅搜索少數(shù)結(jié)構(gòu)Block,然后重復(fù)堆疊。這限制了塊的多樣性,并導(dǎo)致性能上的損失。依賴Proxy同時(shí)也意味著無(wú)法在搜索過(guò)程中直接權(quán)衡延遲等硬件指標(biāo)。
因此,作者提出了一個(gè)簡(jiǎn)單而有效的方案來(lái)解決上述限制,稱為ProxylessNAS,其直接在目標(biāo)任務(wù)和硬件上學(xué)習(xí)結(jié)構(gòu)而不依賴于Proxy。作者還移除了先前NAS工作中的重復(fù)塊的限制:所有stage都可以自由的選擇最適合的模塊,并允許學(xué)習(xí)和指定所有塊。為此,將體系結(jié)構(gòu)搜索的計(jì)算成本(GPU時(shí)間和內(nèi)存)降低到相同水平的常規(guī)訓(xùn)練,為了直接在目標(biāo)硬件上學(xué)習(xí)專用網(wǎng)絡(luò)結(jié)構(gòu),在搜索時(shí)我們也考慮了硬件指標(biāo)。
在CIFAR-10和ImageNet上的實(shí)驗(yàn)中,從直接性和專業(yè)性的角度出發(fā),提出的新方法可以獲得較強(qiáng)的實(shí)證結(jié)果。在CIFAR-10上,新模型僅需5.7M參數(shù)即可達(dá)到2.08%的測(cè)試誤差。在ImageNet上,新模型比MobileNetV 2提高了3.1%,獲得了75.1%的top-1精度,同時(shí)速度為1.2倍。主要的貢獻(xiàn)可歸納如下:
· ProxylessNAS是第一個(gè)在沒(méi)有任何代理的情況下直接學(xué)習(xí)大規(guī)模數(shù)據(jù)集上的CNN結(jié)構(gòu)的NAS算法,同時(shí)仍然允許大的候選集并消除重復(fù)塊的限制。它有效地?cái)U(kuò)大了搜索空間,實(shí)現(xiàn)了更好的性能;
· 為NAS提供了一種新的路徑級(jí)剪裁視角,顯示了NAS與模型壓縮之間的緊密聯(lián)系。通過(guò)使用path-level binarization將內(nèi)存消耗節(jié)省一個(gè)數(shù)量級(jí);
· 提出了一種新的基于梯度的方法(作為一個(gè)正則函數(shù)),來(lái)處理硬件目標(biāo)(如:延遲)。針對(duì)不同的硬件平臺(tái):CPU/GPU/FPGA/TPU/NPU,ProxylessNAS實(shí)現(xiàn)了針對(duì)目標(biāo)硬件CNN結(jié)構(gòu)定制。據(jù)所知,這是第一個(gè)來(lái)研究不同硬件結(jié)構(gòu)下的專用神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的文章;
· 廣泛的實(shí)驗(yàn)證明了Directness和Specialization的優(yōu)勢(shì)。它在不同硬件平臺(tái)延遲限制下,在CIFAR-10和ImageNet上實(shí)現(xiàn)了最好的性能。作者還分析了專用于不同硬件平臺(tái)的高效CNN模型的偏好,指出不同硬件平臺(tái)需要不同的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。
技術(shù)方法
Over-parameterized網(wǎng)絡(luò)的構(gòu)建
首先描述了具有所有候選路徑的over-parameterized網(wǎng)絡(luò)的構(gòu)造,然后介紹了如何利用二值化的體系結(jié)構(gòu)參數(shù)將訓(xùn)練over-parameterized網(wǎng)絡(luò)的內(nèi)存消耗降低到與常規(guī)訓(xùn)練相同的水平。提出了一種基于梯度的二值化結(jié)構(gòu)參數(shù)訓(xùn)練算法。最后,提出了兩種處理不可微目標(biāo)(如延遲)的技術(shù),用于在目標(biāo)硬件上專門(mén)化神經(jīng)網(wǎng)絡(luò)。
學(xué)習(xí)BINARIZED PATH
為了減少內(nèi)存占用,在訓(xùn)練over-parameterized網(wǎng)絡(luò)時(shí),只保留一條路徑。與Courbariaux等人不同。對(duì)單個(gè)權(quán)重進(jìn)行二值化后,對(duì)整個(gè)路徑進(jìn)行二值化。引入n個(gè)實(shí)值結(jié)構(gòu)參數(shù){αI},然后將實(shí)值路徑權(quán)重轉(zhuǎn)換為二進(jìn)制門(mén):
然而直接去訓(xùn)練這樣一個(gè)over-parameterized網(wǎng)絡(luò)是有問(wèn)題的,因?yàn)槠銰PU顯存會(huì)隨著候選操作的數(shù)量線性增長(zhǎng)。這里,作者就利用到路徑級(jí)二值化的思想來(lái)解決這個(gè)問(wèn)題:即將路徑上的架構(gòu)參數(shù)二值化,并使得在訓(xùn)練過(guò)程中只有一個(gè)路徑處于激活狀態(tài)。這樣一來(lái)GPU顯存的需求就降到和正常訓(xùn)練一個(gè)水平。在訓(xùn)練這些二值化的架構(gòu)參數(shù)的時(shí)候,作者采用類似BinaryConnect的思想,使用對(duì)應(yīng)的Binary Gate的梯度來(lái)更新架構(gòu)參數(shù):
為了解決這個(gè)問(wèn)題,考慮將從n個(gè)候選對(duì)象中選擇一條路徑的任務(wù)分解為多個(gè)二進(jìn)制選擇任務(wù)。直覺(jué)是,如果一條道路是在某一特定位置上的最佳選擇,那么與任何其他路徑相比,它應(yīng)該是更好的選擇。
HANDLING NON-DIFFERENTIABLE HARDWARE METRICS
除了準(zhǔn)確率之外,在設(shè)計(jì)高效神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的時(shí)侯,延遲是另一個(gè)非常重要的目標(biāo)。與可以使用損失函數(shù)的梯度優(yōu)化的準(zhǔn)確率不同,延遲這一指標(biāo)是不可微的。在本節(jié)中,我們提出了兩種算法來(lái)處理這種不可微分的目標(biāo)。
通過(guò)將縮放因子λ2(>0)乘以控制精度和延遲之間的權(quán)衡,將網(wǎng)絡(luò)的預(yù)期延遲合并到正常的損失函數(shù)中。最后的損失函數(shù)如上圖所示(右)。
對(duì)于二進(jìn)制參數(shù),我們有以下更新:
實(shí)驗(yàn)結(jié)果
在CIFAR-10和ImageNet上進(jìn)行了實(shí)驗(yàn)。不同于之前的NAS工作,作者直接在目標(biāo)數(shù)據(jù)集上進(jìn)行神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)學(xué)習(xí),為目標(biāo)硬件進(jìn)行優(yōu)化,同時(shí)允許每一個(gè)block自由地選擇操作。
在ImageNet上的結(jié)果
在移動(dòng)端,與MobilenetV2相比,提出的ProxylessNAS在維持同等的延遲的前提下,TOP-1準(zhǔn)確率提升了2.6%。此外,在各個(gè)不同的延遲設(shè)定下,新模型大幅優(yōu)于MobilenetV2:為了達(dá)到74.6%的精度,MobilenetV2需要143ms的推理時(shí)間,而新模型僅需要78ms(1.83x)。
與MnasNet相比,新模型在提升0.6%Top-1的同時(shí)保持略低的推理時(shí)間。值得一提的是,新模型所消耗的搜索資源要比Mnas少得多(1/200)。
下圖展示了在三個(gè)硬件平臺(tái)上搜索到的CNN模型的詳細(xì)結(jié)構(gòu):GPU/CPU/Mobile。
我們注意到,當(dāng)針對(duì)不同平臺(tái)時(shí),網(wǎng)絡(luò)結(jié)構(gòu)呈現(xiàn)出不同的偏好:
1)GPU模型短而寬,尤其是在feature map較大時(shí);
2)GPU模型更喜歡大MBConv操作(如:7x7 MBConv6),而CPU模型則傾向于小操作。這是因?yàn)镚PU比CPU有更高的并行度,因此它可以更好地利用大MBConv。
另一個(gè)有趣的觀察是,當(dāng)特征圖被下采樣時(shí),所有的網(wǎng)絡(luò)結(jié)構(gòu)都傾向于選擇一個(gè)更大的MBConv。這可能是因?yàn)镸BConv操作有利于網(wǎng)絡(luò)在下采樣時(shí)保留更多信息。值得注意的是,這是之前強(qiáng)制block之間共享結(jié)構(gòu)的NAS方法無(wú)法發(fā)現(xiàn)的。
END
論文: https://arxiv.org/pdf/1812.00332.pdf
代碼:https://github.com/MIT-HAN-LAB/ProxylessNAS
*博客內(nèi)容為網(wǎng)友個(gè)人發(fā)布,僅代表博主個(gè)人觀點(diǎn),如有侵權(quán)請(qǐng)聯(lián)系工作人員刪除。