0
本文作者: 楊曉凡 | 2017-10-07 23:11 |
雷鋒網(wǎng) AI 科技評(píng)論按:進(jìn)化算法和生成式對(duì)抗性網(wǎng)絡(luò)GANs類(lèi)似,提出時(shí)大家都覺(jué)得是很好的想法,可以幫人類(lèi)極大地拓展行為和想象空間,然而找到好的、可控的實(shí)現(xiàn)方法卻沒(méi)那么簡(jiǎn)單。GANs方面現(xiàn)在已經(jīng)有了許多的成果,但是進(jìn)化算法仍然停留在較為初期的狀態(tài),無(wú)法生成大規(guī)模、復(fù)雜的網(wǎng)絡(luò),需要的計(jì)算資源也是在計(jì)算集群的級(jí)別上。
不過(guò),進(jìn)化算法的研究也是一步步在“進(jìn)化”的,最近這項(xiàng)來(lái)自南非開(kāi)普敦大學(xué)的研究就帶來(lái)了新的發(fā)現(xiàn),只用單塊GPU的資源就進(jìn)化出了理想的網(wǎng)絡(luò)結(jié)構(gòu),還刷新了三項(xiàng)測(cè)試的結(jié)果。雷鋒網(wǎng) AI 科技評(píng)論把背景和這篇論文的成果簡(jiǎn)單介紹如下。
深度神經(jīng)網(wǎng)絡(luò)是強(qiáng)大但是反直覺(jué)的野獸,要有豐富的經(jīng)驗(yàn)、反復(fù)試錯(cuò),才能駕馭它們得到好的表現(xiàn)。也有許多例子證明,神經(jīng)網(wǎng)絡(luò)的表現(xiàn)會(huì)隨著深度的增加不斷提高。這些特性加上深度學(xué)習(xí)在各個(gè)領(lǐng)域內(nèi)越來(lái)越強(qiáng)的影響力都表明,能自動(dòng)找到最優(yōu)或者接近最優(yōu)的網(wǎng)絡(luò)結(jié)構(gòu)和超參數(shù)的方法越來(lái)越重要。
不過(guò)顯然,網(wǎng)絡(luò)中每一層的特性、層與層的順序、激活函數(shù)、全連接層里的單元數(shù)量、卷積層里卷積核的數(shù)量等等建立深度學(xué)習(xí)網(wǎng)絡(luò)需要的參數(shù),挑選的時(shí)候每一項(xiàng)都不算容易。不過(guò)現(xiàn)在有一個(gè)好處是,我們有豐富的計(jì)算資源,一般來(lái)說(shuō)都可以嘗試許多種不同的組合,找到效果比較好的。那有沒(méi)有可能只用非常有限的計(jì)算資源,比如一塊GPU,就取得不錯(cuò)的結(jié)果呢?
這篇論文就討論了一種思路,通過(guò)進(jìn)化算法,發(fā)展出優(yōu)秀的神經(jīng)網(wǎng)絡(luò)。這樣的神經(jīng)進(jìn)化算法并不是新鮮事物,大概三十年前就有人提出過(guò),最開(kāi)始是在一項(xiàng)跟神經(jīng)網(wǎng)絡(luò)中的連接權(quán)重相關(guān)的研究中。
下面介紹一下神經(jīng)進(jìn)化算法方面的近期相關(guān)工作,跟這篇論文中的成果相比,它們都用到了很多的計(jì)算資源。E. Real 等在“Large-scale evolution of image classifiers”(arXiv:1703.01041, 2017)中提出了一種神經(jīng)進(jìn)化的方法,優(yōu)化用于圖像分類(lèi)的神經(jīng)網(wǎng)絡(luò),其中用到了含有250臺(tái)計(jì)算機(jī)的并行計(jì)算集群,而在CIFAR圖像數(shù)據(jù)集任務(wù)中取得了可觀的成果。B. Zoph 和 Q. V. Le 則在“Neural architecture search with reinforcement learning”(arXiv:1611.01578, 2016)中用了一個(gè)綜合了強(qiáng)化學(xué)習(xí)的循環(huán)神經(jīng)網(wǎng)絡(luò),用來(lái)學(xué)習(xí)優(yōu)秀的架構(gòu),他們一共在800個(gè)GPU上訓(xùn)練了800個(gè)網(wǎng)絡(luò)。
R. Miikkulainen 等人提出了CoDeepNEAT(“Evolving deep neural networks”,arXiv:1703.00548, 2017),其中產(chǎn)生了一大批模型和藍(lán)圖。這些藍(lán)圖是由數(shù)個(gè)節(jié)點(diǎn)組成的,節(jié)點(diǎn)指向表征了神經(jīng)網(wǎng)絡(luò)的特定模塊。這樣一來(lái),他們所提的方法就讓重復(fù)結(jié)構(gòu)的進(jìn)化變得可能,因?yàn)樗{(lán)圖可以重復(fù)使用進(jìn)化后的模塊。T. Desell 提出了 EXACT(“Large scale evolution of convolutional neural networks using volunteer computing” ,arXiv:1703.05422, 2017),這是一種用來(lái)部署在分布式計(jì)算集群上的神經(jīng)進(jìn)化算法,他們當(dāng)時(shí)使用了4500臺(tái)志愿參與者的計(jì)算機(jī),進(jìn)化出了12萬(wàn)個(gè)網(wǎng)絡(luò)用來(lái)搞定MNIST數(shù)據(jù)集。他們的方法中沒(méi)有使用池化層,也僅限于使用2維的輸入和濾波器。
作者們還發(fā)現(xiàn),近期有研究中只用一個(gè)GPU就可以進(jìn)化出能夠準(zhǔn)確判斷出監(jiān)督學(xué)習(xí)任務(wù)中需要的是回歸模型還是分類(lèi)模型的深度神經(jīng)網(wǎng)絡(luò),在一系列不同的任務(wù)中獲得了96%的平均準(zhǔn)確率。(E. Dufourq 和 B. A. Bassett, “Automated problem identification: Regression vs classification via evolutionary deep networks”,Annual Conference of the South African Institute of Computer Scientists and Information Technologists, ACM, 2017)這項(xiàng)成果是作者們的這篇論文的直接先驅(qū),而且只要有足夠的計(jì)算資源就可以無(wú)縫銜接到這篇論文中的網(wǎng)絡(luò)優(yōu)化過(guò)程中來(lái)。
基因算法(genetic algorithm,GA)是一種可以用來(lái)解決優(yōu)化問(wèn)題的進(jìn)化算法。首先初始化一群染色體,每個(gè)染色體都表征了優(yōu)化問(wèn)題的一個(gè)解決方案。然后通過(guò)一個(gè)匹配度函數(shù)評(píng)價(jià)每個(gè)染色體,以確定哪個(gè)染色體可以解決這個(gè)問(wèn)題。在迭代進(jìn)化模型中,基因算法會(huì)迭代很多次,可以稱(chēng)作“世代”(generations),一直迭代到預(yù)定義的條件達(dá)成為止(比如最大世代數(shù)目)。每一個(gè)染色體由很多個(gè)基因組成,這些基因就可以用基因操作器進(jìn)行替換。經(jīng)過(guò)基因操作器操作之后的染色體,就可以稱(chēng)為原來(lái)染色體的子代(offspring)。根據(jù)染色體群落數(shù)目的不同,可以產(chǎn)生多個(gè)子代。每個(gè)世代中,子代染色體都會(huì)代替現(xiàn)有的染色體群落。
這篇論文中,作者們使用了傳統(tǒng)的基因算法。他們還額外增加了世代數(shù)目和網(wǎng)絡(luò)訓(xùn)練中epoch的數(shù)目,用來(lái)探索最佳的epoch的數(shù)目。所用的基因算法如下圖。
作者們采用基因算法的原因是,染色體的復(fù)雜程度可以根據(jù)編碼的基因數(shù)目增大或者降低。基因算法相比其它進(jìn)化算法還有一些好處:它們可以流暢地處理離散(比如層類(lèi)型)和連續(xù)(比如學(xué)習(xí)速率)的連續(xù)空間,進(jìn)行神經(jīng)進(jìn)化研究的時(shí)候這就是理想的選擇。
在這篇論文中,作者們提出了進(jìn)化性深度網(wǎng)絡(luò)(Evolutionary DEep Networks,EDEN),這算一種結(jié)合了基因算法和深度神經(jīng)網(wǎng)絡(luò)的的神經(jīng)進(jìn)化算法,用來(lái)探索神經(jīng)網(wǎng)絡(luò)架構(gòu)、相關(guān)的超參數(shù)以及epoch數(shù)目的搜索空間。在這項(xiàng)研究中,作者們探索了例如嵌入層的優(yōu)化這類(lèi)的額外特征,并且提高了現(xiàn)有研究的復(fù)雜度。作者們希望通過(guò)EDEN解答兩個(gè)問(wèn)題:1,能否通過(guò)進(jìn)化的方法得出總體來(lái)說(shuō)較為優(yōu)秀的架構(gòu)和超參數(shù)用來(lái)解決許多不同的問(wèn)題(并不僅限于圖像識(shí)別)?2,與之前研究中使用的大規(guī)模計(jì)算集群相反,他們能否用單個(gè)GPU就達(dá)到這一目標(biāo)?
作者們將EDEN接入了TensorFlow,這樣新的層、函數(shù)以及其它的特征都可以輕松地被EDEN集合、應(yīng)用,因?yàn)檫@些特征的表征函數(shù)都可以作為T(mén)ensorFlow函數(shù)調(diào)用。而且,EDEN也不局限于TensorFlow,其它的現(xiàn)代深度神經(jīng)網(wǎng)絡(luò)框架也可以用來(lái)實(shí)現(xiàn)EDEN。下圖就是一個(gè)EDEN的染色體在編碼后得到的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)的例子。
每個(gè)EDEN染色體包含兩個(gè)基因,編碼學(xué)習(xí)速率和一個(gè)神經(jīng)網(wǎng)絡(luò)。圖中展現(xiàn)的是一個(gè)用EDEN進(jìn)化出的用于情緒分析的神經(jīng)網(wǎng)絡(luò)。EDEN創(chuàng)造了一個(gè)輸出維度為120的嵌入層,其后有3個(gè)一維卷積層。EDEN進(jìn)化出了濾波器的數(shù)目、每個(gè)濾波器的維度,以及每個(gè)濾波器響應(yīng)的激活函數(shù)。對(duì)于最后一個(gè)層,EDEN決定使用的激活函數(shù)是sigmoid。這個(gè)染色體上的學(xué)習(xí)速率是0.0023。
下面這個(gè)動(dòng)圖展示了EDEN執(zhí)行的過(guò)程中染色體進(jìn)化的過(guò)程,要解決的問(wèn)題是一個(gè)MNIST圖像分類(lèi)問(wèn)題。這個(gè)過(guò)程中神經(jīng)元群落向著一個(gè)高效的解決方案收斂,最終主要由二維卷積層組成。
運(yùn)用EDEN,在10個(gè)世代和13個(gè)訓(xùn)練epoch后,作者們?cè)诙囗?xiàng)測(cè)試中分別得到的網(wǎng)絡(luò)結(jié)果如下。
對(duì)于不同的任務(wù),網(wǎng)絡(luò)中進(jìn)化出的學(xué)習(xí)速率和參數(shù)數(shù)目也不一樣。其中EMNIST-balanced、EMNIST-digits 和 Fashion-MNIST 三項(xiàng)任務(wù)中取得了最好的結(jié)果,刷新了目前的最好成績(jī)。對(duì)于CIFAR-10中低很多的表現(xiàn),作者們認(rèn)為原因是,由于他們這項(xiàng)研究關(guān)注效率更多,所以對(duì)模型的深度做出了一定限制,也就限制了CIFAR-10任務(wù)中的表現(xiàn)。
這張圖是在MNIST任務(wù)中,網(wǎng)絡(luò)進(jìn)化到不同世代的平均匹配度變化圖。其中的豎線標(biāo)出的是整個(gè)群落中5%到95%的匹配度值。在進(jìn)化剛開(kāi)始時(shí),群落中的匹配度有很大的不同,然后隨著解決方案變好、群落收斂,匹配度的變化幅度開(kāi)始減小。圖中也標(biāo)出了自進(jìn)化開(kāi)始之后,最初、中間、最終三個(gè)世代時(shí)的網(wǎng)絡(luò)結(jié)構(gòu)以及相關(guān)的超參數(shù)。
作者們表示,他們實(shí)驗(yàn)中只使用了一塊GTX1070 GPU,訓(xùn)練時(shí)間6到24小時(shí),就可以取得這樣的成果,他們覺(jué)得非常滿意。他們的研究也首次嘗試了把神經(jīng)進(jìn)化用在一維卷積網(wǎng)絡(luò)的創(chuàng)造中,用來(lái)解決情感分析、包括嵌入層的優(yōu)化問(wèn)題。
更多詳情請(qǐng)參見(jiàn)原論文:https://arxiv.org/pdf/1709.09161.pdf ,雷鋒網(wǎng) AI 科技評(píng)論編譯
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見(jiàn)轉(zhuǎn)載須知。