999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

輕量級(jí)神經(jīng)網(wǎng)絡(luò)架構(gòu)綜述?

2020-11-03 12:25:32葛道輝李洪升劉如意沈沛意苗啟廣
軟件學(xué)報(bào) 2020年9期
關(guān)鍵詞:策略方法模型

葛道輝 , 李洪升 , 張 亮,4 , 劉如意 , 沈沛意 , 苗啟廣,3

1(西安市大數(shù)據(jù)與視覺智能關(guān)鍵技術(shù)重點(diǎn)實(shí)驗(yàn)室(西安電子科技大學(xué)),陜西 西安 710071)

2(嵌入式技術(shù)與視覺處理研究中心(西安電子科技大學(xué)),陜西 西安 710071)

3(陜西省區(qū)塊鏈與安全計(jì)算重點(diǎn)實(shí)驗(yàn)室(西安電子科技大學(xué)),陜西 西安 710071)

4(上海寬帶技術(shù)及應(yīng)用工程研究中心,上海 200436)

深度學(xué)習(xí)與傳統(tǒng)手工設(shè)計(jì)目標(biāo)特征的方法不同:深度學(xué)習(xí)以端到端的方式訓(xùn)練深度神經(jīng)網(wǎng)絡(luò),實(shí)現(xiàn)自動(dòng)提取目標(biāo)的深度特征,避免人為設(shè)計(jì)的干擾;同時(shí),深度特征與傳統(tǒng)特征相比,深度特征可以多層次表示目標(biāo),從淺層的局部特征到深層的全局特征,具有更強(qiáng)的魯棒性和表達(dá)能力.基于此,深度學(xué)習(xí)近些年來已經(jīng)引起了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注,并且深度學(xué)習(xí)已經(jīng)成功地應(yīng)用于解決多種類型的任務(wù)中,如目標(biāo)檢測(cè)、圖像檢索、語言識(shí)別、智能問答等領(lǐng)域.

移動(dòng)互聯(lián)網(wǎng)時(shí)代,智能手機(jī)和其他便攜設(shè)備的普及給人們之間的日常交流、信息獲取、學(xué)習(xí)和工作等生活的各個(gè)方面均帶來了極大的便利.伴隨著移動(dòng)互聯(lián)網(wǎng)的迅速發(fā)展,推出了如人臉識(shí)別、視頻直播、美顏相機(jī)、拍照識(shí)圖、自動(dòng)駕駛等多種不同類型的移動(dòng)式應(yīng)用,豐富了人們的日常生活,其中產(chǎn)生的數(shù)據(jù)絕大部分為靜態(tài)圖像和動(dòng)態(tài)視頻數(shù)據(jù).目前,傳統(tǒng)的深度神經(jīng)網(wǎng)絡(luò)[1-3]通過設(shè)計(jì)非常深的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)用于提取表達(dá)能力更強(qiáng)的深度特征,這對(duì)存儲(chǔ)設(shè)備和計(jì)算資源的要求非常高,常用的便攜式設(shè)備無法滿足該需求,這嚴(yán)重限制了深度神經(jīng)網(wǎng)絡(luò)在便攜式設(shè)備上的發(fā)展與應(yīng)用.

為了提高便攜式設(shè)備處理圖像和視頻數(shù)據(jù)的效率和能力,同時(shí)需要滿足存儲(chǔ)空間和功耗的限制,設(shè)計(jì)適用于便攜式設(shè)備的輕量化深度神經(jīng)網(wǎng)絡(luò)架構(gòu)是解決該問題的關(guān)鍵.近些年來,輕量級(jí)神經(jīng)網(wǎng)絡(luò)架構(gòu)的設(shè)計(jì)得到了學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注,提出了一些典型的方法[4-9],主要包括3 個(gè)不同的方向,分別是:(1) 人工設(shè)計(jì)輕量化神經(jīng)網(wǎng)絡(luò)模型;(2) 基于神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索(neural architecture search,簡(jiǎn)稱NAS)的自動(dòng)化神經(jīng)網(wǎng)絡(luò)架構(gòu)設(shè)計(jì);(3) 神經(jīng)網(wǎng)絡(luò)模型的壓縮.輕量級(jí)神經(jīng)網(wǎng)絡(luò)架構(gòu)的設(shè)計(jì)已經(jīng)取得了一定的成果:谷歌通過深度可分離卷積(depthwise separable convolution)代替標(biāo)準(zhǔn)卷積提出了輕量級(jí)網(wǎng)絡(luò)架構(gòu)MobileNet V1[8];Face++通過逐點(diǎn)群卷積核通道混洗技術(shù)提出了ShuffleNet V1[9];MnasNet[7]和NasNet[6]通過強(qiáng)化學(xué)習(xí)方法學(xué)習(xí)神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索策略,實(shí)現(xiàn)便攜式設(shè)備上輕量化神經(jīng)網(wǎng)絡(luò)的自動(dòng)化構(gòu)建,不同的是,NasNet[6]設(shè)計(jì)了基于塊的搜索空間,大大加快搜索速度;Deep compression[4]通過剪枝、權(quán)值共享和權(quán)值量化、哈夫曼編碼實(shí)現(xiàn)卷積神經(jīng)網(wǎng)絡(luò)模型的壓縮;AMC(AutoML for model compression)[5]利用強(qiáng)化學(xué)習(xí)方法自動(dòng)學(xué)習(xí)模型壓縮策略,具有更高的壓縮比,可以更好地保持神經(jīng)網(wǎng)絡(luò)的性能.

目前,人工設(shè)計(jì)輕量級(jí)神經(jīng)網(wǎng)絡(luò)的主要思想在于設(shè)計(jì)更高效的網(wǎng)絡(luò)計(jì)算方式,主要是針對(duì)卷積的計(jì)算方法.現(xiàn)有的深度卷積神經(jīng)網(wǎng)絡(luò)為了能夠取得更好的性能,通過設(shè)置大規(guī)模的特征通道數(shù)、卷積核大小的數(shù)量,但是往往存在大量的冗余.人工設(shè)計(jì)輕量級(jí)神經(jīng)網(wǎng)絡(luò)通過合理地減少卷積核的數(shù)量,減少目標(biāo)特征的通道數(shù),結(jié)合設(shè)計(jì)更高效的卷積操作等方式,從而構(gòu)造更加有效的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),可以在保持神經(jīng)網(wǎng)絡(luò)性能的前提下,顯著地減少網(wǎng)絡(luò)的參數(shù)和計(jì)算量,實(shí)現(xiàn)在便攜式設(shè)備上訓(xùn)練和應(yīng)用深度神經(jīng)網(wǎng)絡(luò).

MobileNet[8,10],ThunderNet[11],ShuffleNet[9,12],SqueezeNet[13]等人工設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)雖然已經(jīng)取得了令人矚目的成績(jī),但是設(shè)計(jì)高性能的輕量級(jí)神經(jīng)網(wǎng)絡(luò)需要設(shè)計(jì)者具有豐富的專業(yè)知識(shí)和領(lǐng)域知識(shí),并且需要大量重復(fù)的實(shí)驗(yàn),導(dǎo)致研究成本和時(shí)間成本極高,嚴(yán)重限制了輕量級(jí)神經(jīng)網(wǎng)絡(luò)在便攜式設(shè)備上的發(fā)展與應(yīng)用.為了減少人為因素的干擾,通過給定所有候選神經(jīng)網(wǎng)絡(luò)架構(gòu)的集合作為搜索空間,使用學(xué)習(xí)到的搜索策略從搜索空間中構(gòu)建最優(yōu)的神經(jīng)網(wǎng)絡(luò)架構(gòu),利用性能評(píng)估策略度量網(wǎng)絡(luò)架構(gòu)的性能,并在訓(xùn)練階段,作為獎(jiǎng)勵(lì)指導(dǎo)搜索策略的學(xué)習(xí),通過反復(fù)的迭代,從而得到解決特定任務(wù)的最優(yōu)神經(jīng)網(wǎng)絡(luò)架構(gòu),實(shí)現(xiàn)深度神經(jīng)網(wǎng)絡(luò)模型的自動(dòng)搜索.神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索方法與超參數(shù)優(yōu)化[14]和元學(xué)習(xí)[15]有顯著的重疊.神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索方法主要由3 部分組成:搜索空間、搜索策略和性能評(píng)估策略.

除人工設(shè)計(jì)輕量化神經(jīng)網(wǎng)絡(luò)模型外,學(xué)者和工業(yè)界也在不斷地探索如何進(jìn)一步地通過壓縮神經(jīng)網(wǎng)絡(luò)模型的規(guī)模,進(jìn)一步地降低對(duì)存儲(chǔ)設(shè)備和計(jì)算資源的需求,實(shí)現(xiàn)在便攜式設(shè)備上應(yīng)用深度神經(jīng)網(wǎng)絡(luò).根據(jù)神經(jīng)網(wǎng)絡(luò)中每層的冗余程度,通過將網(wǎng)絡(luò)權(quán)重的全精度的浮點(diǎn)數(shù)進(jìn)行裁剪、對(duì)網(wǎng)絡(luò)中間的特征輸出進(jìn)一步進(jìn)行量化,以及剪枝、權(quán)值共享、低秩分解、知識(shí)蒸餾等方法實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)模型的壓縮.通過壓縮神經(jīng)網(wǎng)絡(luò)模型,降低了占用的存儲(chǔ)空間,滿足功耗的限制,嵌入到便攜式設(shè)備的芯片上,實(shí)現(xiàn)實(shí)時(shí)的運(yùn)行.

人工設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)模型壓縮技術(shù)依賴啟發(fā)式和基于規(guī)則的策略,算法設(shè)計(jì)者需要探索較大的設(shè)計(jì)空間,以及在模型大小、速度和準(zhǔn)確率之間權(quán)衡,而這通常是次優(yōu)的且耗時(shí)的.自動(dòng)機(jī)器學(xué)習(xí)(automated machine learning,簡(jiǎn)稱AutoML)通過結(jié)合強(qiáng)化學(xué)習(xí)等方法,將特征提取、模型選擇、超參優(yōu)化等步驟實(shí)現(xiàn)自動(dòng)化的學(xué)習(xí),提高模型的壓縮比,在更好地保持神經(jīng)網(wǎng)絡(luò)模型性能的同時(shí),減少人為因素的干擾.

隨著輕量級(jí)神經(jīng)網(wǎng)絡(luò)的不斷發(fā)展,提出了越來越多的設(shè)計(jì)方法,已經(jīng)被成功地用于解決各類問題,在圖像分類問題上已經(jīng)超過了人工設(shè)計(jì)的方法,并廣泛應(yīng)用于目標(biāo)檢測(cè)、圖像分割、智能問答等不同領(lǐng)域.本文首先概括性介紹輕量級(jí)神經(jīng)網(wǎng)絡(luò).第1 節(jié)介紹人工設(shè)計(jì)輕量級(jí)神經(jīng)網(wǎng)絡(luò)方法.第2 節(jié)詳細(xì)介紹基于規(guī)則和基于自動(dòng)機(jī)器學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)模型壓縮算法.第3 節(jié)總結(jié)基于神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索的自動(dòng)化輕量級(jí)網(wǎng)絡(luò)設(shè)計(jì).最后展開討論并對(duì)未來的研究方向給出建議.

1 人工設(shè)計(jì)的輕量級(jí)神經(jīng)網(wǎng)絡(luò)模型

在本節(jié)中,我們將介紹人工設(shè)計(jì)的高效的輕量化網(wǎng)絡(luò)結(jié)構(gòu)及其背后的原理.隨著模型參數(shù)量的增加,模型的準(zhǔn)確率和復(fù)雜度也逐步增加,但同時(shí),神經(jīng)網(wǎng)絡(luò)中存在較大冗余.設(shè)計(jì)更加高效的網(wǎng)絡(luò)結(jié)構(gòu).對(duì)于壓縮模型大小、加快運(yùn)行速度以及減輕訓(xùn)練難度都有重要的作用.本節(jié)將從減少卷積核的冗余、減少輸入特征的通道數(shù)、設(shè)計(jì)更加高效的模塊z23 個(gè)方面介紹如何設(shè)計(jì)輕量級(jí)的神經(jīng)網(wǎng)絡(luò).

1.1 使用小卷積核代替大卷積

利用多層小卷積核替代一層大卷積核,可以有效地減少網(wǎng)絡(luò)的參數(shù).在Simonyan 等人提出的VGG[1]網(wǎng)絡(luò)中,使用3×3 卷積核代替5×5 和7×7 大小的大卷積核:對(duì)于一個(gè)大小5×5 的感受野,可以通過兩層3×3 大小的卷積實(shí)現(xiàn);對(duì)于一個(gè)7×7 的卷積核,可通過3 層3×3 卷積實(shí)現(xiàn).如圖1(a)所示.

在參數(shù)量上,5×5 大小的卷積核參數(shù)量為25,而兩層3×3 的卷積核參數(shù)量為18,相比減少了28%的參數(shù)量.從浮點(diǎn)運(yùn)算數(shù)(FLOPs)角度,對(duì)于輸入大小為H×W×Cin的特征,輸出為H×W×Cout大小的特征圖時(shí),FLOPs5×5=H×W×Cin×Cout×52,而兩層卷積的FLOPs(3×3)×2=2×H×W×Cin×Cout×3,計(jì)算量也相應(yīng)地減少.并且兩層3×3 卷積可以合并兩層非線性層,比一層大卷積核更能增加非線性能力.

類似地,Jaderberg 等人[16]提出將一個(gè)3×3 的卷積操作分解為連續(xù)的1×3 和3×1 的卷積,如圖1(b)所示,分解之后,參數(shù)量和FLOPs 都下降了33%.Chao[17]提出使用大的k×k卷積核可以增加感受野,同時(shí)為了減少計(jì)算量,可以使用兩層1×k和k×1 的卷積代替,這樣參數(shù)量和FLOPs 都變?yōu)橹暗?/k.

1.2 限制中間特征的通道數(shù)量

對(duì)于標(biāo)準(zhǔn)的不帶bias 的卷積操作FLOPs=H×W×Cin×Cout×k2,運(yùn)算量受到輸入通道數(shù)Cin和卷積核數(shù)量Cout的影響.一般來說,卷積核數(shù)量代表提取的特征數(shù)量,減少會(huì)影響網(wǎng)絡(luò)的準(zhǔn)確率,因此可以選擇降低輸入通道數(shù)Cin來減少運(yùn)算量.

Iandola 等人在SqueezeNet[13]中提出了Fire module,如圖2 所示,在保證準(zhǔn)確率的同時(shí)減少運(yùn)算量.Fire module 包含兩部分:壓縮(squeeze)層和擴(kuò)張(expand)層,通過減少squeeze 層的通道數(shù)量來減少整個(gè)模型需要的計(jì)算量.與AlexNet[18]相比,在保證了相同的性能的條件下,模型大小壓縮了近50 倍.

1.3 分解卷積運(yùn)算

標(biāo)準(zhǔn)的卷積操作是將一個(gè)卷積核用在輸入特征的所有通道上.一方面,模型的參數(shù)量較大;另一方面,合并所有通道的卷積運(yùn)算存在很大冗余.通過分組卷積,ResNeXt[19]將多個(gè)分支合并為一個(gè)分支.與ResNet[2]同等計(jì)算消耗的情況下,有著更高的準(zhǔn)確率.

Howard 等人提出了MobileNet V1[8]利用深度可分離卷積對(duì)標(biāo)準(zhǔn)的卷積操作進(jìn)行了分解,如圖3 所示.深度可分離卷積可分為深度卷積(depthwise convolution)和逐點(diǎn)卷積兩個(gè)操作:深度卷積對(duì)于每個(gè)輸入通道采用不同的卷積核,即一個(gè)通道對(duì)應(yīng)一個(gè)卷積核,卷積操作是按照通道進(jìn)行分解的;逐點(diǎn)卷積是卷積核大小為1×1 的標(biāo)準(zhǔn)卷積,作用在輸入的所有通道上,將來自不同通道的特征進(jìn)行融合.

標(biāo)準(zhǔn)卷積的計(jì)算量為Dk×Dk×M×N×H×W,而兩步的深度可分離卷積的計(jì)算量為Dk×Dk×M×H×W+M×N×H×W,與標(biāo)準(zhǔn)卷積的運(yùn)算量相比:

計(jì)算量大致變?yōu)樵瓉淼?/9 至1/8.最終,MobileNet[8]與VGG-16[1]相比:在準(zhǔn)確率接近一致的情況下,模型大小是VGG-16 的1/32,計(jì)算消耗量是其1/27.

一般常用的卷積核大小為3×3,即,一個(gè)深度可分離卷積的FLOPs 為3×3×M×H×W+1×1×M×N×H×W,M為輸入特征通道數(shù),H,W為輸入特征高和寬,N為當(dāng)前層卷積核數(shù)量.一般來說N要遠(yuǎn)大于9,此時(shí),深度卷積的主要計(jì)算量集中在1×1 的逐點(diǎn)卷積上.為解決這個(gè)問題,ShuffleNet[9]提出了Group 逐點(diǎn)卷積,將逐點(diǎn)卷積進(jìn)行分組卷積操作,以降低在逐點(diǎn)卷積操作方面的計(jì)算消耗,如圖4 所示.圖4(a)為一般分組卷積,造成分組之間信息無法流通;圖4(b)和圖4(c)為通道混洗(channel shuffle)操作.

ShuffleNet[9]首先將輸入通道分組,在每個(gè)組中進(jìn)行單獨(dú)的卷積運(yùn)算.如果單純地堆疊分組卷積操作,會(huì)造成各個(gè)組之間的信息無法流通,影響網(wǎng)絡(luò)的表達(dá)能力.為了讓分組卷積能夠得到其他分組產(chǎn)生的特征,ShuffleNet[9]提出了混洗(shuffle)操作,將來自不同組的特征重新進(jìn)行排列,使得新的分組中包含來自之前各個(gè)組的特征,保證了各個(gè)組之間的信息流通.

ShuffleNet[9]利用混洗操作和分組逐點(diǎn)卷積(group pointwise convolution)組合成ShuffleNet Unit.當(dāng)輸入特征大小為H×W×C1、Bottlenect 的通道數(shù)為C2時(shí),ResNet Unit 需要2×H×W×C1×C2+9×H×W×的FLOPs;ResNeXt[19]需要2×H×W×C1×C2+9×H×W×C2的FLOPs;而ShuffleNet Unit 只需要H×W×C2的FLOPs,進(jìn)一步減少了計(jì)算量(如圖5 所示).

最終,ShuffleNet[9]在與AlexNet[18]相同準(zhǔn)確率的情況下,比后者快13 倍.

為了在保持網(wǎng)絡(luò)規(guī)模的前提下進(jìn)一步提高網(wǎng)絡(luò)的性能,在后來的MobileNet V2[10]中引入了殘差結(jié)構(gòu),并在殘差結(jié)構(gòu)上進(jìn)行改造:首先,由于深度卷積本身不能改變特征的通道數(shù),并且在輸入通道較少的情況下無法較好地提取特征,因此在殘差分支中,使用逐點(diǎn)卷積來先增加后減少特征通道數(shù),使得深度卷積層工作在高維的特征之中,與之前的殘差分支正好相反;其次,激活函數(shù)在高維的空間中能夠有效地增加非線性能力,但是在低維空間中會(huì)破壞特征的表達(dá)能力,因?yàn)榈? 個(gè)逐點(diǎn)卷積起到降維的作用,所以去掉第2 個(gè)逐點(diǎn)卷積之后的激活層,也就是使用了線性的Bottleneck,如圖6 所示.由于提升了網(wǎng)絡(luò)的表達(dá)能力,MobileNet V2[10]只需要MobileNet V1[8]的2/5 的計(jì)算量就能達(dá)到相同的性能.

Ma 等人[12]發(fā)現(xiàn),FLOPs 作為一個(gè)間接的指標(biāo),只能大致地估測(cè)運(yùn)行速度,與速度并不完全相符.主要原因有兩方面:一是很多操作無法被算入FLOPs 中,例如內(nèi)存訪問成本(memory access cost,簡(jiǎn)稱MAC)、并行化程度等;二是受到計(jì)算平臺(tái)的影響.Ma 等人[12]提出了4 種輕量級(jí)網(wǎng)絡(luò)的指導(dǎo)方案:(1) 相同的輸入輸出通道數(shù)能夠減少內(nèi)存訪問成本(MAC);(2) 過多的分組卷積會(huì)增加MAC;(3) 網(wǎng)絡(luò)的碎片化程度會(huì)減少并行化程度;(4) 不能忽略元素級(jí)操作.

根據(jù)以上4 條方案,在ShuffleNet V1[9]的基礎(chǔ)上進(jìn)行改進(jìn),如圖7 所示.

圖7(a)、圖7(b)分別為空間尺度不變的ShuffleNet V1 Unit 和空間尺度變小的ShuffleNet V1 Unit,圖7(c)、圖7(d)分別為空間尺度不變的ShuffleNet V2 Unit 和空間尺度變小的ShuffleNet V2 Unit.圖7(c)利用通道分割(channel split)的方法將輸入分割成兩部分:一半作為直接連接分支,一半作為殘差分支,并且殘差分支中1×1 卷積的輸入輸出通道數(shù)相等(符合方案1),并且不使用分組卷積(符合方案2).最后進(jìn)行Concat,避免了特征相加的操作(符合方案4).圖7(d)去掉了通道分割操作,從而在減少了特征圖空間尺寸的同時(shí),通過Concat 增加了通道數(shù).ShuffleNet V2 通過提出新的指標(biāo)(MAC),并且在MAC 上優(yōu)化,加快了運(yùn)行速度同時(shí)也提升了準(zhǔn)確率.新的ShuffleNet V2 比MobileNet V1 快58%,比ShuffleNet V1 快63%,比Xception 快25%.

在Zhang 提出的IGCNets[20]中,同樣利用了分組卷積,深度卷積可以看作是分組卷積的一種極限情況,即,將每個(gè)通道分為一組.在IGCNets[20]中,使用了兩級(jí)分組卷積:第1 級(jí)是空間卷積,一般大小為3×3;第2 級(jí)是1×1 的分組卷積.為了防止各個(gè)組的特征之間無法進(jìn)行信息交互,采取了不同的分組數(shù)量,即:第1 級(jí)卷積分為2 組,然后對(duì)特征進(jìn)行重新排列;第2 級(jí)卷積分為3 組,并且每一組都包含之前所有組的一部分特征.如圖8 所示.

而IGCV2[21]更進(jìn)一步,通過使用3×3 的深度卷積和L個(gè)1×1 的分組卷積來提升卷積效率.并且要求這一系列的卷積都滿足互補(bǔ)條件(complementary condition),即,最終輸出的特征中的一個(gè)通道存在且僅存在一條路徑連接到輸入特征的任意一個(gè)通道.最終確保由多個(gè)稀疏的卷積核(分組卷積)組成的卷積核矩陣是稠密的,如圖9所示.

Mehta 等人提出了EspNet[22],將標(biāo)準(zhǔn)卷積分解為1×1 的逐點(diǎn)卷積和空間金字塔擴(kuò)張卷積(spatial pyramid of dilated convolutions).在減少了參數(shù)量和計(jì)算量的同時(shí),增加感受野.在隨后的EspNet V2[23]中,將原來的dilated convolution 也采用了深度卷積.同時(shí),將1×1 的逐點(diǎn)卷積更改為1×1 的分組卷積.

人工設(shè)計(jì)輕量化神經(jīng)網(wǎng)絡(luò),不同于對(duì)現(xiàn)有的網(wǎng)絡(luò)進(jìn)行壓縮,而是重新設(shè)計(jì)更加高效的網(wǎng)絡(luò)單元(主要針對(duì)卷積運(yùn)算),從而在不損失網(wǎng)絡(luò)性能的條件下,減少網(wǎng)絡(luò)的參數(shù)量,提升網(wǎng)絡(luò)運(yùn)行速度.以上介紹的3 種主要方式主要從卷積核的空間尺度、卷積的輸入通道數(shù)以及卷積的通道之間的稀疏連接等方面對(duì)標(biāo)準(zhǔn)卷積操作進(jìn)行改進(jìn).在這一方向,模型壓縮和加速都已經(jīng)取得了較好的成果.

2 卷積神經(jīng)網(wǎng)絡(luò)的壓縮算法

2.1 基于規(guī)則的神經(jīng)網(wǎng)絡(luò)模型壓縮

除人工設(shè)計(jì)輕量化神經(jīng)網(wǎng)絡(luò)模型外,學(xué)者們也在探究如何將已有的網(wǎng)絡(luò)進(jìn)行壓縮,從而實(shí)現(xiàn)在便攜式設(shè)備上運(yùn)行.根據(jù)神經(jīng)網(wǎng)絡(luò)在不同方面的冗余,分別使用網(wǎng)絡(luò)的分支裁剪、減少網(wǎng)絡(luò)權(quán)重占用的比特?cái)?shù)、對(duì)卷積核進(jìn)行低秩分解、知識(shí)蒸餾等方法,對(duì)已有的網(wǎng)絡(luò)模型進(jìn)行壓縮,降低對(duì)空間和計(jì)算能力的需求,實(shí)現(xiàn)在便攜設(shè)備上的實(shí)時(shí)運(yùn)行.

· 權(quán)重裁剪

