模型搜索簡介:一個(gè)用于尋找最佳機(jī)器學(xué)習(xí)模型的開源平臺(tái)
神經(jīng)網(wǎng)絡(luò)(NN) 的成功通常取決于它對(duì)各種任務(wù)的泛化能力。然而,設(shè)計(jì)可以很好泛化的神經(jīng)網(wǎng)絡(luò)具有挑戰(zhàn)性,因?yàn)檠芯拷缒壳皩?duì)神經(jīng)網(wǎng)絡(luò)如何泛化的理解有些有限:對(duì)于給定的問題,合適的神經(jīng)網(wǎng)絡(luò)是什么樣的?應(yīng)該多深?應(yīng)該使用哪些類型的層?將LSTMs足夠或?qū)⒃谧儔浩鲗邮歉脝??或者也許是兩者的結(jié)合?是合奏還是蒸餾提高性能?在考慮機(jī)器學(xué)習(xí) (ML) 領(lǐng)域時(shí),這些棘手的問題變得更具挑戰(zhàn)性,因?yàn)樵谶@些領(lǐng)域中,可能存在比其他領(lǐng)域更好的直覺和更深入的理解。
近年來,出現(xiàn)了AutoML算法 [例如1 , 2 , 3 ] 以幫助研究人員自動(dòng)找到正確的神經(jīng)網(wǎng)絡(luò),而無需手動(dòng)實(shí)驗(yàn)。技術(shù),如神經(jīng)結(jié)構(gòu)搜索(NAS),使用算法,如強(qiáng)化學(xué)習(xí)(RL),進(jìn)化算法,和組合搜索,從給定的搜索空間構(gòu)建神經(jīng)網(wǎng)絡(luò)。通過適當(dāng)?shù)脑O(shè)置,這些技術(shù)已經(jīng)證明它們能夠提供比手動(dòng)設(shè)計(jì)的同類產(chǎn)品更好的結(jié)果。但通常情況下,這些算法計(jì)算量很大,在收斂之前需要訓(xùn)練數(shù)千個(gè)模型。此外,他們探索了特定領(lǐng)域的搜索空間,并結(jié)合了大量的先驗(yàn)人類知識(shí),這些知識(shí)不能很好地跨領(lǐng)域轉(zhuǎn)移。例如,在圖像分類中,傳統(tǒng) NAS 搜索兩個(gè)好的構(gòu)建塊(卷積塊和下采樣塊),它按照傳統(tǒng)約定排列以創(chuàng)建完整的網(wǎng)絡(luò)。
為了克服這些缺點(diǎn)并將 AutoML 解決方案的訪問范圍擴(kuò)展到更廣泛的研究社區(qū),我們很高興地宣布模型搜索的開源版本,這是一個(gè)幫助研究人員高效、自動(dòng)地開發(fā)最佳 ML 模型的平臺(tái)。模型搜索不是專注于特定領(lǐng)域,而是領(lǐng)域不可知、靈活并且能夠找到最適合給定數(shù)據(jù)集和問題的適當(dāng)架構(gòu),同時(shí)最大限度地減少編碼時(shí)間、工作量和計(jì)算資源。它建立在 Tensorflow 之上,可以在單臺(tái)機(jī)器上運(yùn)行,也可以在分布式環(huán)境中運(yùn)行。
概述
模型搜索系統(tǒng)由多個(gè)訓(xùn)練器、搜索算法、遷移學(xué)習(xí)算法和用于存儲(chǔ)各種評(píng)估模型的數(shù)據(jù)庫組成。該系統(tǒng)以自適應(yīng)但異步的方式為各種 ML 模型(不同的架構(gòu)和訓(xùn)練技術(shù))運(yùn)行訓(xùn)練和評(píng)估實(shí)驗(yàn)。雖然每位培訓(xùn)師獨(dú)立進(jìn)行實(shí)驗(yàn),但所有培訓(xùn)師都分享從他們的實(shí)驗(yàn)中獲得的知識(shí)。在每個(gè)循環(huán)開始時(shí),搜索算法會(huì)查找所有已完成的試驗(yàn),并使用波束搜索來決定下一步嘗試什么。然后它調(diào)用迄今為止發(fā)現(xiàn)的最佳架構(gòu)之一的變異,并將生成的模型分配回訓(xùn)練器。

該系統(tǒng)從一組預(yù)定義塊構(gòu)建神經(jīng)網(wǎng)絡(luò)模型,每個(gè)塊代表一個(gè)已知的微架構(gòu),如 LSTM、ResNet或 Transformer 層。通過使用預(yù)先存在的架構(gòu)組件塊,模型搜索能夠利用來自跨領(lǐng)域的 NAS 研究的現(xiàn)有最佳知識(shí)。這種方法也更有效,因?yàn)樗剿鹘Y(jié)構(gòu),而不是它們更基本和更詳細(xì)的組件,因此減少了搜索空間的規(guī)模。

