趙 宏,郭萬鵬
(1. 蘭州理工大學計算機與通信學院,甘肅 蘭州 730050;2. 蘭州理工大學信息中心,甘肅 蘭州 730050)
人工神經網絡ANN(Artificial Neural Networks)的研究是人工智能領域的一個重要分支,在對生物神經網絡結構及其機制研究的基礎上所構建的人工神經網絡,使得機器能夠直接從數據中提取特征和學習規律,從而使機器具有一定的智能。ANN的研究最早可以追溯到1957年Frank Rosenblatt提出的感知機模型,后來出現的反向傳播 BP(Back Propagation)算法推動 ANN進入實用階段[1],但由于當時的ANN訓練數據缺乏、訓練方法及技巧不成熟、計算機運算能力不夠強大等原因,使得這個時期的ANN結構較為簡單,可等價為主要用來進行淺層學習的單隱層神經網絡。2006年深度學習領域奠基人Hinton教授,根據人腦認知過程的分層特性,提出構建深度神經網絡DNN(Deep Neural Networks),并取得成功[2]。
近年來,深度神經網絡在圖像識別、語音交互、自然語言處理等領域取得突破,進入實用階段。與淺層神經網絡相比,深度神經網絡訓練難度更大,其主要原因是梯度下降算法的殘差值在網絡中逐層傳播時變得越來越小,出現梯度消失的問題,使得底層網絡由于殘差值過小而無法得到有效的訓練。從模型訓練經驗可知,選擇合適的代價函數并配合相應的激活函數能夠明顯改善梯度消失的問題,從而加快網絡的訓練速度。文獻[3]對如何提高深度神經網絡的學習速率做了大量的研究,并指出交叉熵代價函數能夠避免深度神經網絡學習速率緩慢的問題,但忽視了激活函數對代價函數性能的影響。文獻[4]給出了一種改善深度神經網絡訓練效果的方法,指出改進激活函數能夠提高深度神經網絡的訓練效果,但結果表明,僅對激活函數的改進,對于提高深度神經網絡的學習速率效果并不明顯。
利用概率論對模型訓練中常用的二次代價函數和交叉熵函數進行理論推導,揭示兩者在模型訓練過程中對梯度下降算法參數的影響,研究代價函數與激活函數的組合效果,對模型訓練過程中的經驗進行理論解析并通過實驗平臺進行驗證。
定理1[5]設隨機變量X1,X2,…,Xn相互獨立,服從同一分布,且有 E (Xi) = μ , D (Xi) = σ2>0,(i=1,2,…,n),其中E(Xi)為隨機變量 Xi的數學期望,D(Xi)為隨機變量Xi的方差,則隨機變量X1,X2,…,Xn之和Xi的標準化變量 Yn如式(1)所示。

其中,對于任意的x,Yn的分布函數 Fn(x)滿足式(2)。

當n充分大時,若隨機變量X1,X2,…,Xn服從獨立同分布,期望為μ,方差為2σ ,則其和似地服從高斯分布N,如式(3)所示。

定義 1[6]如果隨機變量x的概率密度函數如式(4)所示,則 x服從高斯分布 N ( μ,σ2),記為x ~ N ( μ,σ2),稱x為高斯隨機變量。其中,μ和σ為常數,且σ>0。
定義2[7]樣本x1,…,xn的聯合概率函數可看作θ的函數,用 L (θ; x1, x2,… ,xn)表示,稱L(θ)為樣本的似然函數,簡記為L(θ),如式(5)所示。

二次代價函數[8]的定義如式(6)所示。

其中, (,)CWb表示神經網絡的代價函數;n表示訓練樣本的大小;W和b分別表示由神經網絡權重和偏置構成的矩陣。x表示由神經網絡的輸入構成的矩陣; ()yx表示由神經網絡的預期輸出構成的矩陣;?()yx表示由神經網絡的實際輸出構成的矩陣。其中,?()yx的表達式如式(7)所示。

其中,()δz表示激活函數。
由式(6)知,訓練神經網絡的最終目的是獲得代價函數 (,)CWb最小時的權重和偏置,即神經網絡的實際輸出 ?()yx與預期輸出 ()yx的誤差最小時的權重和偏置。這是因為假設第i個神經元的實際輸出為輸入特征的線性函數與誤差項之和,如式(9)所示。

