陳禹行,胡海根,劉一波,郝鵬翼,李小薪,周乾偉
(浙江工業(yè)大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院,杭州 310000)
最近幾年人工智能技術(shù)在眾多領(lǐng)域內(nèi)都取得了令人矚目的成就,尤其是在圖像領(lǐng)域,卷積神經(jīng)網(wǎng)絡(luò)通過其強(qiáng)大的特征提取能力和權(quán)值共享機(jī)制不斷刷新在圖像分類,圖像檢測(cè)任務(wù)中的識(shí)別率.這使得越來越多的學(xué)者和工程師們都開始對(duì)基于卷積神經(jīng)網(wǎng)絡(luò)的工業(yè)應(yīng)用產(chǎn)生了強(qiáng)烈的興趣.以無線傳感器網(wǎng)絡(luò)為例,傳統(tǒng)的無線傳感器通常利用聲音或震動(dòng)傳感器來檢測(cè)并識(shí)別野外場(chǎng)景下的多個(gè)相鄰目標(biāo),聲音或震動(dòng)傳感器雖然具有如低成本,低能耗以及算法復(fù)雜度相對(duì)較低等有優(yōu)點(diǎn),然而在面對(duì)混合目標(biāo)時(shí)則表現(xiàn)出分辨率不夠這一嚴(yán)重不足,因此難以實(shí)現(xiàn)目標(biāo)的精細(xì)分類.為了克服這一不足,可以在無線傳感器網(wǎng)絡(luò)中引入相機(jī)來加以輔助,這在當(dāng)前已經(jīng)證明對(duì)密集目標(biāo)識(shí)別是一種有效的方式,因此如果能將卷積神經(jīng)網(wǎng)絡(luò)部署于無線傳感器網(wǎng)絡(luò)中并利用其來對(duì)低分辨率的圖像信息加以處理,則可以有效的幫助解決密集目標(biāo)的精細(xì)分類問題,從而推動(dòng)無線傳感器網(wǎng)絡(luò)下野外多目標(biāo)識(shí)別的進(jìn)一步發(fā)展.然而為了確保卷積神經(jīng)網(wǎng)絡(luò)符合無線傳感器網(wǎng)絡(luò)的實(shí)際使用條件,模型本身必須服從許多限制條件,如模型的乘法次數(shù)必須能夠滿足無線傳感器節(jié)點(diǎn)的運(yùn)行要求,并且要保證模型在運(yùn)行時(shí)有著良好的性能表現(xiàn).但是現(xiàn)有的模型并不滿足上述要求,所以如何有效構(gòu)造出適用于無線傳感器網(wǎng)絡(luò)等特殊應(yīng)用場(chǎng)景下的卷積網(wǎng)絡(luò)模型已經(jīng)成為領(lǐng)域內(nèi)一個(gè)迫切需要解決的問題.
目前在面向無線傳感器網(wǎng)絡(luò)等特殊應(yīng)用場(chǎng)景下開展的深度卷積神經(jīng)網(wǎng)絡(luò)構(gòu)建工作相對(duì)較少,本文通過收集,調(diào)研了大量相關(guān)的研究資料得到如下結(jié)論.當(dāng)前針對(duì)該問題主要存在以下兩種解決方案:基于手工設(shè)計(jì)和基于隨機(jī)優(yōu)化.基于手工設(shè)計(jì)的思想是借鑒,吸收當(dāng)前領(lǐng)先小型網(wǎng)絡(luò)的結(jié)構(gòu)設(shè)計(jì)方案,通過額外增加或改進(jìn)現(xiàn)有的設(shè)計(jì)方案來獲得符合要求的神經(jīng)網(wǎng)絡(luò).大多數(shù)該方向的工作都會(huì)參考主流的殘差網(wǎng)絡(luò)(Residual Network[1]),稠密網(wǎng)絡(luò)(Dense Network[2]),移動(dòng)網(wǎng)絡(luò)(Mobile Network[3])等包含跨層連接的殘差結(jié)構(gòu),然后根據(jù)具體的工業(yè)限制條件再進(jìn)一步統(tǒng)籌規(guī)劃模型的各個(gè)組件成分.基于手工設(shè)計(jì)的方法能夠直接,快速地設(shè)計(jì)出神經(jīng)網(wǎng)絡(luò)模型,然而其得到的模型往往需要消耗大量的時(shí)間,人力成本,此外這種方式還需要涉及大量模型的調(diào)參技巧且設(shè)計(jì)的模型結(jié)構(gòu)過于單一.基于隨機(jī)優(yōu)化的核心是通過充分利用目前越來越廉價(jià)的計(jì)算資源,將模型結(jié)構(gòu)的設(shè)計(jì)過程類比成自然界中物種的演化過程.拓?fù)浜蜋?quán)重演化人工神經(jīng)網(wǎng)絡(luò)(Topology and Weight Evolving Artificial Neural Network[4])是其中最為廣泛應(yīng)用的方法,這種方式可以實(shí)現(xiàn)模型從無到有,從簡(jiǎn)到繁的演化.由于其首次構(gòu)造的模型往往都是非常精簡(jiǎn)的,后續(xù)的演化過程中都將基于精簡(jiǎn)模型繼續(xù)迭代優(yōu)化,所以其構(gòu)造的最優(yōu)結(jié)構(gòu)往往具有較小的網(wǎng)絡(luò)規(guī)模.基于隨機(jī)優(yōu)化的方法能夠自動(dòng)地構(gòu)造出模型,相比于基于手工設(shè)計(jì)的方法有著更大的潛力和發(fā)展空間.特別需要說明的是:目前相關(guān)文獻(xiàn)[5-8]的工作都僅僅只考慮演化出單一條件下的卷積網(wǎng)絡(luò)模型并沒有考慮多約束條件下的情況,如何找到一種方法能夠克服,規(guī)避現(xiàn)有遺傳演化算法的弊端同時(shí)構(gòu)造出特定應(yīng)用場(chǎng)景下的深度卷積神經(jīng)網(wǎng)絡(luò)是未來所需要重點(diǎn)考慮的.
本文提出了一種面向深度卷積網(wǎng)絡(luò)的多目標(biāo)神經(jīng)演化算法,該方法能夠建立多約束條件下的神經(jīng)演化與深度卷積模型結(jié)構(gòu)自動(dòng)探索過程的聯(lián)系,可以快速,有效的找到符合給定約束條件下的卷積網(wǎng)絡(luò)模型.本文的具體貢獻(xiàn)如下:
1)將傳統(tǒng)神經(jīng)演化中基因編碼翻譯為卷積層的參數(shù)配置并引入線性規(guī)劃方法進(jìn)行求解,使得演化算法可以通過基因自動(dòng)調(diào)整各個(gè)網(wǎng)絡(luò)層的具體配置,從而保證演化生成卷積模型的可靠性和多樣性.
2)提出了一種面向深度卷積網(wǎng)絡(luò)的多目標(biāo)神經(jīng)演化算法,通過將深度卷積神經(jīng)網(wǎng)絡(luò)表達(dá)成有向圖,使用基于增強(qiáng)拓?fù)涞纳窠?jīng)演化(Neuro-Evolution of Augmenting Topologies[9]),帶精英策略的非支配排序遺傳算法(Non-Dominated Sorting Genetic Algorithm-II[10])算法以及面向卷積神經(jīng)網(wǎng)絡(luò)的適應(yīng)度評(píng)估函數(shù)實(shí)現(xiàn)了深度、計(jì)算量和識(shí)別率的同時(shí)優(yōu)化.
本文第2節(jié)論述了相關(guān)工作;第3節(jié)論述了面向深度卷積神經(jīng)網(wǎng)絡(luò)的多目標(biāo)神經(jīng)演化算法;第4節(jié)進(jìn)行了相關(guān)實(shí)驗(yàn);最后總結(jié)全文.
目前領(lǐng)域內(nèi)對(duì)模型構(gòu)造問題的解決方案更多選擇的是基于隨機(jī)優(yōu)化的方法,該方法的核心內(nèi)容是基于自然選擇的神經(jīng)演化算法.此外為了解決構(gòu)造出適用于無線傳感器網(wǎng)絡(luò)的卷積神經(jīng)網(wǎng)絡(luò)問題還會(huì)涉及到多目標(biāo)優(yōu)化算法.本節(jié)接下來的內(nèi)容將圍繞上述兩方面的已有工作進(jìn)行詳細(xì)闡述.
NEAT算法利用有向圖表示神經(jīng)網(wǎng)絡(luò),一個(gè)節(jié)點(diǎn)代表一個(gè)神經(jīng)元,連接兩個(gè)節(jié)點(diǎn)的有向邊代表神經(jīng)突觸.它利用基因編碼、基于歷史標(biāo)記的基因跟蹤、新穎物種保持以及最小結(jié)構(gòu)增長(zhǎng)技術(shù)改善了TWEANN中存在的信息編碼、物種競(jìng)爭(zhēng),多樣性維持以及初始化種群等問題.該方法不僅可以提升傳統(tǒng)神經(jīng)演化算法的效率,而且找到的解具有更強(qiáng)的魯棒性.文獻(xiàn)[11,12]的研究工作則對(duì)上述工作進(jìn)行了擴(kuò)展,提出了基于Hyper-NEAT的方法(Hypercube-based Neuro-Evolution of Augmenting Topologies),這類方法通過引入額外的幾何形狀信息來改善傳統(tǒng)拓?fù)溥^程節(jié)點(diǎn)連接中的權(quán)重分配模式,可以把大型人工神經(jīng)網(wǎng)絡(luò)的構(gòu)造問題轉(zhuǎn)換為高維空間的幾何圖形構(gòu)造問題,然而如果轉(zhuǎn)換后的節(jié)點(diǎn)在高維空間內(nèi)過于分散則其效果會(huì)不盡如人意.
多目標(biāo)優(yōu)化算法在解決多優(yōu)化問題中一直扮演著重要的角色.目前對(duì)多目標(biāo)優(yōu)化算法的研究方向可以分為以下3大類:基于支配的方法,基于指標(biāo)的方法和基于分解的方法.基于支配的方法(Domination-Based method[13,14]的核心是通過數(shù)學(xué)上定義的支配原則(大部分采用的是 Pareto Domination)去評(píng)估不同解的適應(yīng)度.此外為了保證解的多樣性通常還需要設(shè)計(jì)多樣性的保持方案.然而由于現(xiàn)實(shí)條件的限制,使用該方法解決具體問題時(shí)會(huì)面臨一個(gè)問題:在多約束的條件下,種群中所有的解存在相互競(jìng)爭(zhēng)關(guān)系,如果存在一種占據(jù)絕對(duì)優(yōu)勢(shì)的解,則其一定無法保證同時(shí)滿足多約束條件.因此此類方法雖然使用了基于支配的原則求解問題但在實(shí)際情況中其最后找到的最優(yōu)解是非支配的,這在一定程度上會(huì)降低種群在進(jìn)化過程中的選擇壓力同時(shí)也會(huì)影響種群整體的進(jìn)化進(jìn)程.基于指標(biāo)的方法(Indicator -Based method[15,16])是通過使用一些指定的性能指標(biāo)(如超體積Hyper-volume)來評(píng)估解決方案在多目標(biāo)演化算法中收斂和多樣性上所做出的貢獻(xiàn),從而獲得一個(gè)衡量解決方案表現(xiàn)的適應(yīng)度值.然而這類方法的計(jì)算成本與選定的評(píng)估指標(biāo)存在較大關(guān)聯(lián),根據(jù)不同選定的指標(biāo),其計(jì)算成本會(huì)隨著目標(biāo)數(shù)量的增加而呈指數(shù)增長(zhǎng).基于分解的方法(Decomposition-Based method[17-20])會(huì)將一般的多目標(biāo)優(yōu)化問題先分解為多個(gè)單目標(biāo)優(yōu)化子問題,然后使用演化算法在單個(gè)運(yùn)行中同時(shí)求解所有子問題.這種方案能夠充分利用多個(gè)子方案的適應(yīng)度來綜合評(píng)估整體解決方案的性能,具有更好的魯棒性和更快的演化速度,然而如果相鄰的解決方案在決策空間中相距遙遠(yuǎn),則無法取得理想的效果.
綜上,為了演化出適用于無線傳感器等特定應(yīng)用場(chǎng)景下的卷積神經(jīng)網(wǎng)絡(luò),需要在傳統(tǒng)的神經(jīng)演化過程中添加額外的約束條件,如乘法次數(shù),模型精度,模型深度等,然后使用多目標(biāo)優(yōu)化算法同時(shí)優(yōu)化多目標(biāo)下的神經(jīng)演化,進(jìn)而保證改進(jìn)算法能夠自動(dòng)演化出符合相關(guān)約束條件下的網(wǎng)絡(luò)模型.第3節(jié)將具體介紹本文提出的改進(jìn)算法.
本節(jié)將從卷積神經(jīng)網(wǎng)絡(luò)的有向圖表示,基于線性規(guī)劃的基因翻譯,多目標(biāo)個(gè)體競(jìng)爭(zhēng)方法以及算法流程來詳細(xì)介紹提出的算法.
基于NEAT算法,本文采用有向圖中的節(jié)點(diǎn)表示卷積神經(jīng)網(wǎng)絡(luò)中某一層神經(jīng)網(wǎng)絡(luò)輸出的特征圖,網(wǎng)絡(luò)的起始節(jié)點(diǎn)代表輸入圖像,終止節(jié)點(diǎn)代表網(wǎng)絡(luò)的輸出,其他節(jié)點(diǎn)攜帶有表達(dá)特征圖長(zhǎng)寬及通道數(shù)量的尺寸信息.
對(duì)于入度大于1的節(jié)點(diǎn),將有多個(gè)卷積層輸出相同尺寸的特征圖并匯總到該節(jié)點(diǎn),該節(jié)點(diǎn)將根據(jù)它的第4個(gè)參數(shù)來確定采用按通道拼接或者按特征點(diǎn)加和這些特征圖.
所以,在卷積神經(jīng)網(wǎng)絡(luò)的有向圖表示中,一個(gè)有向圖可以理解為種群中個(gè)體的染色體,其中的節(jié)點(diǎn)可以理解過為染色體中的基因片段,每個(gè)基因片段包含4個(gè)可調(diào)參數(shù)分別表示特征圖的通道、長(zhǎng)、寬以及特征圖之間的融合方法.此外,有向邊包含一個(gè)可優(yōu)化參數(shù),將用于下文的線性規(guī)劃.本文中所涉及的圖像均為正方形,故特征圖也限定為正方形,以長(zhǎng)、寬中較大者為邊長(zhǎng).
由于節(jié)點(diǎn)中只規(guī)定了特征圖的尺寸,為求解出卷積層的必要參數(shù),本文提出了一種基于線性規(guī)劃的卷積層配置方法.
1)標(biāo)準(zhǔn)卷積(Standard Convolution).當(dāng)輸入特征圖的長(zhǎng)寬大于或等于輸出特征圖長(zhǎng)寬時(shí),采用標(biāo)準(zhǔn)卷積.式(1)給出了標(biāo)準(zhǔn)卷積函數(shù)在給定卷積參數(shù)條件下,如何根據(jù)輸入邊長(zhǎng)計(jì)算對(duì)應(yīng)的輸出邊長(zhǎng).
(1)
其中輸入的特征圖邊長(zhǎng)為Xin,輸出的特征圖邊長(zhǎng)為Y,卷積核參數(shù)k,卷積步伐d,卷積填充參數(shù)p.
為了求解式(1),與之對(duì)應(yīng)的目標(biāo)函數(shù)如式(2)所示.
F(k,d,p)=ra×k+(1-ra)×d+p
(2)
其中k,d,p的定義同式(1),ra是一個(gè)屬于[0,1]的值,隨有向線段進(jìn)行遺傳優(yōu)化,在不等式(3)下通過線性規(guī)劃算法最小化式(2)中即可求得對(duì)應(yīng)的卷積層配置參數(shù).
(3)
2)全卷積(Full Convolution).當(dāng)輸入特征圖邊長(zhǎng)小于輸出特征圖邊長(zhǎng)時(shí),采用全卷積.式(4)給出了全卷積函數(shù)在給定卷積參數(shù)條件下,如何根據(jù)輸入邊長(zhǎng)計(jì)算對(duì)應(yīng)的輸出邊長(zhǎng).
Y=(Xin-1)×d-2×p+k+a
(4)
其中輸入的特征邊長(zhǎng)為Xin,輸出的特征邊長(zhǎng)為Y,卷積核參數(shù)k,卷積步伐d,卷積填充p,卷積自適應(yīng)填充a.
同上,為了求解式(4),與之對(duì)應(yīng)的目標(biāo)函數(shù)如式(5)所示.
F(k,d,p,a)=ra×k+(1-ra)×d+p+a
(5)
其中k,d,p,a的定義同式(4),ra是一個(gè)屬于[0,1]的參數(shù),隨有向線段進(jìn)行遺傳優(yōu)化,在不等式(6)下通過線性規(guī)劃算法最小化式(5)中即可求得對(duì)應(yīng)的卷積層配置參數(shù).
(6)
目前基于NEAT的神經(jīng)演化算法僅采用個(gè)體的某一項(xiàng)指標(biāo)作為適應(yīng)度,難以滿足工業(yè)應(yīng)用中的應(yīng)用需求.如要求設(shè)計(jì)一種計(jì)算量低,網(wǎng)絡(luò)層次較深,且識(shí)別率較高的網(wǎng)絡(luò),直接應(yīng)用已有的NEAT算法則難以實(shí)現(xiàn).
本文提出了一種多目標(biāo)個(gè)體競(jìng)爭(zhēng)方法.演化過程中,適應(yīng)度計(jì)算函數(shù)返回個(gè)體的多個(gè)指標(biāo),如對(duì)個(gè)體所表示的神經(jīng)網(wǎng)絡(luò)在計(jì)算量、深度、識(shí)別率等指標(biāo)的評(píng)估,并使用NSGA-II算法求解基于帕瑞托支配和擁擠距離下的多目標(biāo)優(yōu)化問題,將求解出來的Pareto Front可行解用于種群中新個(gè)體的生成.圖1展示了加入多目標(biāo)優(yōu)化規(guī)則的神經(jīng)演化算法流程圖,此外具體的算法流程如算法1所示.
圖1 算法流程圖Fig.1 Algorithm diagram
算法 1.面向深度卷積網(wǎng)絡(luò)的多目標(biāo)神經(jīng)演化算法
輸入:初始種群規(guī)模N,種群演化代數(shù)T,面向卷積神經(jīng)網(wǎng)絡(luò)的適應(yīng)度函數(shù)Fitness(.),有向圖演化算法A(.),多目標(biāo)篩選函數(shù)M(.).
輸出:最終的解集合{Solution}.
1.初始化規(guī)模為N的種群.
2.Fitness(.)評(píng)估初始種群.
3.While t a.基于當(dāng)前種群執(zhí)行A(.)算法中物種多樣性保護(hù)算法保留優(yōu)秀個(gè)體. b.當(dāng)前種群與上一代保留的2N/3個(gè)優(yōu)秀個(gè)體合并成一個(gè)擁有5N/3個(gè)個(gè)體的臨時(shí)群體,使用M(.)篩選并保留2N/3個(gè)優(yōu)秀個(gè)體.(該步驟不作用于初始種群) c.在優(yōu)秀個(gè)體中隨機(jī)取出若干父代并使用M(.)確定優(yōu)勝者用于生成一個(gè)子代. d.基于算法A(.)的遺傳原則產(chǎn)生一個(gè)新個(gè)體. e.重復(fù)c和d直到產(chǎn)生N個(gè)新個(gè)體. 4.Fitness(.)評(píng)估新個(gè)體. 5.Return 最終的解集合{Solution}. 本節(jié)將詳細(xì)描述本文提出算法的實(shí)施過程以及相應(yīng)實(shí)驗(yàn)結(jié)果.通過實(shí)驗(yàn)框架,面向卷積神經(jīng)網(wǎng)絡(luò)的適應(yīng)度函數(shù),卷積模型演化以及相關(guān)實(shí)驗(yàn)結(jié)果模塊化地介紹本文所做實(shí)驗(yàn)的各項(xiàng)準(zhǔn)備工作,其中實(shí)驗(yàn)框架介紹本文使用到的各種仿真環(huán)境及相關(guān)配置參數(shù),面向卷積神經(jīng)網(wǎng)絡(luò)的適應(yīng)度函數(shù)介紹針對(duì)資源受限平臺(tái)下的卷積神經(jīng)網(wǎng)絡(luò)演化而設(shè)計(jì)的適應(yīng)度目標(biāo)函數(shù),卷積模型演化介紹本文算法的具體實(shí)施過程,相關(guān)實(shí)驗(yàn)結(jié)果介紹提出算法的成果和相關(guān)的性能分析,最后通過總結(jié)小節(jié)整體地概括本文所做出的貢獻(xiàn)以及未來期望展開的工作. 本文實(shí)驗(yàn)選取的運(yùn)行環(huán)境是Ubuntu16.04,使用了2張NVIDA GTX 1080Ti顯卡來加快模型在演化階段的探索速度.有向圖算法A(.)采用的是基于JAVA語言實(shí)現(xiàn)的NEAT,在后續(xù)實(shí)驗(yàn)中該框架的大部分超參數(shù)配置與原始代碼維持一致,不同的地方僅在于:本實(shí)驗(yàn)所設(shè)置的種群大小為50,物種更替的年齡閥值為50,存活下來種群的種群比例0.2,節(jié)點(diǎn)雜交概率0.25,節(jié)點(diǎn)突變概率0.5,優(yōu)勢(shì)基因個(gè)數(shù)10.此外本文中關(guān)于使用到的卷積模型中各個(gè)模塊與基因節(jié)點(diǎn)的對(duì)應(yīng)關(guān)系可以見表1,其中Sensor表示網(wǎng)絡(luò)輸入節(jié)點(diǎn)規(guī)定了輸入圖像的維度,Output表示網(wǎng)絡(luò)輸出節(jié)點(diǎn)規(guī)定了輸出圖像的維度,Hidden表示網(wǎng)絡(luò)隱藏節(jié)點(diǎn)規(guī)定了特征圖的維度,Link規(guī)定了節(jié)點(diǎn)間的連接關(guān)系,根據(jù)這些數(shù)據(jù)以及本文提供的線性規(guī)劃方法可計(jì)算出卷積層的配置參數(shù). 表1 卷積模型結(jié)構(gòu)與基因節(jié)點(diǎn)的關(guān)系Table 1 Relationship between convolution model structure and gene nodes 本文在選擇父代時(shí)采用的多目標(biāo)篩選函數(shù)M(.)是基于Java實(shí)現(xiàn)的NSGA-II,其中與之相關(guān)的面向卷積神經(jīng)網(wǎng)絡(luò)演化的適應(yīng)度函數(shù)將在4.2中進(jìn)行詳細(xì)闡述.采用Torch7框架(基于Lua言語實(shí)現(xiàn))對(duì)演化構(gòu)造出的卷積模型進(jìn)行訓(xùn)練和測(cè)試評(píng)估.本文中有向邊的基本單位如圖2所示,圖中左側(cè)為有向邊在圖模型中的基本表示,右側(cè)為有向邊對(duì)應(yīng)卷積結(jié)構(gòu)下的基本單位其中涉及到的卷積參數(shù)k,d,p需要利用3.2中所提到的相關(guān)內(nèi)容.其中n1和n2為輸入輸出特征圖的通道數(shù),h和 w 為特征圖的長(zhǎng)寬,本文中限定h=w.表2中的SGD-1給出了在演化過程中評(píng)估模型階段SGD所采用的具體超參數(shù)配置. 圖2 有向邊的基本單位Fig.2 Basic unit of a directed edge 表2 SGD超參數(shù)Table 2 Hyper parameter of SGD 為了建立深度卷積神經(jīng)網(wǎng)絡(luò),NEAT算法和NSGA-II算法三者之間的關(guān)系,需要使用特定的適應(yīng)度函數(shù)來評(píng)估生成卷積模型的適應(yīng)度并反饋給神經(jīng)演化算法.傳統(tǒng)演化算法選擇的適應(yīng)度函數(shù):V=Max(Accuracy),通常僅僅只關(guān)注識(shí)別率指標(biāo),識(shí)別率高的種群個(gè)體其對(duì)應(yīng)的適應(yīng)度也相對(duì)較高.而為了演化出適用于無線傳感器網(wǎng)絡(luò)下的卷積模型上,僅僅使用識(shí)別率作為衡量指標(biāo)是不足的,需要考慮諸如模型乘法次數(shù),模型深度等額外評(píng)估指標(biāo). 本文使用的適應(yīng)度函數(shù)建立在傳統(tǒng)神經(jīng)演化適應(yīng)度函數(shù)的基礎(chǔ)上,額外引入乘法次數(shù),模型深度約束條件,讓模型在進(jìn)行適應(yīng)度評(píng)估時(shí)更加綜合考慮所有的約束條件.具體的適應(yīng)度函數(shù)如式(7)下所示. (7) 其中Multiplication,Depth,Accuracy為演化模型中乘法次數(shù),深度,識(shí)別率對(duì)應(yīng)的適應(yīng)度值,可以通過相關(guān)功能函數(shù)進(jìn)行獲取.具體來說,適應(yīng)度函數(shù)將接收一個(gè)NEAT算法生成的有向圖對(duì)象,解讀有向圖中的每個(gè)節(jié)點(diǎn)和有向邊,使用節(jié)點(diǎn)和邊上記錄的4加1個(gè)參數(shù)構(gòu)建深度卷積神經(jīng)網(wǎng)絡(luò)并將其翻譯為L(zhǎng)ua代碼,調(diào)用Torch7框架在CIFAR-100的訓(xùn)練集訓(xùn)練該神經(jīng)網(wǎng)絡(luò)K次Epoch,最后把在CIFAR-100的測(cè)試集上的Top5精度則記錄為模型的精度指標(biāo).神經(jīng)網(wǎng)絡(luò)的深度及一次預(yù)測(cè)所需的乘法次數(shù)則成為其余的兩個(gè)指標(biāo). 提出的適應(yīng)度函數(shù)將對(duì)演化過程生成的每個(gè)卷積模型從精度,乘法次數(shù),深度3方面進(jìn)行綜合評(píng)估,并及時(shí)更新適應(yīng)度值,進(jìn)而保證種群在每一代演化過程中能夠及時(shí),準(zhǔn)確地評(píng)估當(dāng)前所有種群個(gè)體并結(jié)合多目標(biāo)篩選函數(shù)M(.)從中不斷發(fā)現(xiàn)表現(xiàn)最好的個(gè)體. 本節(jié)提出的適應(yīng)度函數(shù)可以有效的衡量多約束條件下生成卷積模型的綜合能力,引導(dǎo)神經(jīng)演化算法產(chǎn)生各種各樣不同的神經(jīng)網(wǎng)絡(luò),這些神經(jīng)網(wǎng)絡(luò)可能在某一項(xiàng)評(píng)價(jià)指標(biāo)下相對(duì)優(yōu)異,同時(shí)又能保證網(wǎng)絡(luò)的多樣性.基于本節(jié)內(nèi)容的具體實(shí)驗(yàn)過程將在4.3節(jié)中進(jìn)行詳細(xì)描述. 根據(jù)本文算法1所描述的流程,本節(jié)將分別從初始化種群和多目標(biāo)卷積模型演化2方面進(jìn)一步擴(kuò)充相關(guān)實(shí)驗(yàn)的具體實(shí)施過程.本文后續(xù)所有模型評(píng)估實(shí)驗(yàn)選取的數(shù)據(jù)集是標(biāo)準(zhǔn)的CIFAR-100,演化代數(shù)T設(shè)置為50,初始種群規(guī)模為50,為了減少計(jì)算代價(jià)和加快模型演化的整體進(jìn)程,此外為了對(duì)生成模型的性能進(jìn)行快速初步評(píng)估本文在演化模型評(píng)估階段的K統(tǒng)一設(shè)置為8.算法A(.)采用NEAT,算法M(.)為NSGA-II,F(xiàn)itness(.)請(qǐng)參考4.2節(jié). 通過執(zhí)行4.3所述的實(shí)驗(yàn)流程,能夠得到符合Pareto約束的解,然而由3.2中的內(nèi)容可知其對(duì)應(yīng)的解并不是單個(gè),而是帕瑞托前沿(Pareto Front),它是由所有Pareto解所組成的超平面.本節(jié)將從Pareto約束展開,綜合分析其在多目標(biāo)函數(shù)下對(duì)模型演化產(chǎn)生可行解方案的影響以及不同約束條件下對(duì)應(yīng)可行解的性能,接下來將從Pareto約束下的可行解和擴(kuò)展驗(yàn)證實(shí)驗(yàn)2方面來進(jìn)一步地介紹. 1)Pareto約束下的可行解.讀取種群演化歷史中所有的Pareto解決方案,使用Pareto支配對(duì)所有解決方案進(jìn)行重排序,選擇排序前100的解決方案作為參考指標(biāo)并畫出相對(duì)應(yīng)的競(jìng)爭(zhēng)關(guān)系圖,同時(shí)保存對(duì)應(yīng)排名下解決方案的基因和模型配置文件.本文選取了精度,乘法次數(shù)和深度3個(gè)目標(biāo)函數(shù)來約束Pareto Front,理論上其對(duì)應(yīng)的解是一個(gè)三維超平面,為了更好的理解兩兩不同約束之間的相互關(guān)系,選擇將單個(gè)三維超平面轉(zhuǎn)換成3張二維的Pareto關(guān)系圖.特別值得注意的是,因?yàn)槭?7)對(duì)原始的適應(yīng)度值施加了一個(gè)重映射的操作,使得適應(yīng)度值的輸出范圍屬于[0,1],與之相對(duì)應(yīng)的原始評(píng)估指標(biāo)可以通過相關(guān)逆運(yùn)算進(jìn)行求解.圖3表明了Pareto約束下精度和深度之間的關(guān)系,由于深度是離散的因此可以發(fā)現(xiàn)深度與精度之間呈現(xiàn)一種離散的關(guān)系,且隨著深度的增加其相應(yīng)的精度能夠得到明顯的提升,但是無法得到一個(gè)明確的數(shù)學(xué)關(guān)系式.圖3中精度和有向圖深度綜合評(píng)估的最好適應(yīng)度值分別為0.028,0.024,與之對(duì)應(yīng)重映射前的原始指標(biāo)分別為33.92%,40.圖4給出Pareto約束下精度和乘法次數(shù)之間的關(guān)系,從中能夠發(fā)現(xiàn)精度和乘法次數(shù)之間呈正相關(guān),乘法次數(shù)越大其對(duì)應(yīng)的精度也越高,由于本實(shí)驗(yàn)中對(duì)于乘法次數(shù)實(shí)施倒數(shù)操作,所以在圖4的縱軸上其乘法次數(shù)越大則越接近于0.圖4中乘法次數(shù)和精度綜合評(píng)估的最好適應(yīng)度值分別是0.410,0.075與之對(duì)應(yīng)重映射前的乘法次數(shù)和模型精度分別為584M,11.84%.圖5反映了Pareto約束下乘法次數(shù)和深度的關(guān)系,因?yàn)樯疃仁请x散的所以深度和乘法次數(shù)的關(guān)系依舊趨近離散,深度的增加會(huì)明顯帶動(dòng)乘法次數(shù)的上升且深度越深提升倍數(shù)越大,但同樣不能從中找到兩者明確的對(duì)應(yīng)關(guān)系式.圖5乘法次數(shù)和有向圖深度綜合評(píng)估的最好適應(yīng)度值為0.410,0.030,與之對(duì)應(yīng)重映射前的指標(biāo)是584M,32.綜上,通過上述多張Pareto關(guān)系圖可以發(fā)現(xiàn)在多約束條件下神經(jīng)演化的新特性,從演化整體上來看由于綜合考慮了多約束條件使得演化模型的性能變得更加均衡化,從不同約束條件的相互競(jìng)爭(zhēng)角度來看其模型的性能與給定組合約束條件下有著特定的聯(lián)系.如何進(jìn)一步協(xié)調(diào)好多目標(biāo)函數(shù)下整體約束和相互約束對(duì)模型演化的共同作用力,是未來基于多目標(biāo)神經(jīng)演化算法所重點(diǎn)需關(guān)注的內(nèi)容. 圖3 Pareto約束下精度與深度的關(guān)系Fig.3 Relationship of accuracy and depth under Pareto constraints圖4 Pareto約束下精度和乘法次數(shù)的關(guān)系Fig.4 Relationship of accuracy andmultiplication times under Paretoconstraints圖5 Pareto約束下深度和乘法次數(shù)的關(guān)系Fig.5 Relationship of depth andmultiplication times under Paretoconstraints 2)擴(kuò)展驗(yàn)證實(shí)驗(yàn).雖然在演化模型階段對(duì)生成的模型存在相應(yīng)的評(píng)估環(huán)節(jié),但是由于訓(xùn)練代數(shù)相對(duì)較低,其測(cè)試結(jié)果依然無法準(zhǔn)確判斷生成模型的綜合性能,為此本小節(jié)將對(duì)選取的Pareto Front解決方案進(jìn)行3種不同的擴(kuò)展驗(yàn)證實(shí)驗(yàn).在所有后續(xù)擴(kuò)展實(shí)驗(yàn)中,均選取標(biāo)準(zhǔn)的CIFIA-100數(shù)據(jù)集作為訓(xùn)練集和測(cè)試集,除了使用標(biāo)準(zhǔn)的顏色正則化方法外不添加額外的數(shù)據(jù)預(yù)處理,在該實(shí)驗(yàn)階段訓(xùn)練的代數(shù)統(tǒng)一設(shè)置為120代,batch size設(shè)置為16,該階段的所有模型將使用一套SGD超參數(shù),具體的配置見表2中的SGD-2. 擴(kuò)展實(shí)驗(yàn)1.從Pareto Front中選取前100個(gè)解決方案,對(duì)經(jīng)過篩選的解決方案分別按照精度,模型深度,乘法次數(shù)3個(gè)指標(biāo)進(jìn)行排序,根據(jù)再排序獲得精度最好和最差,深度最深最淺,乘法次數(shù)最少和乘法次數(shù)最多6種解決方案(包含卷積模型和基因配置文件).從篩選的結(jié)果發(fā)現(xiàn)最淺深度為2層,乘法次數(shù)最少為1.8M的模型并不符合無線傳感器網(wǎng)絡(luò)下的使用需求故不參與后續(xù)擴(kuò)展實(shí)驗(yàn).最終的實(shí)驗(yàn)結(jié)果如下,圖6,圖7,圖8,圖9分別展現(xiàn)了乘法次數(shù)最大,精度最低,精度最高,深度最大模型的誤差曲線.由上述曲線可以得出不同約束條件下生成的模型是符合其限制條件,其中深度和乘法次數(shù)為指導(dǎo)的Pareto約束下生成的模型在精度指標(biāo)上效果不佳,但可以發(fā)現(xiàn)深度對(duì)精度的影響要大于乘法次數(shù)帶來的效果,這也側(cè)面反映了深度在深度卷積模型中是獲取高識(shí)別率性能的重要保障.此外,從精度指標(biāo)上來看演化出的最優(yōu)精度模型在CIFAR-100數(shù)據(jù)集上有著相當(dāng)不錯(cuò)的性能表現(xiàn)其乘法次數(shù)和深度也比較符合適用條件. 圖6 最大乘法次數(shù)模型的誤差曲線Fig.6 Loss curve for the maximum multiplication model圖7 最低精度模型的誤差曲線Fig.7 Loss curve for the lowest accuracy model 圖8 最高精度模型的誤差曲線Fig.8 Loss curve for the highest accuracy model圖9 最大深度模型的誤差曲線Fig.9 Loss curve for the maximum depth model 擴(kuò)展實(shí)驗(yàn)2.使用Pareto約束從Pareto Front中選取200個(gè)解決方案,進(jìn)一步從200個(gè)解決方案中選取滿足乘法次數(shù)少于100M和精度大于25%的模型,將找到的所有解決方案在CIFAR-100數(shù)據(jù)集上進(jìn)行120次再訓(xùn)練,記錄最終的穩(wěn)定精度.表3展示了找到的9個(gè)不同解決方案的綜合性能,其中Depth代表卷積模型在有向圖中對(duì)應(yīng)的深度,Mul代表模型的乘法次數(shù),Oacc表示模型在演化階段的識(shí)別率,F(xiàn)acc表示模型在經(jīng)過精校后的識(shí)別率,Model代表在Pareto約束下經(jīng)過排名以及篩選后所選取的模型.從模型識(shí)別率來看選取的模型都有著相當(dāng)不錯(cuò)的表現(xiàn),從深度或乘法次數(shù)上來看即使模型在某一項(xiàng)指標(biāo)上相同卻有著完全不同的性能表現(xiàn),隨著深度或乘法次數(shù)的增加模型的性能也有著明顯的提升趨勢(shì),這側(cè)面反映了本文提出的有向圖演化算法的有效性和多樣性. 擴(kuò)展實(shí)驗(yàn)3.為了進(jìn)一步衡量演化出模型結(jié)構(gòu)與現(xiàn)有領(lǐng)先模型結(jié)構(gòu)在性能上的差異,選取目前主流的Densenet,Resnet等業(yè)內(nèi)領(lǐng)先模型與擴(kuò)展實(shí)驗(yàn)2中的相關(guān)模型進(jìn)行對(duì)比.Densenet實(shí)現(xiàn)的代碼是論文作者在GitHub提供的官方版本(1)https://github.com/liuzhuang13/DenseNet,在控制成長(zhǎng)率均為12的前提下分別選取了深度為40,60,100的3個(gè)模型版本.Resnet實(shí)現(xiàn)的代碼是Facebook提供的官方版本(2)https://github.com/facebookarchive/fb.resnet.torch,選取了深度為20的模型版本.表4為現(xiàn)有模型與演化模型的對(duì)比分析,可以發(fā)現(xiàn)生成的模型其各項(xiàng)性能已經(jīng)超越或接近現(xiàn)有的領(lǐng)先模型.特別值得說明的是,演化出的模型在沒有利用基于殘差的結(jié)構(gòu)下卻依舊能以極小的學(xué)習(xí)率實(shí)現(xiàn)有效,快速地收斂,證明了提出的算法在搜尋新穎,高效網(wǎng)絡(luò)結(jié)構(gòu)上的可行性. 表3 選取模型的綜合性能Table 3 Comprehensive performance of selected models 表4 演化模型與現(xiàn)有模型在CIFAR-100上的性能對(duì)比Table 4 Performance comparison between evolutionary models and existing models on CIFAR-100 綜上,盡管目前生成的精度最優(yōu)模型的最小誤差與殘差網(wǎng)絡(luò),稠密網(wǎng)絡(luò)等領(lǐng)先小型網(wǎng)絡(luò)仍存在一定差距,但是本文方法最主要的目的是演化出可應(yīng)用于無線傳感器網(wǎng)絡(luò)等特定應(yīng)用場(chǎng)景下的卷積模型,從模型精度,深度和乘法次數(shù)3方面考慮本文演化出來的模型其綜合指標(biāo)已經(jīng)符合特定工業(yè)場(chǎng)景下的使用條件,并且該方法能夠自動(dòng)化地構(gòu)建出一系列各具特色的模型,極大減少了在設(shè)計(jì)特定模型時(shí)所面臨的人力,物力上的成本. 本文提出了一種基于面向卷積神經(jīng)網(wǎng)絡(luò)的多目標(biāo)神經(jīng)演化算法,通過將深度神經(jīng)網(wǎng)絡(luò)表達(dá)成有向圖,使用NEAT和NSGA-II算法實(shí)現(xiàn)了深度、計(jì)算量和識(shí)別率下的多目標(biāo)同時(shí)優(yōu)化,同時(shí)還創(chuàng)新性地引入了線性規(guī)劃用于將基因編碼翻譯為卷積層可讀的配置參數(shù)文件,使得演化算法可以自動(dòng)調(diào)整各個(gè)網(wǎng)絡(luò)層的具體配置.雖然目前演化出的精度最好模型與領(lǐng)域內(nèi)領(lǐng)先的模型仍存在一定差距,考慮算法演化代數(shù)較少故存在巨大的提升空間,此外本文提出的方法不需要太多人為上的干預(yù)就能夠自動(dòng)構(gòu)建出一系列各具特色的卷積模型結(jié)構(gòu)且極大地降低了在設(shè)計(jì)特定模型時(shí)所面臨人力,物力上的成本.我們相信本文提出的方法對(duì)于推動(dòng)面向無線傳感器網(wǎng)絡(luò)的深度卷積網(wǎng)絡(luò)的發(fā)展能夠提供一種有效的解決方案.未來本文計(jì)劃在此基礎(chǔ)上繼續(xù)深入研究多目標(biāo)函數(shù)下和深度卷積網(wǎng)絡(luò)模型構(gòu)造的組合優(yōu)化關(guān)系,進(jìn)一步改善和提升模型結(jié)構(gòu)的演化效果.4 實(shí) 驗(yàn)
4.1 實(shí)驗(yàn)框架
4.2 面向卷積神經(jīng)網(wǎng)絡(luò)的適應(yīng)度函數(shù)
4.3 卷積模型演化
4.4 相關(guān)實(shí)驗(yàn)結(jié)果
5 結(jié)束語