羅 斌 韓紀(jì)東
(1、贛州市腫瘤醫(yī)院信息科,江西 贛州341000 2、北京工業(yè)大學(xué)信息學(xué)部,北京100124)
卷積神經(jīng)網(wǎng)絡(luò)(Convolutional Neural Networks, CNN)是一種非常重要的圖像處理技術(shù),也是深度學(xué)習(xí)(Deep Learning,DL)領(lǐng)域最具有代表性的方法之一。卷積神經(jīng)網(wǎng)絡(luò)在圖像中有著非常廣泛的應(yīng)用,如圖像分類[1]、圖像分割[2]、目標(biāo)識別[3]等。隨著技術(shù)的發(fā)展,卷積神經(jīng)網(wǎng)絡(luò)甚至已經(jīng)被應(yīng)用到了自然語言處理(Natural Language Processing, NLP)領(lǐng)域[4],如文本糾錯、命名實體識別、機(jī)器翻譯等。
隨著人們對模型的精度要求越來越高,卷積神經(jīng)網(wǎng)絡(luò)模型也被設(shè)計的越來越深,所需要的數(shù)據(jù)也相應(yīng)的呈指數(shù)級增長。與之相對應(yīng)的是,訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)的的難度也越來越大:
(1)對所需硬件要求越來越高,如性能更高且價格更昂貴的GPU、TPU 等;
(2)訓(xùn)練的時間也越來越長;
(3)訓(xùn)練所需的能源消耗也越來越大。為了解決這個問題,本文使用主成分分析(Principal Component Analysis,PCA)提取圖像的主要信息,實際也就是對圖像進(jìn)行降維,然后再輸入卷積神經(jīng)網(wǎng)絡(luò);此時訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)時的計算及使用BP 算法進(jìn)行參數(shù)更新時的計算會大幅下降,進(jìn)而縮短卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練所花費的時間,也降低了訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)的硬件要求與能源消耗。
主成分分析方法是一種經(jīng)典的基于統(tǒng)計學(xué)的特征提取方法。深度學(xué)習(xí)技術(shù)興起之前,曾被廣泛應(yīng)用于數(shù)據(jù)的特征提取,由于其性能優(yōu)異,在圖像人臉識別等方面得到了大量的應(yīng)用。
大量數(shù)據(jù)相互之間通常會有一定的相關(guān)性,這說明了一個重要的問題,即大量數(shù)據(jù)所包含的信息具有一定的冗余。這就為我們提供了想法,使用一種算法剔除數(shù)據(jù)之間的信息冗余,這也就是主成分分析方法的目的。數(shù)據(jù)經(jīng)過主成分分析方法處理后,變成彼此之間不相關(guān)的數(shù)據(jù)。
這里以圖像為例,說明主成分分析方法的實現(xiàn)。主要有以下幾個步驟:
(1)計算所有圖像的協(xié)方差矩陣Cov;
(2)計算步驟1 中協(xié)方差矩陣Cov 的特征值、特征向量;
(3)將步驟2 中所得到的特征值按由大到小的順序排列,并將特征值相對應(yīng)的特征向量以同樣的順序排列構(gòu)成變換矩陣;
(4)將步驟3 得到的變換矩陣與原始圖像做矩陣乘法運算,結(jié)果即為經(jīng)過主成分分析處理后的結(jié)果。
卷積神經(jīng)網(wǎng)絡(luò)具有非常強大的提取圖像特征的能力。現(xiàn)在,卷積神經(jīng)網(wǎng)絡(luò)模型的使用方法主要有以下幾步:
(1)提出需求,如人臉識別、行人檢測、醫(yī)學(xué)圖像中的病灶部位(腫瘤等)分割等;
(2)收集大量的數(shù)據(jù),現(xiàn)在的卷積神經(jīng)網(wǎng)絡(luò)是以數(shù)據(jù)為驅(qū)動的有監(jiān)督學(xué)習(xí),需要使用大量的數(shù)據(jù)訓(xùn)練模型;
(3)根據(jù)需要設(shè)計相應(yīng)的卷積神經(jīng)網(wǎng)絡(luò)模型,卷積神經(jīng)網(wǎng)絡(luò)的主要基本單元有卷積運算、池化運算、批歸一化或?qū)託w一化、線性層、隨機(jī)丟失參數(shù)(dropout)、softmax 層等組成;4)將數(shù)據(jù)輸入卷積神經(jīng)網(wǎng)絡(luò)訓(xùn)練模型。
輸入圖像進(jìn)入卷積神經(jīng)網(wǎng)絡(luò)后主要有兩個運算:
(1)前項運算forward;
(2)反向傳播BP。
由于訓(xùn)練的過程是類似于循環(huán),顯然,這兩步將隨著輸入圖像大小的增加產(chǎn)生大量的運算。使用PCA 降維后,不僅提取了圖像的主要信息,而且盡最大可能保證了后續(xù)卷積神經(jīng)網(wǎng)絡(luò)的輸入圖像的完整性,同時也使得圖像數(shù)據(jù)量變小。
圖1 是本文設(shè)計的模型圖。輸入圖像首先經(jīng)過PCA 降維處理,降低圖像的數(shù)據(jù)量,又能盡可能保證圖像自身所攜帶的信息量。然后經(jīng)過卷積塊運算以提取特征。在本文中,該卷積塊又可分為兩個小卷積塊conv1 和conv2。conv1 卷積塊包含1 個卷積運算,1 個批歸一化BN,1 個激活運算(使用ReLU 函數(shù)激活);conv2 與conv1 設(shè)計的完全相同。圖像經(jīng)過卷積塊運算后會有1 個池化運算,該運算實際是一種降采樣。模型的最后一層為線性層,該層實際是一個分類器;經(jīng)過線性層后實際還有一個softmax 運算,這里將softmax 隱性包含在了線性層中。模型的最終輸出為圖像的類別數(shù)。
本文實驗使用了Fashion-MNIST 數(shù)據(jù)集,該數(shù)據(jù)集共有70000 張圖像,其中訓(xùn)練集60000 張,測試集10000 張;該數(shù)據(jù)集 共 有10 類,分 別 為'T-shirt/top'、'Trouser'、'Pullover'、'Dress'、'Coat'、'Sandal'、'Shirt'、'Sneaker'、'Bag'、'Ankle boot',每一類有訓(xùn)練圖像60000 張,測試圖像1000 張;該數(shù)據(jù)集中的圖像均為28*28 的灰度圖像。
本文使用的硬件CPU 為intel Core i7,GPU 為NVIDIA GeForce RTX2060。
圖1 模型結(jié)構(gòu)圖
在實驗中'CNN'表示原始卷積神經(jīng)網(wǎng)絡(luò),即輸入的圖像沒有使用主成分分析技術(shù)預(yù)處理。輸入圖像經(jīng)過主成分分析技術(shù)預(yù)處理后圖像的大小變?yōu)镹*N,在本實驗中N 的值分別取14、16、18、20、22,處理后圖像的大小比原數(shù)據(jù)集中的圖像28*28 明顯小很多。
表1 和表2 分別表示使用原始卷積神經(jīng)網(wǎng)絡(luò)和使用主成分分析技術(shù)預(yù)處理后卷積神經(jīng)網(wǎng)絡(luò)準(zhǔn)確率和時間消耗對比。由表1 可以看出N 取值為14、16、18 時準(zhǔn)確率是在不斷上升的,這符合本實驗的預(yù)期;因為隨著N 越大說明使用主成分分析技術(shù)預(yù)處理后得到的圖像信息就更多更全。當(dāng)N 取值為20、22 時準(zhǔn)確率卻在下降,這反而另本實驗比較有意義,這提示N 的取值是有一個臨界值的,當(dāng)N 超過這個臨界值時,使用主成分分析技術(shù)處理后的圖像可能已經(jīng)不適應(yīng)卷積神經(jīng)網(wǎng)絡(luò)。由表2 可以看出,使用主成分分析技術(shù)后,卷積神經(jīng)網(wǎng)絡(luò)的訓(xùn)練時間明顯縮短。在本實驗中,N 取16 或18 是一個比較綜合的結(jié)果,兼顧了準(zhǔn)確率與訓(xùn)練時間。
圖2 是分別訓(xùn)練30 輪、40 輪、50 輪的損失值下降曲線對比圖。結(jié)合表1 觀察圖2,可以發(fā)現(xiàn)兩者是極其吻合的,表1 中N取16 或18 時準(zhǔn)確率非常接近;圖2 中N 取16 或18 時兩者的損失函數(shù)值極其接近,在圖2 中兩者幾乎重合。這也從另外一個角度說明本文實驗的正確性。
表1 準(zhǔn)確率對比
表2 時間對比
圖2 分別訓(xùn)練30 輪、40 輪、50 輪的損失值下降曲線對比圖
由實驗結(jié)果可以看出,圖像先通過主成分分析方法處理,然后再輸入到卷積神經(jīng)網(wǎng)絡(luò),可在略微損失準(zhǔn)確率的條件下大幅降低訓(xùn)練卷積神經(jīng)網(wǎng)絡(luò)的時間。在準(zhǔn)確率要求不是那么嚴(yán)格的條件下,本文使用結(jié)合主成分分析技術(shù)與卷積神經(jīng)網(wǎng)絡(luò)的方法還是非??扇〉摹1疚姆椒ㄒ廊挥胁蛔阒?,由實驗可以看出N 的取值對訓(xùn)練結(jié)果的準(zhǔn)確率及時間消耗都有非常的的影響;下一步,我們的研究重點將放在,探索出一種方法以方便取N 最優(yōu)值。