2020-04-02 【遺傳算法】Completely Automated CNN Architecture Design Based on Blocks

摘要:

卷積神經(jīng)網(wǎng)絡(luò)的性能在很大程度上依賴于其結(jié)構(gòu)届慈。為了設(shè)計一個性能良好的CNN,需要在CNN和被調(diào)查問題領(lǐng)域都有廣泛的專業(yè)知識忿偷,這并不一定對每個感興趣的用戶都適用金顿。為了解決這個問題,我們提出了一種基于ResNet和DenseNet塊的遺傳算法來自動進(jìn)化CNN結(jié)構(gòu)鲤桥。該算法在CNN結(jié)構(gòu)設(shè)計中是完全自動化的揍拆。特別是,不需要在它開始之前進(jìn)行預(yù)處理芜壁,也不需要在CNNs方面進(jìn)行后處理礁凡。此外,該算法不需要對CNNs慧妄、所研究問題甚至GAs有領(lǐng)域知識的用戶顷牌。該算法在CIFAR10和CIFAR100基準(zhǔn)數(shù)據(jù)集上對18個最先進(jìn)的對等競爭對手進(jìn)行了評估。實驗結(jié)果表明塞淹,該算法在分類性能上優(yōu)于目前最先進(jìn)的人工神經(jīng)網(wǎng)絡(luò)和自動對等競爭對手設(shè)計的神經(jīng)網(wǎng)絡(luò)窟蓝,并且在分類精度上優(yōu)于半自動對等競爭對手。此外饱普,在尋找最佳CNN架構(gòu)方面运挫,該算法比大多數(shù)同行競爭對手消耗更少的計算資源状共。

Introduction:

卷積神經(jīng)網(wǎng)絡(luò)(CNNs)[1]已經(jīng)在各種實際應(yīng)用中展示了它們有希望的性能[2]-[5]。眾所周知谁帕,cnn的性能在很大程度上取決于其體系結(jié)構(gòu)峡继,例如使用了多少構(gòu)建塊層(例如卷積層和池化層)、如何組合使用的構(gòu)建塊層以及如何指定與使用的構(gòu)建塊層相關(guān)的參數(shù)匈挖。

不幸的是碾牌,對于與體系結(jié)構(gòu)相關(guān)的參數(shù),L(·)通常是非凸且不可微的儡循,因為這些參數(shù)通常具有離散值舶吗,例如,卷積層的特征映射大小通常被指定為整數(shù)择膝。為此誓琼,精確的優(yōu)化算法(例如,基于梯度的算法)在解決體系結(jié)構(gòu)優(yōu)化問題時不能或無效[7]肴捉,[8]腹侣。因此,研究人員提出了基于啟發(fā)式計算范式的各種體系結(jié)構(gòu)優(yōu)化算法[9]每庆,如隨機(jī)搜索[10]筐带、基于貝葉斯的高斯過程[11]今穿、[12]缤灵、樹結(jié)構(gòu)Parzen估計[13]、基于序列模型的全局優(yōu)化[14]蓝晒、擴(kuò)充拓?fù)涞纳窠?jīng)進(jìn)化[15]腮出,以及進(jìn)化無監(jiān)督深度學(xué)習(xí)[8]。然而芝薇,在CNN體系結(jié)構(gòu)優(yōu)化中胚嘲,不可能預(yù)先知道最佳構(gòu)建層的數(shù)目,例如n在λ中的特定值洛二,從而構(gòu)成最佳CNN體系結(jié)構(gòu)馋劈,即在找到最佳CNN體系結(jié)構(gòu)之前,最優(yōu)CNN體系結(jié)構(gòu)的決策變量的數(shù)目也是未知的晾嘶。這使得上述的結(jié)構(gòu)優(yōu)化方法也不能有效地用于CNN的結(jié)構(gòu)設(shè)計妓雾,因為它們是在優(yōu)化參數(shù)數(shù)目固定的前提下工作的。盡管我們可以枚舉n的每個潛在值垒迂,然后對不同n中的每一個執(zhí)行這些方法械姻,但是隨著n的增長,運行時計算復(fù)雜度將增加一個數(shù)量級机断,并且在可接受的時間內(nèi)可能無法獲得滿意的解[16]楷拳。

因此绣夺,最先進(jìn)的cnn,如ResNet[17]和DenseNet[18]欢揖,主要是手工制作的陶耍。手工設(shè)計CNNs需要CNN架構(gòu)和問題領(lǐng)域的大量專業(yè)知識。這在實踐中通常是不可用的她混。例如物臂,醫(yī)生可以發(fā)現(xiàn)CNN在評估磁共振成像(MRI)掃描結(jié)果時非常有用。雖然醫(yī)生顯然在問題領(lǐng)域有專業(yè)知識产上,但他們不太可能在CNN架構(gòu)方面有可比的經(jīng)驗棵磷。這一障礙阻止了cnn在各種圖像分類任務(wù)中的應(yīng)用。非常需要一個算法晋涣,能夠有效和高效地設(shè)計1 CNN架構(gòu)仪媒,而不需要這樣的專業(yè)知識。

幸運的是谢鹊,在過去的兩年里算吩,人們提出了多種設(shè)計CNN體系結(jié)構(gòu)的算法。根據(jù)使用這些算法時是否需要對CNNs進(jìn)行預(yù)處理或后處理佃扼,可以將它們分為兩類:半自動CNN體系結(jié)構(gòu)設(shè)計算法和完全自動CNN體系結(jié)構(gòu)設(shè)計算法偎巢。具體來說,半自動算法包括遺傳CNN方法(genetic CNN)[19]兼耀、基于層次表示的方法(hierarchical expression-based method)(hierarchical Evolution)[20]压昼、高效體系結(jié)構(gòu)搜索方法(EAS)[21]和塊設(shè)計方法(block-QNN-S)[22]。自動算法包括大規(guī)模進(jìn)化方法(large scale evolution)[23]瘤运、笛卡爾遺傳規(guī)劃方法(CGP-CNN)[24]窍霞、神經(jīng)架構(gòu)搜索方法(NAS)[25]和元建模方法(MetaQNN)[26]。這些算法主要基于進(jìn)化算法[27]或強(qiáng)化學(xué)習(xí)[28]拯坟。例如但金,遺傳CNN、大規(guī)模進(jìn)化郁季、分層進(jìn)化和CGP-CNN是基于進(jìn)化算法的冷溃,而NSA、MetaQNN梦裂、EAS和Block-QNN-S是基于強(qiáng)化學(xué)習(xí)的似枕。

