賀 揚, 成凌飛2, 張培玲2, 李 艷
(1.河南理工大學 電氣工程與自動化學院,河南 焦作 454000; 2.河南理工大學 物理與電子信息學院,河南 焦作 454000)
深層神經網絡(Deep Neural Network,DNN)以其高效的學習和分類能力被廣泛地應用于目標識別、圖像識別、語音識別、手寫數據識別、信息檢索、自然語言處理以及其他的領域[1-3]。深層神經網絡一般由不少于3層的多層神經網絡(Neural Network,NN)組成,每層網絡都包含大量的神經元,這就決定了DNN擁有大量的參數需要表示。通常,線性部分的參數可由輸入數據學習得到,而網絡的非線性部分一般預先設定激活函數。一個足夠大的神經網絡通過這些非線性函數可以逼近任意的復雜函數,但在有限的網絡中,不同非線性函數的選擇則會影響網絡學習能力和表達能力的強弱。
最近幾年,很多DNN激活函數被提出,其中最引人矚目的是修正線性單元(Rectified Linear Unit,ReLU)[4]。ReLU具有稀疏激活、無需預訓練和學習周期短等優點。然而ReLU雖有著諸多優點,且其出色的性能也得到了廣泛的認可,但ReLU并非激活函數的終點。幾種基于ReLU的激活函數相繼被提出,如Leaky ReLU和Parametric ReLU在ReLU的負軸添加一個正斜率的函數[5-6],對Leaky ReLU進行隨機正則化的Randomized Leaky ReLU[7],以及旨在解決ReLU偏置轉移問題的Exponential ReLU[8]和Parametric E-ReLU[9]。然而上述激活函數都只彌補了ReLU非零均值激活的不足之處,僅Parametric E-ReLU利用參數化的方法,使其正值和負值部分在原點處相切,改善了ReLU非零均值激活和在原點處不連續兩個缺陷,但是Parametric E-ReLU需要額外調節激活函數的參數,更為遺憾的是,Parametric E-ReLU并未對正值激活值加以限制,當ReLU激活一個極大的值時,容易造成網絡的數字溢出,這對網絡的訓練是很不利的。
本文提出了一種新的激活函數——Tanh ReLU,這個激活函數在ReLU激活函數的基礎上對其進行優化。針對ReLU存在非零均值激活的問題,Tanh ReLU添加了一個負值,而且Tanh ReLU的負值函數與正值函數在原點處相切,如此一來,其一階導數在原點處連續;同時,為激活函數添加了一個邊界[10]。
DNN由于其高度復雜的計算能力而受到關注,而DNN的計算單元是通過激活函數(即傳遞函數,為網絡提供非線性表示)實現的,其可以使DNN訓練快速、表達準確。激活函數將網絡神經元的輸入轉換為輸出信號,決定了一個神經元產生信號和接收信號的振幅強度,所以激活函數影響著整個NN的性能;除此之外,激活函數提供的非線性可根據逼近原理來設計接近函數,這對NN來說也是至關重要的。
ReLU激活函數的提出大大提高了DNN的性能,然而ReLU沒有負值激活,所以其平均激活值大于零,神經單元的非零均值激活作為偏置傳遞給了下一層神經單元,如果這樣的神經單元的影響不能相互抵消,學習的時候就會導致偏置轉移,然后傳遞到下一層。這樣的神經單元越多,偏置轉移也就越多,從而引發振蕩,損害網絡的學習;ReLU的正值激活可以產生很大的激活值,然而在DNN的訓練階段,數字的穩定性在很大程度上受激活函數輸出邊界的影響,這點如同物理計算機的數字表示。一個較大的邊界值引導神經元產生更有效的傳播,但數字溢出的風險也隨之產生,這樣在訓練一個神經網絡的時候就會引起網絡的不穩定;而且ReLU在原點處是不連續的,而這種情況會引起梯度消失,損害網絡的反向傳播。
針對ReLU激活函數提出的Tanh ReLU激活函數由3個分段函數組成,其公式表達為
(1)
Tanh ReLU的提出是為了克服ReLU激活函數非零均值激活、原點處不連續以及產生極大激活值的3個缺點。Tanh ReLU激活函數及其導函數圖形如圖1所示。