其中,θ為給定的參數,ξ(i)為誤差項,由定理1得由式(4)得高斯分布的概率密度函數如式(11)所示。



利用似然函數對參數θ進行估計。當θ為一定值時,以θ為參數的概率P取得最大值。由式(5)得

令 ?(θ) = log L (θ),由式(13)得 ?(θ)

令

當函數()θ?取得最大值時函數C取得最小值。對式(15)進行變換,令

則由式(15)、式(16)可得:

對式(6)進行鏈式求導得:

其中,假設神經網絡的輸入 x = 1,目標輸出y(x) =0,則由式(17)、式(18)知,激活函數的導函數δ′(z)是影響權重和偏置學習速率的重要因素。
引入交叉熵代價函數能夠消除δ′(z)對權重和偏置學習速率的影響。
假設 y = y1, y2,…yn是神經元上預期輸出值,,, …是神經元上實際輸出值,定義多元神經 元上交叉熵代價函數如式(19)所示。

j的偏置;x表示神經元的輸入。n表示訓練樣本的大小。引入交叉熵代價函數可以避免δ′(z)導致的神經網絡學習速率緩慢的問題,這是因為在交叉熵代價函數中消除了參數δ′(z)的影響。由式(17)、式(18)得:

由式(7)得:

由式(6)得:

由式(21)、式(22)、式(23)得:

對式(24)求積分得:

令 c = c1-yjc2,由式(25)化簡得:

為了得到多元神經網絡上整個交叉熵代價函數,對所有訓練樣本求平均,得式(19)。同時進一步證明了交叉熵能夠解決多元神經元上δ′(z)導致學習速率緩慢的真正原因。式(19)中對參數進
行鏈式求導得:

由式(19)得:


由式(28)、式(29)、式(30)得:

由式(22)、式(31)得:

式(19)中對參數Ljb進行鏈式求導得

同理可得:

由式(32)、式(34)知,交叉熵代價函數消除了參數()δ′z,解決了多元神經元上()δ′z導致學習速率緩慢的問題。
通過對二次代價函數和交叉熵代價函數的推導可知,二次代價函數與非線性激活函數結合會導致權重和偏置的學習速率減慢,其真正原因是當()δ′z的值趨于0時,權重和偏置的學習速率受到抑制。引入交叉熵代價函數后,消除了()δ′z導致學習速率緩慢的問題,從而提高了權重和偏置的學習效率。另外,由式(20)、式(21)知,當神經網絡的輸入為一定值時,參數的學習速率會隨輸出誤差的變化而變化,當輸出誤差較大時權重和偏置的學習速率也越快,這也是引入交叉熵代價函數后能夠提高神經網絡學習速率的重要原因。
由式(17)、式(18)知,不同激活函數導致代價函數學習速率的不同。因此,需要進一步分析代價函數和激活函數組合后的神經網絡性能。
神經網絡中常用的激活函數分別為 Sigmoid、Tanh、ReLu和 PReLu。
2.3.1 Sigmoid 激活函數
Sigmoid函數表達式如式(35)所示,函數值在0到1之間,如圖1所示。Sigmoid激活函數具有雙向飽和的特性,當x→∞時,σ′(x) =0,具有這種性質的激活函數稱為軟飽和激活函數[9],Sigmoid激活函數的軟飽和性是導致神經網絡學習速率緩慢的重要原因。


圖1 Sigmoid函數Fig.1 Sigmoid function
2.3.2 Tanh激活函數
Tanh函數與Sigmoid函數具有相似的性質,是典型的S型函數,表達式如式(36)所示,函數值在-1到1之間,如圖2所示。相比Sigmoid函數,Tanh函數延遲了飽和期。對比圖1和如圖2可知,Tanh函數與Sigmoid函數一樣具有軟飽和的特性,同樣會陷入局部最優解,使神經網絡訓練難度加大,但Tanh函數性能優于Sigmoid函數。