這些算法的實驗結(jié)果表明,它們在尋找給定數(shù)據(jù)上的最佳CNN結(jié)構(gòu)方面具有良好的性能塞琼。然而菠净,仍然存在重大限制。首先,半自動CNN體系結(jié)構(gòu)設(shè)計算法仍然需要研究數(shù)據(jù)和CNN的專業(yè)知識毅往。例如牵咙,EAS在一個基礎(chǔ)網(wǎng)絡(luò)上生效,這個基礎(chǔ)網(wǎng)絡(luò)在所研究的問題上已經(jīng)有了相當(dāng)好的性能攀唯。但是洁桌,基本網(wǎng)絡(luò)是根據(jù)專業(yè)知識手動設(shè)計的。Block-QNN-S只設(shè)計了幾個小型網(wǎng)絡(luò)侯嘀,然后將這些網(wǎng)絡(luò)集成到一個更大的CNN框架中另凌。然而,其他類型的層戒幔,如池層吠谢,需要適當(dāng)?shù)匚盏骄哂袑I(yè)知識的CNN框架中。其次诗茎,基于強(qiáng)化學(xué)習(xí)的CNN架構(gòu)設(shè)計算法通常消耗更多的計算資源工坊。例如,對于CIFAR10數(shù)據(jù)集[29]敢订,NAS在800個圖形處理單元(GPU)卡上花費28天王污。然而,并不是每個感興趣的用戶都有足夠的計算資源楚午。最后昭齐,基于進(jìn)化算法的CNN體系結(jié)構(gòu)設(shè)計算法只利用了進(jìn)化算法的部分原則性優(yōu)點,這在無意中導(dǎo)致了發(fā)現(xiàn)的CNN對于所研究的問題通常沒有很好的性能矾柜。例如阱驾,遺傳CNN采用固定長度的編碼方案來表示CNN。然而把沼,我們永遠(yuǎn)不知道CNN在解決新問題方面的最佳深度啊易。為此吁伺,大規(guī)模進(jìn)化采用可變長度編碼方案饮睬,其中cnn可以根據(jù)問題自適應(yīng)地改變其深度。然而篮奄,大規(guī)模進(jìn)化在搜索過程中只使用變異算子捆愁,不使用任何交叉算子。在進(jìn)化算法中窟却,交叉算子和變異算子起著局部搜索和全局搜索的互補(bǔ)作用昼丑。在不使用交叉算子的情況下,變異算子就像在不同的起始位置進(jìn)行隨機(jī)搜索一樣工作夸赫。然而菩帝,大規(guī)模進(jìn)化不使用交叉算子并不奇怪,因為交叉算子最初是為固定長度編碼方案設(shè)計的。

為此呼奢,CNN體系結(jié)構(gòu)設(shè)計算法的發(fā)展宜雀,特別是對性能良好、依賴有限計算資源的全自動CNN體系結(jié)構(gòu)設(shè)計算法的發(fā)展握础,還處于起步階段辐董。本文的目的是設(shè)計和開發(fā)一種新的基于遺傳算法(GA)的CNN結(jié)構(gòu)自動設(shè)計算法。為了實現(xiàn)這一目標(biāo)禀综,以下是具體的目標(biāo)简烘。

1) 提出的算法要求用戶在基本CNN設(shè)計、調(diào)查數(shù)據(jù)集和GAs中提供任何先決知識定枷。根據(jù)該算法設(shè)計的CNN結(jié)構(gòu)可以直接使用孤澎,無需重新編譯、預(yù)處理或后處理欠窒。

2) 采用可變長度編碼方案來搜索CNN的最佳深度亥至。為了采用可變長度編碼,設(shè)計了一種新的交叉算子和一種變異算子贱迟,并將其融入到算法中姐扮,共同開發(fā)和探索搜索空間,尋找最佳的CNN結(jié)構(gòu)衣吠。

3) 設(shè)計了一種基于ResNet塊(RB)和DenseNet塊(DB)的高效編碼策略茶敏,加快了體系結(jié)構(gòu)的設(shè)計,利用了有限的計算資源缚俏,取得了良好的性能惊搏。注意,雖然在提出的算法中使用了RB和DB忧换,但是當(dāng)用戶使用提出的算法時恬惯,不需要在這些塊中具有專業(yè)知識。

本文的其余部分安排如下亚茬。第二節(jié)介紹了該算法的相關(guān)背景知識酪耳。然后,在第三節(jié)詳細(xì)介紹了該算法刹缝。為了評估該算法的性能碗暗,在第四節(jié)和第五節(jié)分別給出了實驗設(shè)計和數(shù)值結(jié)果。最后梢夯,第六節(jié)總結(jié)了本文的結(jié)論和今后的工作言疗。

Background:

正如第一節(jié)所強(qiáng)調(diào)的,所提出的算法是設(shè)計一個新的遺傳算法颂砸,通過使用ResNet和DenseNet塊來自動設(shè)計CNN結(jié)構(gòu)噪奄,這兩個塊是最先進(jìn)的CNN人工設(shè)計死姚。為了幫助讀者容易理解第三節(jié)中所示的算法的細(xì)節(jié),本節(jié)將討論GAs勤篮、RBs和DBs的基本原理知允。

1.遺傳算法

