邢世宏,施聞明,任薈潔
(1.海軍潛艇學院,山東 青島 266199;2.中國人民解放軍92763部隊,遼寧 大連 116000)
深度學習是近十年來人工智能領(lǐng)域取得的重要突破。它在語音識別、自然語言處理、計算機視覺、圖像與視頻分析、多媒體等諸多領(lǐng)域的應用取得了巨大成功?,F(xiàn)有的深度學習模型屬于卷積神經(jīng)網(wǎng)絡。神經(jīng)網(wǎng)絡的起源可追溯到20世紀40年代,曾在八九十年代流行。神經(jīng)網(wǎng)絡試圖通過模擬大腦認知的機理解決各種機器學習問題。1986年,Rumelhart,Hinton和Williams[1]發(fā)表了著名的反向傳播算法用于訓練神經(jīng)網(wǎng)絡,該算法直到今天仍被廣泛應用。
隨著2012年Alex Krizhevsky的AlexNet[2]在ILSVRC2012[3](ImageNet大規(guī)模視覺識別挑戰(zhàn)賽競賽)中獲得冠軍,深度卷積神經(jīng)網(wǎng)絡在大數(shù)據(jù)及高速GPU計算的推動下迅猛發(fā)展,到2015年,ResNet[4]以Top5錯誤率為3.57%的成績獲取ILSVRC冠軍;在人臉識別領(lǐng)域,DeepID[5]采用人臉辨識作為監(jiān)督信號,在LFW[6]上取得了97%的識別率;在物體檢測領(lǐng)域,以深度神經(jīng)網(wǎng)絡為基礎(chǔ)的檢測模型R-CNN[7],F(xiàn)ast RCNN[8],F(xiàn)aster R-CNN[9],R-FCN[10]在物體檢測方面獲得了很好的成績,上述的深度神經(jīng)網(wǎng)絡都是基于像ImageNet一樣的大數(shù)據(jù)樣本才能獲取較好的效果。此外,壓縮的卷積神經(jīng)網(wǎng)絡如SqueezeNet[11],MobileNets[12]XNOR-Net[13], Deep compression[14],Deep Model Compression[15], Perforated CNNs[16],Binarized Neural Networks[17]等網(wǎng)絡模型的訓練都是建立在大數(shù)據(jù)的基礎(chǔ)上,數(shù)據(jù)容量的多少成為能否訓練出一個好模型的關(guān)鍵因素。但上述各領(lǐng)域應用的模型對模型的建立與數(shù)據(jù)集容量間的關(guān)系沒有進行深入分析,僅停留在大數(shù)據(jù)集容量上。因此在采用深度學習方法解決現(xiàn)實問題時會出現(xiàn)需要多少訓練數(shù)據(jù)的問題。目前關(guān)于訓練網(wǎng)絡所需的數(shù)據(jù)集容量的理論研究還處于空白狀態(tài),還沒有相應的機器學習理論能解釋兩者直接的關(guān)系。本文在深入研究機器學習的相關(guān)理論后推導出深度卷積神經(jīng)網(wǎng)絡的復雜度與數(shù)據(jù)集容量之間的關(guān)系,并用實驗驗證了兩者關(guān)系的有效性,為卷積神經(jīng)網(wǎng)絡的構(gòu)建與訓練提供相應的理論及經(jīng)驗依據(jù)。
機器學習相關(guān)理論中,雖然沒有直接給出數(shù)據(jù)集容量與卷積神經(jīng)網(wǎng)絡參數(shù)量之間的關(guān)系,但明確闡述了VC維理論。根據(jù)Hoeffding[18]不等式:
同理可以將式(1)表示為:
根據(jù)上述理論Vapnik-Chervonenkis[19]引入了Vapnik-Chervonenkis dimension(VC維)。VC維度量二元分類器的容量。VC維被定義為該分類器能夠分類的訓練樣本的最大數(shù)目。VC維的邊界表示如下:
式(8)不等號右端即為VC維邊界。
表1 B(N,k)邊界值Tab.1 B(N,k)boundary value
表2邊界值Tab.2 Nk-1 boundary value
表2邊界值Tab.2 Nk-1 boundary value
images/BZ_195_313_525_376_558.pngk 1 2 3 4 5 N 1 1 2 2 2 2 2 1 3 4 8 16 3 1 4 9 27 81 4 1 5 16 64 256 5 1 6 36 216 1 296 6 1 7 22 42 57
由于深度神經(jīng)網(wǎng)絡特征是稀疏的,并且網(wǎng)絡中包含了規(guī)范化及特征選擇技術(shù),實際訓練模型過程中真實輸入的特征數(shù)應少于原始特征數(shù)量,因此在估算深度神經(jīng)網(wǎng)絡在訓練中所需的數(shù)據(jù)容量時,可以根據(jù)網(wǎng)絡隱藏層的參數(shù)量來代替,并且通過計算時,容量為的數(shù)據(jù)集可以滿足網(wǎng)絡模型的需求,然而實際中有很多領(lǐng)域很難獲取如此大的數(shù)據(jù)集,并且的容量太寬松。在此基礎(chǔ)之上,通過實驗來緊縮數(shù)據(jù)容量,得到一個比更緊湊關(guān)系。
受Hubel和Wiesel[20]對貓視覺皮層生理研究啟發(fā),有人提出卷積神經(jīng)網(wǎng)絡(CNN)[21],Yann LeCun[22]最早將CNN用于手寫數(shù)字識別。卷積神經(jīng)網(wǎng)絡與普通神經(jīng)網(wǎng)絡的區(qū)別在于,卷積神經(jīng)網(wǎng)絡包含了一個由卷積層和子采樣層構(gòu)成的特征抽取器。在卷積神經(jīng)網(wǎng)絡的卷積層中,一個神經(jīng)元只與部分鄰層神經(jīng)元連接。在CNN的一個卷積層中,通常包含若干個特征平面(featureMap),每個特征平面由一些矩形排列的神經(jīng)元組成,同一特征平面的神經(jīng)元共享權(quán)值,這里共享的權(quán)值就是卷積核。卷積核一般以隨機小數(shù)矩陣的形式初始化,在網(wǎng)絡的訓練過程中卷積核將學習得到合理的權(quán)值。共享權(quán)值(卷積核)帶來的直接好處是減少網(wǎng)絡各層之間的連接,同時又降低了過擬合的風險。子采樣也叫做池化(pooling),通常有均值子采樣(mean pooling)和最大值采樣(max pooling)兩種形式。子采樣可以看作一種特殊的卷積過程。
構(gòu)建網(wǎng)絡需要上述相關(guān)層的組合,可能相似的層會出現(xiàn)多次,具體需要多少層或者需要什么功能的層與網(wǎng)絡的復雜度、解決問題的復雜度相關(guān),目前還沒有針對構(gòu)建網(wǎng)絡層數(shù)的相關(guān)理論,所有網(wǎng)絡的搭建停留在經(jīng)驗的基礎(chǔ)上。本文在研究數(shù)據(jù)集容量與卷積神經(jīng)網(wǎng)絡參數(shù)量之間的關(guān)系時也是在LeNet,AlexNet的經(jīng)驗基礎(chǔ)上進行的。
由于卷積神經(jīng)網(wǎng)絡的訓練對計算機的硬件性能要求較高,因此考慮到實驗條件的限制,這里選取手寫數(shù)字識別的數(shù)據(jù)集mnist[23]及Cifar10[24]。Mnist是由Google實驗室的Corinna Cortes和紐約大學柯朗研究所的Yann LeCun建立的手寫數(shù)字數(shù)據(jù)庫,訓練庫有60 000張手寫數(shù)字圖像,驗證庫有10 000張,另外通過其他途徑獲取了包含有10 000張的測試集,相應的各標簽下的容量如表3所示,數(shù)據(jù)集中的部分數(shù)據(jù)圖像如圖1所示。
表3 Mnist數(shù)據(jù)集容量Tab.3 Mnist data set capacity
圖1 Mnist數(shù)據(jù)集Fig.1 Mnist data set
Cifar10數(shù)據(jù)集共有60 000張彩色圖像,尺寸為32*32,分為10個類,每類6 000張圖。這里面有50 000張用于訓練,構(gòu)成了5個訓練批,每一批10 000張圖;另外10 000用于驗證,單獨構(gòu)成一批。測試批的數(shù)據(jù)里,取自10類中的每一類,每一類隨機取1 000張。剩下的隨機排列組成了訓練批。一個訓練批中的各類圖像數(shù)量并不一定相同,總的來看訓練批,每一類都有5 000張圖,部分Cifar10圖像如圖2所示。
根據(jù)手寫數(shù)字識別及Cifar10識別的復雜度,并參考LeNet及AlexNet網(wǎng)絡構(gòu)建經(jīng)驗,搭建了DigitNet及Cifar10Net網(wǎng)絡,網(wǎng)絡結(jié)構(gòu)包括輸入層、卷積層、ReLU、Pooling層、全連接層、Softmax層、輸出層,結(jié)構(gòu)如表4和表5所示。給出相應數(shù)據(jù)集容量及網(wǎng)絡模型的參數(shù)量的比值,如表6所示。
圖2 Cifar10數(shù)據(jù)集Fig.2 Cifar10 data set
網(wǎng)絡模型的訓練收斂速度很大程度上取決于bachsize,因此為了使網(wǎng)絡模型在不同容量的數(shù)據(jù)集上更快收斂,將DigitNet在訓練數(shù)據(jù)容量為57 000到6 000之間的bachsize設(shè)定為256,容量為5 100到600間的bachsize設(shè)定為20。在不同容量的訓練集中分別訓練DigitNet的3個模型,訓練得到的準確率如表7所示。
表4 DigitNet卷積神經(jīng)網(wǎng)絡Tab.4 DigitNet convolutional neural network
表5 Cifar10Net卷積神經(jīng)網(wǎng)絡Tab.5 Cifar10Net convolutional neural network
表6 數(shù)據(jù)集容量與參數(shù)量比值Tab.6 Ratio of data set capacity and parameter amount
表7 不同訓練數(shù)據(jù)集下DigitNet模型的識別準確率Tab.7 The recognition accuracy of digitnet model under different training data sets
3個DigitNet網(wǎng)絡模型分別在不同容量的數(shù)據(jù)集上訓練并在驗證集及測試集上分別實驗了識別性能,根據(jù)表8的識別正確率繪制了不同訓練數(shù)據(jù)集容量與網(wǎng)絡模型識別正確率之間的關(guān)系曲線,如圖3所示。
圖3 不同訓練數(shù)據(jù)集下DigitNet模型的識別準確率曲線Fig.3 The recognition accuracy curve of digitnet model under different training data sets
從表7及圖3中可以看出,隨著訓練數(shù)據(jù)容量的減少,驗證集及測試集上的識別正確率呈現(xiàn)下降趨勢,同時可以看出容量超過20 000的識別情況并沒有太大的變化,在驗證集上的識別率幾乎與最大容量時相同,只是在測試集上表現(xiàn)不太穩(wěn)定,但總體上沒有超過0.1。隨著容量的繼續(xù)減少,到6 000到5 100時出現(xiàn)了一個較大的波動,這是因為在這里調(diào)整了batchsize的大小,從調(diào)整完之后可以看出,數(shù)據(jù)集容量減少到3 200時識別率才呈現(xiàn)出明顯的下降趨勢。
Cifar10只有訓練集及驗證集,沒有收集相關(guān)的測試集,因此訓練好的模型只在驗證集上進行測試,訓練過程中設(shè)置batchsize為100,測試的結(jié)果如表8所示。
根據(jù)訓練得到的測試數(shù)據(jù),繪制訓練數(shù)據(jù)容量集與識別準確率曲線如圖4所示。從圖中可以看在容量為17 500時,曲線下降趨勢開始明顯,在容量50 000到17 500之間識別率沒有大的變化,只是有較小的波動。
在上述進行的實驗中發(fā)現(xiàn),DigitNet雖然在調(diào)節(jié)batchsize時曲線有較大的波動,但這種波動可以通過調(diào)節(jié)batchsize的大小來獲取較好的訓練網(wǎng)絡,也就是說真正由訓練集容量導致識別率快速下降的容量為3 200到2 400的時候,如表7,圖3所示。在Cifar10Net訓練識別過程中,由于沒有調(diào)整batchsize的大小,因此在識別過程中沒有出現(xiàn)大的波動,但是隨著訓練集容量的變化,在容量為12 500到10 000時識別率下降開始明顯。根據(jù)上述分析分別選取DigitNet與Cifar10Net識別曲線上容量為3 200及17 500兩個容量值作為網(wǎng)絡在保持較好識別率的容量下限,并計算其與對應的模型參數(shù)量的比值,如表9所示。
表8 不同訓練數(shù)據(jù)集下Cifar10Net模型的識別準確率Tab.8 The recognition accuracy of cifar10net model under different training data sets
圖4 不同訓練數(shù)據(jù)集下Cifar10Net識別準確率曲線Fig.4 The recognition accuracy curve of Cifar10Net model under different training data sets
通過mnist及cifar10識別實驗中發(fā)現(xiàn)有實際數(shù)據(jù)量沒有達到10 000時也可以獲取較好的結(jié)果,這是因為實際給出的訓練樣本容量較為寬松。因此實際中使用深度卷積神經(jīng)網(wǎng)絡時可以根據(jù)解決問題的復雜程度準備相應的訓練數(shù)據(jù)集。從本文的實驗數(shù)據(jù)表8可以推斷出,在解決較為簡單的識別問題時,數(shù)據(jù)集容量的下限為,如果解決問題的復雜度較大時可以適量增加數(shù)據(jù)集容量。
表9 容量下限與模型參數(shù)量比Tab.9 The ratio of lower limit of capacity and model parameters
本文根據(jù)Vapnik-Chervonenkis的VC維理論,得到了對應于二分類的寬松數(shù)據(jù)集容量為。然后根據(jù)LeNet及AlexNet網(wǎng)絡的搭建經(jīng)驗,搭建了適合研究mnist及cifar10數(shù)據(jù)的DigitNet及Cifar10Net網(wǎng)絡,通過6個不同的網(wǎng)絡在不同容量數(shù)據(jù)集的訓練后,測試了對應網(wǎng)絡模型的識別率,繪制了訓練數(shù)據(jù)集容量對構(gòu)建的卷積神經(jīng)網(wǎng)絡識別性能的影響曲線,從中發(fā)現(xiàn),卷積神經(jīng)網(wǎng)絡的訓練并不是訓練數(shù)據(jù)越多越好,在一定模型下,訓練數(shù)據(jù)也沒有必要達到模型參數(shù)量的10 000倍,根據(jù)VC維理論,過于寬松,因此實際中無需的訓練數(shù)據(jù)。本文實驗結(jié)果給出了在解決mnist及cifar10數(shù)據(jù)集識別的問題無需很大的數(shù)據(jù)集容量,僅需要模型參數(shù)量的10倍為下限即可達到很好的識別效果。本文為無法獲取大量數(shù)據(jù)情況下使用卷積神經(jīng)網(wǎng)絡解決實際問題提供了一些實踐指導,也為接下來的艦船識別提供了相應的依據(jù)。