權(quán)重裁剪是指對(duì)網(wǎng)絡(luò)結(jié)構(gòu)中的權(quán)重進(jìn)行刪減,從而達(dá)到壓縮網(wǎng)絡(luò)的目的.權(quán)重裁剪基于一個(gè)假設(shè):在網(wǎng)絡(luò)中很多參數(shù)都是不需要的或者不重要的,通過裁剪的方法可以將這些參數(shù)移除.通過權(quán)重裁剪的方法能夠帶來兩點(diǎn)好處:首先,參數(shù)量的減少,所需要的存儲(chǔ)空間也會(huì)相應(yīng)的減少;其次,由于參數(shù)的減少導(dǎo)致網(wǎng)絡(luò)運(yùn)行時(shí)計(jì)算量的減少,能夠減少對(duì)計(jì)算能力的需求,同時(shí)增加運(yùn)行速度.

Li 等人提出了基于權(quán)重L1 范數(shù)的逐層裁剪策略,該策略為:對(duì)每層濾波器的L1 范數(shù)進(jìn)行排序,然后刪除范數(shù)最小的濾波器,再對(duì)裁剪后的網(wǎng)絡(luò)進(jìn)行重新訓(xùn)練以恢復(fù)精度[24].LIU 等人提出了一種針對(duì)卷積神經(jīng)網(wǎng)絡(luò)中的批量歸一化(batchnorm)層進(jìn)行L1 稀疏化的壓縮算法,該算法通過迫使批量歸一化層中一些scale 參數(shù)接近于0,從而可以安全地刪除這些節(jié)點(diǎn)而不會(huì)對(duì)網(wǎng)絡(luò)的精度造成巨大的影響;并通過多次使用該策略,使得網(wǎng)絡(luò)達(dá)到很高的壓縮比[25].Hu 等人發(fā)現(xiàn),卷積神經(jīng)網(wǎng)絡(luò)中有大量的神經(jīng)元的輸出結(jié)果接近于0,于是提出一種Apoz 的通道重要性衡量方法,以單個(gè)神經(jīng)元通道的輸出結(jié)果中值接近為0 的占比來衡量該神經(jīng)元的重要性[26].Tian 等人通過LDA 方法來獲取與分類最相關(guān)的權(quán)重,而裁減掉與分類相關(guān)度不大的權(quán)重,在人臉檢測(cè)網(wǎng)絡(luò)中得到了很高的壓縮比[27].Molchanov 等人提出一種通過衡量裁剪前后權(quán)重誤差的泰勒展開式來衡量通道重要性的策略,來逐步裁剪卷積神經(jīng)網(wǎng)絡(luò)[28].Luo 等人提出一種方法,通過最小化裁剪后通道數(shù)在下一層的誤差的方法來去掉不重要的神經(jīng)元[29],得到了非常魯棒的裁剪效果.He 等人為每個(gè)通道增加一個(gè)掩膜,然后利用稀疏優(yōu)化策略來迭代優(yōu)化掩膜和權(quán)重,從而最小化裁剪后的網(wǎng)絡(luò)與原始網(wǎng)絡(luò)之間的誤差[30].Wen 等人提出一種在濾波器級(jí)別、通道級(jí)別以及層級(jí)別通過組Lasso 稀疏化進(jìn)行網(wǎng)絡(luò)裁剪的方法,可在不同層面上對(duì)卷積神經(jīng)進(jìn)行裁剪[31].Yu 等人提出一種將權(quán)重的重要性從后往前逐層反傳的方法,可以快速有效地得到整體網(wǎng)絡(luò)的權(quán)重重要性[32].

· 權(quán)重量化

在權(quán)重量化層面,Gupta 發(fā)現(xiàn):使用16 位的定點(diǎn)數(shù)作為權(quán)重,足夠在MNIST 上訓(xùn)練一個(gè)神經(jīng)網(wǎng)絡(luò)[33].此外,Dettmers 研究了8 位定點(diǎn)量化,加快并行訓(xùn)練中深度網(wǎng)絡(luò)的收斂速度[34].Han 等人提出了結(jié)合權(quán)重剪枝、量化和霍夫編碼的策略,可以得到非常高的壓縮比,但是這種方法需要專門的運(yùn)算策略來實(shí)現(xiàn).

Courbariaux 等人提出了二值權(quán)重網(wǎng)絡(luò)(binary weight network,簡(jiǎn)稱BWN)[35],即:對(duì)于網(wǎng)絡(luò)的權(quán)重而言,只有1 或-1 兩個(gè)值.BWN 采用了一種混合策略(binary connect):對(duì)于網(wǎng)絡(luò)的中間層特征,保留其原始精度,只將網(wǎng)絡(luò)權(quán)重進(jìn)行二值化,將網(wǎng)絡(luò)前向傳播與反向傳播時(shí)的乘法操作變?yōu)榧臃ú僮?在網(wǎng)絡(luò)的訓(xùn)練過程中,二值化的權(quán)重應(yīng)用于前向傳播與反向傳播的梯度計(jì)算;而在更新權(quán)重時(shí),采用全精度的權(quán)重;當(dāng)全精度的權(quán)重越過閾值時(shí),其對(duì)應(yīng)的二值化后的權(quán)重就會(huì)發(fā)生改變.在測(cè)試時(shí),只保留和使用二值化之后的權(quán)重,每個(gè)權(quán)重只占用一個(gè)bit 的空間,對(duì)于32 位或者64 位bit 的浮點(diǎn)數(shù),有32~64 倍的壓縮倍率;并且由于用累加代替了乘法運(yùn)算,使得網(wǎng)絡(luò)的運(yùn)行效率也大幅提升.

二值權(quán)重網(wǎng)絡(luò)的成功表明,對(duì)權(quán)重進(jìn)行量化是可行的.隨后,Courbariaux 等人再次提出了二值神經(jīng)網(wǎng)絡(luò)(binary neural network,簡(jiǎn)稱BNN)[36],進(jìn)一步增加了二值神經(jīng)網(wǎng)絡(luò)的量化程度,將需要的計(jì)算量壓縮至極低的水平.二值神經(jīng)網(wǎng)絡(luò)與二值權(quán)重網(wǎng)絡(luò)相比,不僅在權(quán)重上是二值化的,并且在每一層的激活值上也進(jìn)行了二值化.BNN 將每一層的激活值和權(quán)重的1 和-1 分別用1 和0 代替,原來用32bit 存儲(chǔ)的權(quán)重和激活值只需1bit 就能存儲(chǔ).同時(shí),由于激活值和權(quán)重都為1 或-1,在計(jì)算的過程中產(chǎn)生的數(shù)值仍然是1 或-1,將兩個(gè)浮點(diǎn)數(shù)的乘法計(jì)算變成了1bit 的位運(yùn)算.從而從參數(shù)的占用空間和計(jì)算量?jī)蓚€(gè)方面減少了對(duì)承載設(shè)備能力的需求,使得模型能夠更加容易的移植到嵌入式設(shè)備上.

雖然二值神經(jīng)網(wǎng)絡(luò)極大地減少了計(jì)算量和模型大小,但是其精度有待提高.由于二值權(quán)重網(wǎng)絡(luò)的權(quán)重只有1 和-1 兩種狀態(tài),而一般神經(jīng)網(wǎng)絡(luò)訓(xùn)練得到的權(quán)重往往是均值為0 的正態(tài)分布,導(dǎo)致原始精度的權(quán)重與量化后的權(quán)重存在較大的誤差.Li 和Zhang 等人為了解決這個(gè)問題,在二值權(quán)重網(wǎng)絡(luò)的基礎(chǔ)上提出了三值權(quán)重網(wǎng)絡(luò)(TWN)[37].與二值權(quán)重網(wǎng)絡(luò)相比,三值權(quán)重網(wǎng)絡(luò)增加了0 這種狀態(tài),即權(quán)重存在-1,0 和1 這3 種量化狀態(tài).同時(shí),由于狀態(tài)的增加,模型的表達(dá)能力得到增強(qiáng),以常用的3×3 大小的卷積核為例,二值權(quán)重網(wǎng)絡(luò)的3×3 卷積核存在23×3=512 種狀態(tài),而三值權(quán)重網(wǎng)絡(luò)存在33×3=19683 種狀態(tài);在模型的壓縮方面,由于存在三值權(quán)重網(wǎng)絡(luò)存在3 種狀態(tài),因此壓縮能力是二值權(quán)重網(wǎng)絡(luò)的一半,但是從壓縮模型角度來看已經(jīng)足夠;在網(wǎng)絡(luò)的計(jì)算上,新增加的0 狀態(tài)不需要額外的計(jì)算,因此三值權(quán)重網(wǎng)絡(luò)與二值權(quán)重網(wǎng)絡(luò)所需的計(jì)算量相同.從以上3 個(gè)方面來看,三值權(quán)重網(wǎng)絡(luò)在與二值權(quán)重網(wǎng)絡(luò)在運(yùn)算量基本相同的條件下,能夠顯著提高了網(wǎng)絡(luò)的準(zhǔn)確率.

Leng 等人將網(wǎng)絡(luò)的低比特量化問題建模為離散約束優(yōu)化問題,再將原問題分解為若干子問題,并通過交替求解子問題對(duì)網(wǎng)絡(luò)進(jìn)行量化,并取得了很好的效果[38].Hu 等人提出一種基于哈希來訓(xùn)練二值神經(jīng)網(wǎng)絡(luò)的算法,通過哈希算法來訓(xùn)練二值網(wǎng)絡(luò)[39].Wang 等人提出一種在激活函數(shù)和權(quán)重上先后量化網(wǎng)絡(luò)的方法[40].Frederick等人提出一種同時(shí)進(jìn)行剪枝和量化的網(wǎng)絡(luò)裁剪架構(gòu),充分利用了兩類方法的優(yōu)勢(shì)[41].

· 低秩分解

卷積層的卷積核W∈Rw×h×c×n是一個(gè)4D 的張量,低秩分解的方法主要是將卷積核進(jìn)行分解以減少冗余,低秩分解的關(guān)鍵在于如何對(duì)卷積核的參數(shù)進(jìn)行排列,以及要在哪個(gè)維度上進(jìn)行秩的約束.

Denton 研究了多種低秩分解策略,例如二維矩陣的SVD 分解、三維張量的二維展開以及基于聚類分解等[42].Zhang 采用廣義奇異值分解策略,在分類精度輕微下降的情況下,實(shí)現(xiàn)了4 倍的加速效果[43].將一個(gè)四維的卷積核形狀轉(zhuǎn)換成(w×h×c)×n,然后將其分解為兩部分,如圖10 所示:一部分為d個(gè)大小為w×h×c的卷積核,另一部分為n個(gè)1×1×d的卷積核,其中,d<n.在卷積核的數(shù)量上施加低質(zhì)約束,原來的n個(gè)卷積核可以看作是d個(gè)大小為w×h×c的卷積核的線性組合.用這種方法在VGG[1]上實(shí)驗(yàn),理論上可以獲得3 倍的速度提升,top-5 error 僅僅增加1.66%.類似的,也可以在特征的輸入通道數(shù)c上施加低秩約束,將卷積核形狀變?yōu)閏×(w×h×n),然后分解為c個(gè)1×1×d的卷積核和d個(gè)大小為w×h×n的卷積核.兩種方法只是施加約束的維度不同,是對(duì)稱的分解操作.Lebedev 等人提出一種基于CP 分解對(duì)卷積網(wǎng)絡(luò)中的卷積核進(jìn)行壓縮的方法[44].Kim 等人提出一種基于tucker分解的卷積核分解方法,同樣可以有很好的壓縮效果[45].

· 知識(shí)蒸餾

不同于其他的壓縮或加速的方法,知識(shí)蒸餾是創(chuàng)建一個(gè)“學(xué)生”網(wǎng)絡(luò),然后讓其去擬合“教師”網(wǎng)絡(luò)分布的方法,使得小型網(wǎng)絡(luò)能夠?qū)W習(xí)到大型網(wǎng)絡(luò)的知識(shí).一般來說,“教師”網(wǎng)絡(luò)是一個(gè)較大的網(wǎng)絡(luò),而“學(xué)生”網(wǎng)絡(luò)是一個(gè)輕量級(jí)的網(wǎng)絡(luò).利用網(wǎng)絡(luò)之間的知識(shí)傳遞,而不是直接訓(xùn)練一個(gè)輕量級(jí)網(wǎng)絡(luò).

Hinton 首先提出了知識(shí)蒸餾的概念,讓小網(wǎng)絡(luò)在學(xué)習(xí)分類目標(biāo)的同時(shí),也盡量擬合大網(wǎng)絡(luò)對(duì)不同類別的軟分類結(jié)果[46],如圖11 所示.Romero 等人在Hinton 的基礎(chǔ)上提出Fitnet[47],網(wǎng)絡(luò)的深度比寬度更加重要,因此在Fitnet 中使用了更深但是更窄的網(wǎng)絡(luò)當(dāng)作“學(xué)生”網(wǎng)絡(luò);并且不單只考慮最終分類層的知識(shí)提取,也考慮中間層特征的擬合.基于這個(gè)概念,甚至能夠取得比原始網(wǎng)絡(luò)更好的分類結(jié)果.Zagoruyko 等人提出了 Attention Transfer(AT),擴(kuò)展了FitNet 的約束,讓“學(xué)生”網(wǎng)絡(luò)學(xué)習(xí)“教師”網(wǎng)絡(luò)的注意力圖(attention map)而不是中間層的特征,取得了比FitNet 更好的效果[48].