GAs[30]是一類基于群體的啟發(fā)式計算范式。它們也是最流行的進(jìn)化算法類型[進(jìn)化算法廣泛地包括遺傳規(guī)劃(GP)[31]叙谨,進(jìn)化策略[32]温鸽,等等,除了GAs手负。由于無梯度和對局部最小值不敏感的性質(zhì)涤垫,GAs是首選,特別是在優(yōu)化問題通常是非凸和不可微的工程領(lǐng)域[33]竟终,[34]蝠猬。GAs通過一系列受生物啟發(fā)的操作,如交叉统捶、變異和選擇榆芦,模擬生物進(jìn)化來解決優(yōu)化問題[35],[36]喘鸟。一般來說匆绣,遺傳算法的工作原理如下。

Step 1:初始化個體的總體什黑,每個個體都表示通過所采用的編碼策略的問題的候選解決方案崎淳。

Step 2:基于編碼信息和適應(yīng)度函數(shù)的群體個體適應(yīng)度評價。

Step 3:從當(dāng)前種群中選擇有希望的親本個體進(jìn)行交配愕把,然后用交叉和變異算子產(chǎn)生后代拣凹。

Step 4:評價所產(chǎn)生后代的適合性。

Step 5:環(huán)境選擇是指從當(dāng)前種群中選出具有良好表現(xiàn)的個體恨豁,然后用所選種群替換當(dāng)前種群嚣镜。

Step 6:如果不滿足終止條件,則到Step 3橘蜜,否則菊匿,最好適應(yīng)度的個體作為最優(yōu)解被返回。

通常使用最大生成數(shù)作為終止標(biāo)準(zhǔn)扮匠。

2.ResNet和DenseNet塊

ResNet[17]和DenseNet[18]是近年來提出的兩個最先進(jìn)的cnn捧请。ResNet和DenseNet的成功在很大程度上要歸功于它們各自的基石,即RBs和DBs棒搜。

圖1示出了RB的示例,RB由三個卷積層和一個跳躍連接組成活箕。在本例中,卷積層被表示為conv1琢歇、conv2和conv3佛吓。在conv1上,輸入的空間大小被1×1的較小數(shù)量的濾波器減小闺鲸,以降低conv2的計算復(fù)雜度。在conv2上埃叭,使用3×3等較大尺寸的濾波器來學(xué)習(xí)具有相同空間尺寸的特征摸恍。在conv3上,再次使用大小為1×1的濾波器赤屋,并增加空間大小以生成更多的特征立镶。將輸入(用⊕表示)作為RD的最終輸出添加到conv3的輸出中。注意类早,如果輸入和conv3的輸出的空間大小不相等媚媒,則對輸入應(yīng)用一組具有1×1大小的濾波器的卷積運算,以獲得與conv3的輸出相同的空間大小涩僻。

圖一 RB

圖2示出DB的示例缭召。為了便于介紹,我們在DB中只給出了四個卷積層逆日。實際上嵌巷,DB可以有不同數(shù)量的卷積層,這是由用戶調(diào)整的室抽。在DB中晴竞,每個卷積層不僅接收來自輸入數(shù)據(jù)的輸入,而且還接收來自所有先前卷積層的輸出狠半。此外噩死,還有用于控制同一卷積層的輸入和輸出的空間大小的參數(shù)k。如果輸入的空間大小是a神年,則輸出的空間大小是a+k已维,這是通過使用相應(yīng)數(shù)量的濾波器的卷積運算來實現(xiàn)的。

圖2 DB

文獻(xiàn)[37]和[38]已經(jīng)致力于研究RBs和DBs成功背后的機(jī)制已日,并揭示RBs和DBs能夠減輕梯度消失問題的不利影響[39]垛耳,在此基礎(chǔ)上,一個深度結(jié)構(gòu)能夠有效地學(xué)習(xí)輸入數(shù)據(jù)的層次表示飘千,進(jìn)而提高最終的分類精度堂鲜。此外,DBs中的密集連接也被聲稱能夠重用底層特征护奈,以增加cnn頂層學(xué)習(xí)到的特征的區(qū)分性[18]缔莲。主要是基于這些優(yōu)良的特性,選擇RBs和DBs作為算法的構(gòu)造塊霉旗。

Proposed algorithm

在這一部分中痴奏,詳細(xì)討論了該算法的框架及其主要組成部分蛀骇。為了便于開發(fā),本文提出的算法簡稱為AE-CNN(automatically evolution CNN)读拆,進(jìn)化后的CNN僅用于圖像分類任務(wù)擅憔。

1.算法概述:

算法1給出了AE-CNN的框架,該框架由三部分組成檐晕。首先暑诸,使用預(yù)定義的N大小隨機(jī)初始化填充(參見第1行)。然后辟灰,對個體進(jìn)行適合性評估(見第2行)个榕。其次,種群中所有個體以最大的世代數(shù)參與遺傳算法的進(jìn)化過程(見第3-14行)伞矩。最后笛洛,最好的CNN架構(gòu)是從基于適應(yīng)度的最終人群中選出的最佳個體中解碼出來的(見第15行)。在進(jìn)化過程中乃坤,一個空種群被初始化為包含子代(見第5行)苛让,然后,通過交叉和變異操作從選定的父代生成一個新的off-spring湿诊,而父代則通過二元競賽選擇(見第6-10行)狱杰;在對生成的后代的適應(yīng)度進(jìn)行評估(見第11行)之后,使用環(huán)境選擇操作(見第12行)從當(dāng)前種群(包括當(dāng)前個體和生成的后代)中選擇一個新種群作為存活到下一個進(jìn)化過程中的父解(即厅须。仿畸,下一代)。注意第6行所示的|·|符號是基數(shù)運算符朗和〈砉粒“種群初始化”、“適應(yīng)度評估”眶拉、“后代生成”和“環(huán)境選擇”的階段分別記錄在第III-B–III-E節(jié)中千埃。

算法1

2.種群初始化

種群初始化為以下進(jìn)化過程提供了包含多個個體的基本種群。一般而言忆植,所有個體以均勻分布的隨機(jī)方式初始化放可,如第II-a節(jié)所述,GAs中的每個個體代表待解決問題的候選解決方案朝刊。由于該算法中的GAs是用來尋找最佳CNN結(jié)構(gòu)的耀里,因此該算法中的每個個體都應(yīng)該表示一個CNN結(jié)構(gòu)。通常拾氓,CNN的體系結(jié)構(gòu)由多個卷積層冯挎、池層和按特定順序完全連接的層以及它們的參數(shù)設(shè)置構(gòu)成。在該算法中痪枫,基于RBs织堂、DBs和池化層構(gòu)造cnn叠艳,這是由于ResNet[17]和DenseNet[18]的顯著成功奶陈,而在該算法中沒有考慮完全連接層易阳。主要原因是全連接層由于其全連接性質(zhì)容易導(dǎo)致過擬合現(xiàn)象[40]。為了減少這種現(xiàn)象吃粒,必須采用其他技術(shù)潦俺,如dropout[41]。然而徐勃,這些技術(shù)也會產(chǎn)生額外的參數(shù)事示,需要仔細(xì)調(diào)整,這將增加算法的計算復(fù)雜度僻肖。第五節(jié)的實驗結(jié)果將證明肖爵,在不使用完全連接層的情況下,該算法仍能獲得良好的性能臀脏。算法2總結(jié)了AE-CNN種群初始化的細(xì)節(jié)劝堪。

算法2

接下來,我們將解釋第8行和第11行的細(xì)節(jié)揉稚,因為算法2的其他部分很簡單秒啦。具體來說,cnn中的池層對其輸入數(shù)據(jù)執(zhí)行降維搀玖,最常用的池操作是將輸入大小減半余境,這可以從最新的cnn[2]-[5]、[17]灌诅、[18]中看出芳来。為此,不能任意指定所使用的池層猜拾,而是遵循已計算的約束即舌,如第2行所示。例如关带,如果輸入大小為32×32侥涵,則使用的池層不能大于6個,因為6個池層會將輸入數(shù)據(jù)的維數(shù)減少到1×1宋雏,而在1×1的維數(shù)上增加一個池層會導(dǎo)致邏輯錯誤芜飘。

編碼使GAs能夠模擬現(xiàn)實世界中的問題,然后磨总,這些問題可以由GAs直接解決嗦明。編碼是通過相應(yīng)的編碼策略實現(xiàn)的,這是使用GAs的第一步蚪燕。沒有一種統(tǒng)一的編碼策略可以解決所有的問題娶牌。在該算法中奔浅,我們設(shè)計了一種新的編碼策略,旨在有效地對不同結(jié)構(gòu)的cnn進(jìn)行建模诗良。對于所使用的RBs汹桦,基于最新CNNs的配置[17]、[42]鉴裹,我們將conv2的濾波器大小設(shè)置為3×3舞骆,這也用于所使用的DBs中的卷積層。對于已使用的池層径荔,我們根據(jù)約定將步長設(shè)置為2×2督禽,這意味著進(jìn)化后的CNN中的單個池層將輸入維數(shù)減半一次。為此总处,RBs的未知參數(shù)設(shè)置是輸入和輸出的空間大小狈惫,DBs的未知參數(shù)設(shè)置是輸入和輸出的空間大小,以及k鹦马,而池層的未知參數(shù)設(shè)置只是它們的類型胧谈,即最大或平均池類型。注意菠红,DB中的卷積層的數(shù)目是已知的第岖,因為它可以由輸入和輸出的空間大小以及k導(dǎo)出。因此试溯,所提出的編碼策略基于三種不同類型的單元及其在cnn中的位置蔑滓。這些單元是RB單元(RBU)、DB單元(DBU)和池層單元(PU)遇绞。具體來說键袱,RBU和DBU分別包含多個RBs和DBs,而PU僅由單個池層組成摹闽。我們的理由是:1)將多個RBs或DBs放入一個RBU或DBU中蹄咖,與逐個堆疊RBs或DBs相比,CNN的深度可以顯著地改變付鹿,這將通過容易地改變CNN的深度來加速所提出算法的啟發(fā)式搜索澜汤;2)由單個池層組成的一個PU更大比由多個池層組成靈活,因為多個后續(xù)池層的效果可以通過疊加多個pu來實現(xiàn)舵匾。此外俊抵,為了便于算法的實現(xiàn),我們還增加了一個表示單元類型的參數(shù)坐梯』栈澹總之,RBU的編碼信息是類型、RBs的數(shù)量谎替、輸入空間大小和輸出空間大小偷溺,它們分別表示為類型、數(shù)量钱贯、輸入和輸出挫掏。另一方面,除了附加參數(shù)k之外喷舀,DBU的編碼信息與RBU的相同砍濒。在PU中淋肾,僅需要一個參數(shù)來編碼池類型硫麻。

