蔣正鋒,廖群麗
(1.廣西民族師范學院數理與電子信息工程學院,崇左 532200;2.廣西理工職業技術學院電子工程與智能化學院,崇左 532200)
近年來,隨著計算機技術的發展,深度學習(deep learning)在計算機視覺、自然語言處理和語音識別等多個領域[1]都已取得顯著的效果,表現出極大的應用價值,現已成為人工智能的一個研究熱點,并開創了神經網絡發展的新紀元。
神經網絡起源于1943年的McCulloch-Pitts(MCP)模型,是人工神經模型的最早的原型[2]。1985年感知器算法被提出來,使得MCP模型能對多維數據進行二分類處理,隨后反向傳播算法的提出為現代神經網絡的快速發展打開了大門。20世紀80年代,啟發卷積神經網絡[3]和遞歸神經網絡[4]相繼被提出,而20世紀90年代,LeNet[5]應用于數字識別,取得了不錯的效果。2006年,因深度神經網絡理論在機器學習中取得初步成功的應用,Hinton等人提出了深度學習[6]的概念,引起了人們的關注。經過多年的發展,從單層網絡逐漸發展到多層網絡[7-8],而多層的神經網絡可能包含上百層以及上百兆的訓練參數。2012年提出的深度學習架構AlexNet摘取了2012年視覺領域競賽ILSVRC[9](imageNet large-scale visual recogni?tion challenge)的桂冠,Top-5的錯誤率降低到15.3%[10],其效果大幅度領先傳統的方法。隨后的幾年,識別錯誤率不斷被新提出更深層的卷積神經網絡刷新,在2014年,VGGNet取得了89.3%的平均正確率[11],2016年He等人提出的ResNet,將分類的錯誤率降低到3.57%[12],而2017年由胡杰等人提出的SENet錯誤識別率只有2.25%。各種不同的深度神經網絡模型的提出,促進了深度學習的發展。
深度學習的快速發展,離不開設計更加優秀的深度學習模型,人們也逐漸意識到深度學習模型的結構是深度學習研究的重中之重。深度學習的本質就是構建具有多個隱層的人工神經網絡模型,人工神經網絡的結構不管淺層還是深層主要是根據實驗和經驗來設計,但目前還沒有一套具體理論可遵循。本文基于TensorFlow框架,采用一種先簡單后復雜,多參數融合逐步優化的神經網絡設計方法,為后續設計更復雜的深度神經網絡提供了思路。
Google公司在計算機相關的很多領域都有卓越的表現,人工智能領域也不例外。TensforFlow是Google公司2015年開發的基于DistBelief的一款優秀開源的深度學習框架,設計神經網絡結構代碼簡潔,得到越來越多開發者的青睞。TensFlow不是全部由Python編寫,很多底層代碼是由C++或CUDA編寫的,它提供Python和C++的編程接口,對線程和隊列的基本運算能從底層來實現,也能較方便調用到硬件資源。用戶借助Tensor?Flow靈活的架構,可部署到多種平臺(CPU、GPU、TPU)進行分布式計算,為大數據分析提供支持。TensorFlow的跨平臺性也好,在各種設備(桌面設備、服務器集群、移動設備、邊緣設備)下工作。總之,TensorFlow為計算機視覺、自然語言處理和語音識別等機器學習和深度學習提供了強有力的支持,并且其靈活性的數值計算核心也可廣泛應用于其他科學領域。
構建一個神經網絡模型,沒有具體理論可遵,但與待解決的具體問題有關。以TensorFlow的經典實戰項目MNIST手寫數字識別為例,探索如何逐步設計一個滿足要求的多參數融合的神經網絡模型。設計任意一個淺度或深度的神經網絡,一般來說按如下的4個步驟:①數據預處理。②構建符合要求的初步模型。③選擇激活函數、損失函數和優化器。④訓練模型和評價模型。
本文將詳細討論整個設計神經網絡步驟中的各個環節。
為了在訓練中更加容易提取數據的相關信息,需要對數據進行預先處理。數據預處理包括歸一化技術、非線性變換、特征提取、離散輸入、目標編碼、缺失數據的處理和數據集的劃分等。數據集的劃分根據評估模型方法驗證和交叉驗證來劃分。模型方法為驗證時,選擇數據集后,一般會把數據劃分為三個子集:訓練集、驗證集和測試集。訓練集的大小占整個數據集的70%左右,用于構建預測模型,驗證集占整個數據集的15%左右,評估訓練階段模型的性能,測試集也占整個數據集的15%左右,評估模型未來可能性的性能。
選擇MNIST數據集,它是著名的手寫體數字機器視覺數據集。兩條途徑獲得MNIST數據集,一是從Yann LeCun教授的官網上下載,二是使用TensorFlow的官方案例,而MNIST數據集包含在TensorFlow中。MNIST數據集有60000個樣本,其中55000個樣本為訓練集,另5000個樣本為驗證集的一部分,驗證集總共10000個樣本,還有5000個是從訓練集中隨機選擇的,測試集樣本數為10000。整個數據集的劃分如表1所示。
在數據集MNIST中,每個樣本包含了灰度值信息和這個樣本對應的標簽,每張圖片樣本都是28×28像素的手寫數字組成,為了簡化模型,通過降維處理,二維28×28的圖片轉化為有784個特征的一維向量,則訓練集的特征為一個[55000,784]的張量,測試集和驗證集的特征分別為[10000,784]和[10000,784]的張量。訓練數據集對應的標簽是一個[55000,10]的張量,其中第55000表示訓練集中有55000張樣本圖片,10表示訓練集中每張圖片樣本的標簽是一個包含10個數字種類的one_hot編碼。在實驗中,用到訓練集和測試集,訓練集對神經網絡進行訓練,測試集驗證設計的神經網絡效果。
神經網絡中輸入層神經元的個數與數據集中樣本的維度有關,而輸出層神經元的個數與分類類別數量有關。MNIST數據集中樣本是28×28二維的,轉成一維向量有784個灰度值,決定神經網絡模型的輸入層中神經元的個數為784。MNIST數據集是手寫體數字是0到9共10個分類,所以輸出層神經元的個數為10。先設計一個沒有隱含層的簡單神經網絡,即只有輸入層和輸出層,如圖1所示。