在模型壓縮方面,主要是對(duì)已有的網(wǎng)絡(luò)進(jìn)行參數(shù)量或者網(wǎng)絡(luò)規(guī)模上的壓縮.權(quán)重裁剪主要是去掉對(duì)網(wǎng)絡(luò)貢獻(xiàn)小的參數(shù),最終的效果依賴于剪枝的策略;權(quán)重量化使用更少的比特?cái)?shù)來表示權(quán)重,能夠極大地對(duì)網(wǎng)絡(luò)進(jìn)行壓縮,但是對(duì)網(wǎng)絡(luò)性能影響較大;低秩分解主要是從稀疏矩陣的冗余上對(duì)其進(jìn)行分解,在模型壓縮與加速上都取得了一定的成果,但是實(shí)際應(yīng)用中,分解操作需要的計(jì)算量較大;知識(shí)蒸餾是使用小網(wǎng)絡(luò)來模擬大網(wǎng)絡(luò)的性能,但是其應(yīng)用場(chǎng)景受限于“教師”的應(yīng)用場(chǎng)景.

2.2 基于自動(dòng)機(jī)器學(xué)習(xí)的自動(dòng)神經(jīng)網(wǎng)絡(luò)模型壓縮

模型壓縮技術(shù)的核心是決定每一層的壓縮策略,傳統(tǒng)的模型壓縮模型主要包括剪枝、權(quán)值共享、低秩分解和知識(shí)蒸餾.一般而言,深度神經(jīng)網(wǎng)絡(luò)中各層的冗余程度不同,淺層具有較少的冗余,全連接層具有較大的冗余,使用這些方法不僅需要算法設(shè)計(jì)者具有豐富的專業(yè)知識(shí)和領(lǐng)域知識(shí),探索大規(guī)模的參數(shù)空間,權(quán)衡模型大小、運(yùn)算效率和模型性能,同時(shí)還需要反復(fù)的實(shí)驗(yàn)以獲得最佳的模型參數(shù),非常的耗時(shí).然而,由于深度神經(jīng)網(wǎng)絡(luò)中的各層不是相互孤立的,基于規(guī)則的壓縮策略往往并不是最優(yōu)的.深度神經(jīng)網(wǎng)絡(luò)需要大量的訓(xùn)練數(shù)據(jù)學(xué)習(xí)針對(duì)特定問題的模型參數(shù),導(dǎo)致了傳統(tǒng)的模型壓縮算法不能直接從一個(gè)模型遷移到另外一個(gè)模型.這些影響因素嚴(yán)重限制了深度神經(jīng)網(wǎng)絡(luò)模型壓縮算法的發(fā)展與應(yīng)用.

近些年來,自動(dòng)機(jī)器學(xué)習(xí)算法(AutoML)受到學(xué)術(shù)界和工業(yè)界的廣泛關(guān)注,可以看作是設(shè)計(jì)一系列的控制器操作機(jī)器學(xué)習(xí)模型,使得模型可以自動(dòng)地學(xué)習(xí)到合適的參數(shù)和網(wǎng)絡(luò)架構(gòu)而不需人工的干預(yù),減少對(duì)專業(yè)知識(shí)和領(lǐng)域知識(shí)的要求,從而降低設(shè)計(jì)機(jī)器學(xué)習(xí)算法的難度.

隨著深度神經(jīng)網(wǎng)絡(luò)越來越深,設(shè)計(jì)空間的復(fù)雜性以指數(shù)級(jí)的速度爆炸式地增加,因此,傳統(tǒng)的基于規(guī)則的模型壓縮算法不能滿足模型壓縮的需求.西安交通大學(xué)和谷歌聯(lián)合提出了自動(dòng)模型壓縮算法AMC[5],利用強(qiáng)化學(xué)習(xí)方法學(xué)習(xí)壓縮策略,學(xué)習(xí)到的壓縮策略優(yōu)于傳統(tǒng)的基于規(guī)則的壓縮策略,具有更高的壓縮比,并且能更好地保持模型的性能,大大減少了人為因素的干擾.

AMC[5]算法提出:壓縮精度對(duì)每層的稀疏性非常敏感,需要細(xì)粒度的動(dòng)作空間.與傳統(tǒng)的在離散空間上進(jìn)行搜索不同,AMC[5]算法采用DDPC[49]代理的連續(xù)壓縮比控制策略,通過優(yōu)化損失函數(shù)學(xué)習(xí)模型壓縮策略.特別地,DDPC[49]代理以分層的方式處理神經(jīng)網(wǎng)絡(luò),對(duì)于每一層Lt,代理接受編碼該層的有用特征St,然后輸出精確壓縮比.第Lt層壓縮完成后,代理移動(dòng)到下一層Lt+1,在沒有微調(diào)的情況下,對(duì)壓縮后的神經(jīng)網(wǎng)絡(luò)中的所有層的精度進(jìn)行評(píng)估.這種簡(jiǎn)單的近似,可以避免不必要的重新訓(xùn)練,并提供高質(zhì)量的搜索結(jié)果.不同的基于強(qiáng)化學(xué)習(xí)的輕量級(jí)模型方法的比較見表1.AMC[5]與其他方法N2N[50],NT[51],NAS[6]的區(qū)別在于無需微調(diào),僅需要設(shè)計(jì)一個(gè)簡(jiǎn)單的控制器,實(shí)現(xiàn)用較少的GPU 時(shí)間實(shí)現(xiàn)快速壓縮,同時(shí)也支持連續(xù)的動(dòng)作空間.

Table 1 Comparison of lightweight model methods based on reinforcement learning表1 基于強(qiáng)化學(xué)習(xí)的輕量級(jí)模型方法的比較

針對(duì)不同的應(yīng)用場(chǎng)景,AMC 提出了兩種壓縮策略搜索協(xié)議:對(duì)時(shí)效性要求較高的場(chǎng)景,例如移動(dòng)應(yīng)用程序、自動(dòng)駕駛和廣告排名等,通過限制搜索空間,即在模型大小和濾波器的數(shù)量等方面進(jìn)行壓縮,以獲得最大的硬件資源;對(duì)性能要求較高的場(chǎng)景,例如拍照識(shí)圖和谷歌圖像等,通過研究模型的精度和規(guī)模設(shè)計(jì)獎(jiǎng)勵(lì)函數(shù),實(shí)現(xiàn)模型的壓縮并保持模型的精度.圖12 表示了AMC 模型壓縮算法流程圖.

AMC 模型通過強(qiáng)化學(xué)習(xí)算法訓(xùn)練代理,實(shí)現(xiàn)動(dòng)作的預(yù)測(cè)并計(jì)算稀疏性,執(zhí)行壓縮.同時(shí),快速評(píng)估壓縮后的模型性能,通過優(yōu)化損失函數(shù),鼓勵(lì)更小、更精確的結(jié)果更新代理.AMC 在ResNet-50 上評(píng)估了壓縮的性能,并測(cè)試了壓縮模型從分類到目標(biāo)檢測(cè)的泛化能力.實(shí)驗(yàn)表明,AMC 提供了比手工設(shè)計(jì)的啟發(fā)式策略更優(yōu)的性能.對(duì)于ResNet-50,壓縮比從3.4 倍提高到了5 倍而不損失準(zhǔn)確率,如圖13 所示.

此外,AMC 將MobileNet 的FLOPs 減少了2 倍,使最高準(zhǔn)確率達(dá)到了70.2,在Titan XP 和安卓手機(jī)上,分別實(shí)現(xiàn)了1.53 倍和1.95 倍的加速,見表2.

Table 2 Compression based on learning vs compression based on rules表2 基于學(xué)習(xí)的壓縮VS 基于規(guī)則的壓縮

3 基于神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索的自動(dòng)化輕量級(jí)神經(jīng)網(wǎng)絡(luò)設(shè)計(jì)

人工設(shè)計(jì)輕量級(jí)神經(jīng)網(wǎng)絡(luò)需要考慮層間的連接方式、網(wǎng)絡(luò)的深度、卷積計(jì)算方式等大量的影響因素,同時(shí)需要根據(jù)模型的性能不斷的調(diào)整網(wǎng)絡(luò)的結(jié)構(gòu).不僅需要設(shè)計(jì)者具有豐富的專業(yè)知識(shí)和領(lǐng)域知識(shí),同時(shí)非常依賴設(shè)計(jì)者的經(jīng)驗(yàn),需要耗費(fèi)大量的訓(xùn)練時(shí)間和計(jì)算資源評(píng)估神經(jīng)網(wǎng)絡(luò)的性能.因此,人工設(shè)計(jì)輕量級(jí)神經(jīng)網(wǎng)絡(luò)需要大量的時(shí)間、人力和物力,這些影響因素嚴(yán)重限制了輕量級(jí)神經(jīng)網(wǎng)絡(luò)在便攜式設(shè)備上的應(yīng)用與發(fā)展.

為了減輕對(duì)設(shè)計(jì)者的要求,神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索(neural architecture search,簡(jiǎn)稱NAS)是指根據(jù)某種搜索策略,在特定的搜索空間內(nèi),自動(dòng)設(shè)計(jì)出解決特定任務(wù)的高性能神經(jīng)網(wǎng)絡(luò)架構(gòu).到目前為止,NAS 在圖像分類[54]、語義分割[55]等視覺任務(wù)上的性能已經(jīng)超過了手工設(shè)計(jì)的神經(jīng)網(wǎng)絡(luò)架構(gòu).NAS 由3 部分構(gòu)成,分別是搜索空間、搜索策略和性能評(píng)估策略.其中,

· 搜索空間定義了構(gòu)建神經(jīng)網(wǎng)絡(luò)的基本架構(gòu)單元,將適合特定任務(wù)的典型網(wǎng)絡(luò)架構(gòu)作為先驗(yàn)知識(shí),可以有效地減少搜索空間的大小.但是該過程往往會(huì)引入人為因素的干擾,可能會(huì)影響不同類型的神經(jīng)網(wǎng)絡(luò)架構(gòu)的搜索;

· 搜索策略決定了如何在通常為指數(shù)級(jí)甚至是無限大的搜索空間內(nèi)搜索用于解決特定任務(wù)的神經(jīng)網(wǎng)絡(luò)架構(gòu),并決定網(wǎng)絡(luò)中不同層/模塊的連接方式和參數(shù)等.一方面,需要快速找到性能良好的神經(jīng)網(wǎng)絡(luò)架構(gòu);另一方面,需要避免過早的收斂到次優(yōu)架構(gòu);

· 性能評(píng)估策略是指準(zhǔn)確、高效地度量神經(jīng)網(wǎng)絡(luò)的性能.

傳統(tǒng)的性能評(píng)價(jià)方法通過在針對(duì)特定任務(wù)構(gòu)建的訓(xùn)練數(shù)據(jù)集上,進(jìn)行完整訓(xùn)練和測(cè)試度量神經(jīng)網(wǎng)絡(luò)的性能.這種方法的計(jì)算成本和時(shí)間復(fù)雜度高,對(duì)計(jì)算資源的需求大.因此,最近的主要研究方向集中在如何設(shè)計(jì)高效率的性能評(píng)估策略.圖14 表示NAS 算法的流程.搜索策略從預(yù)定義的搜索空間Θ內(nèi)選擇神經(jīng)網(wǎng)絡(luò)架構(gòu)A,通過性能評(píng)估策略度量神經(jīng)網(wǎng)絡(luò)架構(gòu)的性能,作為獎(jiǎng)勵(lì)反饋回搜索策略,搜索策略通過接受到的獎(jiǎng)勵(lì)調(diào)整神經(jīng)網(wǎng)絡(luò)的架構(gòu).通過反復(fù)的迭代,最終得到最優(yōu)的神經(jīng)網(wǎng)絡(luò)架構(gòu).

3.1 搜索空間

搜索空間定義了NAS 中構(gòu)建神經(jīng)網(wǎng)絡(luò)的基本架構(gòu)單元,是神經(jīng)網(wǎng)絡(luò)模型通用定義的一個(gè)子空間.可以根據(jù)特定任務(wù)的先驗(yàn)知識(shí)引入各種約束,限制基本架構(gòu)單元的類型和搜索空間的大小.搜索空間根據(jù)基本架構(gòu)的類型分為兩種主要類型:第1 種是直接搜索整個(gè)神經(jīng)網(wǎng)絡(luò)架構(gòu)的全局搜索空間,包括鏈?zhǔn)郊軜?gòu)搜索空間和多分支架構(gòu)搜索空間;第2 種是通過重復(fù)某些特定結(jié)構(gòu)構(gòu)建神經(jīng)網(wǎng)絡(luò)架構(gòu)的局部搜索空間,代表性方法是基于塊的搜索空間.

3.1.1 全局搜索空間