圖3示出了在編碼包含九個單元的CNN時所提出的算法的示例。具體來說樊卓,塊左上角的每個數(shù)字表示單元在CNN中的位置拿愧。如果類型分別為1、2或3碌尔,則單位為RBU浇辜、DBU或PU。注意到所提出的編碼策略不限制每個個體的最大長度唾戚,這意味著所提出的算法可以通過所設(shè)計的可變長度編碼策略自適應(yīng)地找到具有適當(dāng)深度的最佳CNN結(jié)構(gòu)柳洋。

圖3

3.適應(yīng)度評估

個體的適應(yīng)度提供了一種定量的測量方法,表明他們?nèi)绾芜m應(yīng)環(huán)境叹坦,并根據(jù)這些個體編碼的信息和手頭的任務(wù)來計算熊镣。在AE-CNN中,個體的適應(yīng)度是基于個體編碼的體系結(jié)構(gòu)和相應(yīng)的驗證數(shù)據(jù)的分類精度募书。根據(jù)進(jìn)化算法的原理绪囱,適應(yīng)度越高的個體產(chǎn)生后代的概率越高,希望其適應(yīng)度比自身更高莹捡。為了評估適應(yīng)度鬼吵,AE-CNN中的每個個體都被解碼到相應(yīng)的CNN中,然后加入一個分類器進(jìn)行訓(xùn)練篮赢,就像普通CNN一樣齿椅。通常,廣泛使用的分類器是二元分類的logistic回歸和多重分類的softmax回歸启泣。由(1)可知涣脚,在AE-CNN中,解碼后的CNN是在訓(xùn)練數(shù)據(jù)上進(jìn)行訓(xùn)練的种远,而適應(yīng)度是CNN訓(xùn)練后對驗證數(shù)據(jù)的最佳分類精度涩澡。

該算法的適應(yīng)度評估如算法3,以相同的方式評估種群中的每個個體。首先妙同,將編碼在個體中的架構(gòu)信息轉(zhuǎn)換為具有相應(yīng)架構(gòu)(見第2行)的CNN射富,該架構(gòu)與第III-B節(jié)中介紹的編碼策略相反。其次粥帚,用與手工CNN類似的權(quán)重(見第3行)初始化CNN胰耗,然后根據(jù)提供的訓(xùn)練數(shù)據(jù)進(jìn)行訓(xùn)練(見第4行)。注意到權(quán)重初始化方法和訓(xùn)練方法分別是Xavier初始化器[43]和帶動量的SGD芒涡,它們在深度學(xué)習(xí)社區(qū)中常用柴灯。最后,根據(jù)驗證數(shù)據(jù)對訓(xùn)練后的CNN進(jìn)行評估(見第5行)费尽,并將評估的分類精度視為個體的適應(yīng)度(見第6行)赠群。

3.產(chǎn)生后代

為了產(chǎn)生一個后代種群,需要事先選擇親本個體旱幼〔槊瑁基于進(jìn)化算法的原理,通過遺傳雙親的品質(zhì)性狀柏卤,期望生成的后代比雙親具有更高的適應(yīng)度冬三。為此,應(yīng)選擇最適合的個體作為父母個體缘缚。然而勾笆,采用最好的作為父母,很容易導(dǎo)致種群多樣性的喪失桥滨,進(jìn)而導(dǎo)致種群過早收斂[44]窝爪,[45],因此该园,由于陷入局部的min-ima[48]酸舍,[49],種群的最佳性能無法實現(xiàn)[46]里初,[47]啃勉。為了解決這一問題,一般的方法是隨機(jī)選擇有前途的父母双妨。在所提出的AE-CNN算法中淮阐,基于GA群體的約定,采用二元競賽選擇[50]刁品,[51]泣特。二元競賽選擇從群體中隨機(jī)選擇兩個個體,選擇適應(yīng)度較高的個體作為單親個體挑随。通過再次重復(fù)此過程状您,選擇另一個父個體,然后,這兩個父個體執(zhí)行交叉操作膏孟。注意眯分,在每次交叉操作之后生成兩個后代,并且在每一代中生成N個后代柒桑,即弊决,在每一代中執(zhí)行N/2次交叉操作,其中N表示種群大小魁淳。

在傳統(tǒng)的GAs中飘诗,交叉操作是在兩個長度相同的個體上進(jìn)行的,這在生物學(xué)上是顯而易見的界逛±ジ澹基于該編碼策略,該算法中的個體具有不同的長度仇奶,即對應(yīng)的cnn具有不同的深度貌嫡。在這方面,不能使用傳統(tǒng)的交叉算子该溯。然而,交叉算子往往和GAs的局部搜索能力有關(guān)别惦,利用搜索空間獲得有希望的性能狈茉。由于在GAs中缺少交叉操作,最終解的性能可能會惡化掸掸。在該算法中氯庆,我們采用了單點交叉算子。原因是單點交叉在GP[31]中得到了廣泛的應(yīng)用扰付。GP是另一類重要的進(jìn)化算法堤撵,GP中的個體具有不同的長度。算法4給出了該算法的交叉操作羽莺。

注意实昨,如果需要,會自動對生成的后代進(jìn)行一些必要的更改盐固。例如荒给,當(dāng)前單元的“輸入”應(yīng)等于前一單元的“輸出”,而其他級聯(lián)調(diào)整則由此更改引起刁卜。為了更好地理解交叉操作志电,圖4中示出了示例,其中圖4(a)示出了雙親個體蛔趴。假設(shè)這兩個父個體的分離位置分別是第三和第四個單元挑辆,然后,圖4(b)示出相應(yīng)的生成子代,并且紅色數(shù)字表示表示表示有效CNN的邏輯的交叉操作之后所需的相應(yīng)變化鱼蝉。

變異操作通常在GAs中執(zhí)行全局搜索茉继,探索搜索空間以獲得有希望的性能。它在一個產(chǎn)生的后代身上起作用蚀乔,這個后代具有預(yù)先定義的概率和允許的突變類型烁竭。基于該編碼策略設(shè)計了可用的變異類型吉挣。在該算法中派撕,可用的變異類型如下:

1) 添加(添加RBU、添加DBU或?qū)U添加到所選位置)睬魂;

2) 移除(移除所選位置的單元)终吼;

3)修改(修改單元的編碼信息在選定的位置)。

