現(xiàn)代機器學習 課件 第18章 自動機器學習_第1頁
現(xiàn)代機器學習 課件 第18章 自動機器學習_第2頁
現(xiàn)代機器學習 課件 第18章 自動機器學習_第3頁
現(xiàn)代機器學習 課件 第18章 自動機器學習_第4頁
現(xiàn)代機器學習 課件 第18章 自動機器學習_第5頁
已閱讀5頁,還剩85頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)

文檔簡介

第18章自動機器學習18.1自動機器學習基礎(chǔ)18.2數(shù)據(jù)準備18.3模型生成18.4模型評估18.5經(jīng)典NAS算法本章小結(jié)

18.1自動機器學習基礎(chǔ)

18.1.1初識自動機器學習目前成功的機器學習應用遠非完全自動化,而大多通過經(jīng)驗自動改進,其模型是由專家通過反復試驗設(shè)計的,這意味著即使是專家也需要大量資源和時間才能構(gòu)建性能良好的模型。為了減少龐大的開發(fā)成本,研究人員提出了實現(xiàn)整個機器學習流程自動化的想法,即自動機器學習(AutoML)。

自動機器學習是自動化和機器學習的交集,是兩個領(lǐng)域相互作用的產(chǎn)物。

1.定義1(ML)

機器學習(ML)是由E、T和P指定的一種計算機程序。

從這個定義中我們可以看到,AutoML本身也是一個在輸入數(shù)據(jù)(即E)和給定任務(wù)(即T)上具有良好泛化性能(即P)的計算機程序。然而,傳統(tǒng)的機器學習研究多集中在學習方法的發(fā)明和分析上,而不關(guān)心這些方法的配置是否容易。比如,最近的研究趨勢是從簡單模型到深度模型,這些模型可以提供更好的性能,但也很難配置。相反,AutoML強調(diào)如何使用和控制簡單的學習方法。

2.定義2(AutoML)

自動化機器學習(AutoML)試圖在有限的計算預算范圍內(nèi)代替人類來識別適合機器學習的計算機程序(由定義1中的E、T和P指定)的(部分或全部)配置。

從上面的討論中我們可以看到,盡管需要良好的學習性能,但AutoML要求以自動方式獲得這種性能。

這就設(shè)置了AutoML的三個主要目標:

(1)良好的性能:可以在各種輸入數(shù)據(jù)和學習任務(wù)上實現(xiàn)良好的泛化性能;

(2)減少人工參與:可以自動完成機器學習方法的配置;

(3)高計算效率:該程序可以在有限的預算內(nèi)返回合理的輸出。

18.1.2自動機器學習的構(gòu)成

完整的AutoML系統(tǒng)可以動態(tài)組合各種技術(shù),以形成易于使用的端到端ML流程體系(如圖18.1所示)。圖18.1AutoML流程概述

AutoML流程包含多個過程:數(shù)據(jù)準備、特征工程、模型生成和模型評估。模型生成可以進一步分為搜索空間和優(yōu)化方法。搜索空間定義了ML模型的設(shè)計原理。該原理可以分

為兩類:傳統(tǒng)ML模型(如SVM和KNN)和神經(jīng)體系結(jié)構(gòu)。優(yōu)化方法分為超參數(shù)優(yōu)化(HPO)和架構(gòu)優(yōu)化(AO),其中前者指與訓練相關(guān)的參數(shù)(如學習率和批量大小),而后者

指與模型相關(guān)的參數(shù)(如神經(jīng)架構(gòu)的層數(shù)和KNN的近鄰數(shù))。NAS由三個重要模塊組成:神經(jīng)體系結(jié)構(gòu)的搜索空間、AO方法和模型評估方法。NAS的目的是通過從預定義的搜索空間中選擇和組合不同的基本操作來搜索具有魯棒性且性能良好的神經(jīng)體系結(jié)構(gòu)。

18.2數(shù)據(jù)準備

ML管道化的第一步是數(shù)據(jù)準備。圖18.2展示了數(shù)據(jù)準備流程。由圖18.2可以看出,應從三個方面概括數(shù)據(jù)準備工作:數(shù)據(jù)收集、數(shù)據(jù)清理和數(shù)據(jù)增強。數(shù)據(jù)收集是構(gòu)建新數(shù)據(jù)集或擴展現(xiàn)有數(shù)據(jù)集的必要步驟。數(shù)據(jù)清理過程用于過濾嘈雜的數(shù)據(jù),因此不會影響后續(xù)模型訓練。數(shù)據(jù)增強在增強模型魯棒性和改善模型性能方面起著重要作用。圖18.2數(shù)據(jù)準備流程圖

18.2.1數(shù)據(jù)收集

目前,ML的深入研究已達成共識,即必須有良好的數(shù)據(jù)。因此出現(xiàn)了許多開放數(shù)據(jù)集。在ML研究的早期開發(fā)了手寫數(shù)字數(shù)據(jù)集,即MNIST。之后還開發(fā)了一些更大的數(shù)據(jù)集,如CIFAR-10、CIFAR-100和ImageNet。

然而對于某些特定的任務(wù)(如與醫(yī)療或其他私人事務(wù)相關(guān)的任務(wù)),通過上述方法找到一個合適的數(shù)據(jù)集通常是很困難的。針對這一問題,提出了兩種方法:數(shù)據(jù)搜索(Data

Searching)和數(shù)據(jù)合成(DataSynthesis)。

數(shù)據(jù)搜索是指基于互聯(lián)網(wǎng)通過搜索網(wǎng)絡(luò)數(shù)據(jù)直接收集數(shù)據(jù)集。在此過程中需要過濾不相關(guān)的數(shù)據(jù)。數(shù)據(jù)合成可以使用盡可能與真實世界匹配的數(shù)據(jù)模擬器,或者使用生成對抗