圖15 表示了鏈?zhǔn)胶投喾种Ъ軜?gòu)搜索空間,圖中不同節(jié)點(diǎn)表示神經(jīng)網(wǎng)絡(luò)中不同類型的層,采用不同的顏色表示,圖中的有向邊指示了輸入和輸出的關(guān)系.其中最簡(jiǎn)單的類型是鏈?zhǔn)郊軜?gòu)搜索空間,如圖15(a)所示.鏈?zhǔn)郊軜?gòu)搜索空間通過連續(xù)地連接n層構(gòu)建神經(jīng)網(wǎng)絡(luò),其中第Li層以第Li-1層的輸出作為輸入,并且第Li的輸出作為第Li+1層的輸入.鏈?zhǔn)郊軜?gòu)搜索空間的參數(shù)包括:(1) 神經(jīng)網(wǎng)絡(luò)的(最大)層數(shù)n;(2) 神經(jīng)網(wǎng)絡(luò)中每層的類型,包括池化、卷積或其他高級(jí)操作,例如深度可分離卷積[56]、空洞卷積[57]等;(3) 神經(jīng)網(wǎng)絡(luò)的超參數(shù),包括卷積核的數(shù)量、核大小、卷積步長(zhǎng)[58-60]和全連接層的數(shù)量[61]等.需要注意的是:不同的參數(shù)之間存在關(guān)聯(lián)關(guān)系,例如神經(jīng)網(wǎng)絡(luò)的超參數(shù)受到卷積核的數(shù)量和核大小的約束,因此搜索空間的參數(shù)不是固定長(zhǎng)度.

Baker 等人[58]的工作研究了鏈?zhǔn)郊軜?gòu)搜索空間,確定了一組可被搜索的操作,包括卷積、池化和線性變化等,以及設(shè)置了不同的超參數(shù),包括濾波器的數(shù)量、卷積核的大小、卷積步長(zhǎng)等.進(jìn)一步地,該方法同時(shí)考慮了一些額外的限制,排除一部分顯著不正確的神經(jīng)網(wǎng)絡(luò)架構(gòu),例如神經(jīng)網(wǎng)絡(luò)的第1 層為池化層的網(wǎng)絡(luò)架構(gòu),將具有高分辨率的特征作為全連接層的輸入等.Zoph 等人[62]提出了松弛鏈?zhǔn)郊軜?gòu)搜索空間,允許鏈?zhǔn)郊軜?gòu)間的任意按序節(jié)點(diǎn)存在殘差連接,可以實(shí)現(xiàn)搜索得到更加廣泛、更加不同的神經(jīng)網(wǎng)絡(luò)架構(gòu).

根據(jù)人工設(shè)計(jì)深度卷積神經(jīng)網(wǎng)絡(luò)的經(jīng)驗(yàn)和教訓(xùn),鏈?zhǔn)郊軜?gòu)搜索空間具有結(jié)構(gòu)簡(jiǎn)單、計(jì)算復(fù)雜度低的特點(diǎn).但是在訓(xùn)練鏈?zhǔn)缴窠?jīng)網(wǎng)絡(luò)的過程中,容易發(fā)生梯度消失的問題,并且神經(jīng)網(wǎng)絡(luò)模型的規(guī)模小、學(xué)習(xí)能力差.為解決上述問題,最近提出的NAS 方法受到近些年來典型人工設(shè)計(jì)的深度卷積神經(jīng)網(wǎng)絡(luò)模型(ResNet[2],Inception[63]等)的啟發(fā),建立了復(fù)雜的、具有多分支架構(gòu)的搜索空間,如圖15(b)所示.

多分支架構(gòu)搜索空間中,第Li層通過聯(lián)合第Li-1層的全部輸出作為輸入gi(L0,…,Li-1),根據(jù)神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)分類,主要存在3 種多分支連接方式.

(1) 鏈?zhǔn)竭B接方式,gi(Li-1,…,L0)=Li-1,即第Li層以第Li-1層的輸出作為輸入,并且第Li的輸出作為第Li+1層的輸入.因此,鏈?zhǔn)郊軜?gòu)搜索空間可以被解釋為是多分支架構(gòu)搜索空間的特例;

(2) 殘差連接方式[2],對(duì)前一層的所有輸出求和,即gi(Li-1,…,L0)=Li-1+Lk,k<i-1;

(3) 密集連接方式[3],串聯(lián)前一層的所有輸出,即gi(Li-1,…,L0)=concat(Li-1,…,L0).

多分支架構(gòu)搜索空間可以更好地探索神經(jīng)網(wǎng)絡(luò)中層之間不同的連接方式,豐富了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的類型,增加神經(jīng)網(wǎng)絡(luò)模型的容量,提高神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)能力,提升解決特定任務(wù)的性能.

3.1.2 局部搜索空間

雖然鏈?zhǔn)胶投喾种Ъ軜?gòu)搜索空間可以以更靈活的方式構(gòu)建不同類型的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),但是面臨著搜索空間大、參數(shù)規(guī)模大,需要大量的計(jì)算資源實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)的搜索.因此往往收斂至次優(yōu)或局部極小的神經(jīng)網(wǎng)絡(luò)架構(gòu),不能有效地解決特定任務(wù).為了解決上述問題,學(xué)者們受到人工設(shè)計(jì)的深度神經(jīng)網(wǎng)絡(luò)模型中存在大量重復(fù)的塊結(jié)構(gòu)的啟發(fā),提出了重復(fù)堆疊塊結(jié)構(gòu),而不是通過搜索單一層構(gòu)建神經(jīng)網(wǎng)絡(luò).這種塊結(jié)構(gòu)通常由更小的塊構(gòu)成,通過堆疊塊構(gòu)建更大的神經(jīng)網(wǎng)絡(luò)架構(gòu).這種設(shè)計(jì)不僅可以保證神經(jīng)網(wǎng)絡(luò)架構(gòu)的性能,而且通過簡(jiǎn)單修改神經(jīng)網(wǎng)絡(luò)的參數(shù),可以很容易地將搜索到的神經(jīng)網(wǎng)絡(luò)推廣到其他的數(shù)據(jù)集和任務(wù)中.

通過引入針對(duì)特定問題的先驗(yàn)知識(shí),設(shè)計(jì)具有不同特定架構(gòu)的塊,構(gòu)成基于塊的搜索空間,而不僅僅包括不同類型的單一層.近些年來,學(xué)者們成功設(shè)計(jì)了一些基于塊的搜索空間[54,64-69].NasNet 模型[6]是第1 個(gè)提出了基于塊的搜索空間,該方法設(shè)計(jì)了兩種類型的塊結(jié)構(gòu),分別是正常塊(normal cell)和降維塊(reduction cell),如圖16所示.正常塊內(nèi)的卷積步長(zhǎng)設(shè)置為1,可以保持輸入特征的維度不變;降維塊內(nèi)的卷積步長(zhǎng)設(shè)置為2,降低輸入特征的空間維度.

同時(shí),Cai 等人[67]將如DenseNet[3]等經(jīng)典手工設(shè)計(jì)的深度神經(jīng)網(wǎng)絡(luò)模型直接應(yīng)用在基于塊的搜索空間中;Dong 等人[70]通過設(shè)置搜索沒有分支結(jié)構(gòu)并交替使用具有固定結(jié)構(gòu)的塊,提出了滿足模型參數(shù)少、推理時(shí)間快的快速搜索模型,如圖17 所示.原則上,不同的塊之間可以采用任意的連接方式,多分支架構(gòu)搜索空間內(nèi)的所有連接方式均可以使用.理想情況下,塊結(jié)構(gòu)和整體的神經(jīng)網(wǎng)絡(luò)架構(gòu)應(yīng)進(jìn)行聯(lián)合優(yōu)化,而不是單獨(dú)優(yōu)化某一部分.

3.1.3 全局搜索空間和局部搜索空間的比較

搜索空間的類型和大小決定了網(wǎng)絡(luò)架構(gòu)搜索的難度.需要注意的是:不管采用哪種類型的搜索空間,都具有不連續(xù)性和相對(duì)高維的問題.與鏈?zhǔn)胶投喾种У鹊娜炙阉骺臻g相比,基于塊局部搜索空間具有以下3 個(gè)優(yōu)點(diǎn).(1) 顯著降低了搜索空間的規(guī)模,Zoph 等人提出的NasNet[6]方法的效率比NASRL 方法[62]快了7 倍;(2) 通過堆疊塊結(jié)構(gòu)創(chuàng)建神經(jīng)網(wǎng)絡(luò)架構(gòu)已經(jīng)被證明是一個(gè)非常有效的設(shè)計(jì)原則,例如在遞歸神經(jīng)網(wǎng)絡(luò)中重復(fù)LSTM 模塊或ResNet[2]網(wǎng)絡(luò)中堆疊殘差結(jié)構(gòu);(3) 通過簡(jiǎn)單地改變塊結(jié)構(gòu)中卷積核的數(shù)量和大小,采用塊結(jié)構(gòu)創(chuàng)建的神經(jīng)網(wǎng)絡(luò)架構(gòu)更容易遷移到其他任務(wù)或數(shù)據(jù)集中.最后,通過某種搜索策略不斷地堆疊不同的塊結(jié)構(gòu)構(gòu)建最終的網(wǎng)絡(luò)架構(gòu),如圖18 所示.

到目前為止,學(xué)者們提出的基于塊的搜索空間的方法,特別是NasNet 搜索空間,是其他后續(xù)神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索方法的基礎(chǔ).大多數(shù)研究搜索空間的工作都支持局部搜索空間方法,因?yàn)橐肓岁P(guān)于特定任務(wù)的先驗(yàn)知識(shí),實(shí)驗(yàn)結(jié)果[65]同時(shí)表明了,基于塊的搜索空間可以獲得更好的結(jié)果.同時(shí),基于塊的搜索空間通過簡(jiǎn)單改變塊的結(jié)構(gòu),即改變?yōu)V波器的數(shù)量和卷積核的大小等,使得神經(jīng)網(wǎng)絡(luò)架構(gòu)非常容易地泛化到其他的數(shù)據(jù)集或任務(wù)中.一般來說,全局搜索空間沒有上述優(yōu)點(diǎn),但是在特定的應(yīng)用環(huán)境下是非常有用的.例如:當(dāng)改變輸入數(shù)據(jù)的結(jié)構(gòu)和類型時(shí),僅僅改變塊的結(jié)構(gòu)是不可行的.Tan 等人[7]在搜索移動(dòng)架構(gòu)時(shí)采用全局搜索策略,該方法認(rèn)為:層的多樣性對(duì)于移動(dòng)設(shè)備中實(shí)現(xiàn)高精度和低延遲都是至關(guān)重要的,并且這些是不能由基于塊的搜索空間提供的.

3.2 搜索策略

當(dāng)完成構(gòu)建搜索空間后,搜索策略決定了如何在搜索空間內(nèi)搜索針對(duì)特定任務(wù)的基本架構(gòu)單元,并確定神經(jīng)網(wǎng)絡(luò)內(nèi)部的連接方式.一方面需要快速找到性能良好的神經(jīng)網(wǎng)絡(luò)架構(gòu),另一方面需要避免過早地收斂到次優(yōu)的神經(jīng)網(wǎng)絡(luò)架構(gòu).首先我們給出搜索策略的定義,D表示訓(xùn)練數(shù)據(jù),M表示構(gòu)建的神經(jīng)網(wǎng)絡(luò)模型,S表示搜索空間,則搜索策略過程被形式化為Λ:

訓(xùn)練搜索策略不僅僅需要確定神經(jīng)網(wǎng)絡(luò)架構(gòu)的拓?fù)浣Y(jié)構(gòu),同時(shí)需要預(yù)測(cè)優(yōu)化器、正則約束和其他超參數(shù)等.給定訓(xùn)練數(shù)據(jù)d∈D,被劃分為訓(xùn)練集dtrain和驗(yàn)證集dvalid,搜索策略的目的是找到最優(yōu)的網(wǎng)絡(luò)架構(gòu),使得在驗(yàn)證集dvalid上的訓(xùn)練誤差最小,即:

其中,L表示損失函數(shù),用于度量神經(jīng)網(wǎng)絡(luò)架構(gòu)的性能(第3.3 節(jié)介紹);R表示正則約束.優(yōu)化損失函數(shù)L是全局優(yōu)化問題,主流的優(yōu)化策略包括基于強(qiáng)化學(xué)習(xí)的優(yōu)化策略和基于進(jìn)化算法的優(yōu)化策略.

3.2.1 基于強(qiáng)化學(xué)習(xí)的優(yōu)化策略

強(qiáng)化學(xué)習(xí)通過代理與環(huán)境進(jìn)行交互,其目標(biāo)是獲得最大化的未來獎(jiǎng)勵(lì),常用于順序決策任務(wù)中.在每次迭代過程中,一方面代理執(zhí)行動(dòng)作,觀察環(huán)境的狀態(tài)變化并接收獎(jiǎng)勵(lì);另一方面,環(huán)境根據(jù)代理發(fā)出的動(dòng)作,轉(zhuǎn)換到下一個(gè)狀態(tài),并且根據(jù)新的狀態(tài)產(chǎn)生獎(jiǎng)勵(lì),其過程如圖19 所示.