詳細(xì)介紹了該算法中的變異操作在算法5中氯哮。由于所有生成的子代對變異使用相同的例程际跪,算法5出于簡單的原因僅顯示一個子代的過程。注意如果后代沒有變異喉钢,它們將保持不變姆打。此外,還將根據(jù)交叉操作中突出顯示的組成有效CNN的邏輯自動執(zhí)行一系列必要的調(diào)整肠虽。為了更好地理解突變幔戏,圖5示出了關(guān)于“添加RBU”的示例,其中圖5(a)示出了用于突變的選定個體和隨機(jī)初始化的RBU税课,圖5(b)示出了突變個體闲延。圖5(b)中的紅色數(shù)字還意味著在執(zhí)行突變時所需的改變。在提出的交叉和變異操作中韩玩,所有這些必要的改變都是自動進(jìn)行的垒玲。

4.環(huán)境選擇

在環(huán)境選擇中,從當(dāng)前種群中選擇一個N大小的個體種群找颓,即Pt∪Qt合愈,作為下一代的親本個體。理論上叮雳,一個好的種群具有收斂性和多樣性的特征[30]想暗,以防止陷入局部極小[48]、[49]和過早收斂[44]帘不、[45]说莫。在實踐中,父母個體應(yīng)該由最適合趨同的個體和適應(yīng)度在多樣性上存在顯著差異的個體組成寞焙。為此储狭,我們將有目的地選擇最適合的個體互婿,以及通過二元競賽選擇[50]、[51]選擇的N-1個個體作為父個體辽狈,以產(chǎn)生新種群的后代慈参。明確選擇下一代的最佳親本是GAs中“精英主義”機(jī)制的實現(xiàn)[52],它可以防止種群的性能隨著進(jìn)化的進(jìn)程而降低刮萌。

算法6給出了該算法中環(huán)境選擇的細(xì)節(jié)驮配。具體地說,給定當(dāng)前種群Pt和生成的后代種群Qt着茸,用第2-6行所示的二元錦標(biāo)賽選擇來選擇N個個體壮锻。在那之后,最好的個人從Pt∪Qt(見第7行)中選擇pbest(即具有最高適應(yīng)度的個體)涮阔,然后檢查pbest是否已被選入Pt+1猜绣。從Pt+1中選擇的隨機(jī)值,如果Pt+1中不存在敬特,則將被pbest替換(見第8-10行)掰邢。注意,Qt中的后代應(yīng)該在環(huán)境選擇之前對其適應(yīng)度進(jìn)行評估伟阔,因為二元競賽選擇基于適應(yīng)度工作辣之。

實驗設(shè)計

實驗旨在驗證所提出的自動CNN架構(gòu)設(shè)計算法是否能夠在圖像分類任務(wù)上取得良好的性能。在本節(jié)中减俏,我們將首先介紹所選擇的對等競爭對手(在第IV-A節(jié)中)召烂,并對所提出算法的性能進(jìn)行比較,然后重點介紹所采用的基準(zhǔn)數(shù)據(jù)集(在第IV-B節(jié)中)和參數(shù)設(shè)置(在第IV-C節(jié)中)娃承。

A. Peer Competitors

為了證明該算法的優(yōu)越性,選擇不同的競爭對手進(jìn)行比較怕篷。特別是历筝,所選擇的同行競爭者可以分為三類。

第一類包括最先進(jìn)的CNN廊谓,其架構(gòu)是手工制作的梳猪,具有廣泛的領(lǐng)域?qū)I(yè)知識:DenseNet[18]、ResNet[17]蒸痹、Maxout[53]春弥、VGG[54]、Network in Network[55]叠荠、Highway Network[56]匿沛、All CNN[57]和FractalNet[58]。此外榛鼎,考慮到ResNet的良好性能逃呼,我們在實驗中使用了兩個不同的版本鳖孤,分別是具有101層的ResNet和具有1202層的ResNet,分別標(biāo)記為ResNet(深度=101)和ResNet(深度=1202)抡笼。由于其出色的表現(xiàn)苏揣,近年來,這一類別的大多數(shù)競爭對手都贏得了大型視覺挑戰(zhàn)賽的冠軍[59]推姻。選擇這些最新CNN的目的是驗證所提出的自動CNN體系結(jié)構(gòu)設(shè)計算法是否能夠顯示手工CNN的競爭性能平匈。

第二部分介紹了具有半自動方法的CNN體系結(jié)構(gòu)設(shè)計算法,包括遺傳CNN[19]藏古、層次進(jìn)化[20]增炭、EAS[21]和Block-QNN-S[22]。

第三種是大規(guī)模Evo-lution[23]校翔、CGP-CNN[24]弟跑、NAS[25]和MetaQNN[26],它們以完全自動的方式設(shè)計CNN架構(gòu)防症。

B. Benchmark Data Sets(基準(zhǔn)數(shù)據(jù)集)

cnn通常通過觀察分類性能來執(zhí)行圖像分類任務(wù)以比較其性能孟辑。對于最新的CNNs,最常用的圖像分類基準(zhǔn)數(shù)據(jù)集是CIFAR10和CIFAR100[29]蔫敲,而對于CNN體系結(jié)構(gòu)設(shè)計算法饲嗽,由于CIFAR100對于手頭的分類任務(wù)有大量的類,因此它的挑戰(zhàn)性更大奈嘿,所以廣泛使用的基準(zhǔn)數(shù)據(jù)集只有CIFAR10貌虾。考慮到采用的競爭對手涵蓋了最先進(jìn)的cnn和體系結(jié)構(gòu)設(shè)計算法裙犹,實驗中選擇了CIFAR10和CIFAR100作為基準(zhǔn)數(shù)據(jù)集尽狠。

CIFAR10和CIFAR100是兩種應(yīng)用廣泛的圖像分類基準(zhǔn)數(shù)據(jù)集,用于識別鳥類叶圃、船只和飛機(jī)等自然目標(biāo)袄膏。每組有50000張訓(xùn)練圖像和10000張測試圖像。CIFAR10與CIFAR100的區(qū)別在于掺冠,CIFAR10是10類分類沉馆,而CIFAR100是100類分類。然而德崭,每一個基準(zhǔn)都有幾乎相同數(shù)量的每一類訓(xùn)練圖像斥黑,即每一類CIFAR10有5000個訓(xùn)練圖像,而CIFAR100有500個訓(xùn)練圖像眉厨。

圖6示出了用于參考的來自每個基準(zhǔn)的圖像锌奴,其中每一行中的圖像表示來自同一類的圖像,并且左列中的單詞表示對應(yīng)的類名缺猛。從圖6可以看出缨叫,在每個圖像中要識別的對象彼此具有不同的分辨率椭符,與背景混合,并且占據(jù)不同的位置耻姥,這通常增加了正確識別對象的難度销钝。基于cho-sen對等競爭對手的慣例[17]-[26]琐簇,CIFAR10和CIFAR100在輸入到所提出的算法之前蒸健,通過在一幅圖像的每一側(cè)填充四個零來增強(qiáng),然后隨機(jī)裁剪到原始大小婉商,然后隨機(jī)水平翻轉(zhuǎn)似忧。

C. Parameter Settings

