王 彬,向 甜,呂藝東,王曉帆
(1.西安理工大學(xué) 計算機科學(xué)與工程學(xué)院,西安 710048;2.陜西省網(wǎng)絡(luò)計算與安全技術(shù)重點實驗室(西安理工大學(xué)),西安 710048)
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Network,CNN)在計算機視覺領(lǐng)域,如醫(yī)療[1]、人體識別[2-3]、智能駕駛[4-6]、生物醫(yī)學(xué)圖像識別[7-8]、農(nóng)業(yè)圖像處理[9-10]等被廣泛應(yīng)用。隨著CNN研究的不斷深入,其網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜度也隨之增加,導(dǎo)致因計算效率降低而難以移植到計算能力受限的設(shè)備中。因此,在無法搭載較強計算能力硬件的設(shè)備上,如何繼續(xù)保持CNN的特征提取能力成為值得研究的課題。
近些年,輕量化CNN 技術(shù)[11-13]得到逐步發(fā)展,可簡要概括為針對網(wǎng)絡(luò)結(jié)構(gòu)冗余問題提出的模型壓縮和針對性能退化提出的模型重構(gòu)兩大類[14]。模型壓縮主要包括知識提取、網(wǎng)絡(luò)剪枝、權(quán)值轉(zhuǎn)化等[15-17],旨在保持或稍微降低精確度的情況下提升網(wǎng)絡(luò)計算效率。模型重構(gòu)主要指重新設(shè)計輕量型卷積神經(jīng)網(wǎng)絡(luò)(Lightweight CNN,LCNN)結(jié)構(gòu),例如利用深度可分離卷積或分組卷積構(gòu)建新的LCNN 結(jié)構(gòu),以提高CNN 的計算效率。盡管這些LCNN 在計算效率方面取得了不小進步,但仍不可避免地出現(xiàn)精確度退化情況,如何優(yōu)化LCNN 結(jié)構(gòu)成為亟待解決的問題。目前,一些先進的LCNN結(jié)構(gòu)都是由具有領(lǐng)域知識的研究者手工設(shè)計的,因此會存在該網(wǎng)絡(luò)結(jié)構(gòu)設(shè)計并不能有效解決當(dāng)前機器學(xué)習(xí)任務(wù)的問題,這在一定程度上會弱化網(wǎng)絡(luò)的性能表現(xiàn)和泛化能力。近幾年,進化算法(Evolutionary Algorithm,EA)在深度卷積神經(jīng)網(wǎng)絡(luò)的結(jié)構(gòu)優(yōu)化中得到應(yīng)用,能提升優(yōu)化后的網(wǎng)絡(luò)性能。
EA 是一種受生物演化過程啟發(fā)的全局優(yōu)化方法,由于它的應(yīng)用領(lǐng)域具有不受問題性質(zhì)限制的特點,在深度學(xué)習(xí)等領(lǐng)域得到了應(yīng)用和發(fā)展。經(jīng)典的進化算法啟發(fā)于模仿生物界種群更新的方式,通過變異、高斯交叉和選擇的過程,在連續(xù)或離散的決策空間中高效搜索最優(yōu)解。多目標算法的目標是求出一組各個目標之間權(quán)衡關(guān)系的近似的帕累托(Pareto)最優(yōu)解集。常見的多目標進化算法包括三類:基于Pareto 支配關(guān)系的快速非支配排序遺傳算法[18-21]等;基于分解的多目標進化算法[22]等;基于指標的多目標進化算法[23]等。2018 年,Wang 等[24]使用網(wǎng)絡(luò)協(xié)議地址編碼,采用的適應(yīng)度函數(shù)為每批精確度平均值,同時使用隨機劃分數(shù)據(jù)集的方式加速適應(yīng)度評估,提出了基于變長粒子群優(yōu)化的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)。該方法試圖利用粒子群算法自適應(yīng)堆疊卷積神經(jīng)網(wǎng)絡(luò)模塊,已經(jīng)無須人工干預(yù)便可設(shè)計出解決圖像分類問題的CNN 結(jié)構(gòu)。由于超參數(shù)優(yōu)化問題是非凸且不可微的,并且完整訓(xùn)練整個網(wǎng)絡(luò)所需時間長,因此不必知道整個訓(xùn)練過程的最佳網(wǎng)絡(luò)性能。出于該動機,Sun 等[25]利用粒子群算法網(wǎng)格化地搜索自動堆疊網(wǎng)絡(luò)模型最匹配優(yōu)化任務(wù)的超參數(shù),顯著降低了網(wǎng)絡(luò)模型計算復(fù)雜度。他們設(shè)計了一種超參數(shù)優(yōu)化方法,用堆疊自適應(yīng)編碼器執(zhí)行了192 個實驗對比,堆疊自適應(yīng)編碼器是一類具有較少超參數(shù)的深度學(xué)習(xí)算法,旨在研究進化算法和網(wǎng)格搜索在搜索堆疊自適應(yīng)編碼模型的最優(yōu)超參數(shù)時的性能。2019 年,Lu 等[26]提出的高級神經(jīng)體系結(jié)構(gòu)搜索方法將誤差度量(指標為圖像分類正確率)和計算復(fù)雜度(指標為每秒浮點運算次數(shù)(FLoating-point Operations Per second,F(xiàn)LOPs)作為待優(yōu)化的兩個目標函數(shù),經(jīng)過種群初始化、探索和開發(fā)三個步驟,有效探索了有潛力的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)空間。這些基于EA 的深度卷積神經(jīng)網(wǎng)絡(luò)在一定程度上實現(xiàn)了不依賴專業(yè)知識和人工干預(yù)來優(yōu)化提升網(wǎng)絡(luò)結(jié)構(gòu)性能的目的。
本文針對LCNN 結(jié)構(gòu)的復(fù)雜度和精確度優(yōu)化不平衡問題,進行雙目標函數(shù)建模及分析,提出基于NSGA-Ⅱ的自適應(yīng)多尺度特征通道分組優(yōu)化算法,構(gòu)建基于NSGA-Ⅱ的自適應(yīng)多尺度的特征融合網(wǎng)絡(luò)NSGA2-AMFFNetwork,并在圖像分類數(shù)據(jù)集上驗證了優(yōu)化算法的有效性。
LCNN 的參數(shù)量和計算量隨著其復(fù)雜度的提升而增加,影響了LCNN 的計算速度。2020 年,筆者在M_blockNet_v1結(jié)構(gòu)中提出了基于非均勻通道分組多尺度的特征融合方法(圖1)[27],以進一步降低參數(shù)量和計算量。
圖1 非均勻通道分組多尺度特征融合Fig.1 Heterogeneous channel grouping multi-scale feature fusion
圖1 中,LCNN 的特征融合采用基于膨脹卷積的多尺度特征融合模塊代替原有的1 × 1 點卷積的特征融合;然后,將輸入特征圖通道分成G組,其中,1 × 1 點卷積、3 × 3 基本卷積以及3 × 3 膨脹卷積操作對應(yīng)的輸入和輸出通道數(shù)分別為g1、g2和g3;最后,連接不同尺度通道提取到的特征圖得到最終的輸出特征圖,以減少計算量和參數(shù)量。該方法中,每個尺度的卷積核輸入僅包含部分的輸入特征圖,目的是減少參數(shù)量以及運算量,但該方法需要手動設(shè)計和尋找相關(guān)的合適參數(shù)。
為了能自動設(shè)計相關(guān)參數(shù),提高LCNN 的精確度,筆者在SSCA_MblockNet 中提出了一種自動分組的多尺度特征融合方法(如圖2)[28]。在分組多尺度特征提取的基礎(chǔ)上,該方法首先利用單目標進化算法對輸入特征通道自動分組,然后采用包括1×1 的點卷積、3×3 的標準卷積和3×3 的膨脹卷積在內(nèi)的3 種尺度的卷積核對自動特征提取通道分組,并融合提取的多尺度特征形成輸出特征圖。
圖2 自動分組多尺度特征融合Fig.2 Automatic grouping multi-scale feature fusion
圖2 所示的自動分組的多尺度特征融方法主要改進特征融合模塊,包括進化算法自適應(yīng)分組層、多尺度卷積核特征提取層以及特征融合層。利用該結(jié)構(gòu)對特征圖進行特征提取,既可以自動設(shè)計特征提取通道分組,避免尺度單一造成的特征提取不充分問題,又可以避免過度使用卷積核提取特征導(dǎo)致的計算量大的問題。
本節(jié)根據(jù)自動分組的多尺度特征融合模塊結(jié)構(gòu)中的參數(shù)量和計算量來衡量對LCNN 結(jié)構(gòu)的優(yōu)化程度。
1.3.1 參數(shù)量分析
由于考慮的是不同卷積核對應(yīng)的特征提取通道分組情況對LCNN 特征提取模塊參數(shù)量和計算量的影響,本文忽略偏置和激活,所有卷積核特征提取元素的數(shù)量即為參數(shù)量,計算公式為:
其中:L'為特征融合模塊的參數(shù)量;Ig為第g組輸入特征通道數(shù);CWg為第g組卷積核的寬度;CHg為第g組卷積核的高度;Og為第g組輸出特征通道數(shù)。
1.3.2 計算量分析
將所有卷積核元素與輸入特征圖張量對應(yīng)相乘再相加,相加次數(shù)為卷積核元素數(shù)減1,相乘次數(shù)為卷積核特征提取元素數(shù),則計算量如式(2)所示:
其中:J'為特征融合模塊的計算量;W、H分別為輸入特征圖的寬度與高度。
1.3.3 結(jié)論
由式(1)可知自動分組的多尺度特征融合模塊結(jié)構(gòu)參數(shù)量的大小主要與卷積核尺寸以及特征通道分組有關(guān)。由式(2)可知,當(dāng)輸入輸出特征圖的高度和寬度以及卷積核的尺寸一定時,各卷積核對應(yīng)的輸入輸出特征通道數(shù)能夠直接影響LCNN 結(jié)構(gòu)的參數(shù)量和計算量。引入單目標進化算法對特征通道自適應(yīng)分組,可以有效優(yōu)化LCNN 結(jié)構(gòu)的復(fù)雜度,但仍存在無法同時兼顧復(fù)雜度和精確度的不足。因此,本文提出基于NSGA-Ⅱ的自適應(yīng)多尺度特征通道分組優(yōu)化算法,以均衡優(yōu)化LCNN 的復(fù)雜度和精確度。
首先,從LCNN 的精確度和復(fù)雜度兩個方面對基于NSGA-Ⅱ的特征融合層結(jié)構(gòu)優(yōu)化問題進行雙目標函數(shù)建模;然后,對多模塊自適應(yīng)分組優(yōu)化結(jié)構(gòu)的復(fù)雜度進行分析,并設(shè)計基于NSGA-Ⅱ的LCNN 結(jié)構(gòu)優(yōu)化框架。
2.1.1 特征融合層結(jié)構(gòu)優(yōu)化雙目標函數(shù)建模
將LCNN 的精確度最大化和復(fù)雜度最小化作為兩個目標,提取LCNN 中不同種類卷積核對應(yīng)的特征,并將提取出特征的輸入和輸出通道數(shù)作為決策變量x每一維的值,再轉(zhuǎn)化成最小化目標函數(shù)問題,確定雙目標函數(shù)建模公式如下:
其中:F1表示將LCNN 精確度最大化轉(zhuǎn)化為最小化問題求解的目標函數(shù);Ltrue表示分類正確標簽數(shù);Lfalse表示分類錯誤標簽數(shù);F2表示LCNN 結(jié)構(gòu)的復(fù)雜度;M是特征融合模塊數(shù);G為分組卷積操作的組數(shù);xmg、CWm、CHm、Wm、Hm分別表示第m個特征融合模塊中,第g組輸入輸出特征通道數(shù)、卷積核的寬度與高度以及特征圖的寬度和高度。
2.1.2 多模塊自動分組多尺度特征融合結(jié)構(gòu)復(fù)雜度分析
與傳統(tǒng)LCNN 結(jié)構(gòu)中的特征融合方法相比,基于單目標進化算法的自動多尺度特征通道分組優(yōu)化方法可以提高LCNN 的精確度。但隨著LCNN 結(jié)構(gòu)中自動多尺度特征通道分組優(yōu)化模塊數(shù)量的增加,自動分組方案的選擇空間也會呈指數(shù)增加,這不利于提高LCNN 性能評價的速度,證明如下:
設(shè)LCNN 的自動多尺度特征通道分組優(yōu)化模塊數(shù)量為A(模塊間互不影響),它的輸入特征圖共有n條通道,根據(jù)LCNN 結(jié)構(gòu)的構(gòu)建要求,每種尺度卷積核對應(yīng)的特征提取通道數(shù)至少為1,那么3 種尺度卷積核對應(yīng)特征提取通道的不同選擇分組情況數(shù),即LCNN 結(jié)構(gòu)優(yōu)化問題對應(yīng)的搜索空間的大小如下所示:
由上述分析可以看出,當(dāng)LCNN 結(jié)構(gòu)中自適應(yīng)多尺度特征通道分組優(yōu)化模塊數(shù)呈線性遞增時,不同尺度卷積核對應(yīng)特征提取通道可選擇的分組情況數(shù)呈指數(shù)型增長。
盡管獲得合適的LCNN 特征融合模塊的通道分組情況對LCNN 計算效率的提高有正向幫助,但當(dāng)采用多個自適應(yīng)多尺度特征通道分組優(yōu)化模塊進一步降低LCNN 復(fù)雜度時,LCNN 結(jié)構(gòu)優(yōu)化問題的搜索空間反倒會增加。而LCNN 結(jié)構(gòu)越復(fù)雜,性能評估計算開銷也會越大。此外,在降低LCNN參數(shù)量和計算量的同時,存在無法根據(jù)用戶偏好平衡LCNN精確度表現(xiàn)的不足。針對上述問題,將LCNN 結(jié)構(gòu)的復(fù)雜度和精確度表現(xiàn)作為兩個優(yōu)化目標,應(yīng)用快速非支配排序算法對LCNN 作進一步優(yōu)化,設(shè)計LCNN 結(jié)構(gòu)優(yōu)化框架。
2.1.3 基于NSGA-Ⅱ的LCNN結(jié)構(gòu)優(yōu)化框架
在多目標進化算法中,NSGA-Ⅱ算法無須分解優(yōu)化問題,直接根據(jù)支配關(guān)系比較個體的性能,應(yīng)用方便,針對雙目標優(yōu)化問題通常能搜索出較好的解決方案。同時,也考慮到建模的優(yōu)化目標個數(shù)不多,因此本文選擇NSGA-Ⅱ進行LCNN 結(jié)構(gòu)優(yōu)化的應(yīng)用研究。NSGA-Ⅱ算法針對目標函數(shù)優(yōu)化問題需要輸入種群規(guī)模、問題維度、種群最大評價次數(shù)及相關(guān)參數(shù)設(shè)置,輸出非支配解集。具體過程包括:
1)初始化。初始化種群并將當(dāng)前進化代數(shù)設(shè)置為1。
2)產(chǎn)生子種群,判斷是否生成了第一代子種群,若已生成則令進化代數(shù)等于2;否則,對初始種群進行非支配排序和選擇、高斯交叉、變異,產(chǎn)生第一代子種群并使進化代數(shù)等于2。
3)產(chǎn)生合并種群。將父代種群與子代種群合并為新種群。
4)種群演化。判斷是否已生成新的父代種群,若未生成則計算新種群中個體的目標函數(shù),并執(zhí)行快速非支配排序、計算擁擠度、精英策略等操作生成新的父代種群;否則,對生成的父代種群執(zhí)行選擇、高斯交叉、變異操作生成子代種群。
5)判斷當(dāng)前代數(shù)是否等于最大的進化代數(shù)T,若不大于則進化代數(shù)自增1,并返回3);否則,輸出非支配解集,并停止。
利用NSGA-Ⅱ優(yōu)化LCNN 中的自適應(yīng)多尺度特征通道分組優(yōu)化模塊,以優(yōu)化LCNN 結(jié)構(gòu),平衡LCNN 的精確度和復(fù)雜度。通過種群不斷進化,搜索出決策空間中性能表現(xiàn)優(yōu)異的Pareto 最優(yōu)解集,如圖3(a)為目標空間,圖3(b)為決策空間(搜索空間)。
圖3 基于NSGA-Ⅱ的LCNN結(jié)構(gòu)優(yōu)化目標及決策空間Fig.3 Structure optimization objective and search space of LCNN based on NSGA-Ⅱ
圖3(a)中不同曲線表示目標空間上的非支配前沿,其中黑色實心點虛線為非支配前沿1,為Pareto 最優(yōu)解集在目標空間中的映射;圖3(b)中的各曲線上的點表示決策空間中的解集,其中黑色實心點虛線非支配前沿1 在決策空間中的映射為Pareto 最優(yōu)解集,即LCNN 結(jié)構(gòu)優(yōu)化問題的最優(yōu)解集。由于構(gòu)建LCNN 中自適應(yīng)多尺度特征通道分組優(yōu)化層的關(guān)鍵操作是自適應(yīng)分組,即需要自動確定式(3)中3 種尺度對應(yīng)特征通道數(shù)xmg?;贜SGA-Ⅱ的自適應(yīng)分組方法中,需要根據(jù)臨時LCNN 在臨時圖像分類數(shù)據(jù)集上的分類精確度表現(xiàn)確定最終LCNN 特征通道分組結(jié)構(gòu)。因此,需要確定NSGA-Ⅱ演化的相關(guān)前提條件、臨時LCNN 結(jié)構(gòu)評價方式以及最終LCNN 結(jié)構(gòu)在圖像分類數(shù)據(jù)集上的性能評價指標,如圖4 所示。
圖4 基于NSGA-Ⅱ的LCNN結(jié)構(gòu)優(yōu)化框架Fig.4 Structure optimization framework of LCNN based on NSGA-Ⅱ
如圖4 所示,基于NSGA-Ⅱ的LCNN 結(jié)構(gòu)優(yōu)化過程包括:
1)根據(jù)LCNN(包括臨時LCNN 和最終LCNN)在圖像分類數(shù)據(jù)集上的精確度最大化和對應(yīng)網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜度最小化進行目標函數(shù)建模,并針對該目標函數(shù)優(yōu)化問題,根據(jù)個體編碼方式對個體及種群進行初始化,解碼初始種群即得到臨時LCNN 的特征通道分組結(jié)構(gòu)。
2)將每個個體對應(yīng)的臨時LCNN 結(jié)構(gòu)在從原始圖像分類數(shù)據(jù)集中選擇的部分圖像分類數(shù)據(jù)集(選擇方式在仿真實驗中描述)上進行訓(xùn)練和測試,為了高效估計每個LCNN 結(jié)構(gòu)的潛力,訓(xùn)練和測試次數(shù)分別設(shè)置為5,運行完畢后獲得臨時LCNN 分類精確度和復(fù)雜度及其對應(yīng)的特征通道分組結(jié)構(gòu)。
3)根據(jù)演化策略更新種群,得到最優(yōu)解集。設(shè)計一組LCNN 特征通道分組結(jié)構(gòu),然后根據(jù)用戶偏好選擇一個解:若用戶更注重網(wǎng)絡(luò)的精確度表現(xiàn),即更偏好精確度較大的解時,選擇在非支配前沿上的映射更靠近圖3(a)目標空間中F2時對應(yīng)的解;若用戶更看中網(wǎng)絡(luò)的計算效率,即更偏好復(fù)雜度較小的解時,選擇非支配前沿上的映射更靠近圖3(a)目標空間中F1的解。解碼選擇的解即可獲得最終的LCNN特征通道分組結(jié)構(gòu)。
將最終的LCNN 結(jié)構(gòu)在原始圖像數(shù)據(jù)集上進行訓(xùn)練和測試,訓(xùn)練和測試次數(shù)分別設(shè)置為100,運行結(jié)束后得到LCNN 結(jié)構(gòu)及性能評價結(jié)果。
2.2.1 NSGA2-AMFCGO算法
基于NSGA-Ⅱ的自適應(yīng)多尺度特征通道分組優(yōu)化算法(Adaptive Multi-scale Feature Channel Grouping Optimization algorithm based on NSGA-Ⅱ,NSGA2-AMFCGO)的具體實現(xiàn)如下:
算法1 NSGA2-AMFCGO 算法。
輸入 種群初始化的相關(guān)參數(shù),種群規(guī)模=20,個體維度=8;
輸出 非支配解集及其適應(yīng)度值,即最佳LCNN 結(jié)構(gòu)集合及其對應(yīng)性能。
1)初始化。初始化種群,并設(shè)置當(dāng)前進化代數(shù)t=1。
2)解碼初始種群得到臨時自適應(yīng)多尺度特征通道分組模塊結(jié)構(gòu),將其嵌入LCNN 中,構(gòu)成臨時LCNN 結(jié)構(gòu)。
3)根據(jù)式(3)建模的雙目標函數(shù),對臨時LCNN 進行性能評價,得到適應(yīng)度值。
4)產(chǎn)生子種群。判斷是否生成了第一代子種群,若已生成,則設(shè)置當(dāng)前進化代數(shù)t=2;否則,根據(jù)適應(yīng)度值對初始種群進行非支配排序和選擇、高斯交叉、變異,產(chǎn)生第一代子種群,并設(shè)置當(dāng)前進化代數(shù)t=2。
5)循環(huán)開始:
5.1)產(chǎn)生合并種群。將父代種群與子代種群合并為新種群。
5.2)種群演化。判斷是否已生成新的父代種群:若沒有,則根據(jù)種群中個體的適應(yīng)度值,執(zhí)行快速非支配排序、計算擁擠度、精英策略等操作,生成新的父代種群;否則,對生成的父代種群執(zhí)行選擇、交叉、變異操作生成子代種群。
5.3)判斷t是否等于最大的進化代數(shù)T,若沒有則進化代數(shù)自增1,并返回第5)步;否則,從非支配解集中選擇一個解,解碼得到優(yōu)化后的自適應(yīng)多尺度特征通道分組模塊結(jié)構(gòu)(設(shè)計的結(jié)構(gòu)中包含兩個特征提取模塊),將其嵌入基于非均勻通道分組多尺度的特征融合LCNN 結(jié)構(gòu)中,得到優(yōu)化后的LCNN 結(jié)構(gòu),即基于NSGA-Ⅱ的自適應(yīng)多尺度的特征融合網(wǎng)絡(luò)(Adaptive Multi-scale Feature Fusion Network based on NSGA2,NSGA2-AMFFNetwork),并評價該結(jié)構(gòu)性能。
6)停止循環(huán)。
算法1 中,個體編碼方式為將1×1 點卷積、3×3 標準卷積以及3×3 的膨脹卷積對應(yīng)的特征提取通道的分組數(shù)分別編碼到個體的3 個維度上。然后,將種群規(guī)模擴充至20。種群規(guī)模擴充的具體做法為:a)將設(shè)計的第一個自適應(yīng)多尺度特征通道分組優(yōu)化模塊中3 個待搜索的通道分組數(shù)作為個體第1 至3 個維度上的值;同理,將第二個優(yōu)化模塊中的3 個通道分組數(shù)作為個體第4 至6 個維度上的值。b)將LCNN 運行得到的圖像分類精確度作為個體的精確度,初始值置為0;將LCNN 的復(fù)雜度作為個體的復(fù)雜度值,其初始值根據(jù)式(3)計算。c)個體計數(shù)器自增1,并判斷個體數(shù)是否大于20,若不大于,則返回第3)步;否則,輸出初始化后的種群并停止操作。
2.2.2 網(wǎng)絡(luò)結(jié)構(gòu)
基于NSGA-Ⅱ的自適應(yīng)多尺度特征通道分組優(yōu)化模塊1(NSGA2-AMFFModule1)包括:深度卷積層和自適應(yīng)多尺度特征通道分組優(yōu)化層,如圖5 所示,它的輸入特征圖通道數(shù)為96。首先,通過深度卷積層進行特征提取,利用NSGA-Ⅱ在自適應(yīng)分組層確定3 種尺度的卷積核對應(yīng)的特征提取通道數(shù)分別為g11、g12和g13;然后,進行特征提取,在合并層進行通道合并,最后得到輸出特征圖。
圖5 基于NSGA-Ⅱ的自適應(yīng)多尺度特征通道分組優(yōu)化模塊1Fig.5 NSGA-Ⅱ based adaptive multi-scale feature fusion module 1
基于NSGA-Ⅱ的自適應(yīng)多尺度特征通道分組優(yōu)化模塊2(NSGA2-AMFFModule2)包括:在點卷積和深度卷積層特征提取的基礎(chǔ)上,利用NSGA-Ⅱ自適應(yīng)分組特征提取通道,如圖6 所示,它的輸入特征圖通道數(shù)為240。首先,依次通過點卷積和深度卷積層進行特征提??;然后利用NSGA-Ⅱ在自適應(yīng)分組層確定3 種尺度的卷積核對應(yīng)的特征提取通道數(shù)分別為g21、g22和g23;接著,分別進行特征提取及通道合并,得到輸出特征圖,等待后續(xù)處理。
圖6 基于NSGA-Ⅱ的自適應(yīng)多尺度特征通道分組優(yōu)化模塊2Fig.6 NSGA-Ⅱ based adaptive multi-scale feature fusion module 2
將NSGA2-AMFFModule1 嵌入自適應(yīng)多尺度特征融合層3,NSGA2-AMFFModule2 嵌入自適應(yīng)多尺度特征融合層7,搭建出NSGA2-AMFFNetwork,如圖7 所示。
圖7 NSGA2-AMFFNetwork結(jié)構(gòu)Fig.7 Structure of NSGA2-AMFFNetwork
從圖7 中可看出,基于NSGA-Ⅱ的自適應(yīng)多尺度特征通道分組優(yōu)化LCNN 結(jié)構(gòu)包含10 個卷積層:第1 層為3 × 3 的普通卷積;第2 層為3 × 3 的普通卷積和點卷積組成的深度卷積;第3 層為深度卷積和自適應(yīng)多尺度特征通道分組優(yōu)化模塊層;第4 至6 層和第8 至10 層均為3 × 3 的普通卷積和點卷積組成的深度卷積;第7 層為點卷積、深度卷積以及自適應(yīng)多尺度特征通道分組優(yōu)化模塊組成的層。第3 層和第7 層通過基于NSGA-Ⅱ的自適應(yīng)多尺度特征通道分組優(yōu)化算法自動搜索最優(yōu)結(jié)構(gòu)。
本實驗以圖像分類問題為例,采用數(shù)據(jù)集BloodMNIST。它是Yang 等[29]提出的輕量型醫(yī)學(xué)圖像數(shù)據(jù)集MedMNIST 中基于個體正常細胞的圖像,像素大小為28×28,通道數(shù)為3。這些圖像從沒有感染的血液學(xué)或腫瘤學(xué)方面疾病的人體中采集,在采血時沒有任何藥物治療。它總共包含17 092 張圖像,分為8 個類。實驗中,采用前13 673 張圖像作為最終LCNN 的訓(xùn)練集,后3 419 張圖像作為最終LCNN 的測試集。為了提高訓(xùn)練速度、降低實驗的時間成本,臨時LCNN 采用的訓(xùn)練集和測試集的規(guī)模是最終LCNN 的1/10,即從原數(shù)據(jù)集中分別選擇前1 367 張和后341 張作為臨時LCNN 訓(xùn)練和測試的數(shù)據(jù)集。臨時和最終LCNN 的訓(xùn)練批次大小均設(shè)置為128。
硬件環(huán)境:實驗采用了一臺臺式機和一臺筆記本。臺式機的CPU 配置為Intel Core i7,主頻3.00 GHz,系統(tǒng)處理器是64 位,8 GB 運行內(nèi)存;筆記本的CPU 配置為Intel Core i7-8550U,主頻1.80 GHz,系統(tǒng)類型是基于x64 的4 核8 線程處理器。
軟件環(huán)境:實驗在Windows 10 系統(tǒng)下進行,使用的機器學(xué)習(xí)編程框架為谷歌人工智能團隊開發(fā)和維護的TensorFlow1.14.0。采用Python 語言下的CPU 版本,使用的集成開發(fā)環(huán)境為PyCharm,使用Python 語言對進化算法和LCNN 結(jié)構(gòu)進行編寫和運行。
根據(jù)LCNN 結(jié)構(gòu)中的特征融合模塊數(shù)、特征提取的卷積核尺寸、特征圖大小、分組后每組的特征通道數(shù)確定LCNN結(jié)構(gòu)的計算量,將其作為衡量LCNN 復(fù)雜度的指標,公式為:
其中:Fcomplex表示LCNN 結(jié)構(gòu)的復(fù)雜度;M是特征融合模塊數(shù);G為分組卷積操作的組數(shù);Img、CWmg、CHmg、Wm、Hm、Omg分別表示第m個特征融合模塊中,第g組輸入特征通道數(shù)、卷積核的寬度與高度、特征圖的寬度與高度以及輸出特征通道數(shù)。
將LCNN 在圖像分類任務(wù)中的分類正確率作為精確度,即LCNN 的分類正確率為測試正確的標簽數(shù)與總有效測試標簽數(shù)的比值:
其中:Ltrue為LCNN 結(jié)構(gòu)在圖像分類數(shù)據(jù)集上的分類正確標簽數(shù);Lfalse為LCNN 結(jié)構(gòu)在圖像分類數(shù)據(jù)集上的分類錯誤標簽數(shù)。
構(gòu)建NSGA2-AMFFNetwork,在BloodMNIST 數(shù)據(jù)集上與其他經(jīng)典的LCNN 結(jié)構(gòu)選取10 層網(wǎng)絡(luò)進行對比。對比結(jié)構(gòu)包括:經(jīng)典的輕量型卷積神經(jīng)網(wǎng)絡(luò)MobileNet_v1[30]、MobileNet_v2[31]、ShuffleNet_v2[32]、DenseNet[33]、基于非均勻分組的輕量型卷積神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu)M_blockNet_v1[27]以及基于單目標進化算法的輕量型卷積網(wǎng)絡(luò)SSCA_MblockNet[28]。它們在BloodMNIST 數(shù)據(jù)集上運行100 代的平均測試精確度和運行時間對比結(jié)果如表1 所示。
表1 平均測試精確度及運行時間對比Tab.1 Comparison of average test accuracy and running time
從表1 中可以看出,NSGA2-AMFFNetwork 的平均測試精確度為92.712 7%,優(yōu)于對比的其他結(jié)構(gòu);它的運行時間為4 818 s,在所有對比的LCNN 中排名第4,性能評價消耗的時間較少。對于輕量型卷積神經(jīng)網(wǎng)絡(luò)來說,DenseNet 的平均精確度表現(xiàn)比表1 中的其他經(jīng)典的LCNN 更好。M_blockNet_v1 的平均精確度排名第4,比DenseNet 要低。SSCA_MblockNet 平均精確度排名第2,比優(yōu)化前的M_blockNet_v1表現(xiàn)更佳,并且超過了DenseNet,但其所需運行時間更長。這是由于SSCA_MblockNet 在建模時只考慮了精確度這個目標,盡管基于單目標進化算法能夠自動搜索更合適的LCNN結(jié)構(gòu),但所需計算代價更大、運行時間更長。NSGA2-AMFFNetwork 與基于單目標進化算法優(yōu)化的LCNN 結(jié)構(gòu)相比,具有更高的平均精確度和更短的運行時間。這表明,對LCNN 的特征融合層結(jié)構(gòu)優(yōu)化問題進行雙目標函數(shù)建模,并利用NSGA-Ⅱ?qū)CNN 結(jié)構(gòu)進行優(yōu)化,能夠更均衡地優(yōu)化精確度和搜索效率。實驗中的7 種LCNN 結(jié)構(gòu)在圖像數(shù)據(jù)集BloodMNIST 上測試100 次的精確度變化對比如圖8 所示。
圖8 LCNN測試精確度變化對比Fig.8 Comparison of LCNN test accuracy changes
由圖8 可以看出,基于NSGA-Ⅱ的自適應(yīng)多尺度特征通道分組優(yōu)化算法在測試時具有更穩(wěn)定的測試精確度和收斂速度。7 種LCNN 結(jié)構(gòu)在圖像分類數(shù)據(jù)集BloodMNIST 上測試25 次左右時均出現(xiàn)跳躍現(xiàn)象,這可能是由于實驗中學(xué)習(xí)率在25 次時發(fā)生跳躍變化導(dǎo)致的。本文實驗中所有LCNN在訓(xùn)練和測試時學(xué)習(xí)率統(tǒng)一設(shè)置為前25 次取0.01;之后,測試每增加25 次,學(xué)習(xí)率縮小為原來的1/10。25 次后,所有的LCNN 的精確度表現(xiàn)逐漸趨于收斂。NSGA2-AMFFNetwork得到的一組Pareto 最優(yōu)解集包含3 組解,如表2 所示。
表2 NSGA2-AMFFNetwork模塊的通道分組參數(shù)Tab.2 Channel grouping parameters of NSGA2-AMFFNetwork modules
由表2 可知,在數(shù)據(jù)集上實驗,將Pareto 解集解碼后,獲得NSGA2-AMFFNetwork 兩個自適應(yīng)多尺度特征提取模塊的通道分組結(jié)構(gòu)參數(shù)。該解集中包含3 個Pareto 非支配解,即3 個臨時LCNN 的特征提取通道結(jié)構(gòu)。其中,序號為1 的解,在臨時圖像分類數(shù)據(jù)集上測試第5 次時的F1和F2值分別為0.152 673 94 和0.738 235 29;序號為2 的解F1和F2的值分別為0.102 931 15 和0.808 235 29;序號為3 的解F1和F2的值分別為0.104 388 07 和0.798 235 29。本實驗中根據(jù)用戶需要LCNN 精確度與復(fù)雜度均適中的偏好(即要求與解集中的其他解相比,被選擇的解對應(yīng)F1和F2的值分別居中),從非支配解集中選擇序號為3 的解作為最終解。它被視為滿足用戶偏好的有潛力的解,將其解碼作為最終LCNN 結(jié)構(gòu)。NSGA2-AMFFModule1 的3 種尺度的特征提取通道數(shù)分別為80、5、11;NSGA-AMSFFModule2 的3 種尺度的特征提取通道數(shù)分別為198、13、29。
設(shè)置NSGA-Ⅱ優(yōu)化前的M_blockNet_v1 特征提取模塊的兩組參數(shù)分別為:64、16、16 以及160、40、40。根據(jù)式(1)~(2)分別計算出在BloodMNIST 數(shù)據(jù)集上優(yōu)化前后LCNN 結(jié)構(gòu)的參數(shù)量和計算量,以及運行100 次的平均測試精確度和運行時間,結(jié)果如表3 所示。從表3 可以看出,在BloodMNIST圖像分類數(shù)據(jù)集上,基于NSGA-Ⅱ算法優(yōu)化后的LCNN 的計算總量比手工設(shè)計的LCNN 結(jié)構(gòu)降低了26.505 2×107,平均精確度提升了1.220 2 個百分點,運行時間上降低了41.07%。這說明基于雙目標的目標函數(shù)建模能在保證LCNN 結(jié)構(gòu)優(yōu)化程度具有可觀競爭力的同時,兼顧LCNN 的精確度性能表現(xiàn),而且基于NSGA-Ⅱ的優(yōu)化算法可根據(jù)用戶偏好和問題需求選擇合適的解,對領(lǐng)域知識不足的用戶更加友好,針對不同的圖像分類問題,更容易找到合適的LCNN結(jié)構(gòu)。
表3 LCNN優(yōu)化前后復(fù)雜度和精確度對比結(jié)果Tab.3 Comparison results of complexity and accuracy before and after LCNN optimization
為了驗證基于NSGA-Ⅱ的自適應(yīng)多尺度特征通道分組優(yōu)化算法對卷積模塊和最終網(wǎng)絡(luò)的優(yōu)化效果,選取原始醫(yī)學(xué)圖像分類數(shù)據(jù)集BloodMNIST 中大小為28×28×3 的8 張人體細胞圖進行展示,如圖9 所示。
圖10 展示了原始圖像在經(jīng)過NSGA2-AMFFNetwork 中的深度卷積層2 卷積后的特征圖結(jié)果,以及NSGA2-AMFFModule1 優(yōu)化前后的特征圖結(jié)果。在基于NSGA-Ⅱ的LCNN 結(jié)構(gòu)中,對種群進行初始化、訓(xùn)練和測試、根據(jù)演化策略更新種群得到最優(yōu)解集,可以看作是對網(wǎng)絡(luò)優(yōu)化前的操作,它對應(yīng)的特征圖結(jié)果主要表現(xiàn)為兩個模塊特征圖的不同。從圖10 還可以看出,優(yōu)化后模塊1 的特征圖結(jié)果所含的圖像信息更加豐富,從而使分類結(jié)果更加準確。這是由于采用算法優(yōu)化后的模塊1 中算法優(yōu)化后選擇的點卷積特征通道數(shù)更多,可以使特征提取信息更細致。模塊1 中,算法優(yōu)化后選擇的標準卷積和膨脹卷積通道數(shù)更少,這可以使當(dāng)前特征圖保留更多的信息,方便后續(xù)特征提取。
圖10 深度卷積層2及NSGA2-AMFFModule1優(yōu)化前后特征圖Fig.10 Feature maps of deep convolution layer 2 and NSGA2-AMSFFModule1 before and after optimization
深度卷積層6 特征提取以及NSGA2-AMFFModule2 優(yōu)化前后的特征圖結(jié)果如圖11 所示。比較圖10 和圖11 可以看出,經(jīng)過種群演化選擇后的不同尺度對應(yīng)的特征通道分組設(shè)置,使特征圖所含信息比優(yōu)化前更加豐富。
圖11 深度卷積層6及NSGA2-AMFFMoudle2優(yōu)化前后特征圖Fig.11 Feature maps of deep convolution layer 6 and NSGA2-AMSFFMoudle2 before and after optimization
經(jīng)過深度卷積層10 特征提取后的特征圖結(jié)果,即NSGA2-AMSFFNetwork 結(jié)構(gòu)優(yōu)化前后對應(yīng)的特征圖結(jié)果如圖12 所示。
圖12 NSGA2-AMSFFNetwork優(yōu)化前后特征圖Fig.12 Feature maps of NSGA2-AMSFFNetwork before and after optimization
由圖10~12 所示的特征圖可知,在基于NSGA-Ⅱ的LCNN 中,兩個模塊中3 種尺度的卷積核對應(yīng)的特征通道分組優(yōu)化后,能提取更加豐富的特征信息,從而提高分類結(jié)果的準確度,進而說明提出的基于NSGA-Ⅱ的LCNN 特征通道分組結(jié)構(gòu)優(yōu)化算法是有效的。
本文針對LCNN 結(jié)構(gòu)的復(fù)雜度和精確度優(yōu)化不平衡問題,提出了基于NSGA-Ⅱ的自適應(yīng)多尺度特征通道分組優(yōu)化算法。首先,針對特征通道分組優(yōu)化問題進行雙目標函數(shù)建模,設(shè)計基于NSGA-Ⅱ的LCNN 特征通道分組結(jié)構(gòu)優(yōu)化框架及算法;然后,構(gòu)建基于NSGA-Ⅱ的自適應(yīng)多尺度特征通道分組優(yōu)化LCNN 結(jié)構(gòu);最后,在圖像分類數(shù)據(jù)集上進行對比實驗。實驗結(jié)果表明,基于NSGA-Ⅱ的自適應(yīng)多尺度特征通道分組優(yōu)化LCNN 特征通道分組結(jié)構(gòu)在平衡精確度和復(fù)雜度方面具有競爭力。
多目標進化算法NSGA-Ⅱ?qū)CNN 結(jié)構(gòu)優(yōu)化易陷入局部最優(yōu),可以進一步研究對LCNN 結(jié)構(gòu)的全局搜索和優(yōu)化。此外,可將降低性能評價時間作為另一個目標,進行三目標函數(shù)建模,從而提高網(wǎng)絡(luò)性能。