網(wǎng)絡(luò)(GenerativeAdversarialNetworks,GAN)來合成數(shù)據(jù)。

18.2.2數(shù)據(jù)清理

收集的數(shù)據(jù)中不可避免地會有噪聲,噪聲會對模型的訓練產(chǎn)生負面影響。因此,如有必要,則必須執(zhí)行數(shù)據(jù)清理這一過程。傳統(tǒng)上,數(shù)據(jù)清理需要專業(yè)知識,但接觸專家的機會

有限,而且費用高昂。因此,數(shù)據(jù)清理的工作正從眾包(Crowdsourcing)轉(zhuǎn)向自動化。傳統(tǒng)的數(shù)據(jù)清理方法適用于固定數(shù)據(jù)集。但是,現(xiàn)實世界中每天都會產(chǎn)生大量數(shù)據(jù)。換句話說,如何在連續(xù)過程中清理數(shù)據(jù)成為值得研究的問題,對于企業(yè)而言更是如此。

18.2.3數(shù)據(jù)增強

在某種程度上,數(shù)據(jù)增強(DataAugmentation,DA)也可以被視為數(shù)據(jù)收集的工具,因為它可以基于現(xiàn)有數(shù)據(jù)生成新數(shù)據(jù)。此外,DA也作為一種正則化函數(shù)來避免模型訓練的

過度擬合而受到越來越多的關(guān)注

對于圖像數(shù)據(jù),仿射變換包括旋轉(zhuǎn)、縮放、隨機裁剪和反射;彈性變換包含對比偏移、亮度偏移、模糊和通道混洗等操作;高級變換包括隨機擦除、圖像融合、剪切和混合等?;谏窠?jīng)的變換可以分為三類:對抗性噪聲、神經(jīng)式變換和GAN技術(shù)。對于文本數(shù)據(jù),可以通過同義詞插入或先將文本翻譯成外文,再將其翻譯回原始語言來擴充。

上述增強技術(shù)仍然需要人工選擇增強操作,然后針對特定任務(wù)形成特定的DA策略,這需要大量的專業(yè)知識和時間。最近研究人員提出了許多方法來搜索不同任務(wù)的增強策略。AutoAugment是一項開創(chuàng)性的工作,它通過使用強化學習來自動搜索最佳DA策略。但是AutoAugment的效率不高,因為一次增強搜索將花費近500個GPU小時。為了提高搜索效率,研究人員隨后使用不同的搜索策略提出了許多改進的算法,如基于梯度下降的方法、基于貝葉斯優(yōu)化的方法、在線超參數(shù)學習(OnlineHyper-ParameterLearning)的方法、基于貪婪搜索和隨機搜索的方法等。

18.3模型生成

一旦獲得特征,我們就需要找到一個模型來預測標簽。模型生成包含兩個部分:選取一些分類器,設(shè)置相應的超參數(shù)。在這個AutoML設(shè)置中,任務(wù)是自動選擇分類器并設(shè)置其超參數(shù),以獲得良好的學習性能。

18.3.1傳統(tǒng)模型

前述章節(jié)中已經(jīng)提出了許多分類方法,如樹分類器、線性分類器、核函數(shù)等。每種分類器在使用數(shù)據(jù)建模時都有自己的優(yōu)缺點。表18.1列出了在Scikit-Learn中實現(xiàn)的一些現(xiàn)成

的分類器。由表18.1可以看出,每個分類器都具有不同的超參數(shù)。傳統(tǒng)上來說,不同分類器及其超參數(shù)的選擇通常是根據(jù)自己的經(jīng)驗以試錯的方式來決定的。一般來說,超參數(shù)可以是離散的,如KNN中的近鄰數(shù),也可以是連續(xù)的,如logistic回歸中的懲罰值。

18.3.2NAS

NAS目標是搜索適合學習問題的良好的深度網(wǎng)絡(luò)體系結(jié)構(gòu),其特點主要有三個:首先,NAS本身是當前具有良好前景的研究課題,目前已有諸多論文發(fā)表;第二,深度網(wǎng)絡(luò)的應用領(lǐng)域相對清晰,即從低語義水平的數(shù)據(jù)(如圖像像素)中學習;最后,由于應用領(lǐng)域是明確的,因此特定領(lǐng)域的網(wǎng)絡(luò)體系結(jié)構(gòu)可以滿足其學習目的,其中特征工程和模型選擇均由NAS完成。

圖18.3給出了NAS流程,它分為以下三個方面:搜索空間、架構(gòu)優(yōu)化(AO)和模型評估。圖18.3NAS流程

神經(jīng)結(jié)構(gòu)可以表示為有向無環(huán)圖DirectAcyclicGraph,DAG),它由有序節(jié)點Z和連接節(jié)點對的邊組成,其中每個節(jié)點表示張量z,每條邊表示從一組候選操作集合O中選擇的操作集合o。每個節(jié)點的入度數(shù)隨搜索空間的設(shè)計而變化。由于計算資源的限制,為入度設(shè)置了最大閾值N。這里我們假設(shè)節(jié)點的索引從1開始,給出節(jié)點k處的計算公式:

1.整體結(jié)構(gòu)的搜索空間

整體結(jié)構(gòu)神經(jīng)網(wǎng)絡(luò)的空間是最直觀的搜索空間之一。圖18.4展示了整體結(jié)構(gòu)模型的兩個簡化示例。這些模型是通過堆疊預定數(shù)量的節(jié)點而構(gòu)建的,其中每個節(jié)點代表一個層并