圖1 沒有隱含層的簡單神經網絡
無隱層神經網絡輸入層和輸出層的神經元數量確定后,通過實驗優化多參數融合的簡單神經網絡,然后在沒有隱含層神經網絡的基礎上逐漸增加隱含層,隱層的層數以及每層神經元的個數通過多參數調優確定。
2.3.1 激活函數
激活函數是使神經網絡具備了分層的非線性映射學習的能力,幾乎可以逼近任意的函數,能解決更為復雜的問題。早期神經網絡的激活函數有sigmoid函數或tanh函數,近年來在深度學習網絡中應用relu函數比較多。如何選擇激活函數,還沒有一個確定的方法,主要還是憑一些經驗。幾個常用的激活函數如下:
(1)sigmoid函數。sigmoid是常用的非線性的一種激活函數,其定義如式(1)所示:

把輸入z映射到0到1之間的范圍,但在深度神經網絡中sigmoid激活函數會導致梯度爆炸和梯度消失的問題,并且sigmoid函數的輸出是非零均值信號作為下一層的輸入,會導致收斂緩慢,并且sigmoid函數有冪運算,運算比較耗時等缺點。
(2)tanh函數。tanh函數解決了sigmoid函數的輸出是非零均值信號作為下一層輸入的問題,但梯度消失和冪運算問題在以tanh為激活函數的深度神經網絡中依然存在。tanh函數的解析式如公式(2)所示。

(3)relu函數。relu函數的解析式如公式(3)所示。

relu是一個分區間取最大值的函數,不是全區間可導的,但它解決了神經網絡梯度消失的問題,只判斷輸入x與0的大小,計算速度非常快,收斂速度快于sigmoid和tanh激活函數。
2.3.2 損失函數
損失函數是估算設計的神經網絡模型預測值ypre=f(x)與真實值yhat之間的差異,通常用L oss(yh at,ypre)來表示損失函數,常見的損失函數如下:
(1)0-1損失函數。0-1損失函數的定義如公式(4)所示。

0-1損失函數不考慮預測值和真實值差異程度,如果預測正確,則損失函數的值為0,否則損失函數的值為1。
(2)平方損失函數。平方損失函數的定義如公式(5)所示。

平方損失函數的值是預測值和真實值差異的平方。
(3)交叉熵損失函數。交叉熵是用來描述實際輸出概率分布q(x)與期望輸出概率p(x)的距離,交叉熵函數H(p,q)的定義如公式(6)所示。

