深度進化網絡結構表示(DENSER)是一種用進化算法自動設計人工神經網絡(ANNs)的新方法。該算法不僅能搜索最佳網絡拓撲結構,還能調整超參數(比如學習或數據增強超參數)。為了實現自動設計,該模型分為兩個不同的層級:其中外層編碼網絡的總體結構,內層編碼每層的相關參數。圖層和超參數的數值范圍是通過人類可讀、與上下文無關的語法來定義的。
本文的主要成果有:
DENSER:一種基于進化原理的通用框架,可以自動搜索適合具有不同圖層類型或目標的大規模深度網絡的結構和參數;
可自動生成的卷積神經網絡(CNN),在沒有任何先驗知識的情況下可以有效對CIFAR-10數據集進行分類,平均準確率為94.27%;
用DENSER生成的ANNs表現得很好。具體來說,在CIFAR-100數據集上的平均準確率為78.75%,這是通過一個由CIFAR-10數據集生成的網絡獲得的。就我們所知,這是自動設計CNN方法在CIFAR-100數據集上得出的最佳結果。
DENSER
為了改進人工神經網絡的結構和參數,我們提出了“深度進化網絡結構表示”(DENSER),它集合了遺傳算法(GAs)和動態結構化語法進化(DSGE)的基本思想。
表征
每個解決方案通過前饋層的有序序列及其各自的參數對ANN進行編碼;學習和其他任何超參數也可以單獨編碼。候選解決方案的表征在兩個不同層次上完成:
遺傳算法:編碼網絡的宏觀結構,并且負責表示圖層的次序,之后用作語法開始符號的標志。它要求定義網絡允許的結構,即圖層的有效順序。
DSGE:編碼與圖層有關聯的參數,參數及其允許的值或范圍被編碼在必須由用戶定義的語法中。
交叉
這一過程中提出了兩種交叉算子,他們基于不同的基因型水平。在當前工作的背景下,一個模塊并不代表能復制多次的層組,而是屬于同一個遺傳算法結構指數的層。
考慮到每個算子都有相同的模塊(可能層數不同),第一個交叉算子是單點交叉,它在同一個模塊內改變兩個個體之間的層。
第二個交叉算子是一個統一的交叉,它改變了兩個個體之間的整個模塊。
變異
為了促進人工神經網絡的進化,我們開發了一套變異算子。在遺傳算法水平上,變異算子旨在操縱網絡結構:
添加圖層:根據要放置圖層的模塊的起始符號可能性生成新圖層;
復制圖層:隨機選擇一個圖層,并將其復制到模塊的另一個有效位置。這種復制是相連的,如果圖層中參數改變,那么所有復制層也將改變;
刪除圖層:從給定的模塊中選擇并刪除一個圖層。
上述變異算子只是網絡中的一般結構;要改變層的參數,需要使用以下DSGE變異:
語法變異:一種擴展可能性(expansion possibility)被另一個替代;
整數變異:在允許范圍內產生一個新的整數值;
浮點變異:對給定的浮點值進行高斯攝動。
實驗結果
為了進行測試,我們在CIFAR-10數據集上進行CNN生成實驗。CIFAR-10中有60000個樣本,每個都是32×32的RGB彩色圖像,這些圖像一共被分成10類。DENSER提出的解決方案將被映射到Keras模型,從而檢測它們的性能。任務的目標是測量模型識別對象的準確性最大是多少。
為了分析網絡的泛化和擴展能力,我們采用了最佳的CNN拓撲結構,并對CIFAR-100數據集進行分類測試。
CIFAR-10上的CNN進化
在生成的CNN上,我們進行了10次CIFAR-10數據集的分類測試。對于生成的網絡,我們分析它們的擬合度(fitness,即分類任務的準確性)和隱藏層的數量。
圖1
圖1描述了在迭代中最佳CNN的平均擬合度和層數的演變。結果表明,進化正在發生,解決方案往往出現在第80次迭代處。從進化開始到大約第60次,性能的提升都伴隨著層數的減少;從第60次往后,性能的提升會導致最佳網絡的隱藏層數量增加。這一分析表明,第一代隨機生成的解決方案有很多層,其參數也是隨機設置的。
圖2
進化過程中最佳網絡已在圖2中表示出來(根據準確度判斷)。進化網絡最讓人不解的特點是在拓撲結構結尾使用密集層的重要性和數量。據我們所知,如此大量的密集層的使用順序是前所未有的。甚至可以說,人類永遠不會想出這樣的結構,所以這個進化結果非常有意義。
一旦進化過程完成,每次生成的最佳網絡將被重新訓練五次。首先,我們用相同的學習速率訓練網絡(lr=0.01),不過這次不止測試10次了,而是400次。之后我們將獲得88.41%的平均分類精度。為了進一步提高網絡的準確度,我們對測試集中的每個樣本進行增強,生成100張增強圖像,并且預測這100張圖像上的平均最大置信度值。最終,最佳進化網絡的平均準確度提高到89.93%。
為了研究是否有可能提高最佳網絡的性能,我們使用CGP-CNN,用相同的策略訓練它們:最初的學習速率為0.01,隨機變化;第五次時增加到0.1;第250次是又減少到0.01;最終在第375次時減少到0.001.根據之前的訓練策略,網絡的平均準確度提升到93.38%。如果增強數據集中的數據,那么平均準確度為94.13%,即平均誤差為5.87%。
CIFAR-10結果對比
上表是DENSER與其他方法生成的最佳結果的對比,可見DENSER的準確度最高。另外,在我們的方法中,可訓練參數的數量要高得多,因為我們允許在進化的CNN中放置完全連接的層。另外,在進化過程中,沒有用到先驗知識。
CIFAR-100上的泛化能力
為了測試進化網絡的泛化和可擴展性,我們將在CIFAR-10上生成的最佳網絡應用于CIFAR-100上。為了能使網絡正常工作,我們只將softmax層的輸出神經元從10個改為100個。
每個網絡的訓練是隨機的;由于數據增加,初始條件的不同,所以訓練它們要使用不同的樣本。因此,為了進一步改進結果,我們研究了Graham提出的測試一部分最大池的性能是夠能提高我們網絡的性能。簡而言之,我們不再使用單獨的網絡,而是使用一個集合,其中的每個網絡都是獨立訓練的結果。利用這種方法,訓練五次的同一個單一網絡的準確度為77.51%;含有10個網絡的集合的準確度為77.89%;12個網絡的集合的準確度為78.14%。這些結果均優于使用標準數據增強的CNN方法。
此外,組成集合的也并不是同樣結構的網絡,而是選用DENSER構建的兩個最好的網絡拓撲結構。按照這種方法,我們得到的模型準確度提高至78.75%。
CIFAR-100結果
上表表示DENSER在CIFAR-100數據集上的結果與其他方法的比較。
-
人工神經網絡
+關注
關注
1文章
120瀏覽量
14676 -
denser
+關注
關注
0文章
1瀏覽量
1964
原文標題:DENSER:用進化算法自動設計神經網絡
文章出處:【微信號:jqr_AI,微信公眾號:論智】歡迎添加關注!文章轉載請注明出處。
發布評論請先 登錄
相關推薦
評論