因?yàn)槟P退阉骺蚣苁腔赥ensorflow構(gòu)建的,所以塊可以實(shí)現(xiàn)任何以張量作為輸入的函數(shù)。例如,假設(shè)有人想要引入一個(gè)由一系列微架構(gòu)構(gòu)建的新搜索空間。該框架將采用新定義的塊并將它們合并到搜索過程中,以便算法可以從提供的組件構(gòu)建最佳的神經(jīng)網(wǎng)絡(luò)。提供的塊甚至可以是完全定義的神經(jīng)網(wǎng)絡(luò),這些神經(jīng)網(wǎng)絡(luò)已知可用于解決感興趣的問題。在這種情況下,模型搜索可以配置為簡單地充當(dāng)強(qiáng)大的集成機(jī)器。
模型搜索中實(shí)現(xiàn)的搜索算法是自適應(yīng)的、貪婪的和增量的,這使得它們比 RL 算法收斂得更快。然而,他們通過分離對(duì)好的候選者的搜索(探索步驟),并通過集成發(fā)現(xiàn)的好的候選者(利用步驟)來提高準(zhǔn)確性,從而模仿了RL 算法的“探索和利用”性質(zhì)。在對(duì)架構(gòu)或訓(xùn)練技術(shù)應(yīng)用隨機(jī)更改(例如,使架構(gòu)更深)之后,主搜索算法自適應(yīng)地修改前k 個(gè)執(zhí)行實(shí)驗(yàn)(其中k可以由用戶指定)之一。

為了進(jìn)一步提高效率和準(zhǔn)確性,在各種內(nèi)部實(shí)驗(yàn)之間啟用了遷移學(xué)習(xí)。模型搜索以兩種方式實(shí)現(xiàn)這一點(diǎn)——通過知識(shí)蒸餾或權(quán)重共享。知識(shí)蒸餾允許通過添加一個(gè)與高性能模型的預(yù)測(cè)相匹配的損失項(xiàng)來提高候選人的準(zhǔn)確性。另一方面,權(quán)重共享通過從先前訓(xùn)練的模型中復(fù)制合適的權(quán)重并隨機(jī)初始化剩余的權(quán)重,從先前訓(xùn)練的候選者中引導(dǎo)網(wǎng)絡(luò)中的一些參數(shù)(在應(yīng)用變異之后)。這可以實(shí)現(xiàn)更快的訓(xùn)練,從而有機(jī)會(huì)發(fā)現(xiàn)更多(更好)的架構(gòu)。
實(shí)驗(yàn)結(jié)果
模型搜索以最少的迭代改進(jìn)了生產(chǎn)模型。在最近的一篇論文中,我們通過發(fā)現(xiàn)用于關(guān)鍵字識(shí)別和語言識(shí)別的模型來展示模型搜索在語音領(lǐng)域的能力。在不到 200 次迭代中,生成的模型比專家設(shè)計(jì)的內(nèi)部最先進(jìn)的生產(chǎn)模型在準(zhǔn)確性方面略有改進(jìn),使用的可訓(xùn)練參數(shù)減少了約 130K(184K 與 315K 參數(shù)相比)。

我們還應(yīng)用模型搜索來找到適合在大量探索的CIFAR-10成像數(shù)據(jù)集上進(jìn)行圖像分類的架構(gòu)。使用一組已知的卷積塊,包括卷積、resnet 塊(即兩個(gè)卷積和一個(gè)跳躍連接)、NAS-A 單元、全連接層等,我們觀察到我們能夠快速達(dá)到基準(zhǔn)準(zhǔn)確率 91.83 209 次試驗(yàn)(即僅探索 209 個(gè)模型)。相比之下,之前表現(xiàn)最好的算法在NasNet 算法 (RL) 的5807 次試驗(yàn)中達(dá)到了相同的閾值準(zhǔn)確率,PNAS (RL + Progressive)達(dá)到了1160 次。
結(jié)論
我們希望模型搜索代碼能夠?yàn)檠芯咳藛T提供一個(gè)靈活的、與領(lǐng)域無關(guān)的 ML 模型發(fā)現(xiàn)框架。通過建立給定領(lǐng)域的先前知識(shí),我們相信這個(gè)框架足夠強(qiáng)大,當(dāng)提供由標(biāo)準(zhǔn)構(gòu)建塊組成的搜索空間時(shí),該框架足以在經(jīng)過充分研究的問題上構(gòu)建具有最先進(jìn)性能的模型。
更新說明:優(yōu)先更新微信公眾號(hào)“雨夜的博客”,后更新博客,之后才會(huì)陸續(xù)分發(fā)到各個(gè)平臺(tái),如果先提前了解更多,請(qǐng)關(guān)注微信公眾號(hào)“雨夜的博客”。
博客來源:雨夜的博客