2.3.3 優化器
設計神經網絡模型后,定義好損失函數,在訓練模型時使損失函數隨訓練迭代次數的增加逐漸趨于0,這是優化器的作用。常用的優化器有梯度下降法(gradient descent)、動量優化法和自適應學習率優化算法等。
(1)梯度下降法。梯度下降法是最基本的優化器,主要分三種,即標準梯度下降法(gradient descent)、隨機梯度下降(stochastic gradient de?scent)和批量梯度下降(batch gradient descent)。
(2)動量優化法。動量優化方法是基于梯度下降法,具有加速梯度下降的作用。一般有標準動量優化方法Momentum和NAG(nesterov acceler?ated gradient)動量優化方法。
(3)自適應學習率優化算法。傳統優化器中學習率是常數或根據訓練次數動態變化,沒有考慮學習率其他變化的可能性,而學習率對模型的收斂有顯著的影響,采取一些策略更新學習率,提高模型的訓練速度。自適應學習率優化算法目前主要有AdaGrad算法、RMSProp算法、Adam算法和AdaDelta算法。
神經網絡模型的參數是weight(權重)和bias(閾值),訓練模型是通過訓練樣本和學習算法反復調整weight和bias模型參數值,使實際輸出與理想輸出的誤差較少,最后得到神經網絡解決問題所需要的參數。訓練模型的學習算法中,最具有代表性的是誤差反向傳播(error backpropaga?tion,BP)算法,廣泛應用于多層前饋神經網絡。
評估模型的方法有驗證和交叉驗證,不同的評估方法也決定數據集的劃分。分類問題常見的模型評價指標有混淆矩陣(confusion matrix)、準確率(accuracy)、精確率(precision)、召回率(recall)、特異度(specificity)等,如表2所示。
(1)混淆矩陣是一個N×N的矩陣,其中的N表示類別數量,混淆矩陣中的行表示樣本的預測類別,列表示樣本的真實類別。
(2)準確率是預測正確的樣本數占所有樣本數的比例。
(3)陽性預測值或精確率是陽性預測值被預測正確的比例。
(4)陰性預測值陰性預測值被預測正確的比例。
(5)召回率或靈敏度是在陽性值中實際被預測正確所占的比例。
(6)特異度在陰性值中實現被預測正確所占的比例。
表2中True Positive(TP)是被模型預測為正的正樣本,False Positive(FP)是被模型預測為正的負樣本,False Negative(FN)是被模型預測為負的正樣本,True Negative(TN)是被模型預測為負的負樣本。大多數情況下評估模型只用到準確率,根據具體的應用側重于不同的評估指標。

表2 評估模型常見的指標
實驗在Intel(R)Core(TM)i7-6700HQ CPU@2.6 GHz 2.59 GHz,8 GB內存的Windows 10系統上使用TensorFlow進行測試的。
MNIST數據集中樣本圖片轉成一維向量有784個元素,決定輸入層神經元的個數為784,而手寫體數字共10個類別,則輸出層神經元的個數為10。無隱層簡單的神經網絡,只有輸入層和輸出層,層與層之間采用全連接方式。
(1)損失函數的比較。學習率設置為0.1,訓練模型樣本批次大小是100,迭代次數為30,優化器采用梯度下降法,比較交叉熵和平方損失函數作用于簡單神經網絡的識別準確率。
圖2(a)是訓練模型迭代次數與準確率之間的曲線關系,其中上邊兩條曲線為一組,是損失函數為交叉熵時訓練集和測試集的準確率曲線,下邊兩條曲線是損失函數為平方損失函數時訓練集和測試集的準確率曲線。由圖2(a)可知,在任何迭代次數上,損失函數為交叉熵時訓練集和測試集的準確率都大于損失函數為平方損失函數時訓練集和測試集的準確率。圖2(b)是迭代次數與損失值的曲線關系,同樣也分兩組,損失值高的一組是損失函數為平方損失函數時訓練集和測試集的損失值曲線,損失值低的一組是損失函數為交叉熵時訓練集和測試集的損失值曲線,圖2(b)可知,損失函數為交叉熵時收斂速度快。由圖2交叉熵與平方損失函數準確率和損失值的比較可知,選擇交叉熵作為簡單神經網絡的損失函數。

圖2 交叉熵與平方損失函數的比較
(2)不同學習率。訓練模型樣本批次大小是100,迭代次數為30,優化器采用梯度下降法,損失函數為交叉熵,比較不同學習率(0.1、0.2、0.3、0.4、0.5、0.6)對神經網絡模型的影響。
圖3展示了基于不同學習率準確率的對比,上一行是訓練集的測試結果,下一行是測試集的測試結果。