相比之下,我們提取的是同行競爭對手在其開創(chuàng)性論文中報告的結(jié)果丈秩,而不是自己執(zhí)行的結(jié)果盯捌。原因是報告的結(jié)果通常是最好的。這樣做蘑秽,就不需要設(shè)置同行競爭對手的參數(shù)饺著。對于所提出的算法,我們遵循所有參數(shù)都是根據(jù)它們的常用值設(shè)置的原則肠牲,以降低研究人員的難度幼衰,他們希望使用所提出的算法為他們的研究數(shù)據(jù)尋找最佳CNN架構(gòu),即使他們沒有GAs方面的專業(yè)知識缀雳。特別地渡嚣,將種群規(guī)模和最大世代數(shù)設(shè)為20,交叉和變異概率分別設(shè)為0.9和0.2肥印。根據(jù)機(jī)器學(xué)習(xí)社區(qū)的慣例识椰,驗證數(shù)據(jù)以1/5的比例從訓(xùn)練數(shù)據(jù)中隨機(jī)分離出來。最后深碱,在相同的測試數(shù)據(jù)上對所有分類錯誤率進(jìn)行評估裤唠,以進(jìn)行比較。

在評估適應(yīng)度時莹痢,每個人都接受128批的SGD訓(xùn)練。SGD的參數(shù)設(shè)置也基于同行競爭對手的約定墓赴。具體來說竞膳,動量設(shè)定為0.9。學(xué)習(xí)率初始化為0.01诫硕,但在第二個到第150個歷元期間的預(yù)熱設(shè)置為0.1坦辟,并在第250個歷元除以10進(jìn)行縮放。重量衰減設(shè)置為5×10-4章办。此外锉走,如果在訓(xùn)練過程中記憶不清滨彻,則個人的適應(yīng)度設(shè)置為零。當(dāng)進(jìn)化過程結(jié)束時挪蹭,在相同SGD設(shè)置的原始訓(xùn)練數(shù)據(jù)上重新訓(xùn)練最佳個體亭饵,并報告測試數(shù)據(jù)上的錯誤率以供比較×豪鳎考慮到該算法的啟發(fā)性和昂貴的計算成本辜羊,對最優(yōu)個體進(jìn)行了5次獨立運行的訓(xùn)練。由于所有被選擇進(jìn)行比較的同行競爭對手只顯示他們的最佳結(jié)果词顾,無論他們執(zhí)行了多少次八秃,因此本文在五個獨立試驗中給出了該算法的最佳結(jié)果,以便進(jìn)行公平的比較肉盹。

此外昔驱,根據(jù)DenseNet的設(shè)計,DB中k的可用選擇為12上忍、20和40骤肛,并且DB中的最大卷積層被指定為10(當(dāng)k=12和k=20時)和5(當(dāng)k=40時)。CNN中rbu和dbu的最大數(shù)目都設(shè)置為4睡雇。DBU和RBU中的DBs和RBs的數(shù)目分別設(shè)置為3到10萌衬。注意,這些設(shè)置主要基于我們可用的計算資源它抱,因為超出這些設(shè)置的任何數(shù)字都很容易從內(nèi)存中呈現(xiàn)出來秕豫。如果用戶的計算平臺配備了更強(qiáng)大的gpu,他們可以將數(shù)字設(shè)置為任意數(shù)字观蓄。該算法在Nvidia-GeForce-GTX-1080ti三塊GPU卡上進(jìn)行了實驗混移,并在PyTorch[60]設(shè)計的基于GPU的并行框架上實現(xiàn)。這些代碼在https://gitlab.ecs.vuw.ac.nz/yanan/ea-cnn上提供侮穿。

實驗結(jié)果

在實驗中歌径,我們研究了所提出的算法的性能,不僅是分類誤差亲茅,而且參數(shù)的數(shù)量回铛,以及計算復(fù)雜度,以便與所選擇的對等競爭對手進(jìn)行綜合比較(如第V-a節(jié)所示)克锣。由于很難從理論上分析每個競爭對手的計算復(fù)雜度茵肃,因此使用消耗的“GPU天數(shù)”作為計算復(fù)雜度的指標(biāo)。具體地說袭祟,GPU天數(shù)是通過將使用的GPU卡的數(shù)量與為尋找最佳架構(gòu)而執(zhí)行的算法的天數(shù)相乘來計算的验残。例如,針對CIFAR10數(shù)據(jù)集巾乳,所提出的算法在三個GPU卡上執(zhí)行了九天您没,因此鸟召,相應(yīng)的GPU天數(shù)是27,即用九(天)乘以三(使用的GPU卡)氨鹏。顯然欧募,目前最先進(jìn)的cnn手工制作沒有關(guān)于“GPU日”的數(shù)據(jù),此外喻犁,我們還提供了該算法在所選基準(zhǔn)數(shù)據(jù)集上尋找最佳架構(gòu)的進(jìn)化軌跡槽片,這有助于讀者了解該算法是否與所采用的算法收斂參數(shù)設(shè)置(見第V-B節(jié))。最后肢础,在第V-C節(jié)中提供了所發(fā)現(xiàn)的最佳架構(gòu)还栓,這可能為研究人員手工制作CNN架構(gòu)提供有用的知識。

A传轰、 性能概述

表1顯示了所提出算法的實驗結(jié)果和所選擇的同行競爭對手剩盒。為了便于調(diào)查比較,表一被六條水平線分成五行慨蛙。第一行表示每個列的標(biāo)題辽聊,第二行、第三行和第四行表示最先進(jìn)的同行競爭對手期贫,其架構(gòu)分別是手動設(shè)計跟匆、半自動和自動CNN架構(gòu)設(shè)計算法。第五行給出了該算法的結(jié)果通砍,該算法是CNN體系結(jié)構(gòu)設(shè)計中的一種自動算法玛臂。此外链瓦,表1中的符號“—”表示相應(yīng)的同行競爭對手沒有公開報告結(jié)果素邪。

如表一所示阱扬,AE-CNN的表現(xiàn)優(yōu)于為CIFAR10手工設(shè)計的所有最先進(jìn)的同行競爭對手护姆。具體來說,AE-CNN的分類誤差比DenseNet(k=12)和FractalNet低約1.0%佑惠,比ResNet(depth=101)径筏、VGG和All-CNN低約2.1%漏峰,比ResNet(depth=1202)和High-way網(wǎng)絡(luò)低3.5%膜蠢,甚至比Maxout和Network-in網(wǎng)絡(luò)低5.0%堪藐。在CIFAR100上,AE-CNN的分類錯誤率顯著低于Maxout, Network in Network,Highway Network, and All-CNN挑围,分類錯誤率略低于DenseNet(k=12)庶橱、ResNet(深度=101)、ResNet(深度=1202)和VGG贪惹,與FractalNet的性能相似,但仍優(yōu)于FractalNet寂嘉。AE-CNN在CIFAR10和CIFAR100上演化出的CNN參數(shù)數(shù)目均大于DenseNet(k=12)和ResNet(depth=101)奏瞬,但遠(yuǎn)小于ResNet(depth=1202)枫绅、VGG和FractalNet。

