1. 程式人生 > >CNN筆記(6)---超引數設定和網路訓練

CNN筆記(6)---超引數設定和網路訓練

11.超引數設定和網路訓練

11.1 網路超引數設定

網路結構相關的各項超引數:輸入影象畫素、卷積層個數、卷積核的相關引數

11.1.1 輸入資料畫素大小

  • 不同輸入影象為得到同規格輸出,統一壓縮到2n大小:32x32,96x96,224x224
  • 解析度越高,有助於效能提升,(特別是attention model),但是會延長訓練時間
  • 改變原始模型的輸入影象解析度,需要重新改變全連線層輸入濾波器的大小和相關引數

11.1.2 卷積層引數的設定

卷積層超引數:卷積核大小,卷積操作步長,卷積核個數

卷積核大小
小卷積核相比大卷積核:
    1.增強網路容量和模型複雜度
    2.減少卷積引數個數

推薦3x3,5x5的小卷積核
對應步長建議為1

填充操作zeros-padding

兩個功效:
1.充分利用邊緣資訊
2.搭配合適引數,保持卷積層輸出與輸入同等大小,避免輸入大小的急劇減小

對卷積核大小 f × f、步長為1的卷積操作,當p=(f1)/2時,便可維持輸出與原輸入等大.

卷積核個數

卷積核個數通常設定為 2 的次冪,如 64,128,512,1024 …

11.1.3 匯合層引數設定(pooling)

為了不丟棄過多輸入響應,一般設為較小的值

常用2x2,步長為2

在此設定下,輸出結果大小僅為輸入資料長寬大小的四分之一

11.2 訓練技巧

11.2.1 訓練資料隨機打亂

採用mini-batch的訓練機制,每個epoch前進行shuffle

提高收斂速率,略微提升測試集效果

11.2.2 學習率的設定

兩個原則

1.初始學習率不宜過大。以0.01,0.001為宜

2.學習率應該隨著輪數增加而減緩。

減緩機制一般有如下三種:

1)輪數減緩(step decay) e.g.五輪後減半,下一個五輪後再次減半

2)指數減緩(exponential decat) e.g. 按輪數增長,指數插值遞減

3)分數減緩(1/t decay) e.g. 若原始學習率為lro,學習率按照下式遞減:

lrt=lr0/(1+kt),其中,k為超引數,控制減緩的幅度,t為訓練輪數

藉助模型訓練曲線

畫出每輪訓練後模型在目標函式上的損失值曲線

損失值不能“爆炸”,也不能下降太慢

開始下降明顯,後面明顯變慢是學習率較大的表現

11.2.3 批規範化操作(batch normalization BN)

不僅加快收斂速度,而且解決“梯度彌散”的問題

在模型每次隨機梯度下降訓練時,通過 mini-batch 來對相應的網路響應(activation)做規範化操作,使得結果(輸出訊號各個維度)的均值為 0,方差為 1.

演算法流程

輸入:x:β={x1,...,m}

輸出: {yi=BNγ,β(xi)}

1: μβ1mi=1mxi //計算批處理資料均值

2:δβ21mi=1m(xiμβ)2 //計算批處理資料的方差

3: x^ixiμβδβ2+ϵ //規範化

4: yiγx^i+β=BNγ,β(xi)
//尺度變換和偏移

5:return 學習的引數 γβ

======

內部協變數偏移

可通過BN來規範化某些層或所有層的輸入,從而固定每層輸入訊號的均值和方差

即使網路較深層的響應或梯度很小,也可以通過BN的規範化作用將其尺度變大,從而解決可能的“梯度彌散”

l2規範化拉大尺度

BN的使用位置:作用在非線性對映函式前。
值得一提的是, BN的變種也作為一種有效的特徵處理手段應用於人臉識別等任務中,
即特徵規範化(feature normalization,簡稱 FN)。 
FN作用於網路最後一層的特徵表示上(FN 的下一層便是目標函式層),FN 的使用可提高習得特徵的分辨能力,適用於類似人臉識別、行人重檢測、車輛重檢測等任務。

11.2.4 網路模型優化演算法的選擇

一階優化演算法的代表

為簡化起見,我們假設待學習引數為 ω,學習率(或步長)為 η,一階梯度值為 g, t 表示第 t 輪訓練。

1.隨機梯度下降法(SGD)

基本演算法

wtwt1ηg
一階梯度資訊 g 完全依賴於當前批資料在網路目標函式上的誤差,

故可將學習率 η 理解為當前批的梯度對網路整體引數更新的影響程度。

經典的隨機梯度下降是最常見的神經網路優化方法,收斂效果較穩定,不過收斂速度過慢。

2.基於動量的隨機梯度下降法

用於改善SGD更新時可能產生的振盪現象

更新策略:

vtμvt1ηgwtwt1+vt
其中,μ為動量因子,控制動量資訊對整體梯度更新的影響程度,一般設為0.9

基於動量的隨機梯度下降法除了可以抑制振盪,還可在網路訓練中後期趨於收斂、網路引數在區域性最小值附近來回震盪時幫助其跳出區域性限制,找到更優的網路引數

除了設定為 0.9 的靜態設定方式,還可將其設定為動態因子。一種常用的動態設定方式是將動量因子初始值設為 0.5,之後隨著訓練輪數的增長逐漸變為 0.9 或 0.99

3.Nesterov型動量隨機下降法

在上述動量梯度下降法更新梯度時,加入對當前梯度的校正

對於凸函式在收斂性證明上有更強的理論保證,
實際使用中也有更好表現