具有指定的操作。最簡單的結(jié)構(gòu)是圖18.4(a)所示的模型,而圖18.4(b)所示的模型則相對復雜,因為它允許有序節(jié)點之間存在任意跳躍連接,并且這些連接在實踐中已被證明是有

效的。盡管整個結(jié)構(gòu)易于實現(xiàn),但它有幾個缺點。例如,模型越深,泛化能力越好,但是尋找這樣一個深層網(wǎng)絡(luò)過程煩瑣且計算量大。此外,所生成的架構(gòu)缺乏可移植性,即在小型數(shù)據(jù)集上生成的模型可能不適合較大的數(shù)據(jù)集,需要為較大的數(shù)據(jù)集生成新模型。圖18.4整體結(jié)構(gòu)模型的兩個簡化示例

2.基于單元的搜索空間

為了使生成的模型具有可移植性,許多文獻提出了基于單元的搜索空間,其中神經(jīng)結(jié)構(gòu)由固定數(shù)量的重復單元結(jié)構(gòu)組成。這種設(shè)計方法基于以下觀察:許多性能良好的人工設(shè)

計的模型也是通過堆疊固定數(shù)量的模塊來構(gòu)建的。ResNet系列通過堆疊更多瓶頸模塊來構(gòu)建許多變體,如ResNet50、ResNet101和ResNet152。這個重復的模塊被稱為單元。

圖18.5(a)提供了一個基于單元的神經(jīng)網(wǎng)絡(luò)的示例。該網(wǎng)絡(luò)由兩種單元組成,即標準單元和還原單元。因此,搜索完整的神經(jīng)體系結(jié)構(gòu)的問題就簡化為在基于單元的搜索空間中搜索最佳單元結(jié)構(gòu)。大多數(shù)工作的內(nèi)部單元結(jié)構(gòu)的設(shè)計范例參考了Zoph等人的工作成果NASNet),這是最早提出的基于單元的搜索空間的探索。圖18.5(b)顯示了標準單元結(jié)構(gòu)的示例。圖18.5一個基于單元的神經(jīng)網(wǎng)絡(luò)的示例與一個標準單元結(jié)構(gòu)的示例

搜索單元結(jié)構(gòu)比搜索整體結(jié)構(gòu)更有效。為了說明這一點,假設(shè)有M個預定義的候選操作,整體結(jié)構(gòu)和基于單元的結(jié)構(gòu)的層數(shù)均為L,單元中的塊數(shù)為B,那么,可能的整體結(jié)構(gòu)數(shù)為

可能的像元數(shù)為[MB×(B+2)!]4,但是有兩種單元(即標準單元和還原單元),因此基于單元的搜索空間的最終大小為

顯然,搜索整體結(jié)構(gòu)的復雜度隨層數(shù)成倍增長。

值得注意的是,基于單元的搜索空間的NAS方法通常包括兩個階段:搜索和評估。具體而言,首先選擇搜索階段中表現(xiàn)最佳的模型,然后在評估階段對該模型進行從頭訓練或微調(diào)。但是,兩個階段之間的模型深度存在很大的差距。如圖18.6(a)所示,對于DARTS(見18.5.3節(jié)),在搜索階段生成的模型僅由8個單元組成,以減少GPU內(nèi)存的消耗,而在評估階段,單元數(shù)量擴展到20個。搜索階段為淺層模型找到了最佳的單元結(jié)構(gòu),但這并不意味著它在評估階段仍適合深層模型。換句話說,簡單地添加更多的單元可能會損害模型性能。

為了彌合這一差距,Chen等人提出了一種基于DARTS的改進方法,即漸進DARTS(Progressive-DARTS,P-DARTS),該方法將搜索階段分為多個階段,并在每個階段結(jié)束時逐漸增加搜索網(wǎng)絡(luò)的深度,從而縮小了搜索和評估之間的差距。但是,在搜索階段增加單元數(shù)可能會帶來較大的計算開銷。因此,為了減少計算量,P-DARTS通過搜索空間近似方法將候選操作的數(shù)量從5逐漸減少到3和2,如圖18.6所示。實驗結(jié)果顯示,P-DARTS在CIFAR-10的測試數(shù)據(jù)集上獲得了2.50%的錯誤率,優(yōu)于DARTS的2.83%的錯誤率。圖18.6DARTS和P-DARTS之間的差異

3.層級搜索空間

基于單元的搜索空間使生成的模型具有可移植性,大多數(shù)基于單元的方法遵循兩級層級結(jié)構(gòu):內(nèi)部是單元級,為單元中的每個節(jié)點選擇操作和連接;外部是網(wǎng)絡(luò)級,控制著空間

分辨率的變化。然而,這些方法只關(guān)注單元層,而忽略了網(wǎng)絡(luò)層。如圖18.5所示,每當固定數(shù)量的標準單元格被堆疊時,添加一個還原單元,特征圖的空間維度將減半。

為了共同學

習可重復單元和網(wǎng)絡(luò)結(jié)構(gòu)的良好結(jié)合,Liu等人定義了網(wǎng)絡(luò)級架構(gòu)的一般表述,如圖18.7所示(圖18.7中,開頭的三個空心圓點表示固定的“干”結(jié)構(gòu),每個實心圓點是一個單元結(jié)構(gòu),

箭頭表示最終選擇的網(wǎng)絡(luò)級結(jié)構(gòu))。從圖18.7中可以復制許多現(xiàn)有的良好網(wǎng)絡(luò)設(shè)計。通過這種方式,我們可以充分探索網(wǎng)絡(luò)中不同數(shù)量的通道以及每個圖層的特征圖的大小。圖18.7網(wǎng)絡(luò)級搜索空間

