改進神經網絡及深度學習的學習方法


 

常見的方法有:選取更好的代價函數,就是被稱為交叉熵代價函數(the cross-entropy cost function);

四種正則化方法(L1L2正則、dropout、訓練數據的擴展)

 

.交叉熵代價函數:

考慮一下神經元的學習方式:通過計算代價函數的偏導 

來改變權重和偏移。那么我們說「學習速度很慢」其實上是在說偏導很小。因為SIGMOD激活函數的特性,在01附近變化緩慢。

我們可以用不同的代價函數比如交叉熵(cross-entropy)代價函數來替代二次代價函數

假設神經元的輸出為z為加權輸入(權重和+偏置b)。

定義神經元的交叉熵代價函數為:

n是訓練數據的個數,這個加和覆蓋了所有的訓練輸入xy是期望輸出。

交叉熵有兩個特性能夠合理地解釋為何它能作為代價函數。首先,它是非負的。因為等式加和里的每一項都是負的,它們的對數是負的;整個式子的前面有一個負號。

其次,如果對於所有的訓練輸入 ,這個神經元的實際輸出值都能很接近我們期待的輸出的話,那么交叉熵將會非常接近0

事實上,我們的均方代價函數也同時滿足這兩個特征。

交叉熵有另一個均方代價函數不具備的特征,它能夠避免學習速率降低的情況。

因為交叉熵對權重的偏導為:

 

上式告訴我們權重的學習速率可以被控制,,也就是被輸出結果的誤差所控制,那么誤差越大我們的神經元學習速率越大。

此外它還能避免導致的學習減速。因為交叉熵中的該項被抵消掉了,不必擔心它會變小。

交叉熵對偏移的偏導

與對權重的偏導形式相似也避免了學習速率低的問題。

 

二. Softmax

Softmax的主要思想是為神經網絡定義一種新的輸出層,它也是對加權輸入進行計算,只是在獲取輸出結果的時候我們不使用SIGMOD函數,使用softmax函數代替。第j個輸出神經元的激活值為:

 

分母對所有的輸出神經元k求和。

使用softmax時,所有的輸出激活值加起來必須為1,因為

於是某個輸出激活值增大或減小時,其余的輸出激活值則會相應的減小或增大以維持平衡。

softmax 層得到的輸出是一系列相加和為1的正數。換言之,從softmax 層得到的輸出可以看做是一個概率分布。於是可以將輸出激活值看作是神經網絡認為結果是j的概率。

但是如果使用 sigmoid 輸出層,我們不能使用 softmax 的結論去解讀。

 

三. 過擬合和正則化

我們使用validation_data而不是test_data來預防過擬合。為了做到這一點,在每一步訓練之后,計算validation_data的分類精度。一旦validation_data的分類精度達到飽和,就停止訓練。這種策略叫做提前終止(early stopping)。當然在實踐中,我們並不能立即知道什么時候准確度已經飽和。取而代之,我們在確信精度已經飽和之前會一直訓練。

通過validation_data來選擇不同的超參數(例如,訓練步數、學習率、最佳網絡結構、等等)是一個普遍的策略。我們通過這樣的評估來計算和設置合適的超參數值。如果基於test_data的評估結果設置超參數,有可能我們的網絡最后是對test_data過擬合。也就是說,我們或許只是找到了適合test_data具體特征的超參數,網絡的性能不能推廣到其它的數據集。

由於validation_data test_data 是完全分離開的,所以這種找到優秀超參數的方法被稱為分離法(hold out method)。

一般來說,增加訓練數據的數量是降低過擬合的最好方法之一。

另一種避免過擬合的方法是減小網絡的規模。然而,我們並不情願減小規模,因為大型網絡比小型網絡有更大的潛力。

正則化也可以避免過擬合,一種最常用的正則化技術——權重衰減(weight decay)或叫L2正則(L2 regularization)。L2正則的思想是,在代價函數中加

入一個額外的正則化項。

如:正則化后的交叉熵:

 

加入了第二項,也就是網絡中所有權值的平方和。它由參數進行調整,其中被稱為正則化參數(regularization parameter)。注意正則化項不包括偏移。

正則化的作用是讓網絡偏好學習更小的權值,而在其它的方面保持不變。選擇較大的權值只有一種情況,那就是它們能顯著地改進代價函數的第一部分。換句話說,正則化可以視作一種能夠折中考慮小權值和最小化原來代價函數的方法。

較小時,我們偏好最小化原本的代價函數,而較大時我們偏好更小的權值。

使用L2正則化后,權值的學習規則變為:

 

即我們以調整權值,也稱權重衰減。

 

經驗表明,當在多次運行我們的MNIST網絡,並使用不同的(隨機)權值初始化時,發現未正則化的那些偶爾會被「卡住」,似乎陷入了代價函數的局部最優中。結果就是每次運行可能產生相當不同的結果。相反,正則化的那些每次運行可以提供更容易復現的結果。

小權重意味着網絡的行為不會因為我們隨意更改了一些輸入而改變太多。這使得它不容易學習到數據中局部噪聲。可以把它想象成一種能使孤立的數據不會過多影響網絡輸出的方法,相反地,一個正則化的網絡會學習去響應一些經常出現在整個訓練集中的實例。

與之相對的是,如果輸入有一些小的變化,一個擁有大權重的網絡會大幅改變其行為來響應變化。因此一個未正則化的網絡可以利用大權重來學習得到訓練集中包含了大量噪聲信息的復雜模型。

允許大規模的偏置使我們的網絡在性能上更為靈活——特別是較大的偏置使得神經元更容易飽和,這通常是我們期望的。由於這些原因,我們通常不對偏置做正則化。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM