學歷之窗

PRODUCTS樣本展示

您當前所在位置:首页 >> 樣本展示 >> 其它文憑

南非开普敦大学新.jpg

演化演算法可以不再需要計算集群,開普敦大學的新方法用一塊GPU也能刷新MNIST記錄

導語:神經網路的演化也靠“染色體”

雷鋒網AI 科技評論按:進化演算法和生成式對抗性網絡GANs類似,提出時大家都覺得是很好的想法,可以幫人類極大拓展行為和想像空間,然而找到好的、可控的實現方法卻沒那麼簡單。 GANs方面現在已經有了許多的成果,但是進化演算法仍然停留在較為初期的狀態,無法產生大規模、複雜的網絡,需要的計算資源也是在計算集群的層級上。

不過,演化演算法的研究也是一步步在「演化」的,最近這項來自南非開普敦大學的研究就帶來了新的發現,只用單塊GPU的資源就演化出了理想的網路結構,也刷新了三項測試的結果。雷鋒網 AI 科技評論把背景和這篇論文的成果簡單介紹如下。

演化演算法可以不再需要計算集群,開普敦大學的新方法用一塊GPU也能刷新MNIST記錄

深度神經網路是強大但是反直覺的野獸,要有豐富的經驗、反覆試錯,才能駕馭它們得到好的表現。也有許多例子證明,神經網路的表現會隨著深度的增加而不斷提高。這些特性加上深度學習在各個領域內越來越強的影響力都表明,能自動找到最優或接近最優的網路結構和超參數的方法越來越重要。

不過顯然,網路中每一層的特性、層與層的順序、激活函數、全連接層裡的單元數量、卷積層裡卷積核的數量等等建立深度學習網路所需的參數,挑選的時候每一項都不算容易。不過現在有一個好處是,我們有豐富的運算資源,一般來說都可以嘗試許多種不同的組合,找到效果比較好的。那有沒有可能只用非常有限的運算資源,像是一塊GPU,就取得不錯的結果呢?

這篇論文就討論了一種思路,透過演化演算法,發展出優秀的神經網路。這樣的神經演化演算法並不是新鮮事,大概三十年前就有人提出過,最開始是在一項跟神經網路中的連結權重相關的研究中。

神經演化演算法的近期成果

以下介紹一下神經演化演算法的近期相關工作,跟這篇論文中的成果相比,它們都用到了很多的計算資源。 E. Real 等在「Large-scale evolution of image classifiers」(arXiv:1703.01041, 2017)中提出了一種神經進化的方法,優化用於圖像分類的神經網絡,其中用到了含有250台計算機的並行計算集群,而在CIFAR影像資料集任務中取得了可觀的成果。 B. Zoph 和Q. V. Le 則在「Neural architecture search with reinforcement learning」(arXiv:1611.01578, 2016)中用了一個綜合了強化學習的循環神經網絡,用來學習優秀的架構,他們一共在800個GPU上訓練了800個網路。

R. Miikkulainen 等人提出了CoDeepNEAT(“Evolving deep neural networks”,arXiv:1703.00548, 2017),其中產生了一大批模型和藍圖。這些藍圖是由數個節點組成的,節點指向表徵了神經網路的特定模組。這樣一來,他們所提的方法就讓重複結構的進化變成可能,因為藍圖可以重複使用進化後的模組。 T. Desell 提出了EXACT(“Large scale evolution of convolutional neural networks using volunteer computing” ,arXiv:1703.05422, 2017),這是一種用來部署在分佈式計算集群上的神經進化,他們當時使用了4500台志願參與者的計算機,進化出了12萬個網路用來搞定MNIST資料集。他們的方法中沒有使用池化層,也僅限於使用2維的輸入和濾波器。

作者們也發現,近期有研究中只用一個GPU就可以演化出能夠準確判斷出監督學習任務中需要的是回歸模型還是分類模型的深度神經網絡,在一系列不同的任務中獲得了96%的平均準確率。 (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)這篇論文們的這篇論文們的論文們的這篇論文們的直接先驅,而且只要有足夠的運算資源就可以無縫銜接到這篇論文中的網路優化過程中來。

基因演算法

基因演算法(genetic algorithm,GA)是一種可以用來解決最佳化問題的演化演算法。首先初始化一群染色體,每個染色體都表徵了最佳化問題的一個解決方案。然後透過一個匹配度函數評估每個染色體,以確定哪個染色體可以解決這個問題。在迭代演化模型中,基因演算法會迭代很多次,可以稱為「世代」(generations),一直迭代到預先定義的條件達成為止(例如最大世代數目)。每一個染色體由很多基因組成,這些基因就可以用基因操作器來取代。經過基因操作器操作之後的染色體,就可以稱為原來染色體的子代(offspring)。根據染色體群落數目的不同,可以產生多個子代。每個世代中,子代染色體都會取代現有的染色體群落。