圖1 Tanh ReLU激活函數及其導函數
① 為了減小偏置轉移對網絡學習的影響,Tanh ReLU增加了一個負值,使激活平均值更加接近于零值,在圖1中可以看出,Tanh ReLU既可以正值激活,也可以負值激活,使激活平均值接近于零值;同時,零均值激活也可以保證網絡梯度靠近自然梯度的時候能夠具有更快的收斂速度。
② 與ReLU不同的是,Tanh ReLU在原點處是連續的,Tanh ReLU的梯度也不再為零,如圖1中所示,Tanh ReLU在原點處的導數值DF(X)為1且連續,這就避免了網絡訓練時在原點處陷入梯度消失的情況。
③ 針對ReLU在網絡的預訓練期間較大激活值造成的數字溢出風險,由此帶給網絡訓練不穩定的缺點,在Tanh ReLU激活函數中增加了一個邊界值,如圖1所示,在本文中,邊界值A的取值為1。
通過MNIST手寫數據數據集來驗證提出的激活函數。MNIST是一個廣泛用于測試機器學習算法基準的數據集。MNIST作為圖像識別的常用數據集,它是由70000個28像素×28像素的手寫數據圖像組成的,其包括60000個訓練圖像,10000個測試圖像。實驗的目的是將數字圖像歸類到其正確的分類類別中。
為了檢驗兩種激活函數(Act:ReLU & Tanh ReLU)的分類性能,分別利用兩種不同的激活函數建立DNN模型,并用于MNIST手寫數據集的分類測試,建立的DNN模型的結構如圖2所示。實驗中,由于主要是為了測試Tanh ReLU激活函數在DNN中的性能,所以在MNIST分類實驗中只將DNN模型中的ReLU激活函數替換掉,保證DNN模型的其他部分沒有被改變。

圖2 DNN模型結構圖
實驗所建立的DNN模型結構的詳細設置如表1所示。建立的DNN模型為5層的神經網絡結構,網絡包含一個輸入層,一個Softmax分類層和3個隱藏層。網絡采用全連接。網絡的自由參數包括權重值和偏置值,自由參數可通過訓練學習得到。

表1 用于MNIST數據集分類測試的DNN模型結構設置
在由兩種不同激活函數所建立的DNN模型中,超參數的設置都保持一致。超參數的設置如下:學習速率為0.1,權重初始采用文獻[4]提出的初始化方法;偏置初始化為0;動量起始為0.5,經過所有的訓練數據迭代后增大到0.9;實驗建立的DNN模型中未添加權重懲罰項,目的是排除權重懲罰項對于訓練輸出值的影響。在超參數設置完成后,用整個訓練數據集訓練DNN模型。
在網絡訓練階段,貪婪無監督算法自下而上地分別訓練每層的權重,每層參數用訓練集迭代50次。在反向傳播(Back Propagation,BP)期間,選用共軛梯度(Conjugate Gradient,CG)法作為DNN的優化算法,其線性搜索可以大大簡化和加速網絡的學習。反向迭代200次。
損失函數(Loss Function,LF)在DNN的學習過程中也是必不可少的,它可以驗證網絡訓練的輸出值是否適當。損失函數往往要和Softmax分類層結合起來應用,以驗證DNN模型的性能。Softmax分類層可以求得一個輸入樣本被歸類到預定義的類的概率,其公式為
(2)

運用兩種不同的損失函數來驗證網絡的性能,其為均方誤差(Mean Squared Eeeor,MSE)和交叉熵(Cross Entropy,CE),其公式為
(3)
(4)
式中,dj為第j個神經元的目標值;N為訓練樣本的個數。
為了驗證提出的激活函數——Tanh ReLU在DNN模型中的性能,利用兩種激活函數(Tanh ReLU & ReLU)分別建立DNN模型。特別地,為了進一步提高Tanh ReLU的建模能力,增加Tanh ReLU在不同的損失函數、不同學習速率、不同權重代價以及不同邊界值下的分類測試實驗。以上所述的實驗都利用MNIST手寫數據集來對DNN模型進行訓練與測試的。
2.2.1 Tanh ReLU vs.ReLU
為了驗證兩種不同激活函數(Tanh ReLU & ReLU)對DNN建模性能的影響,分別利用MSE和CE損失函數對建立的DNN模型進行驗證,實驗結果如表2所示。

