谷歌大脑开源项目AutoML-Zero:仅用数学运算就能探索出机器学习算法
近年來(lái),機(jī)器學(xué)習(xí)取得了巨大的成功,這些成功得益于機(jī)器學(xué)習(xí)算法的不斷優(yōu)化,例如深度神經(jīng)網(wǎng)絡(luò)。深度神經(jīng)網(wǎng)絡(luò)在不斷發(fā)現(xiàn)問(wèn)題和解決問(wèn)題的過(guò)程中又推動(dòng)了 AutoML 的發(fā)展。到目前為止,AutoML 一直致力于通過(guò)組合復(fù)雜的手工設(shè)計(jì)組件來(lái)構(gòu)建解決方案。一個(gè)典型的例子是神經(jīng)架構(gòu)搜索,這是一個(gè)子領(lǐng)域,在這個(gè)子領(lǐng)域中,人們可以從復(fù)雜的層(例如卷積、批標(biāo)準(zhǔn)化和 dropout)自動(dòng)構(gòu)建神經(jīng)網(wǎng)絡(luò),這也是許多研究的主題。
在AutoML中使用的這些手工設(shè)計(jì)的組件的另一種方法是從頭開(kāi)始搜索整個(gè)算法,這很有挑戰(zhàn)性。因?yàn)樗枰剿鲝V泛而稀疏的搜索空間,但它有很大的潛在好處:它不會(huì)偏向我們已知的內(nèi)容,而且有可能發(fā)現(xiàn)新的、更好的機(jī)器學(xué)習(xí)架構(gòu)。
打個(gè)比方,我們可以這樣來(lái)描述 AutoML:如果一個(gè)人要建造一座房子,那么他從零開(kāi)始動(dòng)手,要比只使用預(yù)制板建造房子有更多的靈活性或改進(jìn)的潛力。然而,對(duì)房屋的設(shè)計(jì)卻是極為艱難的一個(gè)步驟,因?yàn)榕c預(yù)制的整個(gè)房間的組合相比,將磚瓦和砂漿結(jié)合起來(lái)的可能方法要多得多。因此,早期對(duì)算法從頭開(kāi)始學(xué)習(xí)的研究主要集中在算法的某一方面,例如學(xué)習(xí)規(guī)則,以此來(lái)減少搜索空間和所需的計(jì)算量。自 20 世紀(jì) 90 年代初以來(lái)該問(wèn)題就沒(méi)有被重新研究過(guò),直到現(xiàn)在。
我們最近將在ICML 2020 上發(fā)表的論文,論證了從零開(kāi)始成功地進(jìn)化機(jī)器算法是有可能的。我們提出的方法,稱為 AutoML_Zero,從空程序開(kāi)始,僅使用基本的數(shù)學(xué)運(yùn)算作為構(gòu)建塊,應(yīng)用進(jìn)化方法自動(dòng)找到完整機(jī)器學(xué)習(xí)算法的代碼。針對(duì)小圖像分類問(wèn)題,我們的方法重新發(fā)現(xiàn)了基本的機(jī)器學(xué)習(xí)技術(shù),如帶有反向轉(zhuǎn)播的二層神經(jīng)網(wǎng)絡(luò)、線性回歸等,這些都是多年來(lái)研究人員發(fā)明的。這一結(jié)果證明了自動(dòng)發(fā)現(xiàn)更多新的機(jī)器學(xué)習(xí)算法來(lái)解決未來(lái)更難的問(wèn)題的可行性。
論文地址:
https://arxiv.org/abs/2003.03384
GitHub 地址:
https://github.com/google-research/google-research/tree/master/automl_zero
從零開(kāi)始進(jìn)化學(xué)習(xí)算法
我們使用經(jīng)典進(jìn)化方法的一種變體來(lái)搜索算法空間。自 20 世紀(jì) 80 年代以來(lái),這些方法在發(fā)現(xiàn)計(jì)算機(jī)程序方面已被證明是有用的。它們的簡(jiǎn)單性和可擴(kuò)展性使其特別適合于學(xué)習(xí)算法的發(fā)現(xiàn)。
在我們的例子中,population 是用空程序初始化的。然后,它在重復(fù)循環(huán)中進(jìn)化,以產(chǎn)生越來(lái)越好的學(xué)習(xí)算法。在每個(gè)周期中,兩個(gè)(或更多)隨機(jī)模型相互競(jìng)爭(zhēng),最精確的模型成為父模型。親本克隆自身產(chǎn)生一個(gè)子代,子代會(huì)發(fā)生變異。也就是說(shuō),子代碼是以隨機(jī)的方式修改的,這可能意味著,例如,在代碼中任意插入、刪除或修改一行。然后在圖像分類任務(wù)中對(duì)變異算法進(jìn)行評(píng)估。
population 用空程序進(jìn)行初始化。歷經(jīng)許多代之后,我們看到一個(gè)更進(jìn)化的 population,它的兩個(gè)算法相互競(jìng)爭(zhēng)。最準(zhǔn)確的算法將贏得生“孩子”的機(jī)會(huì)。經(jīng)過(guò)許多這樣的事件之后,最終的 population 將包含高度精確的分類器。
探索困難的搜索空間
與以前的 AutoML 工作相比,我們的 AutoML-Zero 設(shè)置使得搜索空間非常稀疏,在 10^{12} 個(gè)候選者中可能只有一個(gè)精確的算法。這是由于提供給算法的構(gòu)建塊的粒度造成的,這些構(gòu)建塊只包括變量賦值、加法和矩陣乘法等基本操作。在這樣的環(huán)境中,隨機(jī)搜索無(wú)法在合理的時(shí)間內(nèi)找到解決方案,然而根據(jù)我們的測(cè)量,進(jìn)化速度可以加快數(shù)萬(wàn)倍。我們將搜索分布在偶爾交換算法的多臺(tái)機(jī)器上(類似于現(xiàn)實(shí)生活中的遷移。)我們還構(gòu)建了小的代理分類任務(wù),用于評(píng)估每個(gè)子算法,并使用高度優(yōu)化的代碼來(lái)執(zhí)行這個(gè)評(píng)估。
盡管如此稀疏,但隨著時(shí)間的推移,進(jìn)化搜索會(huì)發(fā)現(xiàn)更復(fù)雜、更有效的技術(shù)。最初,出現(xiàn)了最簡(jiǎn)單的算法,該算法用硬編碼的權(quán)重表示線性模型。隨著時(shí)間的推移,該算法發(fā)明了隨機(jī)梯度下降法(SGD)來(lái)學(xué)習(xí)權(quán)重,盡管梯度本身并沒(méi)有作為構(gòu)建塊提供。雖然一開(kāi)始存在缺陷,但 SGD 的問(wèn)題得到了相對(duì)較快的解決,開(kāi)始了對(duì)預(yù)測(cè)和學(xué)習(xí)算法進(jìn)行一系列改進(jìn)。在我們的簡(jiǎn)單場(chǎng)景中,該過(guò)程發(fā)現(xiàn)了幾個(gè)已知對(duì)研究社區(qū)有用的概念。最后,我們的方法成功地構(gòu)建了一個(gè)模型,性能優(yōu)于類似復(fù)雜度的手工設(shè)計(jì)的模型。
進(jìn)化實(shí)驗(yàn)的進(jìn)展,隨著時(shí)間的推移,從左到右,我們看到算法變得更加復(fù)雜,更加正確。
算法演進(jìn)
上圖包含了由我們的方法產(chǎn)生的最佳進(jìn)化算法。最終的算法包括數(shù)據(jù)增強(qiáng)、雙線性模型、梯度歸一化和權(quán)重平均等噪聲注入技術(shù),并且對(duì)基線的改進(jìn)也轉(zhuǎn)移到搜索過(guò)程中未使用的數(shù)據(jù)集上。我們的論文描述了進(jìn)化代碼的不同行是如何實(shí)現(xiàn)這些技術(shù)的,并通過(guò)消融研究驗(yàn)證了它們的價(jià)值。
通過(guò)更多的實(shí)驗(yàn),我們證明了通過(guò)控制“棲息地”(即進(jìn)化過(guò)程評(píng)估算法適應(yīng)度的任務(wù))來(lái)引導(dǎo)進(jìn)化搜索是可行的。例如,當(dāng)我們減少數(shù)據(jù)量時(shí),出現(xiàn)了有噪聲的 ReLU,這有助于正則化。或者,當(dāng)我們減少訓(xùn)練步數(shù)時(shí),我們會(huì)見(jiàn)證學(xué)習(xí)率衰減的出現(xiàn),從而實(shí)現(xiàn)更快的收斂。這類有針對(duì)性的發(fā)現(xiàn)很重要:如果自動(dòng)工具發(fā)明器能想出一把錘子或一根針,事情可能會(huì)很有趣;但如果你給它看一些釘子時(shí),它會(huì)想到一把錘子,給它看一些線時(shí),它想出一根針,那就更有趣了。通過(guò)這樣的類比,在我們的工作中,當(dāng)存在少量數(shù)據(jù)(“釘子”)時(shí),就會(huì)發(fā)現(xiàn)有噪聲的 ReLU(“錘子”),而當(dāng)存在少量訓(xùn)練步驟時(shí),學(xué)習(xí)率就會(huì)下降。
結(jié)論
我們認(rèn)為這只是初步工作。我們還沒(méi)有從根本上進(jìn)化出新的算法,但令人鼓舞的是,進(jìn)化后的算法可以超越搜索空間中存在的簡(jiǎn)單神經(jīng)網(wǎng)絡(luò)。目前,搜索過(guò)程需要大量的計(jì)算。隨著未來(lái)幾年可用硬件規(guī)模的擴(kuò)大和搜索方法的效率提高,搜索空間可能會(huì)變得更具包容性,搜索結(jié)果也會(huì)得到改善。隨著我們對(duì) AutoML-Zero 的進(jìn)一步了解,我們對(duì)發(fā)現(xiàn)新的機(jī)器學(xué)習(xí)算法的前景感到興奮。
作者介紹:
Esteban Real,主任軟件工程師。Chen Liang,軟件工程師,供職于 Google Research、Brain Team。
原文鏈接:
https://ai.googleblog.com/2020/07/automl-zero-evolving-code-that-learns.html
總結(jié)
以上是生活随笔為你收集整理的谷歌大脑开源项目AutoML-Zero:仅用数学运算就能探索出机器学习算法的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 逊开头的成语有哪些?
- 下一篇: 鱼油怎么做好吃啊?