在這篇論文中,作者們使用了傳統的基因演算法。他們也額外增加了世代數目和網路訓練中epoch的數目,用來探索最佳的epoch的數目。所用的基因演算法如下圖。

演化演算法可以不再需要計算集群,開普敦大學的新方法用一塊GPU也能刷新MNIST記錄

作者們採用基因演算法的原因是,染色體的複雜程度可以根據編碼的基因數量增加或降低。基因演算法比起其它演化演算法還有一些好處:它們可以流暢地處理離散(例如層類型)和連續(如學習速率)的連續空間,進行神經演化研究的時候這就是理想的選擇。

EDEN

在這篇論文中,作者們提出了進化性深度網路(Evolutionary DEep Networks,EDEN),這算是一種結合了基因演算法和深度神經網路的神經演化演算法,用來探索神經網路架構、相關的超參數以及epoch數目的搜尋空間。在這項研究中,作者們探索了例如嵌入層的優化這類的額外特徵,並且提高了現有研究的複雜度。作者們希望透過EDEN解答兩個問題:1,能否透過進化的方法得出整體來說較為優秀的架構和超參數用來解決許多不同的問題(並不僅限於影像辨識)? 2,與先前研究中使用的大規模計算集群相反,他們能否用單一GPU就達到這一目標?

作者們將EDEN接入了TensorFlow,這樣新的層、函數以及其它的特徵都可以輕鬆地被EDEN集合、應用,因為這些特徵的表徵函數都可以作為TensorFlow函數調用。而且,EDEN也不限於TensorFlow,其它的現代深度神經網路框架也可以用來實現EDEN。下圖就是一個EDEN的染色體在編碼後所得到的神經網路結構的例子。

进化算法可以不再需要计算集群,开普敦大学的新方法用一块GPU也能刷新MNIST记录

演化演算法可以不再需要計算集群,開普敦大學的新方法用一塊GPU也能刷新MNIST記錄

每個EDEN染色體包含兩個基因,編碼學習速率和一個神經網路。圖中展現的是用EDEN進化出來的情緒分析的神經網路。 EDEN創造了一個輸出維度為120的嵌入層,其後有3個一維卷積層。 EDEN進化出了濾波器的數目、每個濾波器的維度,以及每個濾波器響應的激活函數。對於最後一個層,EDEN決定使用的激活函數是sigmoid。這個染色體上的學習速率是0.0023。

下面這個動圖展示了EDEN執行的過程中染色體演化的過程,要解決的問題就是一個MNIST影像分類問題。這個過程中神經元群落向著一個高效率的解決方案收斂,最終主要由二維卷積層組成。

演化演算法可以不再需要計算集群,開普敦大學的新方法用一塊GPU也能刷新MNIST記錄

實驗結果

进化算法可以不再需要计算集群,开普敦大学的新方法用一块GPU也能刷新MNIST记录

運用EDEN,在10個世代和13個訓練epoch後,作者們在多項測試中分別得到的網絡結果如下。

演化演算法可以不再需要計算集群,開普敦大學的新方法用一塊GPU也能刷新MNIST記錄

對於不同的任務,網路中進化出的學習速率和參數數目也不一樣。其中EMNIST-balanced、EMNIST-digits 和 Fashion-MNIST 三項任務中取得了最好的結果,並刷新了目前的最佳成績。對於CIFAR-10中低很多的表現,作者們認為原因是,由於他們這項研究關注效率更多,所以對模型的深度做出了一定限制,也就限制了CIFAR-10任務中的表現。

演化演算法可以不再需要計算集群,開普敦大學的新方法用一塊GPU也能刷新MNIST記錄

进化算法可以不再需要计算集群,开普敦大学的新方法用一块GPU也能刷新MNIST记录

這張圖是在MNIST任務中,網路進化到不同世代的平均匹配度變化圖。其中的垂直線標示的是整個群落中5%到95%的匹配度值。在演化剛開始時,群落中的匹配度有很大的不同,然後隨著解決方案變好、群落收斂,匹配度的變化幅度開始減少。圖中也標示了自進化開始之後,最初、中間、最終三個世代時的網路結構以及相關的超參數。

作者們表示,他們實驗中只使用了一塊GTX1070 GPU,訓練時間6到24小時,就可以得到這樣的成果,他們覺得非常滿意。他們的研究也首次嘗試了把神經進化用在一維卷積網路的創造中,用來解決情緒分析、包含嵌入層的最佳化問題。

+19712253513
XLINE

截屏,LINE行動條碼

LINE ID:hgdegree

(點擊LINE ID複製,添加好友)

打開LINE

LINE ID已複製,請打開LINE添加諮詢!