圖3 不同學習率對神經網絡準確率的影響
圖3(a)展示學習率分別為0.1、0.2和0.3時準確率隨迭代次數變化的三條曲線。實驗結果表明,隨著學習率的增加,神經網絡的性能逐步改善,在訓練集和測試集中,學習率為0.3時準確率幾乎都是最高的,迭代次數為30準確率分別為93.30%和92.58%。圖3(b)是學習率分別為0.4、0.5和0.6時準確率隨迭代次數變化的曲線。實驗結果表明,訓練集中學習率為0.5和0.6時準確率波動較大,特別是學習率為0.5準確率不穩定。迭代次數為30時,學習率0.6訓練集準確率最高,學習率0.5測試集準確率最高。圖3(c)是學習率分別為0.3、0.5和0.6時準確率隨迭代次數變化的曲線。實驗結果表明,不管是訓練集還是測試集,不同學習率的準確率相差不大,學習率0.5和0.6的準確率比學習率0.3的準確率稍高,但訓練集中學習率0.5和0.6的準確率波動較大。由圖3分析可知,學習率0.3到0.4之間比較合適,所以學習率選擇0.3。
(3)批次大小。學習率為0.3,迭代次數為30,優化器采用梯度下降法,損失函數為交叉熵,比較不同批次大小(50、100、150、200、250、300)對神經網絡模型的影響。
圖4展示不同批次大小準確率的對比,上一行是訓練集在不同批次大小的測試結果,下一行是測試集在不同批次大小的測試結果。圖4(a)是批次大小分別為50、100和150時準確率隨迭代次數的三條曲線。實驗結果表明,訓練集中,批次大小為50的準確率高于批次大小為100和150的準確率,而測試集中,批次大小為100的準確率高于批次大小為50和150的準確率。圖4(b)表示批次大小分別為200、250和300時準確率隨迭代次數的曲線關系,訓練集中,迭代次數30批次大小200時準確率為93.03%,高于批次大小250和300對應的準確率92.89%和92.85%,而測試集中迭代次數30批次大小200時準確率也是最高的。圖4(c)表示批次大小分別為100、200和300時準確率隨迭代次數的曲線關系,不管是訓練集還是測試集,批次大小100時準確率最高。由圖4分析可知,批次大小為100模型的性能最好。

圖4 不同批次大小對神經網絡準確率的影響
(4)優化器的選擇。訓練模型樣本批次大小是100,迭代次數為30,損失函數為交叉熵,學習率為0.3,比較不同優化器(梯度下降、Adam算法、AdaDelta算法和AdaGrad算法)對神經網絡模型的影響。圖5展示不同優化器在訓練集和測試集上的準確率曲線,圖5(a)表示的是梯度下降、Adam算法、AdaDelta算法和AdaGrad算法在訓練集中準確率隨迭代次數增加的變化曲線,最上邊的兩條準確率曲線對應的優化器是梯度下降和AdaGrad。實驗結果表明,梯度下降和AdaGrad的性能優化Adam和AdaDelta算法,而AdaGrad算法的性能最優。圖5(b)與圖5(a)是對應的,曲線的長度表示準確率的范圍,灰色曲線表示AdaGrad算法所對應的準確率。圖5(c)表示在測試集中,不同優化器的準確率隨迭代次數增加的變化曲線,實驗結果表明,最上邊的兩條準確率曲線對應的優化器是梯度下降和AdaGrad,而AdaGrad算法的性能最優。由圖5分析可知,優化器選擇AdaGrad算法。

圖5 不同優化器在訓練集和測試集上準確率隨迭代次數的變化曲線
以上所有實驗結果分析表明,設計無隱層多參數融合具有較高準確率的簡單神經網絡,可參考表3所示多個參數及對應的值。