圖2 Tanh函數Fig.2 Tanh function
2.3.3 ReLu激活函數
Relu函數表達式如式(37)所示,函數值為 0或x,如圖3所示。Relu激活函數避免了S型激活函數飽和區對神經網絡收斂速度的限制[10],但是Relu激活函數在訓練時非常脆弱,流經ReLu神經元的一個大梯度導致權重更新后該神經元接收到的任何數據點都不會再被激活。


圖3 ReLu函數Fig.3 ReLu function
2.3.4 PReLu激活函數
PReLu(Parametric ReLu)函數表達式如式(38)所示,函數值根據x的不同為斜率不同的直線,如圖4所示。PReLu激活函數在ReLu激活函數的基礎上作了進一步改進,當x為負值時其導數不再為0。


圖4 PReLu函數Fig.4 PReLu function
卷積神經網絡 CNN(Convolutional Neural Network)作為神經網絡最常見的形式,使用代價函數和激活函數的組合來提高網絡的訓練效率和精度。CNN通過激活函數映射網絡的輸出,利用代價函數對網絡的輸出誤差進行評價,進而使用反向傳播算法和隨機梯度下降算法不斷提高網絡的精度。同時CNN的局部感知域、權值共享和池化層等三個主要特征[11]對大型圖像的處理具有出色的表現。基于Hubel和Wiesel早期對貓初級視覺皮層(V1)的研究,CNN基本結構[12]如圖5所示,由輸入層、卷積層、池化層、全連接層和輸出層組成。其中,卷積層和池化層是卷積神經網絡特有的屬性。卷積層通過卷積操作提取輸入的不同特征,池化層對卷積層提取的特征進行池化處理,保留最有用特征,減少神經元數量,避免網絡發生過擬合,最后利用softmax分類器進行分類,并通過全連接層輸出結果。

圖5 卷積神經網絡的模型圖[13]Fig.5 The model of convolution neural network
卷積層是CNN核心網絡層,卷積層基于圖像空間的局部相關性,利用卷積提取圖像的局部特征,如圖6所示。

圖6 多通道卷積網絡結構[14]Fig.6 The network structure of multi-channel convolutional
第L層特征的計算公式如式(39)所示。

其中,z表示第L層特征的輸入;WjLk-1表示第L- 1層的第j個神經元與第k個神經元之間的權重;bLj-1表示第L- 1層上第j個神經元的偏置;x表示第L- 1層的輸入。
輸出圖像特征的計算如式(40)所示[14]。

其中,L×H表示輸出圖像尺寸;Lj×Hj表示第j個神經元上輸入圖像尺寸;l×h表示濾波器尺寸;s表示滑動步長。
池化操作是對卷積層提取的特征進行處理,其目的是降低卷積層輸出的特征向量,避免網絡發生過擬合,同時改善網絡訓練效果。理論上,可以用所有提取到的特征去訓練分類器,但這樣做面臨計算量的挑戰。例如,對于一個96×96像素的圖像,假設已經學習得到了400個定義在8×8輸入上的特征,每一個特征和圖像卷積都會得到(96 - 8 + 1 )×(96 - 8+ 1 ) = 7 921維的卷積特征,由于有400個特征,所以每個樣例都會得到7921×400=3168400維的卷積特征向量,訓練這樣一個超過3000000特征輸入的分類器容易出現過擬合。根據圖像的“靜態性”屬性,池化操作對卷積層進行如圖7所示的處理,可以有效防止特征過多造成過擬合的問題,其池化的主要策略有mean-pooling、max-pooling、stochasticpooling等。

圖7 池化過程Fig.7 Pooling process
通過對CNN模型原理的分析,利用Google深度學習平臺TensorFlow構建了以CNN模型為基礎的深度神經網絡,其中,網絡的構建采用了代價函數和激活函數不同組合的方式,并利用 notMNIST數據作為實驗數據集。notMNIST數據集是一組按字符分類的圖像文件夾,有A、B、C、D、E、F、G、H、I、J共10個文件夾,其可視化后的效果如圖8、圖9所示,其中,訓練數據集中含有部分非字符的噪聲圖像,如圖9所示。
表1、表2、表3、表4分別為 Sigmoid、Tanh、Relu和PReLu為激活函數時與二次代價函數和交叉熵代價函數的組合效果,表5為實驗中采用的超參數值。