與半自動同行競爭對手相比硼端,AE-CNN在CIFAR10和CIFAR100上的表現(xiàn)都要比遺傳CNN好得多并淋。盡管分層進(jìn)化在CIFAR10上顯示出比AE-CNN更好的性能,但是AE-CNN只消耗1/10gpu天珍昨,而在CIFAR10上县耽,分層進(jìn)化只消耗1/10gpu天。與AE-CNN相比镣典,Block-QNN-S在CIFAR10上的性能稍差兔毙,但在CIFAR100上的性能稍好,而AE-CNN消耗的GPU天數(shù)是Block-QNN-S消耗的GPU天數(shù)的1/3兄春,而且AE-CNN發(fā)現(xiàn)的最佳CNN比Block-QNN-S的參數(shù)少澎剥,EAS和AE-CNN在CIFAR10上的分類誤差幾乎相同,而AE-CNN進(jìn)化出的最佳CNN只有2.0M的參數(shù)赶舆,僅為EAS的1/11哑姚。綜上所述,與半自動同行競爭對手相比芜茵,AE-CNN顯示了競爭性能叙量,但參數(shù)數(shù)量明顯較少。需要注意的是九串,在使用這類算法時绞佩,仍然需要領(lǐng)域?qū)I(yè)知識。例如蒸辆,對于CIFAR10上最好的CNN征炼,EAS只需要10個GPU天,而CIFAR10是基于已知性能相當(dāng)好的基本CNN躬贡。因此谆奥,就所消耗的GPU天數(shù)進(jìn)行比較與所提出的AE-CNN算法是不公平的,該算法是完全自動的拂玻,無需使用任何人力專業(yè)知識和/或額外資源酸些。

在自動競爭對手中,無論是在CIFAR10還是CIFAR100數(shù)據(jù)集上檐蚜,AE-CNN在分類錯誤魄懂、參數(shù)個數(shù)和所消耗的GPU天數(shù)方面都顯示出最佳性能。具體來說闯第,AE-CNN在CIFAR10上的分類錯誤率為4.3%市栗,而來自競爭對手的最佳和最差分類錯誤率分別為5.4%和6.92%。此外,AE-CNN的分類誤差也比MetaQNN低填帽。在CIFA100上蛛淋,AE-CNN的分類誤差比大規(guī)模進(jìn)化的分類誤差低2.15%,參數(shù)個數(shù)為540萬篡腌,比大規(guī)模進(jìn)化的分類誤差(440萬)小得多褐荷。此外,AE-CNN比CIFAR10和CIFAR100上的大規(guī)模進(jìn)化嘹悼、NAS和MetaQNN消耗更少的GPU天叛甫。比較表明,該算法在所屬的自動對等競爭對手中取得了最好的性能杨伙。

AE-CNN優(yōu)于大規(guī)模Evo-lution其监、CGP-CNN、NAS和Meta-QNN的理由如下缀台。首先棠赛,大規(guī)模進(jìn)化不采用交叉算子,它提供了局部搜索能力膛腐。因此睛约,基于遺傳算法的設(shè)計會降低其性能。其次哲身,CGP-CNN采用固定長度編碼策略來設(shè)計最佳的CNN架構(gòu)辩涝。為了使編碼策略有效,CGP-CNN在體系結(jié)構(gòu)設(shè)計中必須預(yù)先定義CNN的最大長度勘天。從文獻(xiàn)[24]可以看出怔揩,CGP-CNN的預(yù)定最大長度小于AE-CNN確定的最佳長度。最后脯丝,基于強(qiáng)化學(xué)習(xí)設(shè)計了NAS和Meta-QNN商膊。由于在使用強(qiáng)化學(xué)習(xí)方法時不計算適應(yīng)度值,因此基于強(qiáng)化學(xué)習(xí)的方法在相同性能下通常比遺傳算法消耗更多的計算資源[7]宠进。預(yù)期晕拆,在可用的計算資源下,NAS和元QNN的每種形式都比AE-CNN差材蹬。

B实幕、 演化軌跡

當(dāng)進(jìn)化算法用于解決現(xiàn)實問題時,我們通常希望知道它們在終止時是否已經(jīng)收斂堤器。更好的觀察方法是繪制進(jìn)化軌跡昆庇。在這一部分中,我們提供并分析了所提出的算法在所研究的基準(zhǔn)數(shù)據(jù)集上的演化軌跡闸溃。為了達(dá)到這一目的整吆,我們首先收集每一代中每個個體的分類精度拱撵,然后繪制統(tǒng)計結(jié)果。

圖7示出了所提出算法的進(jìn)化軌跡掂为,其中圖7(a)和(b)分別示出了CIFAR10和CIFAR100上的進(jìn)化軌跡裕膀。在圖7中,水平軸表示代數(shù)勇哗,垂直軸表示分類精度;紅線表示同一代個體的平均分類精度寸齐,而淺綠色區(qū)域由每一代個體的最佳和最差分類精度輪廓欲诺。

從圖7(a)可以看出,從第一代到第三代渺鹦,平均分類精度急劇增加扰法,然后隨著進(jìn)化過程的進(jìn)行而穩(wěn)步提高,直到第14代毅厚;從那時起塞颁,平均分類精度從約75%顯著增加到約95%。最后吸耿,提出的算法在終止時收斂祠锣。從淺綠色區(qū)域的下邊界可以看出,前兩代的分類精度最差為零咽安,這是因為隨機(jī)初始化的體系結(jié)構(gòu)由于內(nèi)存不足而無法在使用的GPU上運行伴网;從第三代開始,內(nèi)存不足的個體由于其不具競爭力的適應(yīng)度而從種群中被淘汰妆棒,并且分類精度穩(wěn)步提高澡腾,直到算法終止,盡管在第四代時有例外糕珊。從淺綠色區(qū)域的上邊界可以看出动分,隨著進(jìn)化過程中平均分類精度的不斷提高,最優(yōu)性能幾乎保持不變红选。此外澜公,最優(yōu)分類精度和最差分類精度之間的差異也變小,這意味著種群收斂到一個穩(wěn)定狀態(tài)纠脾。

從圖7(b)也可以看到類似的情況玛瘸。具體來說,從第一代到第四代苟蹈,平均分類準(zhǔn)確率從約30%提高到約45%糊渊,而在第三代則略有下降。從第四代開始慧脱,平均分類精度一直提高到第14代渺绒,然后從第14代的50%左右提高到第17代的79%左右;之后,平均分類精度收斂到進(jìn)化過程結(jié)束宗兼。在前三代中躏鱼,由于隨機(jī)初始化的失憶個體,最差分類精度保持在零殷绍;從第四代開始染苛,除第十代和第十五代外,最差分類精度提高到第二十代主到。從最優(yōu)分類精度的演化軌跡可以看出茶行,最優(yōu)分類精度的提高趨勢與平均分類精度的提高趨勢基本一致,同時也體現(xiàn)了第17代的收斂性能登钥。

從圖7(A)和圖7(b)可以看出一個共同的趨勢畔师,即最佳分類精度(即淺綠色區(qū)域的上邊界)不會降低,這是通過第III-e節(jié)詳述的利用精英主義實現(xiàn)的牧牢,即具有最佳適應(yīng)度的個體無條件地保留到下一代看锉。綜上所述,該算法在GAs的默認(rèn)參數(shù)設(shè)置范圍內(nèi)收斂塔鳍,即使用戶沒有GAs方面的專業(yè)知識伯铣,也可以幫助用戶使用該算法為自己的數(shù)據(jù)找到最佳的CNN架構(gòu)。但是献幔,如果有更多的計算資源可用懂傀,則最大生成數(shù)和種群大小可以設(shè)置為更大的數(shù)。