在單元級別,單元中的塊數(shù)(B)仍然是手動預定義的,并且在搜索階段是固定的。換句話說,B是一個新的超參數(shù),它需要通過人工輸入進行調(diào)整。為了解決這個問題,Liu等人提出了一種新穎的分層遺傳表示體系(HierarchicalGeneticRepresentationScheme),通過迭代合并低層單元來生成高層單元。如圖18.8所示,圖18.8三級層級結(jié)構(gòu)表示形式的示例

對于HierNAS和PNAS,一旦搜索到一個單元結(jié)構(gòu),就會在網(wǎng)絡(luò)的所有層中使用,這會限制層級的多樣性。此外,許多搜索到的單元結(jié)構(gòu)是復雜且分散的,這不利于實現(xiàn)高精度和低延遲。為了緩解這兩個問題,Tan等人提出了MnasNet,它使用新穎的分解層級搜索(FactorizedHierarchicalSearch,FHS)空間為最終網(wǎng)絡(luò)的不同層級生成不同的單元結(jié)構(gòu),即MBConv。圖18.9展示了MnasNet的分解層級搜索空間。圖18.9MnasNet的分解層次搜索空間

4.基于形態(tài)的搜索空間

Chen等人提出了Net2Net技術(shù),通過在神經(jīng)網(wǎng)絡(luò)層之間插入本征形態(tài)變換,在現(xiàn)有網(wǎng)絡(luò)的基礎(chǔ)上設(shè)計新的神經(jīng)網(wǎng)絡(luò)。IdMorph變換是功能可保持的,有兩種類型:深度IdMorph變換和寬度IdMorph變換。IdMorph變換使得用更深或更寬的等效模型替換原始模型成為可能。

具體而言,與Net2Net相比,網(wǎng)絡(luò)變形具有以下優(yōu)點:

①它可以嵌入非本征(NonIdentity)層并處理任意非線性激活函數(shù);

②它可以在單個操作中同時執(zhí)行深度、寬度和內(nèi)核大小變形,而Net2Net只能分別考慮深度和寬度的變化。

實驗結(jié)果表明,網(wǎng)絡(luò)變形可以極大地加速訓練過程,其訓練時間僅為原來的VGG16的1/15,并取得了更好的效果。

18.3.3模型優(yōu)化

機器學習的最后步驟模型評估是最耗時的步驟,通常需要進行優(yōu)化。對于經(jīng)典學習模型,優(yōu)化不是問題,因為它們通常采用凸損失函數(shù),并且從各種優(yōu)化算法中得到的性能幾乎相同。因此,效率是選擇優(yōu)化算法的重點。

但是,隨著學習方法變得越來越復雜,如從SVM到深度網(wǎng)絡(luò),優(yōu)化不僅是計算預算的主要消耗者,對學習性能也有很大的影響。因此,算法選擇的目標是自動找到優(yōu)化算法,使效率

和性能達到平衡。在本節(jié)中,我們討論優(yōu)化器的基本技術(shù)。

這里有三個重要問題:

(1)優(yōu)化器可以在哪種搜索空間上運行?

(2)需要什么樣的反饋?

(3)在找到一個好的配置之前,需要生成/更新多少個配置?

1.架構(gòu)優(yōu)化

定義搜索空間后,我們需要搜索性能最佳的體系結(jié)構(gòu),這個過程稱為體系結(jié)構(gòu)優(yōu)化(ArchitectureOptimization,AO)。傳統(tǒng)上,神經(jīng)網(wǎng)絡(luò)的體系結(jié)構(gòu)被視為一組靜態(tài)超參數(shù),這些超參數(shù)是根據(jù)在驗證集上觀察到的性能進行調(diào)整的。但是,此過程高度依賴人類專家,并且需要大量時間和資源進行反復試驗。因此,研究人員提出了許多AO方法,以使人們擺脫煩瑣的過程,并自動搜索新穎的體系結(jié)構(gòu)。

1)進化算法

進化算法(EA)是一種通用的基于種群的元啟發(fā)式優(yōu)化算法(MetaheuristicOptimizationAlgorithm,MOA),它從生物學進化中汲取了靈感。與窮舉法等傳統(tǒng)優(yōu)化算法相比,進化算法是一種成熟的全局優(yōu)化方法,具有較高的魯棒性和廣泛的適用性。它可以有效地解決傳統(tǒng)優(yōu)化算法難以解決的復雜問題,而不受問題性質(zhì)的限制。

如圖18.10所示,典型的進化算法包括以下四個步驟:

(1)選擇。

(2)交叉。

(3)突變。

(4)更新。圖18.10進化算法的步驟

2)強化學習

Zoph等人最早將強化學習(ReinforcementLearning,RL)用于神經(jīng)結(jié)構(gòu)搜索的研究。圖18.11概述了基于RL的NAS算法。代理通常是遞歸神經(jīng)網(wǎng)絡(luò)(RNN),在每個步驟t執(zhí)行操作At,從搜索空間中采樣新架構(gòu),以接收狀態(tài)St的觀測值以及來自環(huán)境的獎勵Rt來更新代理的采樣策略。環(huán)境是指使用標準的神經(jīng)網(wǎng)絡(luò)訓練程序來訓練和評估代理生成的網(wǎng)絡(luò),然后返回相應的結(jié)果(如準確性)。圖18.11基于RL的NAS算法

3)梯度下降