強(qiáng)化學(xué)習(xí)通常被定義為一個(gè)四元組(S,A,ρ,f),其中,

(1)S表示所有環(huán)境狀態(tài)的集合.st∈S表示代理在t時(shí)刻所處的狀態(tài);

(2)A為代理可執(zhí)行動(dòng)作的集合.at∈A表示代理在t時(shí)刻所采取的動(dòng)作;

(3)ρ:S×A→R為反饋函數(shù).ri~ρ(st,at)表示代理在狀態(tài)st執(zhí)行動(dòng)作at獲得的實(shí)時(shí)反饋;

(4)f:S×A×S→[0,1]為狀態(tài)轉(zhuǎn)移概率分布函數(shù).st+1~f(st,at)表示代理在狀態(tài)st執(zhí)行動(dòng)作at轉(zhuǎn)移到下一狀態(tài)st+1的概率.

強(qiáng)化學(xué)習(xí)算法非常適用于解決NAS 問題,其中,代理(搜索策略)決定了系統(tǒng)的狀態(tài),即在搜索空間內(nèi)自動(dòng)構(gòu)建神經(jīng)網(wǎng)絡(luò)模型;環(huán)境(性能評(píng)價(jià)策略)評(píng)估神經(jīng)網(wǎng)絡(luò)架構(gòu)的性能,并產(chǎn)生相應(yīng)的獎(jiǎng)勵(lì);代理接收到獎(jiǎng)勵(lì),并根據(jù)環(huán)境當(dāng)前的狀態(tài)預(yù)測(cè)下一個(gè)動(dòng)作(即搜索).通過反復(fù)迭代,最終得到對(duì)解決特定任務(wù)性能最高的神經(jīng)網(wǎng)絡(luò)模型.

Q學(xué)習(xí)優(yōu)化算法是最早的在線強(qiáng)化學(xué)習(xí)算法,同時(shí)也是強(qiáng)化學(xué)習(xí)最重要的算法之一.該算法的主要思路是:通過定義Q函數(shù),將在線觀測(cè)到的數(shù)據(jù)代入到下面的更新公式中對(duì)Q函數(shù)進(jìn)行迭代學(xué)習(xí),得到精確解:

其中,t是當(dāng)前時(shí)刻,αt是學(xué)習(xí)率,δt表示時(shí)間差分誤差,ak是狀態(tài)st+1能夠執(zhí)行的動(dòng)作,r是平衡因子.Q學(xué)習(xí)使用一個(gè)合理的策略使代理預(yù)測(cè)下一時(shí)刻的動(dòng)作,根據(jù)該動(dòng)作與環(huán)境的交互所得到的下一個(gè)狀態(tài)和反饋來學(xué)習(xí)得到另一個(gè)最優(yōu)的Q函數(shù).由于Q學(xué)習(xí)很重視通過與環(huán)境的交互改變代理的動(dòng)作,因此在最優(yōu)控制和游戲上有許多的應(yīng)用.

Baker 等人[58]第1 次提出了基于強(qiáng)化學(xué)習(xí)的神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索策略,結(jié)合了Q學(xué)習(xí)優(yōu)化、ε-貪婪策略和經(jīng)驗(yàn)回放方法.該方法將代理的動(dòng)作定義為選擇不同類型的層添加到神經(jīng)網(wǎng)絡(luò)架構(gòu)中,同時(shí)決定是否終止構(gòu)建新的神經(jīng)網(wǎng)絡(luò)架構(gòu);狀態(tài)是構(gòu)建的神經(jīng)網(wǎng)絡(luò)架構(gòu),不同時(shí)刻產(chǎn)生的模型被分別訓(xùn)練以評(píng)估其解決特定任務(wù)的性能;Q函數(shù)通過經(jīng)驗(yàn)回放技術(shù)進(jìn)行適當(dāng)?shù)母?為了權(quán)衡探索與利用,該方法采用ε-貪婪策略,以概率ε在搜索空間內(nèi)隨機(jī)采樣,但是不能保證搜索的架構(gòu)是最優(yōu)的.與該方法不同的是,Zhang 等人[71]在基于塊的搜索空間上提出了基于Q學(xué)習(xí)算法的搜索網(wǎng)絡(luò)架構(gòu).

策略梯度優(yōu)化算法是一種通過不斷逼近最優(yōu)值,最終得到最優(yōu)策略的優(yōu)化方法.該方法又可以分為確定策略梯度算法和隨機(jī)策略梯度算法:在確定策略梯度算法中,動(dòng)作以概率1 被執(zhí)行;在隨機(jī)策略梯度算法中,動(dòng)作以某一概率被執(zhí)行.近些年來,確定策略梯度算法逐漸受到了學(xué)者們的關(guān)注.假設(shè)需要逼近的策略是π(s,a;θ),而且該策略對(duì)參數(shù)θ可導(dǎo),則可定義目標(biāo)函數(shù)和值函數(shù):

其中,J表示在策略J下的決策,E表示期望.

Zoph 等人[62]第1 次提出了基于策略梯度算法實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索,通過直接控制模擬器實(shí)現(xiàn)神經(jīng)網(wǎng)絡(luò)架構(gòu)的預(yù)測(cè).由θ參數(shù)化的自動(dòng)回歸控制器定義了隨機(jī)策略πθ(α|s),該控制器根據(jù)先前的動(dòng)作預(yù)測(cè)后續(xù)的動(dòng)作,并使用遞歸神經(jīng)網(wǎng)絡(luò)(recurrent neural network,簡(jiǎn)稱RNN)對(duì)其進(jìn)行建模,如圖20 所示.

在每次迭代中,每個(gè)動(dòng)作以服從某一概率分布在搜索空間中采樣,按序連接并傳輸?shù)较乱淮蔚?通過性能評(píng)估策略(第3.3 節(jié)中介紹)度量預(yù)測(cè)神經(jīng)網(wǎng)絡(luò)架構(gòu)的性能,并根據(jù)強(qiáng)化更新規(guī)則更新控制器的參數(shù):

學(xué)者們同樣研究了基于塊的搜索空間下的策略梯度控制器.NasNet[6]定義了遞歸網(wǎng)絡(luò)控制器,該控制器順序地確定搜索空間內(nèi)預(yù)定義數(shù)量的塊結(jié)構(gòu)的輸入和動(dòng)作.Cai 等人[60]提出了不同動(dòng)作空間的控制器,并采用強(qiáng)化學(xué)習(xí)算法訓(xùn)練.該方法需要一個(gè)初始框架,通過Chen 等人[72]提出的方法加寬或加深神經(jīng)網(wǎng)絡(luò),雖然神經(jīng)網(wǎng)絡(luò)架構(gòu)發(fā)生了變化,但是它學(xué)習(xí)到的功能仍然保持不變.

3.2.2 基于進(jìn)化算法的優(yōu)化策略

進(jìn)化算法(evolutionary algorithm,簡(jiǎn)稱EA)是基于種群的全局優(yōu)化算法,包括初始化、父選擇[73]、重組和突變、種群選擇等基本組件.初始化定義了如何生成初始種群,初始化后,優(yōu)化器通過反復(fù)迭代以下步驟直到種群收斂:

(1) 從種群中選擇父節(jié)點(diǎn)進(jìn)行迭代;

(2) 應(yīng)用重組和變異操作來創(chuàng)建新的個(gè)體;

(3) 評(píng)估新個(gè)體的適應(yīng)度;

(4) 選擇合適的個(gè)體.

圖21 表示了進(jìn)化算法的基本流程:在進(jìn)化算法中,變異、重組和父節(jié)點(diǎn)的選擇決定了整個(gè)搜索過程,通過變異和重組權(quán)衡種群的多樣性和相似性,適應(yīng)性函數(shù)反映了優(yōu)化目標(biāo),并且個(gè)體選擇保證了種群中不同個(gè)體間的競(jìng)爭(zhēng).針對(duì)NAS 問題,種群由一組基本網(wǎng)絡(luò)架構(gòu)單元構(gòu)成,通過在種群內(nèi)選擇一個(gè)基本架構(gòu)單元作為父節(jié)點(diǎn)用于變異和重組,即產(chǎn)生新的神經(jīng)網(wǎng)絡(luò)架構(gòu).一般而言,在NAS 中只使用變異算子,大量的實(shí)驗(yàn)表示兩個(gè)高度適應(yīng)的個(gè)體通過重組操作不能得到相似或更好的子代.

NasNet[6]第1 個(gè)提出了使用進(jìn)化算法搜索深度神經(jīng)網(wǎng)絡(luò)架構(gòu)進(jìn)行圖像分類,該方法從1 000 份最簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)架構(gòu)的副本開始,即一個(gè)全局池化層后面連接輸出層.在父節(jié)點(diǎn)選擇的步驟中,提出了對(duì)成對(duì)的神經(jīng)網(wǎng)絡(luò)架構(gòu)進(jìn)行采樣以便進(jìn)一步處理.當(dāng)兩個(gè)神經(jīng)網(wǎng)絡(luò)架構(gòu)中較好的一個(gè)連同權(quán)重被復(fù)制和變異,以批量大小為50 的規(guī)格訓(xùn)練了25 600 步,并添加到種群中,而另一個(gè)神經(jīng)網(wǎng)絡(luò)架構(gòu)被從種群中刪除.這相當(dāng)于使用k=2 和p=1 的錦標(biāo)賽選擇算法.這組突變包括一系列簡(jiǎn)單的操作,例如在全局池化層之前的任意位置添加卷積層以及卷積核的大小、通道數(shù)、卷積步長(zhǎng)、學(xué)習(xí)速率、添加或刪除殘差連接、刪除卷積、重置網(wǎng)絡(luò)權(quán)重以及對(duì)應(yīng)于無變化的突變.由于不再?gòu)?qiáng)制執(zhí)行域約束,因此可以使用此方法對(duì)具有冗余組件的神經(jīng)網(wǎng)絡(luò)架構(gòu)進(jìn)行隱式的采樣,如圖22所示.

與NasNet[6]方法不同,MnasNet[7]在更結(jié)構(gòu)化的搜索空間上設(shè)計(jì)了一種基于遺傳算法搜索策略,該搜索空間包括具有可能并行卷積操作的一系列片段.該方法認(rèn)為:網(wǎng)絡(luò)架構(gòu)由3 個(gè)片段組成,每個(gè)片段由多個(gè)卷積層組成,并且每個(gè)片段由鄰接矩陣描述,該鄰接矩陣定義為片段內(nèi)的每層上的有向無環(huán)圖.該搜索策略從搜索空間中的20 個(gè)隨機(jī)基本架構(gòu)單元開始.在父節(jié)點(diǎn)選擇步驟,所有樣本對(duì)ai,ai+1,其中,imod 2=1,在交叉重組操作中被考慮.交叉重組操作以概率p在兩個(gè)所選的神經(jīng)網(wǎng)絡(luò)架構(gòu)之間交換片段.然后,所有在前一步中未經(jīng)過修改的個(gè)體都考慮進(jìn)行突變操作.MnasNet[7]算法中,突變是在定義片段的鄰接矩陣上的隨機(jī)翻轉(zhuǎn)操作.最后,從頭開始訓(xùn)練獲得的后代并在計(jì)算其適應(yīng)度.個(gè)體的適應(yīng)度被定義為其在測(cè)試數(shù)據(jù)上的準(zhǔn)確性與種群內(nèi)所有個(gè)體中最低準(zhǔn)確性之間的差異.由于MnasNet[7]中通過設(shè)定閾值,根據(jù)適應(yīng)度選擇個(gè)體,確保性能最差的網(wǎng)絡(luò)架構(gòu)以零概率存活.值得一提的是:這是首次證明在較小數(shù)據(jù)集上自動(dòng)發(fā)現(xiàn)的神經(jīng)網(wǎng)絡(luò)架構(gòu)成功轉(zhuǎn)移到較大數(shù)據(jù)集的工作之一,即從CIFAR-10 到ImageNet[18].