在本節(jié)中蜡感,表II和表III分別提供了由該算法在CIFAR10和CIFAR100上找到的最佳CNN架構(gòu)蹬蚁。

從表II和III可以看出,CIFAR10上的最佳架構(gòu)由9個單元組成郑兴,這些單元是按照第III-B節(jié)中提出的編碼策略設(shè)計的犀斋,總共有38層,由34個卷積層和4個池層組成情连;而CIFAR100上的最佳架構(gòu)由6個單元組成叽粹,由21個單元組成層,包含17個卷積層和4個池層却舀。

與基于DBs或RBs的最新cnn相比虫几,基于這兩個塊的自動發(fā)現(xiàn)體系結(jié)構(gòu)具有更簡單的體系結(jié)構(gòu)和更好的性能。這可以作為手工制作CNN架構(gòu)的先驗知識挽拔,其中集成塊可能更有效辆脸。此外,CIFAR100通常被視為比CIFAR10更復(fù)雜的基準(zhǔn)螃诅,研究人員在處理CIFAR100時通撤惹猓考慮比CIFAR10具有更多層的CNN架構(gòu)状囱。然而,根據(jù)表II和表III所示的架構(gòu)倘是,CIFAR100的最佳架構(gòu)的層數(shù)比CIFAR10的層數(shù)要少得驚人亭枷。為此,通過進(jìn)化搜索找到最佳的體系結(jié)構(gòu)也可以提供有用的領(lǐng)域?qū)I(yè)知識搀崭,這與我們的常識形成了對比叨粘。


本文的目標(biāo)是開發(fā)一種基于GAs的CNN體系結(jié)構(gòu)設(shè)計算法,該算法能夠在有限的計算資源的基礎(chǔ)上瘤睹,以完全自動化的方式設(shè)計/搜索/學(xué)習(xí)/進(jìn)化給定任務(wù)的最佳CNN體系結(jié)構(gòu)宣鄙。該編碼策略建立在具有可變長度表示的最新塊上,提出了可變長度個體的交叉算子和相應(yīng)的變異算子默蚌,成功地實現(xiàn)了這一目標(biāo)。在積木的基礎(chǔ)上苇羡,可以加快CNN的架構(gòu)設(shè)計绸吸。對于不同復(fù)雜度的任務(wù),可變長度的個體可以自適應(yīng)地進(jìn)化出合適的CNN深度设江。所提出的交叉算子和所設(shè)計的變異算子為算法提供了有效的局部搜索和全局搜索能力锦茁,從而使算法能夠找到最佳的CNN結(jié)構(gòu)。該算法在CIFAR10和CIFAR100圖像分類數(shù)據(jù)集上進(jìn)行了驗證叉存,對比了人工設(shè)計的9個最新CNN码俩、4個對等競爭對手半自動設(shè)計CNN體系結(jié)構(gòu)和5個對等競爭對手全自動設(shè)計CNN體系結(jié)構(gòu)。結(jié)果表明歼捏,提出的算法優(yōu)于所有最新的CNNs算法手工制作和所有來自自動分類的同行競爭者在分類錯誤率方面稿存。此外,與同類競爭對手相比瞳秽,該算法所需的GPU時間也要少得多瓣履。此外,該算法還表現(xiàn)出了與半自動競爭對手的競爭性能练俐。今后的工作重點是切實加快體質(zhì)評價工作袖迎。

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市腺晾,隨后出現(xiàn)的幾起案子燕锥,更是在濱河造成了極大的恐慌,老刑警劉巖悯蝉,帶你破解...
    沈念sama閱讀 221,695評論 6 515
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件归形,死亡現(xiàn)場離奇詭異,居然都是意外死亡泉粉,警方通過查閱死者的電腦和手機(jī)连霉,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 94,569評論 3 399
  • 文/潘曉璐 我一進(jìn)店門榴芳,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人跺撼,你說我怎么就攤上這事窟感。” “怎么了歉井?”我有些...
    開封第一講書人閱讀 168,130評論 0 360
  • 文/不壞的土叔 我叫張陵柿祈,是天一觀的道長。 經(jīng)常有香客問我哩至,道長躏嚎,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 59,648評論 1 297
  • 正文 為了忘掉前任菩貌,我火速辦了婚禮卢佣,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘箭阶。我一直安慰自己虚茶,他們只是感情好,可當(dāng)我...
    茶點故事閱讀 68,655評論 6 397
  • 文/花漫 我一把揭開白布仇参。 她就那樣靜靜地躺著嘹叫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪诈乒。 梳的紋絲不亂的頭發(fā)上罩扇,一...
    開封第一講書人閱讀 52,268評論 1 309
  • 那天,我揣著相機(jī)與錄音怕磨,去河邊找鬼喂饥。 笑死,一個胖子當(dāng)著我的面吹牛癌压,可吹牛的內(nèi)容都是我干的仰泻。 我是一名探鬼主播,決...
    沈念sama閱讀 40,835評論 3 421
  • 文/蒼蘭香墨 我猛地睜開眼滩届,長吁一口氣:“原來是場噩夢啊……” “哼集侯!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起帜消,我...
    開封第一講書人閱讀 39,740評論 0 276
  • 序言:老撾萬榮一對情侶失蹤棠枉,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后泡挺,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體辈讶,經(jīng)...
    沈念sama閱讀 46,286評論 1 318
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 38,375評論 3 340
  • 正文 我和宋清朗相戀三年娄猫,在試婚紗的時候發(fā)現(xiàn)自己被綠了贱除。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片生闲。...
    茶點故事閱讀 40,505評論 1 352
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖月幌,靈堂內(nèi)的尸體忽然破棺而出碍讯,到底是詐尸還是另有隱情,我是刑警寧澤扯躺,帶...
    沈念sama閱讀 36,185評論 5 350
  • 正文 年R本政府宣布捉兴,位于F島的核電站,受9級特大地震影響录语,放射性物質(zhì)發(fā)生泄漏倍啥。R本人自食惡果不足惜,卻給世界環(huán)境...
    茶點故事閱讀 41,873評論 3 333
  • 文/蒙蒙 一澎埠、第九天 我趴在偏房一處隱蔽的房頂上張望虽缕。 院中可真熱鬧,春花似錦蒲稳、人聲如沸彼宠。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,357評論 0 24
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至拙已,卻和暖如春决记,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背倍踪。 一陣腳步聲響...
    開封第一講書人閱讀 33,466評論 1 272
  • 我被黑心中介騙來泰國打工系宫, 沒想到剛下飛機(jī)就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人建车。 一個月前我還...
    沈念sama閱讀 48,921評論 3 376
  • 正文 我出身青樓扩借,卻偏偏與公主長得像,于是被迫代替她去往敵國和親缤至。 傳聞我的和親對象是個殘疾皇子潮罪,可洞房花燭夜當(dāng)晚...
    茶點故事閱讀 45,515評論 2 359

推薦閱讀更多精彩內(nèi)容