前面的搜索策略是從一個離散的搜索空間中采樣神經(jīng)體系結(jié)構(gòu)。以前神經(jīng)網(wǎng)絡(luò)架構(gòu)的主流搜索方法是強化學習和進化學習。它們的搜索空間都是不可微的,DARTS提出了一種可微的方法,可以用梯度下降來解決架構(gòu)搜索的問題,所以在搜索效率上比之前不可微的方法快幾個數(shù)量級??梢赃@樣通俗地理解:DARTS對之前不可微的方法定義了一個搜索空間,神經(jīng)網(wǎng)絡(luò)的每一層可以從搜索空間中選一種構(gòu)成一個神經(jīng)網(wǎng)絡(luò),運行該神經(jīng)網(wǎng)絡(luò)的訓練結(jié)果,不斷測試其他神經(jīng)網(wǎng)絡(luò)組合。這種方法從本質(zhì)上來說是從很多組合中盡快搜索到效果很好的一種。但是這個過程是黑盒,需要大量的驗證過程,所以需要較高的時間代價。

DARTS作為一個開創(chuàng)性的算法,提出通過使用softmax函數(shù)放寬離散空間,在連續(xù)和可微的搜索空間上搜索神經(jīng)體系結(jié)構(gòu)。它把搜索空間連續(xù)松弛化,將每個操作邊看成所有子操作的混合(softmax權(quán)值疊加),聯(lián)合優(yōu)化,更新子操作混合概率上的邊超參(即架構(gòu)搜索任務(wù))和與架構(gòu)無關(guān)的網(wǎng)絡(luò)參數(shù)。在聯(lián)合優(yōu)化過程中將梯度下降應用于單步優(yōu)化參數(shù)權(quán)重,加快搜索網(wǎng)絡(luò)收斂,再用優(yōu)化后的參數(shù)權(quán)重求解操作權(quán)重。該方法開創(chuàng)性地用梯度下降來解決架構(gòu)搜索的問題,在使效率快了幾個數(shù)量級的同時取得了良好的搜索效果。

4)基于代理模型的優(yōu)化

另一種體系結(jié)構(gòu)優(yōu)化方法是基于代理模型的優(yōu)化(SurrogateModel-BasedOptimization,SMBO)算法。SMBO的核心在于:它通過反復記錄過去的評估結(jié)果來建立

目標函數(shù)的代理模型,并使用代理模型來預測最有前途的體系結(jié)構(gòu)。這類方法可以大大縮短搜索時間,從而提高效率。

基于代理模型的優(yōu)化算法可大致分為貝葉斯優(yōu)化方法(包括高斯過程(GaussianProcess,GP)、隨機森林(RandomForests,RF)、樹狀結(jié)構(gòu)Parzen估計方法(Tree-structuredParzenEstimator,TPE))和神經(jīng)網(wǎng)絡(luò)。

貝葉斯優(yōu)化(BO)是超參數(shù)優(yōu)化最流行和最完善的方法之一。最近,許多后續(xù)工作努力將這些SOTABO方法應用于架構(gòu)優(yōu)化。例如,在一些研究中將生成的神經(jīng)體系結(jié)構(gòu)的驗

證結(jié)果建模為高斯過程,指導尋找最佳的神經(jīng)體系結(jié)構(gòu)。但是基于GP的貝葉斯優(yōu)化方法的缺點在于:推理時間隨著樣本數(shù)量以三次方縮減,并且不善于處理可變長度神經(jīng)網(wǎng)絡(luò)。

Camero等人提出了三種固定長度編碼方案,通過采用隨機森林作為代理模型來解決可變長度問題。

5)網(wǎng)格搜索和隨機搜索

網(wǎng)格搜索(GS)和隨機搜索(RS)都是簡單的優(yōu)化方法,并且已應用于多項NAS研究。例如,在MnasNet中,單元和塊的數(shù)量是手動預定義的。其中,Ncell×Nblocks是搜索的塊結(jié)

構(gòu)。顯然,Ncell×Nblocks設(shè)置得越大,搜索的空間越大,需要的資源就越多。對SOTANAS方法和隨機搜索進行有效性比較,結(jié)果表明,隨機搜索是具有競爭力的NAS的基礎(chǔ)。具體來說,具有提前停止策略的隨機搜索的性能與ENAS的相,ENAS是基于強化學習的經(jīng)典NAS方法。

6)混合優(yōu)化方法

上述架構(gòu)優(yōu)化方法各有優(yōu)缺點。進化算法是一種成熟的全局優(yōu)化方法,具有很強的魯棒性。然而,進化算法需要大量的計算資源,其進化操作(如交叉和突變)是隨機進行的。雖

然基于RL的方法(如ENAS)可以學習復雜的體系結(jié)構(gòu)模式,但是RL-agent的搜索效率和穩(wěn)定性并不能得到保證,因為RL-agent需要嘗試大量的動作來獲得積極的回報?;谔荻?/p>

下降的方法(如DARTS)通過將分類候選操作放寬為連續(xù)變量,大大提高了搜索效率。然而,本質(zhì)上,它們都是從超級網(wǎng)絡(luò)中尋找子網(wǎng)絡(luò),這限制了神經(jīng)結(jié)構(gòu)的多樣性。因此,一些科研人員提出結(jié)合不同的優(yōu)化方法來獲取它們的最佳結(jié)構(gòu)。

(1)EA+RL。Chen等人將強化突變整合到進化算法中,避免了進化的隨機性,提高了搜索效率。另一個并行開發(fā)的類似方法是進化神經(jīng)混合代理(Evolutionary-Neuralhybrid

Agents,Evo-NAS),它同時吸收了基于強化學習的方法和進化算法的優(yōu)點。Evo-NAS代理的變異由RL訓練的神經(jīng)網(wǎng)絡(luò)指導,可以有效地探索廣闊的搜索空間并有效采樣網(wǎng)絡(luò)結(jié)構(gòu)。

