董佩杰,牛 新,魏自勉,陳學(xué)暉
(國(guó)防科技大學(xué)計(jì)算機(jī)學(xué)院,湖南 長(zhǎng)沙 410073)
深度神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的不斷創(chuàng)新是推動(dòng)深度學(xué)習(xí)技術(shù)快速發(fā)展的重要因素。以圖像識(shí)別任務(wù)為例,卷積網(wǎng)絡(luò)的應(yīng)用使得AlexNet[1]在大規(guī)模視覺識(shí)別挑戰(zhàn)賽ImageNet[2]中遠(yuǎn)超傳統(tǒng)的人工設(shè)計(jì)特征方法。此后,VGG[3]、GoogLeNet[4]分別采用小卷積核堆疊、卷積模塊組合的方式,進(jìn)一步提升了分類效果。ResNet[5]提出殘差模塊設(shè)計(jì),使得構(gòu)建上百層高精度分類網(wǎng)絡(luò)成為可能。MobileNet[6]提出的深度可分離卷積推動(dòng)了模型輕量化的發(fā)展。特征融合[7]、注意力機(jī)制[8]等主要以網(wǎng)絡(luò)結(jié)構(gòu)創(chuàng)新的形式引入,推動(dòng)了模型結(jié)構(gòu)的發(fā)展。但在傳統(tǒng)人工模式下,神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計(jì)依賴于專家知識(shí)和開發(fā)經(jīng)驗(yàn),開發(fā)流程復(fù)雜,迭代周期長(zhǎng)。因此,研究人員開始關(guān)注并探索自動(dòng)化設(shè)計(jì)網(wǎng)絡(luò)結(jié)構(gòu)的方法,期望采用智能算法自動(dòng)地發(fā)掘高效網(wǎng)絡(luò)結(jié)構(gòu),提出了神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索NAS(Neural Architecture Search)算法。相比人工設(shè)計(jì)網(wǎng)絡(luò),神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索算法可以一定程度上降低對(duì)先驗(yàn)知識(shí)的依賴,提高模型構(gòu)建效率,并可進(jìn)一步指導(dǎo)人工設(shè)計(jì)。
NAS算法通常采用迭代的搜索方式,在預(yù)先設(shè)定的搜索空間,通過某種搜索策略采樣并評(píng)估候選網(wǎng)絡(luò),根據(jù)評(píng)估結(jié)果進(jìn)行反饋,以優(yōu)化搜索策略,如此迭代直到發(fā)現(xiàn)泛化性能最高的網(wǎng)絡(luò)結(jié)構(gòu),如圖1所示。當(dāng)前主流的NAS算法,按搜索策略可劃分為基于進(jìn)化算法[9]的NAS算法、基于強(qiáng)化學(xué)習(xí)[10,11]的NAS算法和基于梯度優(yōu)化[12 - 14]的NAS算法。無(wú)論何種搜索策略,在迭代搜索過程中都需要采樣大量候選網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行評(píng)估。早期的網(wǎng)絡(luò)結(jié)構(gòu)搜索算法[11]大多采用從頭訓(xùn)練候選網(wǎng)絡(luò)到收斂的評(píng)估方式,導(dǎo)致了過高的計(jì)算代價(jià)以及過長(zhǎng)的搜索時(shí)間,難以在大規(guī)模數(shù)據(jù)集例如ImageNet[2]上搜索網(wǎng)絡(luò)結(jié)構(gòu)。例如,NASNet[15]在ImageNet上使用強(qiáng)化學(xué)習(xí)算法進(jìn)行搜索,采用800塊顯卡訓(xùn)練了28天;AmoebaNet[9]在ImageNet上使用進(jìn)化算法進(jìn)行搜索,采用450塊顯卡訓(xùn)練了7天。
Figure 1 Searching phase of one-shot neural architecture search圖1 單次神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索中的搜索階段
為提升網(wǎng)絡(luò)結(jié)構(gòu)搜索效率,一系列評(píng)估技術(shù)相繼被提出,例如低保真度[9]、早停機(jī)制[16]和代理模型[17]等。這些方法往往通過犧牲評(píng)估精度來(lái)縮短搜索時(shí)間,并且評(píng)估過程存在不確定性,無(wú)法完全反映在真實(shí)任務(wù)上的性能。另一方面,一些研究嘗試將遷移學(xué)習(xí)思想引入NAS,由于搜索空間中的候選網(wǎng)絡(luò)存在結(jié)構(gòu)相似性,能夠以相互協(xié)作的方式進(jìn)行訓(xùn)練。通過基于權(quán)重共享的遷移學(xué)習(xí),候選網(wǎng)絡(luò)可以繼承先前經(jīng)過訓(xùn)練的、具有相似結(jié)構(gòu)模型的權(quán)重參數(shù),并在其基礎(chǔ)上進(jìn)行微調(diào),從而加速候選模型的收斂。作為一種代表性的權(quán)重遷移方式,單次神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索(One-shot NAS)[12,18 - 21]算法被提出,因其靈活性和高效性,成為了當(dāng)前網(wǎng)絡(luò)結(jié)構(gòu)搜索方向的一個(gè)熱點(diǎn)。
One-shot NAS將所有網(wǎng)絡(luò)架構(gòu)視為超圖(Super Graph)的不同子圖(Sub Graph)。超圖中包含了全部候選操作,因而包含了搜索空間內(nèi)所有的網(wǎng)絡(luò)結(jié)構(gòu)。每個(gè)特定的候選網(wǎng)絡(luò)對(duì)應(yīng)超圖中的一個(gè)子圖,不同網(wǎng)絡(luò)結(jié)構(gòu)之間會(huì)繼承共同部分的參數(shù)。如圖1所示,右圖對(duì)應(yīng)的子圖選擇了左圖中超圖部分候選操作。子圖通過重用已訓(xùn)練模型參數(shù),加快了訓(xùn)練和評(píng)估過程的收斂速度,進(jìn)而提高了模型搜索效率。在超圖的訓(xùn)練過程結(jié)束后,將采樣得到的子圖進(jìn)行權(quán)重初始化,從頭開始訓(xùn)練。
在One-shot NAS中,超圖可以視為一種特殊的性能評(píng)估器,即對(duì)給定網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行性能評(píng)估。性能評(píng)估過程看重的是不同網(wǎng)絡(luò)結(jié)構(gòu)之間的相對(duì)性能排序,而不是評(píng)估結(jié)果的絕對(duì)值。根據(jù)排序相關(guān)性假設(shè)[22],在訓(xùn)練的某個(gè)時(shí)刻,如果網(wǎng)絡(luò)A在某個(gè)數(shù)據(jù)集上的性能高于網(wǎng)絡(luò)B的,那么當(dāng)兩者都訓(xùn)練收斂后,網(wǎng)絡(luò)A的性能仍高于網(wǎng)絡(luò)B的。排序相關(guān)性如圖2所示,超圖上子圖模型的排序應(yīng)與子圖模型從頭訓(xùn)練的真實(shí)性能排序盡可能一致,這樣才能保證選擇的子圖是真實(shí)最優(yōu)的。目前針對(duì)權(quán)重共享機(jī)制對(duì)排序相關(guān)性的影響還缺乏理論支撐,部分研究[20 - 22]發(fā)現(xiàn),一些One-shot NAS算法的排序相關(guān)性較差,無(wú)法反映子圖充分訓(xùn)練后的性能。Xie等人[23]從優(yōu)化的角度對(duì)基于權(quán)重共享的結(jié)構(gòu)搜索算法進(jìn)行分析,指出排序相關(guān)性差是由于優(yōu)化不足導(dǎo)致的,可以通過改進(jìn)優(yōu)化算法充分訓(xùn)練超圖來(lái)緩解。
Figure 2 Ranking correlation in one-shot neural architecture search圖2 單次神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索中的排序相關(guān)性
One-shot NAS中權(quán)重共享程度高,子圖之間存在協(xié)同適應(yīng)(Co-adaptation)的問題,在子圖的優(yōu)化過程中會(huì)存在沖突,降低了超圖的收斂速度,也影響了算法的排序相關(guān)性。為了更好更快地優(yōu)化超圖,子圖的采樣策略、過程解耦及階段性對(duì)One-shot NAS算法性能起到了關(guān)鍵作用。
當(dāng)前已經(jīng)有一些關(guān)于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的綜述[24 - 26],但是缺少針對(duì)單次神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的綜述,許多新方法、新趨勢(shì)在目前的綜述中未能涉及。因此,本文針對(duì)當(dāng)前神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索中的研究熱點(diǎn)One-shot NAS及其關(guān)鍵技術(shù)進(jìn)行詳細(xì)分析。
在One-shot NAS的搜索過程中,耗時(shí)主要集中在評(píng)估階段。由于搜索空間隨著候選操作數(shù)量的增長(zhǎng)呈指數(shù)級(jí)增長(zhǎng),早期網(wǎng)絡(luò)結(jié)構(gòu)搜索算法對(duì)每個(gè)候選網(wǎng)絡(luò)從參數(shù)初始化開始進(jìn)行充分訓(xùn)練,會(huì)帶來(lái)巨大的計(jì)算開銷。為加速性能評(píng)估,直觀的思路是讓待訓(xùn)練候選模型繼承先前已訓(xùn)練模型知識(shí),重用已訓(xùn)練模型的參數(shù),從而加快收斂速度。在深度學(xué)習(xí)中,模型學(xué)習(xí)到的通用特征表達(dá)可以用于其他下游任務(wù),遷移學(xué)習(xí)常用于加速模型的收斂,遷移已有知識(shí)來(lái)解決目標(biāo)域中數(shù)據(jù)量不足的問題。單次學(xué)習(xí)(One-shot Learning)[27]作為遷移學(xué)習(xí)的極端形式,其本意是利用遷移學(xué)習(xí)提升初始模型的泛化能力,使其具備通用特征提取能力,從而可僅用少量樣本學(xué)習(xí)新任務(wù)。類似地,One-shot NAS本質(zhì)也是利用遷移學(xué)習(xí)提升候選網(wǎng)絡(luò)特征表達(dá)能力,通過共享超圖可以使候選網(wǎng)絡(luò)獲得良好的初始化權(quán)重,加速子圖的收斂。
Figure 3 Weight transfer (inheritance transfer and super graph transfer)圖3 權(quán)重遷移(繼承遷移和超圖遷移)
關(guān)于權(quán)重遷移的具體形式,One-shot NAS大多采用權(quán)重共享的方式,子網(wǎng)的權(quán)重來(lái)源為網(wǎng)絡(luò)結(jié)構(gòu)配置相同的模塊或候選操作。例如,在ENAS[18]中,超圖是一個(gè)有向無(wú)環(huán)圖,被采樣的子圖會(huì)共享相同候選操作中的權(quán)重。
此外,也有部分研究通過網(wǎng)絡(luò)結(jié)構(gòu)編碼來(lái)生成對(duì)應(yīng)的權(quán)重,以實(shí)現(xiàn)權(quán)重遷移。典型算法SMASH(one-Shot Model Architecture Search through Hypernetworks)[30]引入了輔助超網(wǎng)絡(luò)(Auxiliary Hypernetwork)[31],能夠根據(jù)網(wǎng)絡(luò)結(jié)構(gòu)編碼生成對(duì)應(yīng)的權(quán)重。但是,這種權(quán)重生成的方式本身也需要優(yōu)化,且遷移的方式缺乏直觀解釋,增加了遷移的復(fù)雜性。
近期一些工作顯示,One-shot NAS的權(quán)重共享程度越來(lái)越高,不同的候選操作之間也能夠進(jìn)行權(quán)重共享。例如,Single Path NAS[32]中,較小卷積核會(huì)共享超級(jí)核居中位置的參數(shù)。類似地,OFA(Once For All)[33]也使用了可變形卷積核進(jìn)行候選操作間卷積核的參數(shù)共享。Slimmable Network[34]、 US-Nets(Universally Slimmable Networks)[35]、AutoSlim[36]和FBNetv2(FeedBack Network v2)[37]等支持通道共享,通道數(shù)少的操作能夠共享通道數(shù)多的卷積核的參數(shù)。共享程度的提高一方面加速了模型收斂,降低了搜索開銷,另一方面也帶來(lái)了子圖間的深度耦合,提升了超圖的優(yōu)化難度[20]。
經(jīng)典的單次神經(jīng)網(wǎng)絡(luò)搜索算法屬于兩階段神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索算法(Two-stage NAS),包括搜索階段和評(píng)估階段。這種做法實(shí)際上是將超圖作為性能評(píng)估器用來(lái)指示候選網(wǎng)絡(luò)的真實(shí)性能,如圖1所示。首先,將搜索空間設(shè)計(jì)為超圖的形式,使超圖包含所有候選操作及隱含的網(wǎng)絡(luò)連接方式。在每個(gè)搜索迭代中,依次執(zhí)行如下步驟:(1)使用某種策略,從搜索空間中采樣子圖并進(jìn)行優(yōu)化,更新超圖對(duì)應(yīng)子結(jié)構(gòu)的參數(shù)。(2)從訓(xùn)練好的超圖中找出泛化性能最好的架構(gòu)。(3)初始化最好的架構(gòu),充分訓(xùn)練至收斂,得到最終模型。
在上述流程中,采樣策略的選取至關(guān)重要。在One-shot NAS中,合適的采樣策略能夠降低子圖之間的干擾,從而提升超圖的整體性能。采樣策略可以分為隱式采樣和顯式采樣,這部分內(nèi)容將在3.1節(jié)詳細(xì)展開。
單次神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索算法需要同時(shí)優(yōu)化候選網(wǎng)絡(luò)結(jié)構(gòu)和網(wǎng)絡(luò)權(quán)重。優(yōu)化方式可以分為解耦優(yōu)化和耦合優(yōu)化。解耦優(yōu)化指的是在優(yōu)化超圖過程中,將對(duì)網(wǎng)絡(luò)結(jié)構(gòu)的優(yōu)化過程和網(wǎng)絡(luò)權(quán)重的優(yōu)化過程解耦。耦合優(yōu)化指的是交替優(yōu)化網(wǎng)絡(luò)權(quán)重和網(wǎng)絡(luò)結(jié)構(gòu)。這部分內(nèi)容將在3.2節(jié)詳細(xì)展開。
單階段神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索(One-stage NAS)算法針對(duì)兩階段神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索訓(xùn)練不充分的問題,提出一些訓(xùn)練策略,有效提升了超圖的綜合性能,無(wú)需評(píng)估階段,這部分內(nèi)容將在3.3節(jié)詳細(xì)展開。
One-shot NAS中對(duì)超圖的優(yōu)化,本質(zhì)上是按照一定的規(guī)則從超圖中采樣子圖并訓(xùn)練子圖的過程。采樣策略的選擇決定了超圖的收斂速度、訓(xùn)練的穩(wěn)定性以及最終收斂結(jié)果。根據(jù)能否得到明確的網(wǎng)絡(luò)結(jié)構(gòu),采樣策略可分為隱式采樣策略和顯式采樣策略[38]。
基于隱式采樣的One-shot NAS算法無(wú)法得到具體的網(wǎng)絡(luò)結(jié)構(gòu)配置,而是將候選網(wǎng)絡(luò)結(jié)構(gòu)的選擇映射到可微連續(xù)參數(shù)空間,采樣過程隱含于網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)表示的混合概率分布。候選網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)連續(xù)化可以將離散空間上的搜索問題轉(zhuǎn)化為連續(xù)優(yōu)化問題,優(yōu)化結(jié)構(gòu)權(quán)重組合及網(wǎng)絡(luò)權(quán)重。例如,DARTS(Differentiable ARchiTecture Search)[12]引入了網(wǎng)絡(luò)結(jié)構(gòu)參數(shù),將搜索空間松弛化,從而可以使用梯度優(yōu)化進(jìn)行網(wǎng)絡(luò)結(jié)構(gòu)搜索?;陲@式采樣的One-shot NAS算法能夠明確得到具體的候選網(wǎng)絡(luò)結(jié)構(gòu)配置,典型的采樣方法包括使用學(xué)習(xí)器采樣或者從某概率分布中進(jìn)行采樣。例如,ENAS[18]使用遞歸神經(jīng)網(wǎng)絡(luò)學(xué)習(xí)器采樣,并使用強(qiáng)化學(xué)習(xí)算法優(yōu)化采樣過程。雖然隱式采樣可以用連續(xù)優(yōu)化手段提高搜索效率,但在每一步優(yōu)化過程中,計(jì)算及存儲(chǔ)代價(jià)更高。
3.1.1 隱式采樣策略
隱式采樣策略可表述為一個(gè)可微分的搜索過程,將采樣過程隱含于網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)α={αi|αi∈R,1≤i≤m},其表示對(duì)應(yīng)的候選操作O={o1,o2,…,om}的采樣概率,其中m表示每層候選操作數(shù)量。通過將原來(lái)離散選擇候選操作的問題進(jìn)行松弛化,轉(zhuǎn)化為連續(xù)空間中的優(yōu)化問題進(jìn)行求解。在基于隱式采樣策略的結(jié)構(gòu)搜索中,網(wǎng)絡(luò)結(jié)構(gòu)搜索被建模為雙層優(yōu)化(Bi-level Optimization)問題,即網(wǎng)絡(luò)權(quán)重參數(shù)w和網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)α相互影響。
圖4展示了隱式采樣策略的流程,超圖的每條邊上有m個(gè)候選操作O={o1,o2,o3,…,om},分別對(duì)應(yīng)m個(gè)網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)α={α1,α2,α3,…,αm},根據(jù)式(1)將離散的選擇過程松弛化。
Figure 4 Process of implicit sampling strategy圖4 隱式采樣策略流程
(1)
DARTS[12]是可微分結(jié)構(gòu)搜索中的代表算法,是第1個(gè)端到端的可微分搜索算法,大幅降低了搜索開銷,在單個(gè)GPU上訓(xùn)練一天即可完成搜索。DARTS創(chuàng)建了可微分神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的新范式,但其存在一些亟需解決的問題,例如計(jì)算存儲(chǔ)占用過高,大規(guī)模數(shù)據(jù)集訓(xùn)練困難,還有性能崩潰問題(Performance Collapse)等。
關(guān)于可微分結(jié)構(gòu)搜索算法計(jì)算存儲(chǔ)問題,梯度優(yōu)化方法一般需要加載整幅超圖,內(nèi)存占用會(huì)隨著搜索空間中候選操作數(shù)量的增加呈指數(shù)增大。反之,在內(nèi)存受限情況下,搜索空間大小會(huì)受到限制。后續(xù)一些工作,如SNAS(Stocastic NAS)[39]、GDAS(Gradient-based search using Differentiable Architecture Sampler)[40]、FBNet(FeedBack Network)[41]和DATA(Differentiable ArchiTecture Approximation)[42]等,通過使用Gumbel-Max技巧[43]解決了從離散的候選操作中采樣的不可微問題,每次進(jìn)行前向傳播的過程中只更新一幅子圖,有效地降低了計(jì)算內(nèi)存占用。PC-DARTS(Partial Channel DARTS)[44]提出了對(duì)原有通道數(shù)量的1/S進(jìn)行結(jié)構(gòu)搜索,而剩余通道使用殘差連接,能夠?qū)?nèi)存占用量降低為原來(lái)的1/S,同時(shí)提出了邊歸一化技術(shù),增加了訓(xùn)練過程的穩(wěn)定性。
可微分結(jié)構(gòu)搜索算法被認(rèn)為是計(jì)算密集型網(wǎng)絡(luò)結(jié)構(gòu)搜索方法,直接應(yīng)用于大規(guī)模任務(wù)所需要的計(jì)算代價(jià)極為昂貴。由于對(duì)計(jì)算內(nèi)存要求高,在可微分結(jié)構(gòu)搜索算法上也難以用大批量(Batch Size)進(jìn)行梯度優(yōu)化,這更增加了大規(guī)模數(shù)據(jù)集訓(xùn)練的難度。一種常見的處理策略是在代理任務(wù)(如CIFAR10數(shù)據(jù)集[45])上搜索網(wǎng)絡(luò)的基本單元,再將最優(yōu)單元遷移至目標(biāo)任務(wù)(如ImageNet數(shù)據(jù)集[2])。然而,目標(biāo)任務(wù)上的網(wǎng)絡(luò)模型與在代理任務(wù)上搜索得到的網(wǎng)絡(luò)模型存在深度差異(Depth Gap),借助代理任務(wù)進(jìn)行搜索得到的模型是次優(yōu)的。P-DARTS(Progressive DARTS)[46]通過漸進(jìn)增加網(wǎng)絡(luò)深度來(lái)解決深度差異問題,在網(wǎng)絡(luò)層數(shù)增加的過程中逐漸減少候選操作數(shù)量以緩解深度差異。ProxylessNAS[47]提出了路徑二值化的方法,降低訓(xùn)練過程中的計(jì)算存儲(chǔ)占用,能夠直接在目標(biāo)任務(wù)上搜索。
性能崩潰是DARTS等可微分結(jié)構(gòu)搜索算法存在的特有問題,當(dāng)搜索輪數(shù)過大的時(shí)候,搜索得到的結(jié)構(gòu)會(huì)包含過多的跳躍連接,導(dǎo)致性能下降。在搜索的初期階段,超圖處于欠擬合的狀態(tài),網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)α和網(wǎng)絡(luò)權(quán)重參數(shù)w是合作關(guān)系。隨著訓(xùn)練的進(jìn)行,由于深層網(wǎng)絡(luò)優(yōu)化難度更大,算法會(huì)傾向于選擇簡(jiǎn)單的跳躍連接,此時(shí)網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)α和網(wǎng)絡(luò)權(quán)重參數(shù)w變?yōu)楦?jìng)爭(zhēng)關(guān)系,導(dǎo)致性能崩潰。針對(duì)此問題,R-DARTS(Robust-DARTS)[22]根據(jù)海森矩陣特征值發(fā)現(xiàn)損失面中曲率高的部分對(duì)應(yīng)的模型泛化性能更差,引入正則化項(xiàng)來(lái)降低海森矩陣特征值,能夠讓DARTS變得更加魯棒。DARTS+[14]提出了正則化方法,在單元內(nèi)部跳躍連接過多時(shí)停止搜索。DARTS-[48]發(fā)現(xiàn)性能崩潰的出現(xiàn)是由于跳躍連接相比其他操作在搜索過程中處于優(yōu)勢(shì)地位,于是通過引入輔助跳躍連接來(lái)確保所有操作的公平性。
3.1.2 顯式采樣策略
顯式采樣策略代表在網(wǎng)絡(luò)結(jié)構(gòu)搜索過程中可以顯式得到網(wǎng)絡(luò)結(jié)構(gòu)配置,主要包括基于無(wú)偏分布的采樣策略和基于學(xué)習(xí)器的采樣策略。
基于無(wú)偏分布的采樣策略發(fā)現(xiàn)隱式采樣策略中使用的雙層優(yōu)化策略會(huì)在優(yōu)化過程中帶來(lái)偏差,并沒有平等地對(duì)待每個(gè)子圖。因此,優(yōu)化初期性能較好的結(jié)構(gòu)可能得到更多的訓(xùn)練機(jī)會(huì),而某些子結(jié)構(gòu)無(wú)法得到充分訓(xùn)練,一些潛在的高效網(wǎng)絡(luò)結(jié)構(gòu)在搜索過程中可能被忽略。從訓(xùn)練公平性出發(fā),基于無(wú)偏分布的采樣策略賦予每個(gè)候選操作相同的訓(xùn)練機(jī)會(huì),最大限度發(fā)掘每個(gè)候選操作的潛能。Random NAS[49]從無(wú)偏概率分布中進(jìn)行獨(dú)立采樣,使得每個(gè)候選操作被選擇的概率相同。One-shot[29]在網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化的過程中隨機(jī)采樣子圖,同時(shí)配合路徑丟棄法(Path of Drop out)在訓(xùn)練超圖的同時(shí)降低子圖間的干擾。之后,SPOS(Single Path One Shot)[19]簡(jiǎn)化了One-shot的搜索空間,構(gòu)建了單路徑的超圖,訓(xùn)練超圖過程中采用了均勻采樣的策略,保證每個(gè)層內(nèi)部的候選操作具有均等機(jī)會(huì)被采樣,能夠有效地提升排序相關(guān)性。FairNAS[50]指出SPOS中均勻采樣策略中不同的采樣順序會(huì)對(duì)超圖的優(yōu)化產(chǎn)生影響,提出在超圖的每次迭代中,每一層可選擇運(yùn)算模塊的參數(shù)都需要參與訓(xùn)練,進(jìn)一步提高了模型的排序相關(guān)性。
基于學(xué)習(xí)器的采樣策略通過引入額外的學(xué)習(xí)器完成采樣,并根據(jù)性能反饋更新學(xué)習(xí)器參數(shù)?;趯W(xué)習(xí)器的采樣策略將神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索視為黑盒優(yōu)化,在無(wú)法求解梯度的情況下,通過觀察輸入和輸出,預(yù)測(cè)黑盒函數(shù)的結(jié)構(gòu)信息。強(qiáng)化學(xué)習(xí)(Reinforcement Learning)和蒙特卡羅樹搜索MCTS(Monte Carlo Tree Search)可以用于神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索。強(qiáng)化學(xué)習(xí)對(duì)網(wǎng)絡(luò)結(jié)構(gòu)搜索問題進(jìn)行重新建模,通過代理(學(xué)習(xí)器)與環(huán)境的交互過程學(xué)習(xí)策略,例如,ENAS[18]通過引入遞歸神經(jīng)網(wǎng)絡(luò)作為學(xué)習(xí)器,順序地生成網(wǎng)絡(luò)編碼得到網(wǎng)絡(luò)結(jié)構(gòu),然后使用REINFORCE(REINFORCEment learning)[15]方法來(lái)訓(xùn)練學(xué)習(xí)器。預(yù)算超級(jí)網(wǎng)絡(luò)(Budgeted Super Network)[51]通過引入?yún)?shù)化分布,使用策略梯度算法[52]對(duì)網(wǎng)絡(luò)權(quán)重和參數(shù)化分布進(jìn)行優(yōu)化,指導(dǎo)子網(wǎng)絡(luò)的采樣。然而,強(qiáng)化學(xué)習(xí)會(huì)同等對(duì)待所有的狀態(tài),不考慮每個(gè)狀態(tài)過去的探索情況,難以很好地做到利用與探索權(quán)衡(Exploitation-exploration Tradeoff)。蒙特卡羅樹搜索對(duì)每個(gè)狀態(tài)建模,在大規(guī)模狀態(tài)空間下效果更好。DeepArchitect[53]首次使用蒙特卡羅樹進(jìn)行神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索,使用蒙特卡羅樹對(duì)搜索空間進(jìn)行切割,完成采樣過程。AlphaX[54]通過分布式蒙特卡羅樹搜索引導(dǎo)遷移學(xué)習(xí),利用深度神經(jīng)網(wǎng)絡(luò)提高預(yù)測(cè)網(wǎng)絡(luò)的準(zhǔn)確性,以加速搜索過程。LaNAS(Latent action NAS)[55]在蒙特卡羅樹每個(gè)節(jié)點(diǎn)使用線性函數(shù)切分搜索空間,將搜索空間遞歸劃分為包含相似性能網(wǎng)絡(luò)的好區(qū)域或壞區(qū)域,顯著地提高了搜索效率。LA-MCTS(Latent Action Monte Carlo Tree Search)[56]在LaNAS基礎(chǔ)上進(jìn)行改進(jìn),通過在線的方式,使用非線性決策邊界劃分搜索空間,并使用貝葉斯優(yōu)化選擇候選對(duì)象。
One-shot NAS算法的搜索階段由網(wǎng)絡(luò)權(quán)重w優(yōu)化和網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)α優(yōu)化組成,根據(jù)2個(gè)優(yōu)化過程是否解耦,可以劃分為耦合優(yōu)化和解耦優(yōu)化[24]。耦合優(yōu)化一般通過交替優(yōu)化網(wǎng)絡(luò)權(quán)重參數(shù)w和網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)α,在優(yōu)化過程中兩者會(huì)互相依賴于對(duì)方,相互影響。由于需要結(jié)構(gòu)參數(shù)參與優(yōu)化,目前主要針對(duì)可微分神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索算法[12,39,40,47]等隱式采樣算法采用優(yōu)化方法。解耦優(yōu)化將網(wǎng)絡(luò)權(quán)重參數(shù)w優(yōu)化和網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)α優(yōu)化2個(gè)階段解耦。第1個(gè)階段優(yōu)化網(wǎng)絡(luò)權(quán)重參數(shù)w,通過優(yōu)化采樣得到的子圖得到訓(xùn)練好的超圖。第2個(gè)階段優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)α,將超圖作為性能評(píng)估器選擇最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu),在優(yōu)化α的過程中不會(huì)對(duì)網(wǎng)絡(luò)權(quán)重參數(shù)w產(chǎn)生影響。一些結(jié)構(gòu)搜索算法[19,50,57]通過解耦2個(gè)階段有效地緩解了權(quán)重共享導(dǎo)致的協(xié)同適應(yīng)問題。耦合優(yōu)化會(huì)使得超圖出現(xiàn)協(xié)同適應(yīng)問題,影響了模型的泛化能力;解耦優(yōu)化雖然避免了以上問題,但是需要解決由于權(quán)重共享導(dǎo)致的超圖內(nèi)不同的子網(wǎng)之間的權(quán)重耦合問題。
3.2.1 網(wǎng)絡(luò)權(quán)重與網(wǎng)絡(luò)結(jié)構(gòu)的耦合優(yōu)化
可微分神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索算法[12,39,41,47]是網(wǎng)絡(luò)權(quán)重與網(wǎng)絡(luò)結(jié)構(gòu)耦合優(yōu)化的代表性方法,通過引入網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)θ將離散的搜索空間A松弛為連續(xù)搜索空間A(θ),其中松弛后的空間包含了原搜索空間(A?A(θ))。通常采用雙層優(yōu)化(Bi- level Optimization)交替優(yōu)化網(wǎng)絡(luò)權(quán)重參數(shù)w和網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)θ,將優(yōu)化網(wǎng)絡(luò)權(quán)重參數(shù)和網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)2個(gè)過程以耦合的方式進(jìn)行優(yōu)化,如式(2)所示:
(2)
其中,雙層優(yōu)化的復(fù)雜度通常由2個(gè)變量所決定,求解以上優(yōu)化問題的復(fù)雜度為O(|w||θ|),主要受搜索空間中候選操作個(gè)數(shù)以及候選操作本身的參數(shù)量影響。在網(wǎng)絡(luò)訓(xùn)練過程中,參數(shù)量較少的候選操作可以在短時(shí)間內(nèi)收斂并表達(dá)出其相應(yīng)的功能,而參數(shù)量較大的候選操作則需要更長(zhǎng)時(shí)間收斂。這樣會(huì)導(dǎo)致出現(xiàn)馬太效應(yīng)(Matthew Effect)[58],即算法會(huì)減少在早期表現(xiàn)較差的候選操作對(duì)應(yīng)的結(jié)構(gòu)參數(shù),而結(jié)構(gòu)參數(shù)的減少會(huì)導(dǎo)致其反向傳播的梯度更小,需要更長(zhǎng)的訓(xùn)練時(shí)間。而由于訓(xùn)練不充分,會(huì)導(dǎo)致結(jié)構(gòu)參數(shù)進(jìn)一步減少。馬太效應(yīng)導(dǎo)致算法將過多的計(jì)算資源集中于早期表現(xiàn)較好的候選操作,無(wú)法充分發(fā)揮各個(gè)候選操作的作用。R-DARTS[22]發(fā)現(xiàn)原來(lái)的搜索方式不夠穩(wěn)定,泛化能力較差,通過追蹤驗(yàn)證集損失對(duì)結(jié)構(gòu)參數(shù)二階導(dǎo)的特征值,發(fā)現(xiàn)結(jié)構(gòu)參數(shù)在數(shù)據(jù)集上發(fā)生了過擬合。通過使用正則化方法,如早停法、增大正則項(xiàng)及數(shù)據(jù)增強(qiáng)等,增加了訓(xùn)練過程的穩(wěn)定性。DropNAS(grouped operation Dropout for DARTS)[58]針對(duì)可微分神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索算法中協(xié)同適應(yīng)問題和馬太效應(yīng),提出根據(jù)候選操作的參數(shù)量劃分小組,每組設(shè)置不同的丟棄率(Dropout Rate)參數(shù),緩解了協(xié)同適應(yīng)問題。StacNAS(Stable and consistant DARTS)[59]指出相似候選操作之間相互適應(yīng)是導(dǎo)致DARTS崩潰的核心原因,提出候選操作聚類(Operator Clustering)方法,使用兩級(jí)搜索緩解了協(xié)同適應(yīng)問題,提升了算法魯棒性。BNAO(Balanced one-shot Neural Architecture Optimization)[60]指出參數(shù)量小的操作相比參數(shù)量大的操作更容易優(yōu)化,提出了平衡訓(xùn)練策略,使得每個(gè)網(wǎng)絡(luò)結(jié)構(gòu)被采樣的概率與其參數(shù)量成正比,解決了原來(lái)訓(xùn)練方法中存在的優(yōu)化不足的問題。
3.2.2 網(wǎng)絡(luò)權(quán)重與網(wǎng)絡(luò)結(jié)構(gòu)的解耦優(yōu)化
在One-shot NAS中,解耦優(yōu)化表示將網(wǎng)絡(luò)結(jié)構(gòu)優(yōu)化和權(quán)重優(yōu)化解耦為2個(gè)階段,依次優(yōu)化。第1個(gè)階段,對(duì)超圖權(quán)重wA進(jìn)行優(yōu)化:
(3)
其中,優(yōu)化目標(biāo)為降低訓(xùn)練集上的損失函數(shù)Ltrain。
第2個(gè)階段,對(duì)超圖權(quán)重wA對(duì)應(yīng)的結(jié)構(gòu)參數(shù)α進(jìn)行優(yōu)化:
(4)
其中,wA(α)代表繼承了超圖權(quán)重的子圖,ACCval(wA(α))代表候選結(jié)構(gòu)參數(shù)α在驗(yàn)證集上的準(zhǔn)確率。以上優(yōu)化過程是解耦的,求解該問題的復(fù)雜度為O(|w|+|α|),其中超圖的復(fù)雜度受搜索空間影響,而第2個(gè)階段與具體搜索算法設(shè)計(jì)相關(guān)。
超圖反映了其所能代表的搜索空間。復(fù)雜的超圖對(duì)應(yīng)的搜索空間自由度更高,但搜索時(shí)優(yōu)化的難度更大,找到泛化能力最強(qiáng)的網(wǎng)絡(luò)結(jié)構(gòu)耗時(shí)也越久。因此,近期的一些工作借鑒了人工設(shè)計(jì)網(wǎng)絡(luò)的經(jīng)驗(yàn),在超圖每一層提供了多個(gè)模塊,構(gòu)成了單路徑的超圖范式,降低了超圖的復(fù)雜度。用單路徑超圖表示搜索空間最早是由SPOS[19]提出的,如圖5所示,單路徑超圖在網(wǎng)絡(luò)的每一層提供了5個(gè)候選模塊{o1,o2,o3,o4,o5},每一層可以選擇其中1個(gè)候選模塊。在訓(xùn)練階段,隨機(jī)選取單路徑子圖并使用隨機(jī)梯度下降算法優(yōu)化。在評(píng)估階段,使用進(jìn)化算法從超圖中找到最優(yōu)網(wǎng)絡(luò)。在單路徑超圖設(shè)計(jì)下,雖然復(fù)雜度降低,但是其搜索空間依然比較大,需要一定的手段提升優(yōu)化效率。GreedyNAS(one-shot NAS with Greedy supernet)[57]發(fā)現(xiàn)由于搜索空間非常大,期望超圖正確預(yù)測(cè)所有路徑的要求過高,不同路徑的耦合會(huì)導(dǎo)致訓(xùn)練壞的路徑對(duì)好的路徑產(chǎn)生干擾,因此提出了貪婪路徑過濾(Greedy Path Filtering)策略,一次性采樣一個(gè)批次路徑,根據(jù)在驗(yàn)證集上計(jì)算得到的損失進(jìn)行排序,然后訓(xùn)練損失值比較小的路徑,拋棄損失值比較大的路徑。BNNAS(NAS with Batch Norm)[61]觀察到批歸一化中的γ參數(shù)起到了指示通道重要性的作用,將γ參數(shù)作為衡量子圖性能的指標(biāo)。BNNAS在訓(xùn)練過程中固定卷積參數(shù),只訓(xùn)練批歸一化層的參數(shù),進(jìn)一步縮短了搜索所用時(shí)間。知識(shí)蒸餾是一個(gè)模型壓縮的過程,能夠?qū)⒅R(shí)從較大的教師網(wǎng)絡(luò)遷移到較小的學(xué)生網(wǎng)絡(luò)。OFA[33]提出了漸進(jìn)收縮訓(xùn)練策略,將規(guī)模最大的超圖作為教師網(wǎng)絡(luò),引導(dǎo)規(guī)模小的子圖的學(xué)習(xí),緩解了搜索空間過大帶來(lái)的優(yōu)化問題。
Figure 5 Single path super graph圖5 單路徑超圖
在單路徑的超圖中,其對(duì)應(yīng)的搜索空間自由度較低,相同層會(huì)共享相同的模塊,模塊間會(huì)協(xié)同適應(yīng)。在超圖中不同的候選操作之間的優(yōu)化有著高度相關(guān)的行為,并且在訓(xùn)練超圖的過程中,子圖之間的參數(shù)以強(qiáng)關(guān)聯(lián)的方式進(jìn)行更新,在優(yōu)化的過程中共享參數(shù)會(huì)互相影響,不同的子圖之間存在一定程度耦合。共享權(quán)重一方面有助于彼此訓(xùn)練,但權(quán)重共享程度過高則會(huì)導(dǎo)致子圖之間互相干擾。降低子圖之間的耦合度有利于提升One-shot NAS算法的排序相關(guān)性。
目前子圖間解耦有2種常見的方法。第1種是使用正則化方法進(jìn)行子圖間解耦,路徑丟棄法是一種通用的路徑解耦方法。One-shot[29]發(fā)現(xiàn)使用常規(guī)優(yōu)化方法會(huì)導(dǎo)致各部件之間相互耦合,移除任一操作會(huì)導(dǎo)致準(zhǔn)確率較大幅度下降。為了讓算法更加魯棒,提出了路徑丟棄法(Path Dropout)來(lái)解耦子網(wǎng)絡(luò)并使用一種變體的批歸一化操作進(jìn)一步穩(wěn)定訓(xùn)練。第2種是引入額外權(quán)重降低超圖的共享程度,從而實(shí)現(xiàn)子圖間解耦。這類工作的動(dòng)機(jī)來(lái)自于文獻(xiàn)[21],發(fā)現(xiàn)在One-shot NAS中,權(quán)重共享度越高,算法的排序相關(guān)性越差。為了降低子圖之間權(quán)重共享度,有些研究通過引入獨(dú)立于超圖的參數(shù)來(lái)降低子圖間的耦合度。文獻(xiàn)[62]為了降低單路徑搜索空間中的耦合程度,為當(dāng)前層和前一層的操作引入偏差權(quán)重,對(duì)輸入值進(jìn)行動(dòng)態(tài)調(diào)整,可以在搜索代價(jià)不明顯增加的情況下提升模型性能。Scarlet-NAS[63]為了解決單路徑超圖中跳躍連接帶來(lái)的訓(xùn)練震蕩問題,使用線性等價(jià)變換來(lái)穩(wěn)定訓(xùn)練過程。Few-Shot NAS[64]針對(duì)超圖中不同候選操作之間的耦合問題,提出了使用多個(gè)超圖共同協(xié)作覆蓋整個(gè)搜索空間的方法。在劃分搜索空間的過程中,引入了多個(gè)不重疊的超圖,以互補(bǔ)的方式覆蓋完整的搜索空間。類似地,K-Shot NAS(learnable weight-sharing for NAS withK-shot supernets)[65]通過引入K個(gè)超圖為每個(gè)候選操作提供了K個(gè)獨(dú)立的權(quán)重,對(duì)于每個(gè)子圖的每個(gè)操作,提出使用額外的網(wǎng)絡(luò)SimpleX生成K個(gè)超圖組成的凸組合進(jìn)行耦合優(yōu)化。
One-shot NAS根據(jù)流程可以劃分為2類[24]:?jiǎn)坞A段神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索和兩階段神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索。Two-stage NAS(如圖6所示)包括搜索階段和評(píng)估階段。在搜索階段通過優(yōu)化網(wǎng)絡(luò)結(jié)構(gòu)和網(wǎng)絡(luò)權(quán)重,得到一些有潛力的模型;在評(píng)估階段從頭開始訓(xùn)練,以獲得最終模型。典型的算法有ENAS[18]、DARTS[12]和SPOS[19]等。
Figure 6 Process of Two-stage neural architecture search圖6 兩階段神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的基本流程
單階段神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索方法(如圖7所示)是近期發(fā)展的方法,相比兩階段方法,無(wú)需評(píng)估階段,可以直接從超圖中得到最終模型。典型的算法有OFA[33]、BigNAS(scaling up NAS with Big single-stage models)[66]和AtomNAS[67]等。
Figure 7 Process of One-stage neural architecture search圖7 單階段神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的基本流程
3.3.1 兩階段神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索
Two-stage NAS算法[18,19,4]將網(wǎng)絡(luò)結(jié)構(gòu)搜索問題分為2個(gè)階段。在搜索階段對(duì)超圖進(jìn)行結(jié)構(gòu)優(yōu)化和權(quán)重優(yōu)化,然后將超圖作為性能評(píng)估器測(cè)試子圖的性能,得到有潛力的模型;在評(píng)估階段從頭訓(xùn)練有潛力模型,挑選出泛化能力最好的網(wǎng)絡(luò)作為最終模型。由于Two-stage NAS中超圖訓(xùn)練不夠充分,在完成搜索階段后從超圖中采樣得到的子圖的性能較差,因而需要在評(píng)估階段從頭訓(xùn)練以達(dá)到更高性能。而評(píng)估階段能選擇到最優(yōu)子圖的前提是超圖的精度排序和子圖真實(shí)的精度相對(duì)排序有較強(qiáng)的相關(guān)性。Yu等人[21]對(duì)典型的One-shot NAS算法[12,18]進(jìn)行了評(píng)估,發(fā)現(xiàn)基于權(quán)重共享的算法排序相關(guān)性比較差,難以反映模型真實(shí)性能排序。為了衡量排序相關(guān)性,在Two-stage NAS中需要引入新的指標(biāo)來(lái)衡量超圖反映真實(shí)排序的能力,一般用肯德爾相關(guān)性系數(shù)(Kendall Correlation Coefficient)或者皮爾遜相關(guān)性系數(shù)(Person Correlation Coefficient)來(lái)評(píng)估超圖得到的網(wǎng)絡(luò)結(jié)構(gòu)排序與網(wǎng)絡(luò)真實(shí)排序之間的相關(guān)性。
排序相關(guān)性是Two-stage NAS中重要的研究?jī)?nèi)容,一些研究[21]發(fā)現(xiàn),算法的排序相關(guān)性與搜索空間的復(fù)雜度有一定關(guān)聯(lián)。復(fù)雜搜索空間,如NAS-Bench-101[68]和DARTS類搜索空間[12],排序相關(guān)性趨于零;簡(jiǎn)單搜索空間,如SPOS[19]和FairNAS[50]等使用了精心設(shè)計(jì)的采樣策略,平等地訓(xùn)練所有候選操作,排序相關(guān)性較好。Landmark Regularization[38]顯式地引入用于衡量排序相關(guān)性的正則項(xiàng),將關(guān)鍵候選網(wǎng)絡(luò)的性能信息引入超圖的優(yōu)化過程,最大化超圖的性能排名與獨(dú)立網(wǎng)絡(luò)的性能排名的相關(guān)性。還有一些工作通過引入一些新的指標(biāo)來(lái)判斷網(wǎng)絡(luò)的相對(duì)性能,例如,AngleNAS(Angle-based search space shrinking for NAS)[69]、RLNAS(NAS with Random Labels)[70]中使用了層旋轉(zhuǎn)(Layer Rotation)來(lái)衡量子模型的泛化能力,層旋轉(zhuǎn)越大,其泛化能力越強(qiáng),模型性能相對(duì)排序就越高,有效地提升了算法的排序相關(guān)性。NASWOT(NAS WithOut Training)[71]通過對(duì)初始化神經(jīng)網(wǎng)絡(luò)進(jìn)行簡(jiǎn)單的觀察,使用漢明距離衡量網(wǎng)絡(luò)的線性映射情況衡量子圖的性能,能夠免去訓(xùn)練過程,大幅降低了計(jì)算代價(jià)。TE-NAS(Training freE NAS)[72]引入神經(jīng)正切核的頻譜和輸入空間線性區(qū)域數(shù)量來(lái)衡量子圖的相對(duì)性能,能夠在無(wú)需訓(xùn)練的情況下選擇最佳網(wǎng)絡(luò)結(jié)構(gòu)。
3.3.2 單階段神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索
Two-stage NAS算法中對(duì)超圖的訓(xùn)練不夠充分,將訓(xùn)練好的超圖作為性能評(píng)估器,用于衡量子圖的相對(duì)性能。直接繼承超圖權(quán)重的子圖在驗(yàn)證集上的性能較差,無(wú)法直接作為最終模型。One-stage NAS通過提出一系列有針對(duì)性的優(yōu)化策略,能夠讓超圖中所有子圖的性能得到顯著提升,甚至超過人工設(shè)計(jì)的網(wǎng)絡(luò)結(jié)構(gòu)的性能。因此,One-stage NAS無(wú)需通過評(píng)估階段從頭開始訓(xùn)練,從超圖中直接采樣得到的網(wǎng)絡(luò)模型就能夠直接用于部署。這種特性有利于NAS算法從通用硬件到專用加速器的模型部署,提高了算法的應(yīng)用場(chǎng)景和使用價(jià)值。
最早的單階段神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索算法是OFA[33],提出漸進(jìn)收縮(Progressive Shrinking)的訓(xùn)練策略,先訓(xùn)練最大深度、寬度和卷積核的最大超圖,然后微調(diào)超圖以支持更小深度、寬度和卷積核對(duì)應(yīng)的子圖。這種策略可以為較小的子圖提供更好的初始化權(quán)重,防止訓(xùn)練過程中多個(gè)子圖之間互相干擾,提高了訓(xùn)練的效率。在這種方法限制下,所有子圖的性能得到了一致性提升。BigNAS[66]遵從了單階段神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索算法的范式,使用由粗到細(xì)的架構(gòu)選擇策略(Coarse-to-fine Architecture Selection)采樣子圖,并配合三明治法則(Sandwich Rule)和原地蒸餾(Inplace Distillation)對(duì)超圖進(jìn)行優(yōu)化,無(wú)需額外的訓(xùn)練或者后處理步驟。這些有針對(duì)性的策略能夠更充分地訓(xùn)練超圖,使得所有子圖模型都經(jīng)過訓(xùn)練,在搜索結(jié)束時(shí)可以同時(shí)取得優(yōu)秀性能,整體性能得到了一致的提升。CompOFA[89]針對(duì)OFA搜索階段代價(jià)過高的問題,認(rèn)為網(wǎng)絡(luò)的寬度和深度不是相互獨(dú)立的,存在復(fù)合關(guān)系,基于此提出了復(fù)合采樣策略,使網(wǎng)絡(luò)的寬度和深度成對(duì)縮放,縮小了OFA的搜索空間,使采樣得到的模型能夠更好地權(quán)衡精度和復(fù)雜度,將訓(xùn)練時(shí)間縮短為原來(lái)的一半。AtomNAS[67]從模型剪枝的視角來(lái)建模One-shot NAS,通過引入硬件感知的縮放因子來(lái)控制搜索空間,在訓(xùn)練超圖的過程中,逐步剪枝影響因子非常小的分支,從而得到最終的模型,實(shí)現(xiàn)了端到端的搜索和訓(xùn)練,無(wú)需從頭開始訓(xùn)練。
在可微分神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索中,一些研究工作[39,74]通過降低訓(xùn)練過程中的偏差,維持了整個(gè)流程的完整性和可微性,實(shí)現(xiàn)了單階段可微分神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索。SNAS[39]和DSNAS[74]指出大部分可微分網(wǎng)絡(luò)結(jié)構(gòu)搜索方法無(wú)法實(shí)現(xiàn)單階段神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的主要問題在于搜索的目標(biāo)函數(shù)的近似中引入了過多的偏差。SNAS通過更嚴(yán)格的近似,在每次反向傳播過程中同時(shí)訓(xùn)練網(wǎng)絡(luò)結(jié)構(gòu)參數(shù)和網(wǎng)絡(luò)權(quán)重參數(shù),使得SNAS中的子圖在搜索階段可以維持較高的驗(yàn)證準(zhǔn)確率。但是,SNAS的優(yōu)化過程需要把整幅超圖都存入顯存中,導(dǎo)致無(wú)法直接在ImageNet等大型數(shù)據(jù)集上優(yōu)化。DSNAS進(jìn)一步解決了SNAS的效率問題,利用Gumbel Softmax替換了SNAS中的結(jié)構(gòu)分布參數(shù),能夠直接在ImageNet數(shù)據(jù)集上進(jìn)行訓(xùn)練,并且DSNAS派生的網(wǎng)絡(luò)結(jié)構(gòu)可以直接部署。
本節(jié)主要關(guān)注One-shot NAS算法的3個(gè)評(píng)價(jià)指標(biāo),即準(zhǔn)確率、參數(shù)量和訓(xùn)練耗時(shí)。準(zhǔn)確率是評(píng)估模型性能的重要定量指標(biāo),能夠反映模型正確分類的能力。參數(shù)量反映了模型所有帶參數(shù)層的權(quán)重參數(shù)總量,可以用于衡量模型的復(fù)雜度。一般來(lái)說,參數(shù)量越大的模型復(fù)雜度越高,模型容量越大,能夠擬合的數(shù)據(jù)規(guī)模也越大;訓(xùn)練耗時(shí)也是NAS中比較關(guān)心的指標(biāo),通常使用GPU天來(lái)衡量,即搜索算法需要在多個(gè)GPU上運(yùn)行的天數(shù)。
NAS中常用的分類數(shù)據(jù)集有CIFAR10[45]、CIFAR100[75]和ImageNet[2]等。由于ImageNet數(shù)據(jù)集規(guī)模更大,貼合實(shí)際應(yīng)用場(chǎng)景的要求,因此主要關(guān)注各算法在ImageNet數(shù)據(jù)集上的性能表現(xiàn)。典型的One-shot NAS算法在ImageNet數(shù)據(jù)集上的搜索效果如表1所示,表中匯總了各個(gè)算法在文獻(xiàn)中給出的結(jié)果,其中‘-’代表文獻(xiàn)中未公布結(jié)果。ENAS[18]和RobustDARTS[22]等僅在小規(guī)模數(shù)據(jù)集(如CIFAR10)上給出了結(jié)果,沒有提供在ImageNet數(shù)據(jù)集上訓(xùn)練結(jié)果的算法,沒有納入此表。另外,表1中的一些算法,如DARTS[12]、GDAS[40]和SNAS[39]等并沒有在ImageNet上直接搜索,而是將CIFAR10作為ImageNet數(shù)據(jù)集的代理任務(wù),將在代理任務(wù)上的最優(yōu)網(wǎng)絡(luò)結(jié)構(gòu)通過遷移學(xué)習(xí)的方法遷移到ImageNet目標(biāo)任務(wù)。
Table 1 Experimental results of one-shot neural architecture search algorithms on ImageNet表1 單次神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索算法在 ImageNet 數(shù)據(jù)集上的實(shí)驗(yàn)結(jié)果
從表1可知,One-stage NAS算法,如BigNAS和OFA,準(zhǔn)確率整體上都要比Two-stage NAS算法的高,能夠更好地權(quán)衡精度和參數(shù)量。但是,其消耗的計(jì)算資源更高,以O(shè)FA為例,整個(gè)訓(xùn)練過程需要在NVIDIA Tesla V100顯卡上運(yùn)行50天?;诳晌⒎稚窠?jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索的算法在耗時(shí)方面遠(yuǎn)低于One-stage NAS的,以DARTS為代表,整個(gè)訓(xùn)練過程僅需在1080Ti顯卡上運(yùn)行1天。
與早期的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索算法[10,11]相比,One-shot NAS的搜索時(shí)間要少很多。具體來(lái)說,One-stage NAS算法適用于數(shù)據(jù)規(guī)模大,并且需要多平臺(tái)部署的場(chǎng)景,因?yàn)槠錈o(wú)需重新訓(xùn)練子圖。而可微分神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索算法則適用于需要快速迭代模型的場(chǎng)景,比如數(shù)據(jù)集增量更新的情景。由于其計(jì)算代價(jià)低,能夠快速得到目標(biāo)網(wǎng)絡(luò)。
神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索是自動(dòng)機(jī)器學(xué)習(xí)領(lǐng)域的研究熱點(diǎn),也是計(jì)算機(jī)視覺領(lǐng)域的重要研究方向。針對(duì)傳統(tǒng)神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索算法搜索效率低的問題,One-shot NAS通過超圖進(jìn)行權(quán)重共享,有效地降低了訓(xùn)練開銷和資源占用。雖然One-shot NAS取得了一定的成果,但是仍存在很多值得研究的問題,主要體現(xiàn)在以下幾個(gè)方面:
(1)超參數(shù)與網(wǎng)絡(luò)結(jié)構(gòu)搜索的協(xié)同優(yōu)化。不同結(jié)構(gòu)的網(wǎng)絡(luò)所使用的最佳超參數(shù)是不同的,而現(xiàn)有算法在搜索階段會(huì)使用一組固定的超參數(shù)進(jìn)行搜索,在評(píng)估階段則會(huì)調(diào)整超參數(shù)。2個(gè)階段使用不同的超參數(shù)帶來(lái)的差異會(huì)導(dǎo)致搜索得到的模型是次優(yōu)的。近期有些研究工作開始探索這個(gè)方向,聯(lián)合搜索訓(xùn)練超參數(shù)和網(wǎng)絡(luò)結(jié)構(gòu),取得了不錯(cuò)的效果。
(2)One-stage NAS算法開始嶄露頭角。早期的基于超圖的工作大多屬于Two-stage NAS,訓(xùn)練技術(shù)不夠成熟。單階段神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索,通過對(duì)超圖中各個(gè)子圖進(jìn)行充分訓(xùn)練,使所有的子圖性能得到一致的提升,無(wú)需評(píng)估階段,降低了評(píng)估階段帶來(lái)的開銷。One-stage NAS具有廣泛的應(yīng)用場(chǎng)景,適用于在專用加速器上的模型部署,具有較高的應(yīng)用價(jià)值。
(3)搜索空間的設(shè)計(jì)與探索。早期的工作中搜索空間主要由卷積層、池化層等構(gòu)成。近期一些工作如GLIT(Global and Local Image Transformer)[77]、BossNAS(Block-wisely self-supervised NAS)[78]將Transformer[76]模塊引入搜索空間,探索卷積與Transformer的組合方式,并將其應(yīng)用在計(jì)算機(jī)視覺領(lǐng)域,取得了超越卷積神經(jīng)網(wǎng)絡(luò)的結(jié)果。
(4)無(wú)監(jiān)督網(wǎng)絡(luò)結(jié)構(gòu)搜索。以對(duì)比學(xué)習(xí)為代表的無(wú)監(jiān)督學(xué)習(xí)取得了驚人的效果,并且有些研究工作[78]開始結(jié)合NAS提出新的訓(xùn)練方案,在排序一致性以及準(zhǔn)確率方面取得了新的進(jìn)展。
本文針對(duì)單次神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索算法研究方向,主要從采樣策略、過程解耦和階段性3個(gè)方面對(duì)關(guān)鍵技術(shù)進(jìn)行綜述,有助于研究人員快速了解One-shot NAS領(lǐng)域。神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)搜索算法也存在著一些難題亟待解決,仍需要研究人員共同努力,以推動(dòng)其真正落地進(jìn)入產(chǎn)業(yè),推動(dòng)人工智能領(lǐng)域的進(jìn)步。