Suganuma 等人[59]提出了另一個(gè)基于遺傳算法的優(yōu)化器,與上述方法不同的是,考慮在其搜索空間中定義更廣泛的操作集,包括卷積和池化以及向量的求和等.該方法將整個(gè)神經(jīng)網(wǎng)絡(luò)架構(gòu)編碼為由三元組表示的塊序列,該三元組定義了塊的操作和輸入.通過連接塊編碼獲得的串構(gòu)成了基因型.在這種基因型定義中可以接受非活動(dòng)部分,例如某些特定操作或斷開的塊的未使用輸入.不活躍的部分不在表型中具體化.圖23 表示了遺傳編碼,其中,基因型的灰色陰影部分表示無效.節(jié)點(diǎn)3 中的非活動(dòng)部分不存在于表現(xiàn)型中,由節(jié)點(diǎn)4 引入的額外最大池化層是基因型中未明確編碼的操作如何出現(xiàn)在表現(xiàn)型中的示例.該方法提出了(1+λ)-進(jìn)化策略[74]方法來指導(dǎo)進(jìn)化,其中,突變和選擇算子在循環(huán)中使用直到終止進(jìn)化.從對(duì)應(yīng)于父節(jié)點(diǎn)的基因開始(首次迭代是隨機(jī)的),通過強(qiáng)制修改基因型中的活性部分來生成后代.突變也適用于其基因型的一個(gè)非活性部分的父節(jié)點(diǎn).然而,這不會(huì)導(dǎo)致表現(xiàn)型的任何改變,因此不會(huì)增加整體的訓(xùn)練成本,即使在這一代的父節(jié)點(diǎn)將再次成為下一代的父節(jié)點(diǎn)的情況下,確保了整個(gè)搜索的進(jìn)程.訓(xùn)練下一代網(wǎng)絡(luò)架構(gòu),度量其準(zhǔn)確度,并使用精英選擇策略選擇下一次迭代的父節(jié)點(diǎn).

Liu 等人[75]提出了另一種基于進(jìn)化算法的搜索策略,設(shè)計(jì)了分層的搜索空間.在每次迭代中,突變操作都會(huì)選擇要修改的層次以及對(duì)該層次的修改.該種群由200 個(gè)小的基因型初始化,這些基因型通過應(yīng)用1 000 個(gè)隨機(jī)突變?cè)黾臃N群的多樣性.此外,對(duì)父代中的個(gè)體采用利用錦標(biāo)賽算法(5%的種群數(shù)量)進(jìn)行選擇,并且在進(jìn)化過程中不會(huì)移除任何個(gè)體.該方法中,突變可以執(zhí)行添加、改變和刪除基因型等操作.

Real 等人[54]的后續(xù)工作是在使用進(jìn)化算法進(jìn)行神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索方面最重要的工作之一,該方法主要用于發(fā)現(xiàn)AmoebaNet-B 和AmoebaNet-C 神經(jīng)網(wǎng)絡(luò)架構(gòu),它在具有不同規(guī)模大小的CIFAR-10 和ImageNet 數(shù)據(jù)集上的圖像分類任務(wù)創(chuàng)造了新的記錄,超過了人工設(shè)計(jì)的深度神經(jīng)網(wǎng)絡(luò)模型的性能.然而,在該方法的搜索過程共使用了3 150 個(gè)GPU 小時(shí),并且可以在NasNet 搜索空間上執(zhí)行,并使用錦標(biāo)賽選擇算法在每次迭代中選擇父代個(gè)體.所選擇的個(gè)體在正常塊或降維塊的操作或連接中隨機(jī)改變而發(fā)生突變,并訓(xùn)練25 個(gè)周期.與之前的工作相反,該算法不僅僅依賴于性能評(píng)估策略的準(zhǔn)確性,而且還包括了個(gè)體存在的時(shí)間.這有助于抑制重復(fù)選擇表現(xiàn)良好的突變模型并為種群引入多樣性,其等價(jià)于為目標(biāo)函數(shù)添加了一個(gè)正則化約束,確保搜索到的神經(jīng)網(wǎng)絡(luò)架構(gòu)不僅能夠一次性能評(píng)估具有高精度,而且每次評(píng)估都具有高性能.

之前討論的基于進(jìn)化算法的搜索策略主要關(guān)注點(diǎn)的是找到一個(gè)忽略GPU 預(yù)算限制的良好性能架構(gòu).這些方法中使用的最短搜索時(shí)間仍然需要17 個(gè)GPU天.接下來討論的兩項(xiàng)工作更關(guān)注搜索效率,將搜索時(shí)間縮短到1 個(gè)GPU 天以內(nèi),并提供了可比較的結(jié)果.實(shí)現(xiàn)這一目標(biāo)的關(guān)鍵是不同突變的組合,這些突變是功能保持轉(zhuǎn)換和更具侵略性的貪婪策略.

Elsken 等人[76]提出了一種簡(jiǎn)單而有效的進(jìn)化算法實(shí)現(xiàn)搜索,其靈感來自于功能保持變換.該方法采用精英選擇策略來選擇父代,用功能保持突變產(chǎn)生8 個(gè)不同的后代,并且每個(gè)后代訓(xùn)練17 個(gè)周期.初始的神經(jīng)網(wǎng)絡(luò)架構(gòu)包括3 個(gè)卷積層和兩個(gè)最大池化層.如前所述,功能保持轉(zhuǎn)換操作顯著地減少了每個(gè)神經(jīng)網(wǎng)絡(luò)架構(gòu)的訓(xùn)練時(shí)間,從而縮短了整個(gè)搜索過程的持續(xù)時(shí)間.

在類似的工作中,Wistuba 等人[77]同樣利用了功能保持突變策略,但使用了基于塊的搜索空間.該方法提出的搜索策略從一個(gè)簡(jiǎn)單的神經(jīng)網(wǎng)絡(luò)架構(gòu)開始,并執(zhí)行功能保持突變以增加種群的數(shù)量和多樣性,即,通過從基礎(chǔ)的神經(jīng)網(wǎng)絡(luò)生成15 個(gè)額外的子代使得初始種群變得多樣化.在執(zhí)行進(jìn)化算法的過程中,采用錦標(biāo)賽選擇算法選擇父代的個(gè)體,并在對(duì)后代進(jìn)行適應(yīng)性評(píng)價(jià)前,對(duì)其進(jìn)行15 個(gè)周期的訓(xùn)練.與Liu 等人[75]的方法類似,所有的個(gè)體都在進(jìn)化過程中存活以確保種群的多樣性.如圖24 中提供了一個(gè)搜索過程的示例,可以發(fā)現(xiàn)具有任意神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的塊.

3.2.3 不同搜索策略的比較

表3 總結(jié)了不同的搜索策略在CIFAR-10 基準(zhǔn)數(shù)據(jù)集上分類的結(jié)果.然而,不同的方法在搜索空間、搜索時(shí)間和數(shù)據(jù)擴(kuò)充等方面有著很大的差異,缺乏統(tǒng)一的可比較的基準(zhǔn).雖然NAS 可以被視為優(yōu)化超參數(shù)的一種特殊方法,但大多數(shù)相關(guān)工作都被忽略了.NasNet 搜索空間是最常用的,這是因?yàn)橐氲南闰?yàn)知識(shí)有利于發(fā)現(xiàn)性能良好的神經(jīng)網(wǎng)絡(luò)架構(gòu).類似地,參數(shù)重用策略、功能保持策略在提高搜索效率方面是有效的.

Table 3 Comparison of classification results and search time of different search strategies on CIFAR-10 dataset表3 不同搜索策略在CIFAR-10 數(shù)據(jù)集上的分類結(jié)果和搜索時(shí)間比較

3.2.4 輕量級(jí)神經(jīng)網(wǎng)絡(luò)搜索

MnasNet 算法[7]提出了一種用于移動(dòng)神經(jīng)網(wǎng)絡(luò)模型設(shè)計(jì)的自動(dòng)神經(jīng)結(jié)構(gòu)搜索方法,其中,與以前方法的主要區(qū)別是延遲感知多目標(biāo)獎(jiǎng)勵(lì)和新的搜索空間.MnasNet[7]算法基于兩個(gè)主要思想.

(1) 將搜索問題表示為一個(gè)多目標(biāo)優(yōu)化問題,同時(shí)考慮神經(jīng)網(wǎng)絡(luò)模型的準(zhǔn)確性和推理延遲;

(2) 與以前使用FLOPs 來近似推斷延遲的工作[62,68,85]不同,直接通過在實(shí)際移動(dòng)設(shè)備上執(zhí)行模型來測(cè)量實(shí)際的延遲.

該想法的靈感來源于搜索的失敗往往是由一個(gè)不準(zhǔn)確的代理導(dǎo)致的,例如,MobileNet[8]和NASNet[6]有類似的失敗現(xiàn)象(575M vs 564M),但是他們的延遲明顯不同(113ms 與183ms);其次,觀察到以前的自動(dòng)化方法主要是尋找一些類型的塊,然后重復(fù)相同的塊結(jié)構(gòu)構(gòu)建神經(jīng)網(wǎng)絡(luò).這簡(jiǎn)化了搜索過程,但也排除了對(duì)計(jì)算效率很重要的層多樣性.為了解決這個(gè)問題,該方法提出了一種新的分解層次搜索空間,它允許層在架構(gòu)上不同,但仍然在靈活性和搜索空間大小之間取得適當(dāng)?shù)钠胶?

本文設(shè)計(jì)了一種新的分解層次搜索空間,它將CNN 模型分解為獨(dú)特的塊,然后分別搜索每個(gè)塊的操作和連接,從而允許在不同塊中使用不同的層結(jié)構(gòu).圖25 表示了分解層次搜索空間,根據(jù)神經(jīng)網(wǎng)絡(luò)中每層的輸入特征分辨率和濾波器的大小,神經(jīng)網(wǎng)絡(luò)中的層被分組成許多預(yù)定義的架構(gòu),稱為塊.每個(gè)塊包含數(shù)量可變的重復(fù)相同的層,如果輸入/輸出的分辨率不同,但所有其他層都具有跨距1,則只有第1 層具有跨距2.對(duì)于每個(gè)塊,該方法搜索單個(gè)層的操作和連接以及層數(shù)n,然后同一層重復(fù)n次(例如,4-1 層到4-N4層是相同的).不同塊(如2-1 層和4-1層)的層可以不同.

該方法使用強(qiáng)化學(xué)習(xí)方法為多目標(biāo)搜索問題找到Pareto 最優(yōu)解.將搜索空間中的每個(gè)神經(jīng)網(wǎng)絡(luò)模型映射到令牌列表,這些令牌是由參數(shù)為θ的代理生成的一串動(dòng)作a1:t決定的.目標(biāo)是使預(yù)期的獎(jiǎng)勵(lì)最大化:

其中,由動(dòng)作a1:t采樣得到的,R(m)是定義的多目標(biāo)函數(shù).

圖26 表示了MnasNet 算法的整體流程,搜索策略由3 個(gè)部分組成:基于遞歸神經(jīng)網(wǎng)絡(luò)(RNN)的控制器、獲得模型精度的訓(xùn)練器和用于測(cè)量延遲的基于移動(dòng)電話的推理引擎.按照眾所周知的樣本-評(píng)估-更新策略來訓(xùn)練控制器.在每個(gè)步驟中,控制器首先使用其當(dāng)前參數(shù)對(duì)一批模型進(jìn)行采樣,方法是根據(jù)其RNN 模型中的SoftMax預(yù)測(cè)令牌的序列.訓(xùn)練每一個(gè)樣本模型,并獲得在特定任務(wù)上的準(zhǔn)確度ACC(m),并在真實(shí)手機(jī)上運(yùn)行它來獲得它的推理延遲LAT(m).然后計(jì)算獎(jiǎng)勵(lì)值R(m).在每一步結(jié)束時(shí),通過使用近端策略優(yōu)化使預(yù)期獎(jiǎng)勵(lì)最大化來更新控制器的參數(shù).不斷迭代樣本-評(píng)估-更新策略,達(dá)到最大迭代步數(shù)或參數(shù)收斂為止.

MnasNet 模型應(yīng)用于圖像分類[86]和COCO 對(duì)象檢測(cè)[87].與MobileNet V2[10]相比,MnasNet[7]模型在谷歌像素手機(jī)上以相同的延遲將ImageNet 的精度提高了3.0%.另一方面,如果限制目標(biāo)精度,那么MnasNet 模型比MobileNet V2 快1.8 倍,比NASNet[6]快2.3 倍,并具有更好的精度.與廣泛使用的ResNet-50[2]相比,MnasNet 模型在減少4.8 倍的參數(shù)和10 倍乘法加法操作的情況下,精度略有提升(76.7%).

3.3 性能評(píng)估策略

通過學(xué)習(xí)到的搜索策略找到解決特定任務(wù)的神經(jīng)網(wǎng)絡(luò)架構(gòu)M,為了更好地學(xué)習(xí)搜索策略,需要評(píng)估神經(jīng)網(wǎng)絡(luò)架構(gòu)M的性能,最簡(jiǎn)單的方法是在原始訓(xùn)練數(shù)據(jù)集上訓(xùn)練神經(jīng)網(wǎng)絡(luò)架構(gòu)M,并在驗(yàn)證集上測(cè)試其解決特定任務(wù)的性能.但是需要對(duì)每個(gè)神經(jīng)網(wǎng)絡(luò)架構(gòu)M從頭開始訓(xùn)練,然后進(jìn)行測(cè)試.這個(gè)過程非常耗時(shí),并且需要大量的GPU 計(jì)算資源.因此,設(shè)計(jì)高效合理的性能評(píng)估策略是非常重要的.近些年,如何高效、準(zhǔn)確地度量神經(jīng)網(wǎng)絡(luò)模型的性能是研究的熱點(diǎn).