(2)EA+GD。最具代表性的是Yang等人結(jié)合進化算法和基于梯度下降的方法的改良算法。該算法在一個超級網(wǎng)絡(luò)中共享參數(shù),并在某些訓練代數(shù)內(nèi)對訓練集進行調(diào)整。然后種群和超級網(wǎng)絡(luò)直接遺傳給下一代,大大加速了進化過程。

(3)EA+SMBO。Sun等人使用隨機森林作為替代指標來預測模型性能,從而加快了進化算法的適應性評估。

(4)GD+SMBO。與DARTS不同(DARTS學習候選操作的權(quán)重),Nao提出了一種變分自動編碼器來生成神經(jīng)體系結(jié)構(gòu),并進一步構(gòu)建回歸模型作為替代方案來預測所生成體系結(jié)構(gòu)的性能。具體來說,編碼器將神經(jīng)體系結(jié)構(gòu)的表示映射到連續(xù)空間,然后預測器網(wǎng)絡(luò)將神經(jīng)體系結(jié)構(gòu)的連續(xù)表示作為輸入并預測相應的準確性。最后,解碼器用于從連續(xù)的網(wǎng)絡(luò)表示中得出最終的體系結(jié)構(gòu)。

2.超參數(shù)優(yōu)化

常用的超參數(shù)優(yōu)化方法包括網(wǎng)格搜索、隨機搜索、貝葉斯優(yōu)化、基于梯度的優(yōu)化、進化優(yōu)化和基于總體的優(yōu)化。

1)網(wǎng)格搜索和隨機搜索

圖18.12顯示了網(wǎng)格搜索(GridSearch,GS)和隨機搜索(RandomSearch,RS)之間的區(qū)別:GS將搜索空間劃分為固定的間隔,并在評估所有點后選擇性能最佳的點;RS從隨機繪制的一組點中選擇最佳點。圖18.12優(yōu)化二維空間函數(shù)f(x,y)=g(x)+h(y)≈g(x)的9個試驗中的網(wǎng)格搜索和隨機搜索

2)貝葉斯優(yōu)化

貝葉斯優(yōu)化(BayesianOptimization,BO)是對求解代價昂貴的黑盒函數(shù)進行全局優(yōu)化的有效方法。

BO是基于代理模型的優(yōu)化(SMBO)方法,該方法建立了從超參數(shù)到在驗證集上評估的客觀指標的概率模型映射。它很好地平衡了探索(評估盡可能多的超參數(shù)集)和開發(fā)(將更多資源分配給那些有前途的超參數(shù))之間的平衡。

SMBO算法提出在初始時需要預定義幾個輸入,包括評估函數(shù)f、搜索空間Θ、獲取函數(shù)S、概率模型M和記錄數(shù)據(jù)集D。具體來說,D是記錄了許多樣本對(θi,yi)的數(shù)據(jù)集,其中θi∈Θ表示采樣的神經(jīng)體系結(jié)構(gòu),yi是采樣的神經(jīng)體系結(jié)構(gòu)的評估結(jié)果。初始化后,SMBO的步驟如下:

(1)調(diào)整概率模型M以適應記錄數(shù)據(jù)集D。

(2)利用獲取函數(shù)S從概率模型M中選擇下一個有前途的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。

(3)所選神經(jīng)結(jié)構(gòu)的性能將由f來評估,這是一個昂貴的步驟,因為它要求在訓練集上訓練神經(jīng)網(wǎng)絡(luò)并在驗證集上對其進行評估。

(4)通過添加一對新的結(jié)果(θi,yi)來更新記錄數(shù)據(jù)集D。

3)基于梯度的優(yōu)化

另一種HPO方法是基于梯度的優(yōu)化(Gradient-basedOptimization,GO)算法。與上述黑盒HPO方法(如GS、RS和BO)不同,GO算法使用梯度信息優(yōu)化超參數(shù),大大提高了HPO的效率。Maclaurin等人提出了一種可逆動態(tài)存儲方法,通過梯度信息有效地處理了數(shù)千個超參數(shù)。但是,優(yōu)化過多的超參數(shù)在計算上具有挑戰(zhàn)性。

18.4模型評估

一旦生成了新的神經(jīng)網(wǎng)絡(luò),就必須對其性能進行評估。一種直觀的方法是訓練網(wǎng)絡(luò)使其收斂,然后評估其性能。但是,此方法需要大量時間和計算資源。目前研究人員已經(jīng)提出了幾種加速模型評估過程的算法。

18.4.1低保真

由于模型訓練時間與數(shù)據(jù)集和模型的大小、高度相關(guān),因此可以以不同方式加速模型評估。首先,可以減少圖像的數(shù)量或圖像的分辨率(就圖像分類任務(wù)而言)。例如,FABOLAS在訓練集的一個子集上訓練模型,以加速模型估計。在T.Mitchell所著論著中提供了ImageNet64×64及其變體32×32、16×16,而這些較低分辨率的數(shù)據(jù)集可以保留與原始ImageNet數(shù)據(jù)集相似的特征。其次,可以通過減小模型來實現(xiàn)低保真模型評估,如通過每層使用較少的濾波器進行訓練。此外,Zela等人從經(jīng)驗上證明,在短時間或長時間的訓練后,性能之間的相關(guān)性很弱,因此證實了無須長時間搜索網(wǎng)絡(luò)配置。

18.4.2權(quán)重共享

一旦一個網(wǎng)絡(luò)被評估,它就會被舍棄。因此,權(quán)重共享技術(shù)被用來加速NAS的進程。例如,Wong和Lu等人提出了遷移神經(jīng)自動機器學習,即利用先前任務(wù)的知識來加速網(wǎng)絡(luò)