表3 無隱層的簡單神經網絡參數
在無隱層多參數融合優化的簡單神經網絡基礎上通過增加一隱層繼續提高準確率,需考慮的是隱層神經元的個數、激活函數及迭代次數等方面。
(1)隱層神經元的個數。樣本批次大小100,迭代次數30,損失函數為交叉熵,學習率0.3,優化器是AdaGrad算法,激活函數sigmoid,單層隱含層,比較隱層不同數量神經元對神經網絡模型的影響。
圖6展示了單隱層不同數量神經元在訓練集和測試集中準確率隨迭代次數變化的曲線,每幅圖中6條曲線在迭代10次后明顯分成兩組,每組3條曲線幾乎重合在一起。實驗結果表明,單隱層神經網絡在訓練集的準確率高于在測試集的準確率,隱層不同神經元個數對神經網絡模型的性能影響不大,如訓練神經網絡模型迭代25次時,圖6(a)神經元個數為400、500和600在測試集中對應的準確率分別為98.04%,98.07%和98.10%,在訓練集中對應的準確率分別為99.85%,99.83%和99.85%,準確率非常接近。圖6(b)和圖6(c)與圖6(a)類似,隱層不同神經元的個數對準確率影響不大,所以選擇隱層神經元個數為500。

圖6 隱層不同神經元個數對識別準確率的影響
(2)激活函數。樣本批次大小100,迭代次數30,損失函數為交叉熵,學習率0.3,優化器是AdaGrad算法,單隱層神經元個數為500,比較不同激活函數(sigmoid、tanh、rule和selu)對神經網絡模型的影響。
圖7展示不同激活函數準確率的對比,上一行是訓練集上不同激活函數的測試結果,下一行是測試集上不同激活函數的測試結果。圖7(a)表示激活函數sigmoid和tanh在訓練集和測試集中準確率隨迭代次數變化的曲線。實驗結果表明不管在訓練集還是測試集中使用tanh激活函數比使用sigmoid激活函數效果好。圖7(a)上圖展示迭代16次以后,使用tanh激活函數的準確率為100%,而使用sigmoid激活的準確率在99.30%~99.99%之間。圖7(b)表示激活函數relu和selu在訓練集和測試集中準確率隨迭代次數變化的曲線。實驗結果表明,測試集中使用relu激活函數比使用selu激活函數效果好,訓練集中迭代20次前使用relu激活函數比使用selu激活函數效果好,迭代20次以后使用relu和selu激活函數的準確率都為100%。圖7(c)是四種激活函數在訓練集和測試集中準確率隨迭代次數變化的曲線,訓練集中使用relu激活函數準確率在迭代12次達到了100%,測試集中使用relu激活函數的準確率比使用其他三種激活函數的準確率高。

圖7 不同激活函數對識別準確率的影響
以上單隱層所有實驗結果分析表明,設計單隱層多參數融合具有較高準確率的神經網絡,需確定隱層神經元的個數、隱層的激活函數、學習率、優化算法等參數參考表4所示。

表4 單隱層的神經網絡模型參數
在多參數融合優化的單隱含層神經網絡的基礎上再增加一隱層,繼續優化神經網絡模型。樣本批次大小100,迭代次數30,損失函數為交叉熵,優化器是AdaGrad算法,兩層隱含層,隱含層神經元的個數分別為500和300,隱含層的激活函數是relu,在測試集中比較不同學習率(0.1、0.15、0.2、0.25、0.3、0.35、0.4、0.45、0.5、0.55、0.6、0.65、0.7)對神經網絡模型的影響。
由表5可知,學習率為0.1、0.15、0.2、0.25、0.3、0.35、0.4、0.45時的準確率高于學習率為0.5、0.55、0.6、0.65、0.7。學習率為0.1、0.15、0.2、0.25、0.3、0.35、0.4的準確率相差不大,它們的準確率隨迭代次數的變化曲線幾乎是重疊在一起,其中學習率0.2和0.25的性能最優。實驗結果表明,多層隱含層神經網絡的學習率設定為0.2。

表5 測試集中不同學習率
樣本批次大小100,迭代次數30,損失函數為交叉熵,學習率為0.2,優化器是AdaGrad算法,兩層隱含層,隱含層神經元的個數分別為500和300,在測試集中比較隱含層不同激活函數(sigmoid、relu、selu和tanh)對神經網絡模型的影響。圖8展示了使用不同激活函數在測試集上準確率的對比,上一行是不同激活函數在訓練集上準確率的測試結果,下一行是上一行對應損失函數隨迭代次數的收斂曲線。圖8(a)是激活函數sigmoid與relu準確率和損失函數值的對比,由上圖中的曲線可知,使用激活函數relu的準確率高于使用激活函數sigmoid的準確率,下圖中使用激活函數relu的多參數融合神經網絡模型的損失函數隨迭代次數增加收斂的比較快。