影響神經(jīng)網(wǎng)絡(luò)訓(xùn)練效率的因素非常多,包括訓(xùn)練數(shù)據(jù)集的大小、圖像的分辨率、訓(xùn)練迭代次數(shù)等.為了加快搜索過程,評(píng)估神經(jīng)網(wǎng)絡(luò)架構(gòu)性能的主要挑戰(zhàn)在于采用較少的計(jì)算資源,高效準(zhǔn)確地估計(jì)神經(jīng)網(wǎng)絡(luò)架構(gòu)的性能.最近,一些工作通過減少訓(xùn)練次數(shù)[6,88]、采用訓(xùn)練數(shù)據(jù)的子集[89]、低分辨率圖像[90]、更少的濾波器和更少的塊結(jié)構(gòu)[6,54]等方式,以低保真度的方式近似神經(jīng)網(wǎng)絡(luò)的真實(shí)性能.雖然低保真評(píng)估方法降低了計(jì)算成本,同時(shí)也會(huì)在估計(jì)中引入偏差,神經(jīng)網(wǎng)絡(luò)的性能通常被低估.但是當(dāng)搜索策略只依賴不同構(gòu)架間性能的排序,當(dāng)性能排序相對(duì)穩(wěn)定時(shí),引入的誤差對(duì)學(xué)習(xí)搜索策略沒有任何的影響.

但是最近的研究結(jié)果表明:低保真評(píng)估的性能近似與真實(shí)的神經(jīng)網(wǎng)絡(luò)性能之間的差異太大時(shí),不同神經(jīng)網(wǎng)絡(luò)架構(gòu)間性能的相對(duì)排序可能會(huì)發(fā)生顯著的變化[88].為了解決該問題,學(xué)者們提出在學(xué)習(xí)曲線的基礎(chǔ)上,推斷不同神經(jīng)網(wǎng)絡(luò)架構(gòu)的性能.Domhan 等人[90]提出從初始學(xué)習(xí)曲線出發(fā),終止預(yù)測(cè)表現(xiàn)不佳的學(xué)習(xí)曲線以加速搜索過程.另外,一些方法同時(shí)考慮架構(gòu)超參數(shù)預(yù)測(cè)最優(yōu)的部分學(xué)習(xí)曲線[91-94].加速性能評(píng)估的另一種方法是基于已有的神經(jīng)網(wǎng)絡(luò)架構(gòu)初始化新的神經(jīng)網(wǎng)絡(luò)架構(gòu).Wei 等人[94]提出了網(wǎng)絡(luò)態(tài)射的方法,在修改神經(jīng)網(wǎng)絡(luò)架構(gòu)的同時(shí)保持神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)到的功能.通過該方法,可以持續(xù)不斷地增加神經(jīng)網(wǎng)絡(luò)架構(gòu)的容量并保持神經(jīng)網(wǎng)絡(luò)的性能,而無需重新訓(xùn)練[95].

一次架構(gòu)搜索(one-shot architecture search)將所有可能的神經(jīng)網(wǎng)絡(luò)架構(gòu)視為超圖的不同子圖,并在具有邊連接的架構(gòu)之間共享權(quán)重.圖27 表示一次架構(gòu)搜索框架,由一個(gè)輸入節(jié)點(diǎn)(節(jié)點(diǎn)0)、3 個(gè)隱藏結(jié)合(節(jié)點(diǎn)1~節(jié)點(diǎn)3)和一個(gè)輸出節(jié)點(diǎn)(節(jié)點(diǎn)4)構(gòu)成的簡(jiǎn)單神經(jīng)網(wǎng)絡(luò).一次架構(gòu)搜索模型(如圖27(a)所示)包含對(duì)每個(gè)節(jié)點(diǎn)的所有可能的候選操作,即3×3 卷積、5×5 卷積和最大池化等操作,每個(gè)可能的神經(jīng)網(wǎng)絡(luò)架構(gòu)是一次架構(gòu)搜索模型的子圖(如圖27(b)所示),并共享權(quán)重.ENAS[65]學(xué)習(xí)遞歸神經(jīng)網(wǎng)絡(luò)控制器,從搜索空間中采樣,并通過強(qiáng)化學(xué)習(xí)近似梯度實(shí)現(xiàn)一次架構(gòu)搜索框架的訓(xùn)練.DARTS[68]通過聯(lián)合優(yōu)化一次架構(gòu)模型的全部參數(shù)和搜索空間的連續(xù)松弛變量,實(shí)現(xiàn)異構(gòu)架構(gòu)搜索算法的訓(xùn)練.

不同的性能評(píng)估策略通過不同的方法實(shí)現(xiàn)高效、準(zhǔn)確地度量神經(jīng)網(wǎng)絡(luò)架構(gòu)的性能:低保真度近似方法通過減少訓(xùn)練時(shí)間、采用訓(xùn)練子集等方式提高效率,保持神經(jīng)網(wǎng)絡(luò)性能的相對(duì)排序;學(xué)習(xí)曲線推理方法根據(jù)訓(xùn)練過程中的學(xué)習(xí)曲線推理神經(jīng)網(wǎng)絡(luò)架構(gòu)的性能,提前終止性能差的搜索;網(wǎng)絡(luò)態(tài)射方法通過從已有的神經(jīng)網(wǎng)絡(luò)架構(gòu)初始化新的神經(jīng)網(wǎng)絡(luò)架構(gòu),可以有效地保持神經(jīng)網(wǎng)絡(luò)架構(gòu)的性能,顯著減少訓(xùn)練所需的時(shí)間;一次架構(gòu)搜索模型僅僅需要一次訓(xùn)練,不同的神經(jīng)網(wǎng)絡(luò)架構(gòu)之間通過共享權(quán)重加快性能評(píng)估的效率.

不同性能評(píng)估策略的比較見表4.

Table 4 Comparison of different methods of performance evaluation strategy表4 NAS 性能評(píng)估策略的不同方法的比較

4 總結(jié)與展望

目前存在3 種構(gòu)建輕量級(jí)神經(jīng)網(wǎng)絡(luò)的主流方法,分別是人工設(shè)計(jì)輕量級(jí)神經(jīng)網(wǎng)絡(luò)、神經(jīng)網(wǎng)絡(luò)模型壓縮算法和基于神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索的自動(dòng)化神經(jīng)網(wǎng)絡(luò)架構(gòu)設(shè)計(jì).人工設(shè)計(jì)的輕量級(jí)神經(jīng)網(wǎng)絡(luò)已經(jīng)取得了顯著的成果,主要有減少卷積核的數(shù)量、減少特征的通道數(shù)以及設(shè)計(jì)更高效的卷積操作等關(guān)鍵技術(shù),但是非常依賴設(shè)計(jì)者的經(jīng)驗(yàn).如何有效地將針對(duì)特定問題的先驗(yàn)知識(shí)加入到模型構(gòu)建過程中,是未來研究的重點(diǎn)方向.通過網(wǎng)絡(luò)剪枝、權(quán)重壓縮和低秩分解是對(duì)已有的網(wǎng)絡(luò)進(jìn)行壓縮,但是壓縮算法需要設(shè)計(jì)者探索較大的設(shè)計(jì)空間以及在模型大小、速度和準(zhǔn)確率之間權(quán)衡.為了減少人為因素的干擾,自動(dòng)機(jī)器學(xué)習(xí)技術(shù)是未來研究的熱點(diǎn),聯(lián)合優(yōu)化深度神經(jīng)網(wǎng)絡(luò)流程的所有模型參數(shù).神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索的研究主要集中在深度神經(jīng)網(wǎng)絡(luò)上,許多搜索架構(gòu)都源自NASNet[6]搜索空間,通過各種搜索算法在定義的搜索空間內(nèi)自動(dòng)生成的,廣泛應(yīng)用于解決圖像識(shí)別、圖像分割和語言建模等任務(wù)[6,7,98,99],但是只能針對(duì)某一特定或同一類型的數(shù)據(jù)集.如何使用跨不同數(shù)據(jù)集的知識(shí)來加速優(yōu)化過程,是未來研究的熱點(diǎn).其他的挑戰(zhàn)是聯(lián)合優(yōu)化深度神經(jīng)網(wǎng)絡(luò)流程的所有模型參數(shù).到目前為止,深度神經(jīng)網(wǎng)絡(luò)的通用自動(dòng)化仍處于起步階段,許多問題尚未得到解決.然而,這仍然是一個(gè)令人興奮的領(lǐng)域,并且未來的工作的方向需要強(qiáng)調(diào)其突出的實(shí)用性.

輕量級(jí)模型的發(fā)展使得神經(jīng)網(wǎng)絡(luò)更加高效,從而能夠廣泛地應(yīng)用到各種場(chǎng)景任務(wù)中.一方面,輕量級(jí)神經(jīng)網(wǎng)絡(luò)有更小的體積和計(jì)算量,降低了對(duì)設(shè)備存儲(chǔ)能力和計(jì)算能力的需求,既可以裝配到傳統(tǒng)家電中使其更加智能化,也可以將深度學(xué)習(xí)系統(tǒng)應(yīng)用在虛擬現(xiàn)實(shí)、增強(qiáng)現(xiàn)實(shí)、智能安防和智能可穿戴設(shè)備等新興技術(shù)中;另一方面,輕量級(jí)神經(jīng)網(wǎng)絡(luò)具有更快的運(yùn)行速度和更短的延時(shí),能夠?qū)θ蝿?wù)進(jìn)行實(shí)時(shí)處理,對(duì)于在線學(xué)習(xí)、增量學(xué)習(xí)和分布式學(xué)習(xí)有重大意義;另外,實(shí)時(shí)處理的神經(jīng)網(wǎng)絡(luò)能夠滿足自動(dòng)駕駛技術(shù)的需求,提高自動(dòng)駕駛的安全性.輕量級(jí)神經(jīng)網(wǎng)絡(luò)將對(duì)于人工智能技術(shù)的普及、建立智能化城市起不可或缺的作用.

猜你喜歡
策略方法模型
一半模型
重要模型『一線三等角』
重尾非線性自回歸模型自加權(quán)M-估計(jì)的漸近分布
例談未知角三角函數(shù)值的求解策略
我說你做講策略
高中數(shù)學(xué)復(fù)習(xí)的具體策略
3D打印中的模型分割與打包
用對(duì)方法才能瘦
Coco薇(2016年2期)2016-03-22 02:42:52
四大方法 教你不再“坐以待病”!
Coco薇(2015年1期)2015-08-13 02:47:34
捕魚
主站蜘蛛池模板: 亚洲高清在线天堂精品| 久久精品aⅴ无码中文字幕| 日韩av在线直播| 免费国产好深啊好涨好硬视频| 欧美不卡视频一区发布| 高清色本在线www| 久久免费视频6| 一本大道香蕉久中文在线播放 | 欧美午夜视频在线| 亚洲精品第一在线观看视频| 国产午夜小视频| 国产不卡网| 亚洲综合色婷婷中文字幕| 精品福利一区二区免费视频| 亚洲精品无码在线播放网站| 亚洲视频在线青青| 免费jjzz在在线播放国产| 精品小视频在线观看| 国产精品视频观看裸模| 亚洲国产理论片在线播放| 久久综合AV免费观看| 一本大道在线一本久道| 中文字幕在线视频免费| 国产人人乐人人爱| 国产精品免费电影| 国产精品亚洲综合久久小说| 国产屁屁影院| 国产农村精品一级毛片视频| 91国内在线观看| 久久国产精品无码hdav| 国产成人毛片| 五月激激激综合网色播免费| 真实国产乱子伦视频| 日韩二区三区| 久久精品亚洲中文字幕乱码| 久久久久人妻精品一区三寸蜜桃| 一本大道香蕉久中文在线播放| 91成人在线观看| 亚洲永久精品ww47国产| 亚洲视频免| 成人亚洲国产| 99精品免费欧美成人小视频| 久青草免费在线视频| 国产一区二区丝袜高跟鞋| 欧美精品三级在线| 精品成人免费自拍视频| 精品国产成人a在线观看| 亚洲色中色| 中文字幕色在线| 国产成人免费观看在线视频| 国产国语一级毛片| 福利小视频在线播放| 国产一二三区视频| 欧美一区二区人人喊爽| 高清无码不卡视频| 国产精品原创不卡在线| 欧美色亚洲| 3344在线观看无码| 国产视频一二三区| 国产成人综合久久精品尤物| 9999在线视频| 亚洲va视频| 国产尤物在线播放| 欧美精品成人| 亚洲第一区在线| 久久一本日韩精品中文字幕屁孩| 国产亚洲日韩av在线| 天天色综网| 超碰91免费人妻| 亚洲欧美色中文字幕| 日本道中文字幕久久一区| 色一情一乱一伦一区二区三区小说| 国产综合亚洲欧洲区精品无码| 午夜色综合| 亚洲成a人片| 超清无码熟妇人妻AV在线绿巨人| 99无码中文字幕视频| 在线观看亚洲人成网站| 99激情网| 亚洲日本韩在线观看| 国产精品福利一区二区久久| 婷婷伊人五月|