表2 不同激活函數建立的DNN模型在均方誤差和
激活函數Tanh ReLU和ReLU建立的DNN模型在MNIST手寫數據集中的實驗結果顯示。在CE損失函數中,網絡的分類誤差率由0.9005%降低到0.8999%,降低了0.0006%;然而在MSE損失函數中,誤差率降低得更加小,僅有0.0001%。可以看出,在ReLU基礎上提出的Tanh ReLU激活函數在損失函數CE下對網絡性能的提升更為顯著。
2.2.2 不同學習速率的比較
為了更進一步地驗證Tanh ReLU激活函數在DNN模型中的性能,在損失函數為CE的情況下,調節網絡的學習速率,實驗結果如表3所示。

表3 不同學習速率下不同激活函數建立的DNN模型的分類誤差率 單位:%
分析表3中兩種激活函數(Tanh ReLU & ReLU)分別和CE損失函數建立的DNN模型在MNIST手寫數據集中的分類誤差率,可以看出,將學習速率調節至0.001后,分類誤差率降低了0.843,遠遠大于學習速率為0.1時的0.0006。網絡的性能得到了極大的提升。
2.2.3 不同權重代價的比較
以上的實驗為了排除權重懲罰項對于訓練輸出值的影響,所以未添加權重懲罰項。現為了得到更好的網絡性能,為網絡添加上權重懲罰項,以便可以更好地調節網絡的權重,得到更好的DNN模型。圖3為不同權重代價下DNN模型分類測試的實驗結果。

圖3 不同權重代價對于DNN模型性能的影響
如圖3所示,權重代價(weightcost,wc)系數為0.00001時,比為添加權重代價的網絡的收斂速度更快,而且誤差率減小到了0.0294。表明權重代價可以有效地幫助網絡的訓練,使網絡生成得更好。
2.2.4 不同邊界值的比較
特別地,嘗試改變另一個超參數——激活函數Tanh ReLU的邊界A的值。
為了驗證不同邊界值A對DNN建模性能的影響,僅改變激活函數邊界A的值,保證DNN模型其他超參數設置一致。DNN超參數設置如下:學習速率為0.001,權重初始采用文獻[4]提出的初始化方法;權重衰減調節為0.001;偏置初始化為0;動量起始為0.5,經過所有的訓練數據迭代后增大到0.9;邊界值A分別設置為0、1、2、4,分別利用4個不同的邊界值A建立DNN模型。超參數設置完成后,將建立的DNN模型應用于MNIST手寫數據集的分類實驗中,實驗結果如圖4所示。
由圖4可以看出不同的邊界值A對于網絡性能的影響。未為網絡添加邊界值時的DNN分類誤差率最大,且網絡邊界值越小,誤差率也越小,這是因為添加的邊界值可以有效地防止激活函數邊界的數字溢出。

圖4 不同邊界值對于DNN網絡性能的影響
綜上所述,針對激活函數ReLU在原點處不連續以及非零均值激活提出了Tanh ReLU激活函數,并用其構建DNN模型進行MNIST手寫數據集的分類實驗。實驗結果表明Tanh ReLU激活函數具有更好的網絡泛化性能,能夠給網絡提供更好的分類性能。
提出了一種適用于DNN的新的激活函數——Tanh ReLU。為了克服偏置轉移的影響、減小標準梯度和自然梯度之間的差值,在Tanh ReLU激活函數上添加了一個負值,使得網絡的激活平均值接近于零,這樣能夠更好地生成網絡;而且,在Tanh ReLU激活函數添加了一個邊界,這樣可以使網絡訓練時更加穩定,在MNIST實驗中也可以看出邊界值可以大大改善網絡的性能。實驗表明: Tanh ReLU可以使網絡具有更好的泛化性能,并提高了DNN的性能。