圖8 notMNIST測試數據集Fig.8 Test dataset of notMNIST

圖9 notMNIST訓練數據集Fig.9 Training dataset of notMNIST

表1 Sigmoid作為激活函數時性能對比Tab.1 Performance comparison while Sigmoid as the activation function

表2 Tanh作為激活函數時性能對比Tab.2 Performance comparison while Tanh as the activation function

表3 ReLu作為激活函數時性能對比Tab.3 Performance comparison while ReLu as the activation function

表4 PReLu ReLu作為激活函數時性能對比Tab.4 Performance comparison while PReLu as the activation function

表5 實驗中超參數的具體值Tab.5 The specific value of the over-parameter in the experiment
實驗探索了不同代價函數和激活函數組合下模型訓練的性能,發現代價函數和激活函數的優選會影響模型的訓練效率。通過實驗結果的對比發現,線性激活函和非線性激活函數對二次代價函數的性能有不同的效果,究其原因,線性激活函數的導函數是一個常數,對二次代價函數的性能并不產生影響,而Sigmoid和Tanh等非線性函數容易達到飽和導致梯度消失,所以導致學習速率緩慢。實驗也表明系統采用 ReLu函數以及 ReLu函數的變體函數PReLu與代價函數結合使用,會明顯改善訓練的效果,這是因為Relu函數可以通過簡單的零閾值矩陣進行激活,并且不受飽和的影響,但是,Relu函數在訓練時非常脆弱,流經 ReLu神經元的一個大梯度導致權重更新后該神經元接收到的任何數據點都不會再激活。為了解決這個問題,研究者們發現了ReLu函數的一些變體函數,如PReLu,與交叉熵代價函數結合具有良好的訓練效果。最后,實驗對超參數的設置也進行了探究,并給出了針對該實驗具有良好效果的超參數值。
本文利用概率論對模型訓練中常用的二次代價函數和交叉熵代價函數進行推導,揭示了兩者在模型訓練過程中對參數尋優的影響,并給出了它們與不同激活函數組合的效果。實驗表明,代價函數與激活函數的優選能夠減少訓練的迭代次數,從而提高深度神經網絡訓練的效率。并且發現交叉熵代價函數與PReLU激活函數結合具有優秀的效果。
[1] 龐榮. 深度神經網絡算法研究及應用[D]. 西南交通大學,2016.
[2] Hinton G E, Salakhutdinov R R. Reducing the dimensionality of data with neural networks[J]. Science, 2006, 313(5786):504-507.
[3] Michael A. Nielsen. Neural Networks and Deep Learning[M].Determination Press, 2015.
[4] 葉小舟, 陶飛飛, 戚榮志, 等. 循環神經網絡結構中激活函數的改進[J]. 計算機與現代化, 2016(12): 29-33.
[5] 鄒廣玉. 混合隨機變量序列的幾乎處處中心極限定理[D].吉林大學, 2013.
[6] Zhao L, Mi D, Sun Y. A novel multitarget model of radiationinduced cell killing based on the Gaussian distribution[J].Journal of Theoretical Biology, 2017, 420: 135-143.
[7] 王曉紅, 李宇翔, 余闖等. 基于β似然函數的參數估計方法[J]. 北京航空航天大學學報, 2016, 42(1): 41-46.
[8] 徐先峰, 馮大政. 一種充分利用變量結構的解卷積混合盲源分離新方法[J]. 電子學報, 2009, 37(1): 112-117.
[9] Bao G, Zeng Z. Analysis and design of associative memories based on recurrent neural network with discontinuous activation functions. Neurocomputing[J]. Neurocomputing, 2012,77(1): 101-107.
[10] 張堯. 激活函數導向的RNN算法優化[D]. 浙江大學, 2017.
[11] 卷積神經網絡在圖像分類中的應用研究[D]. 電子科技大學, 2015.
[12] 何鵬程. 改進的卷積神經網絡模型及其應用研究[D]. 大連理工大學, 2015吳正文.
[13] 李彥冬, 郝宗波, 雷航. 卷積神經網絡研究綜述[J]. 計算機應用, 2016, 36(9): 2508-2515.
[14] 張重生 深度學習: 原理與應用實踐[M]. 電子工業出版社,2016.