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