|
重磅干貨,第一時(shí)間送達(dá)
自動(dòng)機(jī)器學(xué)習(xí)(AutoML, Automated Machine Learning)提供方法和流程使機(jī)器學(xué)習(xí)可用于非機(jī)器學(xué)習(xí)專家,提高機(jī)器學(xué)習(xí)的效率并加速機(jī)器學(xué)習(xí)的研究。 機(jī)器學(xué)習(xí)(ML)近年來(lái)取得了相當(dāng)大的成功,并且越來(lái)越多的學(xué)科依賴它。但是,這一成功至關(guān)重要依賴于機(jī)器學(xué)習(xí)專家來(lái)執(zhí)行以下任務(wù):
由于這些任務(wù)的復(fù)雜性通常超出非機(jī)器學(xué)習(xí)專家,因此機(jī)器學(xué)習(xí)應(yīng)用程序的快速增長(zhǎng)產(chǎn)生了現(xiàn)成(off-the-shelf)機(jī)器學(xué)習(xí)方法的需求,希望這些方法可以在沒(méi)有專業(yè)知識(shí)的情況下輕松使用。有這樣一個(gè)研究領(lǐng)域,讓機(jī)器學(xué)習(xí)漸進(jìn)地自動(dòng)化,稱為AutoML。作為機(jī)器學(xué)習(xí)的一個(gè)新的子領(lǐng)域,AutoML不僅在機(jī)器學(xué)習(xí)方面,而且在計(jì)算機(jī)視覺(jué)、自然語(yǔ)言處理和圖形計(jì)算方面得到了更多的關(guān)注。 AutoML沒(méi)有正式的定義。從大多數(shù)論文的描述中,AutoML的基本過(guò)程如下圖所示:虛框是配置空間,包括特征、超參數(shù)和架構(gòu);左邊訓(xùn)練數(shù)據(jù)進(jìn)入,上面的優(yōu)化器和它相連,定義的測(cè)度發(fā)現(xiàn)最佳配置,最后出來(lái)的是模型;測(cè)試數(shù)據(jù)在模型中運(yùn)行,實(shí)現(xiàn)預(yù)測(cè)的目的。 AutoML方法已經(jīng)足夠成熟,可以與機(jī)器學(xué)習(xí)專家競(jìng)爭(zhēng),有時(shí)甚至超越這些專家。簡(jiǎn)而言之,AutoML可以提高性能,同時(shí)節(jié)省大量的時(shí)間和金錢,因?yàn)闄C(jī)器學(xué)習(xí)專家既難找又昂貴。因此,近年來(lái)對(duì)AutoML的商業(yè)興趣急劇增長(zhǎng),幾家主要的科技公司和初創(chuàng)公司正在開(kāi)發(fā)自己的AutoML系統(tǒng)。 這是ML的框圖: 而這是AutoML的框圖:
通常,預(yù)建模是機(jī)器學(xué)習(xí)管道的重要組成部分,可以顯著影響自動(dòng)算法選擇和超參數(shù)優(yōu)化過(guò)程的結(jié)果。預(yù)建模步驟包括許多步驟,包括數(shù)據(jù)理解、數(shù)據(jù)準(zhǔn)備和數(shù)據(jù)驗(yàn)證。此外,后建模塊還包括其他重要方面,包括對(duì)生成的機(jī)器學(xué)習(xí)模型如何管理和部署,該模型代表流水線中的一塊石頭,需要包裝模型的再生性(reproducibility)。這兩個(gè)構(gòu)建塊的各個(gè)方面可以幫助覆蓋當(dāng)前AutoML工具遺漏的內(nèi)容,并幫助數(shù)據(jù)科學(xué)家以更加簡(jiǎn)單,有條理和信息豐富的方式完成工作。如圖所示是能進(jìn)一步自動(dòng)化的工作: 這是ML產(chǎn)品開(kāi)發(fā)的流水線:為了使用ML技術(shù)并獲得良好的性能,人們通常需要參與數(shù)據(jù)收集,特征工程,模型和算法選擇。這張圖片顯示了典型的ML應(yīng)用程序流水線,以及AutoML如何參與流水線并最大限度地減少人類的參與。 從ML角度看AutoML:從這個(gè)角度來(lái)看,AutoML本身也可以看作是一種學(xué)習(xí)工具,它對(duì)輸入數(shù)據(jù)(即E)和給定任務(wù)(即T)具有良好的泛化性能(即P)。然而,傳統(tǒng)的ML研究更多地關(guān)注發(fā)明和分析學(xué)習(xí)工具,它并不關(guān)心這些工具的使用有多容易。一個(gè)這樣的例子恰恰是從簡(jiǎn)單模型到深度模型的最新趨勢(shì),它可以提供更好的性能,但也很難配置。相比之下,AutoML強(qiáng)調(diào)了學(xué)習(xí)工具的易用性。 從自動(dòng)化角度看AutoML:另一方面,自動(dòng)化是使用各種控制系統(tǒng)在構(gòu)建模塊下運(yùn)行。為了更好地預(yù)測(cè)性能,ML工具的配置應(yīng)該通過(guò)輸入數(shù)據(jù)適應(yīng)任務(wù),這通常是手動(dòng)執(zhí)行的。如圖所示,從這個(gè)角度來(lái)看,AutoML的目標(biāo)是在學(xué)習(xí)工具下構(gòu)建高級(jí)控制方法,以便在沒(méi)有人工幫助的情況下找到正確的配置。 Auto ML基本框架:控制器內(nèi)部的虛線(反饋)取決于優(yōu)化器使用的技術(shù),不是必須的。 AutoML通過(guò)問(wèn)題設(shè)置和技術(shù)來(lái)處理分類,這受到上圖中提出的框架的啟發(fā)。問(wèn)題設(shè)置的分類取決于使用的學(xué)習(xí)工具,它闡明了想要自動(dòng)化的“什么”; 技術(shù)分類取決于如何解決AutoML問(wèn)題。具體來(lái)說(shuō),特征工程,通用機(jī)器學(xué)習(xí)應(yīng)用的全部范圍。
AutoML基本分以下幾個(gè)方向:
HPO方法分類:原則上,自動(dòng)化超參優(yōu)化技術(shù)可分為兩大類:黑盒優(yōu)化技術(shù)和多保真優(yōu)化技術(shù)。 元學(xué)習(xí)分類:這些技術(shù)通??梢苑譃槿箢?,即基于任務(wù)屬性的學(xué)習(xí),從先前的模型評(píng)估中學(xué)習(xí)以及從已經(jīng)預(yù)訓(xùn)練的模型中學(xué)習(xí)。 基于啟發(fā)式搜索框架:它是基于群體的搜索方法,從初始化過(guò)程開(kāi)始。 基于模型的無(wú)導(dǎo)數(shù)優(yōu)化框架:與啟發(fā)式搜索不同,基于模型的優(yōu)化中最重要的組件是基于先前樣本的模型。 基于強(qiáng)化學(xué)習(xí)的框架:與啟發(fā)式搜索和基于模型的無(wú)導(dǎo)數(shù)優(yōu)化不同,因?yàn)椴恍枰獮榻邮张渲昧⒓捶祷胤答仭?/span> 基于貪婪搜索的框架:它針對(duì)多步?jīng)Q策問(wèn)題,在每步進(jìn)行局部最優(yōu)決策。 元學(xué)習(xí)一方面通過(guò)表征學(xué)習(xí)問(wèn)題和工具來(lái)幫助AutoML。這些特性可以揭示關(guān)于問(wèn)題和工具的重要信息,例如,數(shù)據(jù)中是否存在概念漂移(concept drift),或者模型是否與特定機(jī)器學(xué)習(xí)任務(wù)兼容。此外,利用這些特性,可以評(píng)估不同任務(wù)和工具之間的相似性,這使得不同問(wèn)題之間的知識(shí)重用和轉(zhuǎn)移(knowledge reuse and transfer)成為可能。一種簡(jiǎn)單但廣泛使用的方法是在元特征空間(meta-feature space)中使用該任務(wù)的鄰域經(jīng)驗(yàn)最佳配置來(lái)推薦新任務(wù)的配置。另一方面,元學(xué)習(xí)者(meta-learner )編碼過(guò)去的經(jīng)驗(yàn),并作為解決未來(lái)問(wèn)題的指導(dǎo)。一旦經(jīng)過(guò)訓(xùn)練,元學(xué)習(xí)者就可以快速評(píng)估學(xué)習(xí)工具的配置,免除計(jì)算昂貴的培訓(xùn)和模型評(píng)估。它們還可以生成有前途的配置,可以直接指定學(xué)習(xí)工具或作為搜索的良好初始化,或建議有效的搜索策略。因此,元學(xué)習(xí)可以極大地提高AutoML方法的效率。如圖是基于元學(xué)習(xí)的框架。 轉(zhuǎn)移學(xué)習(xí)通過(guò)使用來(lái)自源域和學(xué)習(xí)任務(wù)的知識(shí),嘗試改進(jìn)對(duì)目標(biāo)域和學(xué)習(xí)任務(wù)的學(xué)習(xí)。在AutoML的上下文,傳輸?shù)脑春湍繕?biāo)是配置生成或配置評(píng)估,其中前一個(gè)設(shè)置在AutoML實(shí)踐之間傳遞知識(shí),后者在AutoML實(shí)踐中傳遞知識(shí)。另一方面,迄今為止在AutoML中利用的可轉(zhuǎn)移知識(shí)通常是源配置生成或評(píng)估的最終或中間結(jié)果,例如學(xué)習(xí)工具的配置或參數(shù),或在超參訓(xùn)練期間訓(xùn)練的替代模型。 下圖是基于轉(zhuǎn)移學(xué)習(xí)的框架,說(shuō)明了轉(zhuǎn)移學(xué)習(xí)在AutoML中的工作原理。 為使機(jī)器學(xué)習(xí)技術(shù)獲得良好的性能,通常需要專家參與數(shù)據(jù)收集、特征工程、模型和算法選擇。那么,AutoML參與這個(gè)開(kāi)發(fā)流水線,并最大限度地減少人的參與。 某種程度上,它們是快而“骯”(大家不愿意做的工作)的方式,可以讓我們很少量工作就能在機(jī)器學(xué)習(xí)任務(wù)獲得高精度。如此簡(jiǎn)單有效的模式,不就是需要AI的目的! 下面重點(diǎn)講NAS。 開(kāi)發(fā)神經(jīng)網(wǎng)絡(luò)模型通常需要大量的架構(gòu)工程。有時(shí)可以通過(guò)轉(zhuǎn)移學(xué)習(xí)(transfer learning)獲得,但如果真的想要獲得最優(yōu)性能,通常最好設(shè)計(jì)網(wǎng)絡(luò)。但這需要專業(yè)技能(從商業(yè)角度看是昂貴的)并且總的來(lái)說(shuō)具有挑戰(zhàn)性;甚至可能不知道當(dāng)前(SOA)技術(shù)的局限性!這是一個(gè)需要很多試驗(yàn)和錯(cuò)誤(trial and error)的工作,其實(shí)實(shí)驗(yàn)本身是耗時(shí)且昂貴的。這就是NAS有了用武之地。 下面是NAS的分類圖:從廣義上講,NAS技術(shù)分為五大類,包括隨機(jī)搜索,強(qiáng)化學(xué)習(xí),基于梯度的方法,進(jìn)化方法和貝葉斯優(yōu)化。 在感知任務(wù)中深度學(xué)習(xí)的成功很大程度上歸功于其特征工程的自動(dòng)化:分層特征提取器以端到端的方式從數(shù)據(jù)中學(xué)習(xí)而不是手動(dòng)設(shè)計(jì)。然而,這種成功伴隨著對(duì)架構(gòu)工程的的需求也不斷增長(zhǎng),其中越來(lái)越復(fù)雜的神經(jīng)網(wǎng)絡(luò)架構(gòu)仍然被手動(dòng)設(shè)計(jì)。神經(jīng)網(wǎng)絡(luò)架構(gòu)搜索(NAS)是架構(gòu)自動(dòng)化工程,是機(jī)器學(xué)習(xí)自動(dòng)化合乎邏輯的下一步。 NAS看作AutoML的子域,并且與HPO和元學(xué)習(xí)有重疊。根據(jù)三個(gè)維度,可以對(duì)NAS的現(xiàn)有方法進(jìn)行分類:搜索空間,搜索策略和性能評(píng)估策略:
· 搜索空間 搜索空間定義了NAS原則上可以發(fā)現(xiàn)的神經(jīng)架構(gòu)。如下是神經(jīng)結(jié)構(gòu)搜索方法的抽象示意圖:“搜索策略”從預(yù)定義的“搜索空間”A中選擇體系結(jié)構(gòu)A;該架構(gòu)被傳遞到“性能估計(jì)策略”,該策略將A估計(jì)的性能返回到搜索策略。 如下是不同架構(gòu)空間的示意圖:每個(gè)節(jié)點(diǎn)對(duì)應(yīng)于神經(jīng)網(wǎng)絡(luò)的層,例如卷積層或池化層。不同的層類型注以不同的顏色。從層Li到層Lj的邊表示Li接收Lj的輸出作為輸入。左:鏈?zhǔn)浇Y(jié)構(gòu)空間的元素。右:具有另外的層類型、多個(gè)分支和跳連接的復(fù)雜搜索空間元素。比如殘差網(wǎng)絡(luò)(ResNet)和致密網(wǎng)絡(luò)(DenseNet)。 通過(guò)以下方式搜索空間被參數(shù)化:(i)層數(shù)(可能無(wú)界); (ii)每層可以執(zhí)行的操作類型,例如池化,卷積或更高級(jí)類型,像深度可分離卷積或擴(kuò)張卷積; (iii)與操作相關(guān)的超參數(shù),例如,濾波器數(shù)量,核尺寸和卷積層步幅等,或簡(jiǎn)單的全連接網(wǎng)絡(luò)的單位數(shù)。 另外一種搜索方法,是尋找網(wǎng)絡(luò)重復(fù)的motifs,稱為細(xì)胞(cells),而不是整個(gè)架構(gòu)。定義了兩種不同類型的細(xì)胞:保持輸入維度的正常(normal)細(xì)胞和減少空間維度的縮減(reduction)細(xì)胞。然后以預(yù)定義的方式堆疊這些細(xì)胞構(gòu)建最終的體系結(jié)構(gòu),如下圖所示:左邊是兩種不同的細(xì)胞,如正常細(xì)胞(頂部)和縮減細(xì)胞(底部);右邊是通過(guò)串行堆疊細(xì)胞構(gòu)建的結(jié)構(gòu)。 與上面討論的相比,該搜索空間具有兩個(gè)主要優(yōu)點(diǎn):
· 搜索策略 各種不同的搜索策略可用于探索神經(jīng)架構(gòu)的空間,包括隨機(jī)搜索,貝葉斯優(yōu)化(BO),進(jìn)化方法,強(qiáng)化學(xué)習(xí)(RL)和基于梯度的方法。自2013年以來(lái),貝葉斯優(yōu)化在NAS中取得了一些早期成功。但2017之后,NAS成為機(jī)器學(xué)習(xí)社區(qū)的主流研究課題。 為了將NAS定義為強(qiáng)化學(xué)習(xí)(RL)問(wèn)題,可以認(rèn)為神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的生成是代理(agent)的動(dòng)作,動(dòng)作空間與搜索空間相同。代理的獎(jiǎng)勵(lì)(award)基于訓(xùn)練架構(gòu)對(duì)未見(jiàn)數(shù)據(jù)的性能估計(jì)。不同RL方法區(qū)別在代理的策略(policy)以及如何優(yōu)化,比如用Q-學(xué)習(xí)來(lái)訓(xùn)練一個(gè)策略,該策略依次選擇層的類型以及超參數(shù)。另一種觀點(diǎn)是作為順序決策過(guò)程(sequential decision processes),其中策略采樣動(dòng)作串行地生成架構(gòu),環(huán)境的“狀態(tài)”包含采樣動(dòng)作的摘要,和最終行動(dòng)之后才能獲得的(未兌現(xiàn))獎(jiǎng)勵(lì)。但是,由于在串行過(guò)程中沒(méi)有發(fā)生與環(huán)境的交互(無(wú)觀測(cè)的外部狀態(tài),也沒(méi)有中間獎(jiǎng)勵(lì)),將架構(gòu)采樣過(guò)程解釋為單個(gè)行動(dòng)的序列生成更為直觀;這將RL問(wèn)題簡(jiǎn)化為一個(gè)無(wú)狀態(tài)、多臂強(qiáng)盜問(wèn)題(multi-armed bandit problem)。 另一種方法是使用進(jìn)化算法優(yōu)化神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的神經(jīng)進(jìn)化(neuro-evolutionary)方法。進(jìn)化算法演化了一組模型,即一組(可能是訓(xùn)練過(guò)的)網(wǎng)絡(luò);在每個(gè)進(jìn)化步驟中,至少有一個(gè)來(lái)自群體(population)的模型被采樣并作為父母(parent)用突變(mutations)來(lái)產(chǎn)生后代(offsprings)。在NAS的上下文中,突變是局部操作,例如添加或移除層、改變層的超參數(shù)、添加跳連接以及改變訓(xùn)練超參數(shù)。對(duì)后代進(jìn)行訓(xùn)練之后,評(píng)估它們的適應(yīng)性(fitness)并將它們添加到群體中。神經(jīng)進(jìn)化法的不同體現(xiàn)在如何對(duì)父母抽樣、更新群體和產(chǎn)生后代等。 與上面的無(wú)梯度優(yōu)化方法相比,DART【4】是一個(gè)對(duì)搜索空間連續(xù)松弛以實(shí)現(xiàn)基于梯度優(yōu)化(gradient-based optimization)的方法:不是固定單個(gè)操作oi(例如,卷積或池化)在一個(gè)特定的層中,而是從一組操作{o1,...,om}中計(jì)算出一個(gè)凸組合。更具體地,給定一個(gè)層輸入x,層輸出y被計(jì)算為 ![]() 其中凸系數(shù)λi有效地參數(shù)化網(wǎng)絡(luò)架構(gòu)。然后,交替權(quán)重訓(xùn)練數(shù)據(jù)和架構(gòu)參數(shù)(如λ)驗(yàn)證數(shù)據(jù)執(zhí)行梯度下降,依此優(yōu)化網(wǎng)絡(luò)權(quán)重和網(wǎng)絡(luò)架構(gòu)。最終,為每個(gè)層選擇i = argmaxi λi的操作i獲得離散架構(gòu)。 · 性能評(píng)估策略 為了指導(dǎo)搜索過(guò)程,各種搜索策略需要估計(jì)在給定架構(gòu)A的性能。最簡(jiǎn)單的方法是在訓(xùn)練數(shù)據(jù)上訓(xùn)練架構(gòu)A并評(píng)估其在驗(yàn)證數(shù)據(jù)上的表現(xiàn)。然而,從頭開(kāi)始訓(xùn)練和評(píng)估每個(gè)體系結(jié)構(gòu)經(jīng)常產(chǎn)生數(shù)千GPU天級(jí)別的計(jì)算需求。為了減少這種計(jì)算負(fù)擔(dān),可以在完全訓(xùn)練之后取實(shí)際性能的較低保真度來(lái)估計(jì)性能(代理度量)。雖然這些低保真近似值會(huì)降低計(jì)算成本,但也會(huì)在估算中引入偏差。只要搜索策略僅是對(duì)不同體系結(jié)構(gòu)進(jìn)行排名并且這種相對(duì)排名穩(wěn)定,這可能不會(huì)成為問(wèn)題,但實(shí)際情況還是不那么簡(jiǎn)單。估計(jì)架構(gòu)性能的另一種可能方式建立在學(xué)習(xí)曲線外推(learning curve extrapolation)的基礎(chǔ)上。 加速性能估計(jì)的另一種方法是基于已訓(xùn)練過(guò)的其他架構(gòu)權(quán)重來(lái)初始化新架構(gòu)的權(quán)重。實(shí)現(xiàn)這一目標(biāo)的一種方法,稱為網(wǎng)絡(luò)態(tài)射(network morphism)。 一次性架構(gòu)搜索(One-Shot Architecture Search)是另一種加速性能評(píng)估的方法,它將所有架構(gòu)視為超級(jí)圖(supergraph)的不同子圖,在超圖的邊緣各架構(gòu)之間共享權(quán)重。僅訓(xùn)練一次性模型(one-shot model)的權(quán)重來(lái)直接評(píng)估架構(gòu)(一次性模型的子圖)。這大大加快了架構(gòu)的性能評(píng)估,因?yàn)椴恍枰?xùn)練(僅評(píng)估驗(yàn)證數(shù)據(jù)的性能)。這種方法通常會(huì)產(chǎn)生很大的偏差,因?yàn)樗鼑?yán)重低估了架構(gòu)的實(shí)際性能;不管怎樣,它允許排名架構(gòu)可靠,因?yàn)楣烙?jì)的性能與實(shí)際性能強(qiáng)烈相關(guān)。不同的一次性(one shot)NAS方法在一次性模型的訓(xùn)練方式上有所不同:ENAS【5】學(xué)習(xí)了一個(gè)RNN控制器,從搜索空間中對(duì)架構(gòu)進(jìn)行采樣,并根據(jù)通過(guò)REINFORCE獲得的近似梯度訓(xùn)練一次性模型;DARTS【4】?jī)?yōu)化了一次性模型的所有權(quán)重,同時(shí)在一次性模型的每個(gè)邊緣放置混合的候選操作,對(duì)搜索空間做連續(xù)松弛。權(quán)重共享和分布固定(精心選擇)可能(可能令人驚訝地)是一次性NAS必需的。 與這些方法相關(guān)的是超網(wǎng)絡(luò)(hypernetworks)的元學(xué)習(xí),它為新架構(gòu)生成權(quán)重,只需要訓(xùn)練超網(wǎng)絡(luò)而不是那些架構(gòu)本身。這里的主要區(qū)別在于,權(quán)重不是嚴(yán)格共享的,而是從取決于架構(gòu)和超網(wǎng)絡(luò)表示的分布中采樣得到。 一般地,一次性NAS的限制是,超級(jí)圖定義的先驗(yàn)條件限制搜索空間是它的子圖。此外,在架構(gòu)搜索期間要求整個(gè)超級(jí)圖駐留在GPU存儲(chǔ)器中的方法,相應(yīng)地也受限于相對(duì)較小的超圖和搜索空間,通常使用中只能與基于細(xì)胞的搜索空間結(jié)合。雖然基于權(quán)重共享的方法已經(jīng)大大減少了NAS所需的計(jì)算資源(從數(shù)千GPU天到幾個(gè)GPU天),但如果架構(gòu)的采樣分布和一次性模型一起優(yōu)化的話,目前尚不清楚它們引入搜索的偏差。 參考文獻(xiàn)1. Zoph, B., Le, Q.V. “Neural Architecture Search with Reinforcement Learning”. ArXiv 1611.01578,2017 2. G Seif,“Everything You Need to Know About AutoML and Neural Architecture Search”,kdnuggets.com/2018/09/e 3. Real, E., Aggarwal, A., Huang, Y., Le, Q.V. “Regularized Evolution for Image Classifier Architecture Search”. ArXiv 1802.01548,2018 4. Liu H, Simonyan K, Yang Y,“Darts: Differentiable architecture search”. arXiv 1806.09055,2018 5. Pham H, Guan M, Zoph B, Le Q, Dean J,“Efficient neural architecture search via parameter sharing”,International Conference on Machine Learning,2018 |
|
|
來(lái)自: 漢無(wú)為 > 《機(jī)器學(xué)習(xí)》