超參數調試處理政策
超參數搜尋的政策
1. 随機取值。
網格搜尋的問題在于:無法預先判斷哪個參數是比較重要的,是以将浪費大量的運算在沒有明細作用的變量上。
2. 精确搜尋
為超參數選取合适的範圍
對于如神經網絡隐藏層數這類超參數可以采用平均取值,但是對于類似學習率和指數權重平均中的超參數 β 這類超參數需要采用對數平均取值。
如對學習率取值時,學習率的變化範圍為[0.001,1],但是如果采用平均取值,則90%的都落在[0.1,1]的範圍内,反而使得學習率不能在較大範圍變化。是以采用對數取值,在區間[0.0001,0.001]、[0.001,0.01]、[0.01,0.1]和[0.1,1]内平均取值。
假設指數權重平均中的beta參數取值範圍為[0.9,0.999],那麼根據平均效果計算公式,在接近1的取值時,即使較小的變化所得結果的靈敏度會變化,即使beta隻有微小的變化,而當參數接近0.9時,平均效果的變化并不明顯。為了在更大的範圍内探索可取值,采用對數平均取值。
超參數搜尋過程的兩種方式
1. 在計算資源不足的情況下,單一模型上不斷的嘗試改變數值的設定
2. 在計算資源充足、資料豐富的情況下,可以嘗試多種不同的模型并選擇最好結果的模型
Batch normalization
Batch normalization歸一化的作用在于它适用的歸一化過程不隻在輸入層,同樣适用于神經網絡的深度隐藏層。采用Batch normalization歸一化了一些隐藏層單元值的平均值和方差。
但是與輸入層歸一化不同,在隐藏單元中,一般不想設定0均值和機關方差,因為那樣在激活函數中就隻用到了線性部分,而沒有充分的發揮激活單元的非線性作用。
一般把Batch normalization放在計算z和a之間,先對z進行BN處理,再通過激活函數。
Batch normalization 隻能在mini-batch上計算均值和方差,是以在test時,需要一些細節操作。
整個forward計算過程:
Batch normalization的作用:
1. “Covariate shift”
BN限制了在前面層的參數更新會影響數值分布的程度,BN歸一化減少了輸入值改變的問題,并使得值的變化在固定的範圍,使得值的變化更加穩定;同時也使得各個層之間的學習變得互相獨立,有助于加速整個網絡的學習;
2. regularization效果
在結合mini-batch使用時,由 z[L] 的計算轉化為 z˜[L] ,且均值和方差的計算也是由一小部分資料估計得出,是以存在稍微的偏差,使得類似于dropout一樣,在隐藏層添加了噪音,使得隐藏單元的神經元不能過分的依賴任何一個隐藏單元,有稍微正則化效果。
BN在測試集上的處理:
在測試集上預測一般是對單個樣本處理,是以無法在測試集上得到整個資料集的均值和方差,而需要在測試集上使用BN時,一般可以有兩種處理方式:
1、在整個訓練集上得到每層的均值和方差,并利用神經網絡中學習得到的參數BN;
2、在mini-batch的基礎上針對每個batch計算每層的均值和方差,然後在最後預測的時候利用指數權重平均,對batch上的均值和方差做平均。
3、但是實際上如果采用深度神經網絡架構時,一般都會有預設的估算均值和方差的方式。