設(shè)計。ENAS在子網(wǎng)絡(luò)之間共享參數(shù),使得網(wǎng)絡(luò)設(shè)計比文獻[2]提出的快約1000倍。基于網(wǎng)絡(luò)變形的算法也可以繼承以前架構(gòu)的權(quán)重,單路徑NAS使用單路徑過參數(shù)化ConvNet,用共享卷積核參數(shù)對所有架構(gòu)決策進行編碼。

8.4.3代理模型

基于代理的方法是另一種功能強大的工具,其功能類似于黑盒的功能。通常,一旦獲得一個良好的近似值,就可以找到直接優(yōu)化原始昂貴目標的配置。例如,漸進神經(jīng)體系結(jié)構(gòu)搜索(PNAS)引入了代理模型來控制搜索方法。盡管已證明ENAS的效率很高,但PNAS的效率更高,因為PNAS評估的模型數(shù)量是ENAS評估的模型數(shù)量的5倍多,而PNAS的總計算速度比ENAS的快約8倍。但是,當優(yōu)化空間太大而難以量化,并且每個配置的評估都非常昂貴時,基于代理的方法不適用。

Luo等人提出了SemiNAS,這是一種半監(jiān)督的NAS方法。該方法利用大量未標記的架構(gòu)來進一步提高搜索效率,所生成模型的精度不需要在訓練模型后進行評估,只需要通過控制器來預測其精度。

18.4.4早停法

早停法首先用于防止經(jīng)典ML過度擬合。最近的幾項研究中使用了這種方法,通過停止在驗證集上預測性能較差的評估來加速模型評估。例如,可以通過提出的一種學習曲線

模型預測網(wǎng)絡(luò)的性能。該模型是從文獻中選擇的一組參數(shù)曲線模型的加權(quán)組合。此外,有文獻提出了一種用于早停的方法,該方法基于快速計算梯度的局部統(tǒng)計信息,不再依賴于驗證集,并且允許優(yōu)化器充分利用所有訓練數(shù)據(jù)。

18.4.5資源感知

早期的NAS研究更加關(guān)注尋找可實現(xiàn)更高性能(如分類精度)的神經(jīng)體系結(jié)構(gòu),而不論相關(guān)的資源消耗(即GPU的數(shù)量和所需的時間)如何。許多后續(xù)研究都在研究資源感知

算法,以權(quán)衡性能與資源預算。為此,這些算法將計算成本α作為資源約束添加到損失函數(shù)中。這些算法的計算成本的類型不同,可能是:①參數(shù)規(guī)模;②乘法累加(MAC)操作的數(shù)量;③浮點運算(FLOP)的數(shù)量;④實際延遲。例如,MONAS將MAC視為約束,并且由于MONAS使用基于策略的強化學習算法進行搜索,因此可以將約束直接添加到獎勵函數(shù)中。

MnasNet提出了一種自定義的加權(quán)函數(shù),以近似帕累托最優(yōu)解:

式中,LAT(m)表示在目標設(shè)備上測得的推理延遲;T是目標延遲;w是權(quán)重變量,定義為.

其中,α和β的推薦值均為-0.07

就可微神經(jīng)體系結(jié)構(gòu)搜索(DNAS)框架而言,約束條件(即損失函數(shù))應可微。為此,FBNet使用延遲查找表模型LatencyLookupTableModel,LLTM),根據(jù)每個操作的運行時間來估計網(wǎng)絡(luò)的總體等待時間。損失函數(shù)定義為

其中,CE(α,θα)表示權(quán)重為θα的架構(gòu)α的交叉熵損失。像MnasNet一樣,該損失函數(shù)具有兩個需要手動設(shè)置的超參數(shù):α和β分別控制損失函數(shù)的大小和延遲。在SNAS中,所生成

子網(wǎng)絡(luò)的時間成本與one-hot隨機變量為線性關(guān)系,從而確保了資源約束的可微性。

18.5經(jīng)典NAS算法

18.5.1NASNetNAS方法是最早提出的基于單元搜索空間的算法(此處NAS指本節(jié)的搜索方法)。.

這項工作的主要貢獻是設(shè)計了一個新的搜索空間,這樣在CIFAR-10數(shù)據(jù)集上找到的最佳架構(gòu)可以擴展到更大、更高分辨率的圖像數(shù)據(jù)集。這個搜索空間即NASNe搜索空間NASNet搜索空間的靈感來自于這樣一個認識:CNN的結(jié)構(gòu)通常與重復。模塊有關(guān),這些模塊通常是卷積濾波器組、非線性激活和殘差連接的組合,以獲得性能較優(yōu)的結(jié)果(如Inception和ResNet模型中存在的重復模塊)。這些觀察結(jié)果表明,控制器RNN可能預測以這些基序表示的通用卷積單元。然后可以將該單元串聯(lián)堆疊,以處理任意空間維度和濾波深度的輸入。

在NASNet方法中,卷積網(wǎng)絡(luò)的總體架構(gòu)是手動確定的。它們的結(jié)構(gòu)是由卷積單元重復多次組成的,每個卷積單元具有相同的結(jié)構(gòu),但參數(shù)權(quán)重不同。為了為任何尺寸的圖像構(gòu)建可伸縮的體系結(jié)構(gòu),當將特征圖作為輸入時,我們需要兩種類型的卷積單元來提供兩個主要功能:①返回相同尺寸特征圖的卷積單元;②返回高度和寬度減少為原來的1/2的特征圖的卷積單元。分別將第一類和第二類卷積單元命名為標準單元和還原單元,標準單元的輸出保留與輸入相同的空間尺寸,通常根據(jù)實際需求手動設(shè)置標準單元的重復次數(shù)。

