摘 要:在TensorFlow中,神經(jīng)網(wǎng)絡(luò)模型對訓(xùn)練數(shù)據(jù)的效果有很大的影響。在與圖像數(shù)據(jù)相關(guān)的模型中有幾種訓(xùn)練數(shù)據(jù)模型:深度神經(jīng)網(wǎng)絡(luò)模型、非線性神經(jīng)網(wǎng)絡(luò)模型、多層神經(jīng)網(wǎng)絡(luò)模型,它們對不同類型的數(shù)據(jù)集有不同的影響。MNSIT集是神經(jīng)網(wǎng)絡(luò)模型性能檢驗(yàn)的常用數(shù)據(jù)集,不同的神經(jīng)網(wǎng)絡(luò)模型在數(shù)據(jù)集上有不同的結(jié)果。
關(guān)鍵詞:MNIST集;神經(jīng)網(wǎng)絡(luò)模型
中圖分類號:TP183;TP391.41 文獻(xiàn)標(biāo)識碼:A 文章編號:2096-4706(2018)11-0075-03
Research on Influence of Different Neural Network Models on
MNIST Data Set in TensorFlow
FAN Minghao
(Zhejiang Sci-Tech University,Hangzhou 310018,China)
Abstract:In TensorFlow,neural network model has great influence on the result of training data. In the training related to image data,there are several training data models:deep neural network model,nonlinear neural network model,multi-layer neural network model,they have different influence on different types of data sets. The MNSIT sets is the common data set for neural network model performance checking,and different neural network models have different results on the data set.
Keywords:MNIST sets;neural network model
1 MNIST數(shù)據(jù)集
在機(jī)器學(xué)習(xí)中,神經(jīng)網(wǎng)絡(luò)為了實(shí)現(xiàn)某項(xiàng)功能,就必須在已經(jīng)建立的神經(jīng)網(wǎng)絡(luò)中輸入大量的數(shù)據(jù),使用者的目的不同,輸入數(shù)據(jù)也不盡相同。在關(guān)于神經(jīng)網(wǎng)絡(luò)的學(xué)習(xí)中,MNSIT數(shù)據(jù)集是基本的入門數(shù)據(jù)集,它是由70000張手寫數(shù)字的圖片封裝而來。在MNSIT數(shù)據(jù)集中它又被分為60000張訓(xùn)練數(shù)據(jù)集,以及10000張測試數(shù)據(jù)集。
在神經(jīng)網(wǎng)絡(luò)模型驗(yàn)證和測試中,MNIST數(shù)據(jù)集具有一定的代表性,通過使用MNSIT數(shù)據(jù)集可以很好地看出不同的神經(jīng)網(wǎng)絡(luò)模型的性能。
2 深層神經(jīng)網(wǎng)絡(luò)
深層神經(jīng)網(wǎng)絡(luò)是基于淺層神經(jīng)網(wǎng)絡(luò)而言的,他們的不同之處就在于深層神經(jīng)網(wǎng)絡(luò)具有兩個(gè)重要的特性——多層和非線性。
2.1 淺層神經(jīng)網(wǎng)絡(luò)的缺點(diǎn)
在淺層神經(jīng)網(wǎng)絡(luò)中僅有輸入層、輸出層和一層未加激活函數(shù)的隱藏層。根據(jù)計(jì)算公式:y=Σwixi+b,可以看出,淺層神經(jīng)網(wǎng)絡(luò)是簡單的線性函數(shù),對于復(fù)雜的非線性情況無法很好地進(jìn)行處理。而且在線性模型中,無論增加多少隱藏層,通過公式:y=x·W1·W2…Wn=x·W’,可以看出其最終都會化簡成為一個(gè)新的單層神經(jīng)網(wǎng)絡(luò),這樣就無法發(fā)揮多層神經(jīng)網(wǎng)絡(luò)的優(yōu)勢。
如圖1、2所示,在處理線性二分問題上,線性神經(jīng)網(wǎng)絡(luò)可以處理得很好,但是在復(fù)雜的非線性問題上其就無法發(fā)揮處理作用。
2.2 非線性神經(jīng)網(wǎng)絡(luò)
相較于線性神經(jīng)網(wǎng)絡(luò)而言,非線性神經(jīng)網(wǎng)絡(luò)僅僅是添加了一個(gè)激活函數(shù)(Activation)。在淺層神經(jīng)網(wǎng)絡(luò)中我們知道,當(dāng)神經(jīng)元如果僅僅是輸入的加權(quán)和時(shí),就會導(dǎo)致神經(jīng)網(wǎng)絡(luò)的線性化。如果在每一個(gè)神經(jīng)元的輸出加上一個(gè)非線性函數(shù),就會使得整個(gè)神經(jīng)網(wǎng)絡(luò)成為非線性。這個(gè)非線性函數(shù)就是激活函數(shù)。
A1=[a11,a12,a13]=f(x·W(1)+b)=f([x1,x2] +[b1,b2,b3])=f(w1,1·x1+w2,1·x2+b1,w1,2·x1+w2,2·x2+b2,w1,3·x1+w2,3·x2+b3)=[f(w1,1·x1+ w2,1·x2+b1),f(w1,2·x1+w2,2·x2+b2),f(w1,3·x1+w2,3·x2+b3)]
其中函數(shù)F可分成多種激活函數(shù):ReLu函數(shù)、sigmoid函數(shù)、tanh函數(shù)等等。這些函數(shù)各有其特點(diǎn),通過運(yùn)用這些函數(shù)使得神經(jīng)網(wǎng)絡(luò)其處理非線性的問題。
2.3 多層網(wǎng)絡(luò)和正則化處理
2.3.1 多層網(wǎng)絡(luò)
如圖3所示,是一個(gè)簡單的神經(jīng)網(wǎng)絡(luò)結(jié)構(gòu),輸入層首先將數(shù)據(jù)進(jìn)行加權(quán)和,然后通過激活函數(shù),最后得到輸出,這個(gè)結(jié)構(gòu)沒有隱藏層的函數(shù),這就導(dǎo)致數(shù)據(jù)無法處理異或的情況,但是加入隱藏層之后(如圖4所示)神經(jīng)網(wǎng)絡(luò)就可以進(jìn)行很好的區(qū)分。
在隱藏層中,我們看到四個(gè)神經(jīng)元節(jié)點(diǎn)都有一部分區(qū)域是深色的,而輸出則是這四個(gè)節(jié)點(diǎn)的組合,從這個(gè)例子中我們可以了解到,在隱藏層中深層神經(jīng)網(wǎng)絡(luò)對數(shù)據(jù)的特征進(jìn)行了一次提取,每個(gè)節(jié)點(diǎn)提取出一部分,之后再將數(shù)據(jù)進(jìn)行對比并將對比的結(jié)果輸出在最后的結(jié)果中,進(jìn)而組合成為最后的輸出。
2.3.2 正則化
正如多層網(wǎng)絡(luò)中提到的,深層神經(jīng)網(wǎng)絡(luò)可以對數(shù)據(jù)的特征進(jìn)行提取。但是當(dāng)神經(jīng)網(wǎng)絡(luò)隱藏層的參數(shù)比訓(xùn)練數(shù)據(jù)還要多的時(shí)候,就會使得神經(jīng)網(wǎng)絡(luò)記住每一個(gè)數(shù)據(jù)的特征值。如此一來就會導(dǎo)致訓(xùn)練出來的模型只能識別訓(xùn)練數(shù)據(jù),一旦輸入測試數(shù)據(jù)就會使得神經(jīng)網(wǎng)絡(luò)無法做出判斷。這種現(xiàn)象就叫作過擬合。
為了解決過擬合的問題,可以使用正則化處理。正則化是指在損失函數(shù)中引入刻畫神經(jīng)網(wǎng)絡(luò)參數(shù)復(fù)雜度的表示:R(w)。表示模型的復(fù)雜度有兩種表達(dá)式:L1正則化和L2正則化。無論是哪種正則表達(dá)式,其根本目的都在于限制權(quán)重的大小,使得神經(jīng)網(wǎng)絡(luò)不會擬合每一個(gè)數(shù)據(jù)特征,而是專注于提取公共特征值。
3 卷積神經(jīng)網(wǎng)絡(luò)
3.1 卷積神經(jīng)網(wǎng)絡(luò)的優(yōu)勢(cnn)
在之前的深度神經(jīng)網(wǎng)絡(luò)中,輸入層和隱藏層之間、隱藏層與隱藏層之間以及隱藏層與輸出層之間都是通過全連接而成的。比如在MNIST的一張28×28×1圖片。假設(shè)隱藏層有一層,而每層的節(jié)點(diǎn)數(shù)為500個(gè),那么在全連接的神經(jīng)網(wǎng)絡(luò)中隱藏層中的權(quán)重參數(shù)將會達(dá)到28×28×500+500= 392500(個(gè))。
這很容易導(dǎo)致模型過擬合,但是如果使用卷積神經(jīng)網(wǎng)絡(luò)過濾器為3×3×5規(guī)格大小,它的卷積層的參數(shù)將會只有3×3×5+5=50(個(gè))。雖然之后還要經(jīng)過池化層和一個(gè)全連接層,但是相比較一開始的經(jīng)過全連接層就需要上萬個(gè)參數(shù),使用卷積可以大幅減少參數(shù)個(gè)數(shù),進(jìn)而避免出現(xiàn)過擬合問題。
3.2 特點(diǎn)
在卷積神經(jīng)網(wǎng)絡(luò)中,我們使用卷積和池化兩種特別的方式來處理輸入的數(shù)據(jù)。
3.2.1 卷積處理
在卷積層主要是通過過濾器來實(shí)現(xiàn)對數(shù)據(jù)的轉(zhuǎn)化。通過過濾器我們可以將輸入數(shù)據(jù)的一個(gè)子節(jié)點(diǎn)矩陣轉(zhuǎn)化成下一層的單位矩陣。同樣在將數(shù)據(jù)進(jìn)行權(quán)重求和之后也要進(jìn)行非線性處理(添加激活函數(shù))。
3.2.2 池化處理
通過池化層,我們可以大幅減少數(shù)據(jù)的規(guī)格尺寸,從而減少最后的全連接層的參數(shù)。
4 各種模型在MNIST上的運(yùn)行結(jié)果
如圖5所示,在MNIST數(shù)據(jù)集使用不同的神經(jīng)網(wǎng)絡(luò)模型或優(yōu)化之后的模型,訓(xùn)練之后的結(jié)果大不相同。對于不使用隱藏層的簡單模型只有92.6%的正確率,使用了所有優(yōu)化的多層神經(jīng)網(wǎng)絡(luò)比使用一部分的優(yōu)化的模型,正確率有了顯著提高。最后是卷積神經(jīng)網(wǎng)絡(luò)模型,它在MNIST數(shù)據(jù)集上的訓(xùn)練結(jié)果達(dá)到最高,為99.5%。從中我們就可以發(fā)現(xiàn)不同的神經(jīng)網(wǎng)絡(luò)模型確實(shí)有不同的作用。
5 結(jié) 論
將不同的神經(jīng)網(wǎng)絡(luò)模型輸入MNIST數(shù)據(jù)集,經(jīng)過最后的輸出處理得出最后的正確率結(jié)果。如圖5所示,可以看到,在MNIST數(shù)據(jù)集上使用卷積神經(jīng)網(wǎng)絡(luò)模型的結(jié)果正確率是最高的,而不使用激活函數(shù)的神經(jīng)網(wǎng)絡(luò)模型的正確率是最低的。
由此我們可以得出,在神經(jīng)網(wǎng)絡(luò)中選取的網(wǎng)絡(luò)模型不同,最后得出的結(jié)果也不相同。因此,對于不同的問題要具體分析,選取正確的神經(jīng)網(wǎng)絡(luò)模型才能保證結(jié)果的正確率。
參考文獻(xiàn):
[1] 才云科技Caicloud,鄭澤宇,顧思宇.Tensorflow:實(shí)戰(zhàn)Google深度學(xué)習(xí)框架 [M].北京:電子工業(yè)出版社,2017.
[2] [美] Ian Goodfellow,[加] Yoshua Bengio,[加] Aaron Courville.深度學(xué)習(xí)(Deep Learning) [M].北京:人民郵電出版社,2017.
[3] 周志華.機(jī)器學(xué)習(xí)[M].北京:清華大學(xué)出版社,2016.
[4] [美] Peter Harrington 著.機(jī)器學(xué)習(xí)實(shí)戰(zhàn) [M].李銳,李鵬,曲亞東,等譯.北京:人民郵電出版社,2013.
作者簡介:范銘豪(1996.10-),男,漢族,安徽池州人,本科。研究方向:計(jì)算機(jī)科學(xué)與技術(shù)。