圖8 不同激活函數對識別準確率的影響
圖8(b)是激活函數selu與tanh準確率和損失函數值的對比,使用激活函數tanh的準確率比較高及損失函數收斂比較快。圖8(c)是激活函數sigmoid、relu、selu和tanh準確率和損失函數值的對比。實驗結果表明,使用激活函數relu和tanh的多參數融合神經網絡模型性能比較好,而使用激活函數relu的神經網絡模型的性能最好,所以選擇relu作為激活函數。
不同激活函數在測試集中準確率隨迭代次數的如表6所示。

表6 測試集中不同激活函數
樣本批次大小100,迭代次數30,學習率為0.2,優化器是AdaGrad算法,兩層隱含層,隱含層神經元的個數分別為500和300,隱含層的激活函數是relu,比較不同損失函數(平方損失函數和交叉熵)對模型的影響。圖9主要展示了使用不同損失函數在訓練集和測試集上準確率的對比,上一行是不同損失函數準確率的測試結果,下一行是上一行對應損失函數隨迭代次數的收斂曲線。上圖和下圖對比發現,識別準確率高的曲線對應的損失函數收斂的速度就快。圖9(a)上圖是在訓練集中分別使用平方損失函數和交叉熵時神經網絡模型的識別準確率曲線,由圖中兩條曲線對比可知,神經網絡的損失函數為交叉熵優于平方損失函數,在訓練使用交叉熵的神經網絡模型迭代10次后訓練集中的識別準確率達到了100%,其對應的10(a)下圖損失值也快速收斂。圖9(b)上圖是測試集中分別使用平方損失函數和交叉熵時神經網絡模型的識別準確率曲線,其中損失函數是交叉熵的神經網絡模型的識別準確率高的。圖9(c)是平方損失函數和交叉熵在訓練集和測試集上的識別準確率曲線以及對應的損失函數的收斂曲線。實驗結果表明,在訓練集和測試集上損失函數是交叉熵都優于平方損失函數的多參數融合神經網絡模型的性能。

圖9 不同損失函數對識別準確率的影響
樣本批次大小100,迭代次數30,學習率為0.2,損失函數為交叉熵,兩層隱含層,隱含層神經元的個數分別為500和300,隱含層的激活函數是relu,比較不同優化算法(梯度下降、Adam算法、AdaDelta算法和AdaGrad算法)對模型的影響。圖10展示了不同優化算法的對比,上一行是梯度下降、AdaDelta算法和AdaGrad算法在訓練集和測試集上識別準確率隨迭代次數增加的變化曲線,下一行是上一行不同優化算法對應交叉熵的收斂曲線。圖10(a)上圖是梯度下降、AdaDelta算法和AdaGrad算法在訓練集的識別準確率變化曲線,其中梯度下降和AdaGrad優化算法對應的準確率變化曲線在迭代5次時準確率都就到達了99%以上,并且AdaGrad優化算法稍微優于梯度下降優化算法,而AdaDelta優化算法對應的準確率變化曲線低于梯度下降和AdaGrad優化算法對應的準確率變化曲線。圖10(b)上圖是梯度下降、AdaDelta算法和AdaGrad算法在測試集的識別準確率變化曲線,在訓練迭代3次后,識別準確率從高到低所對應的優化算法分別為AdaGrad算法、梯度下降優化算法和AdaDelta算法,迭代30次AdaGrad優化算法對應的準確率為98.90%。圖10實驗結果表明,AdaGrad算法的性能最優。

圖10 優化算法在訓練集和測試集上對識別準確率的影響
綜合以上多隱層實驗結果表明,設計多隱層多參數融合優化具有較高準確率的神經網絡模型,隱層神經元個數、隱層的激活函數、優化算法、學習率、損失函數等參數可參考表7所示。

表7 多隱層神經網絡模型參數
深度學習是目前最火熱的研究方向之一,它借助于計算機強大的計算和存儲能力進行快速搜索而完成對樣本的特征提取,同時缺乏對網絡結構及參數在理論上的完全解釋,所以結合領域知識的特征提取,設計多參數融合優化的深度神經網絡是深度學習發展的一個方向。本文討論了在無隱層神經網絡模型的基礎上逐漸怎樣設計出一個多參數融合優化的具有較高準確率的深度神經網絡模型,特別是為初學者構建深度神經網絡模型提供了一種有效思路,也為以后在經典深度神經網絡模型的基礎上設計更復雜的神經網絡打下基礎。