這些結(jié)構(gòu)由控制器RNN搜索。在定義的搜索空間中搜索單元的結(jié)構(gòu)。在該搜索空間中,每個單元都將兩個初始隱藏狀態(tài)I1和I2作為輸入,它們是前兩個較低層或輸入圖像中兩個單元的輸出。給定這兩個初始隱藏狀態(tài),控制器RNN遞歸地預測卷積單元的其余結(jié)構(gòu)(見圖18.13)??刂破鲗γ總€單元的預測分為B個塊,其中每個塊具有5個預測步驟,這些預測步驟由5個不同的softmax分類器進行。

(1)從前兩個單元或從先前的塊中創(chuàng)建的一組隱藏狀態(tài)中選擇一個隱藏狀態(tài)。

(2)從第(1)步中選擇相同的操作來選擇第二個隱藏狀態(tài)。

(3)選擇一個操作應用于在步驟(1)中選擇的隱藏狀態(tài)。

(4)選擇一個操作應用于在步驟(2)中選擇的隱藏狀態(tài)。

(5)選擇一種方法來組合步驟(3)和(4)的輸出以創(chuàng)建新的隱藏狀態(tài)。圖18.13NASNet塊的搜索流程

在步驟(5)中,控制器RNN選擇一種方法來組合兩個隱藏狀態(tài):①兩個隱藏狀態(tài)之間的逐元素加法;②沿著濾波器維度的兩個隱藏狀態(tài)之間的級聯(lián)。最終將卷積單元中生成的

所有未使用的隱藏狀態(tài)沿通道連接在一起,以提供最終的單元輸出。

簡而言之,NASNet的主要貢獻如下

(1)首次提出了單元搜索;

(2)重新設(shè)計了搜索空間,以便AutoML找到最佳層并靈活進行多次堆疊來創(chuàng)建最終網(wǎng)絡(luò);

(3)在CIFAR-10上執(zhí)行了架構(gòu)搜索,并將學到的最好架構(gòu)轉(zhuǎn)移到ImageNet圖像分類和COCO目標檢測中。

(4)使用RNN采樣網(wǎng)絡(luò)并通過強化學習進行優(yōu)化。

18.5.2PNAS

PNAS既不是基于強化學習的,也不屬于進化算法。首先搜索可重復的單元(可以看作殘差塊),若搜索到性能良好的單元,則可以自由選擇其疊加方式,形成一個完整的網(wǎng)絡(luò)。這樣的策略在殘差網(wǎng)絡(luò)中已經(jīng)出現(xiàn)過多次。當確定了單元結(jié)構(gòu)后將其疊加成一個完整的網(wǎng)絡(luò),一個網(wǎng)絡(luò)通常由這三個要素來確定:單元的結(jié)構(gòu),單元重復的次數(shù)N,每一個單元中的卷積核個數(shù)F。為了控制網(wǎng)絡(luò)的復雜度,N和F通常由手工設(shè)計??梢岳斫鉃?N控制網(wǎng)絡(luò)的深度,F控制網(wǎng)絡(luò)的寬度。

在本節(jié)的搜索空間中,每個單元由五個塊組成,塊結(jié)構(gòu)與圖18.13(b)所示的結(jié)構(gòu)相同。每塊可能的輸入為:①前一個單元的輸出;②前前一個單元的輸出;③當前單元的當前塊前的所有輸出。搜索空間如圖18.14所示。圖18.14PNAS的搜索空間

18.5.3DARTS

DARTS提出通過使用softmax函數(shù)放寬離散空間,在連續(xù)和可微的搜索空間上搜索神經(jīng)體系結(jié)構(gòu):

通過前面定義的搜索空間,我們的目的是通過梯度下降優(yōu)化α矩陣。我們把神經(jīng)網(wǎng)絡(luò)原有的權(quán)重稱為θ矩陣。為了實現(xiàn)端到端的優(yōu)化,我們希望同時優(yōu)化兩個矩陣以使結(jié)果變

好。上述兩層優(yōu)化是有嚴格層次的,為了使兩者都能同時達到優(yōu)化,一個樸素的想法是:在訓練集上固定α矩陣的值,然后梯度下降θ矩陣的值,在驗證集上固定θ矩陣的值,之后梯度下降α的值,循環(huán)往復,直到這兩個值都比較理想。需要注意的是,驗證集和訓練集的劃分比例是1∶1,因為對于α矩陣來說,驗證集就是它的訓練集。這表明這是一個雙層優(yōu)化問題。訓練和驗證損失分別用Ltrain和Lval表示。

因此,可以得出總損失函數(shù):

如果嚴格按照以上公式來實現(xiàn),則為了更新α矩陣,需更新θ矩陣,而θ矩陣的更新過于耗時。下面使用一種簡化后的操作計算α矩陣的梯度:

其中,ξ是內(nèi)部優(yōu)化一步的學習率。通過簡單一步訓練調(diào)整θ來近似θ*(α),不需要訓練至收斂來求解內(nèi)部優(yōu)化,可將搜索效率提升數(shù)十倍。

圖18.15給出了DARTS。其中,單元由N(此處N=4)個有序節(jié)點組成,節(jié)點zk

(k從0開始)連接到節(jié)點zi,i∈{k+1,…,N}。每個邊緣ei,j上的操作最初是候選操作的混合,每個候選操作的權(quán)重均相等。因此,神經(jīng)體系結(jié)構(gòu)α是一個超級網(wǎng)絡(luò),它包含所有可能的子神經(jīng)體系結(jié)構(gòu)。在搜索結(jié)束時,最終的體系結(jié)構(gòu)是通過保留所有混合操作的最大權(quán)重運算得到的。圖18.15(a)中,數(shù)據(jù)只能從較低級別的節(jié)點流到較高級別

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論