統計學習三要素(模型,策略,算法):
模型:假設空間,假設輸入到輸出之間的關系,獲得一個參數向量
策略:按照什么准則(損失函數,風險函數,經驗風險函數=>結構風險函數)選擇最好的模型
算法:學習模型的具體計算方法
卷積神經網絡CNN
以下摘錄來自 《解析卷積神經網絡——深度學習實踐手冊》
卷積神經網絡分為前饋運算和反向傳播反饋
原始數據一層層經過網絡,逐漸抽取出低層特征,直至高級語義特征,這一過程為
前饋運算;
網絡根據前饋運算的結果,與真實結果之間的誤差,通過
反向傳播算法由最后一層逐漸向前反饋,更新模型的參數;
在更新參數的模型上進行再次前饋運算,重復上述步驟,直至整個網絡模型收斂。
一般地,
前饋運算指對樣本進行推理或者預測,
反饋運算指預測誤差反向傳播更新參數。
深度模型的訓練則在最終損失驅動下對模型進行參數更新並將誤差反向傳播至網絡各層。
超參數
超參數設定:
輸入數據像素大小(將圖像壓縮至2的n次方大小,如32x32像素,96x96,224x224)
卷積層參數設定(卷積核大小、卷積操作的步長、卷積核個數;通常卷積核大小為奇數,一般推薦為3、5;卷積核個數一般為2的次冪)
池化層參數設定
網絡訓練:
在每輪訓練前將訓練集順序打亂(參考依據:信息論中從不相似的事件中學習總是比從相似事件中學習更具信息量)
學習率設定(初始不宜過大,后續需要減緩)
是否使用Batch Normalization
優化算法的選擇(SGD、基於動量的SGD、Nesterov、Adagrad、Adadelta、RMSProp、Adam等)
學習率:
學習率設定時可遵循下列兩項原則:
1.模型訓練開始時初始學習率不宜過大,以0.01和0.001為宜。
2.模型訓練過程中,學習率應隨輪數增加而減緩。
每輪目標函數損失值繪制訓練曲線,根據訓練曲線的情況采用不同學習率策略。
batchsize:
模型性能對batchsize雖然沒有學習率那么敏感,但是在進一步提升模型性能時,batchsize就會成為一個非常關鍵的參數。
學習率與batchsize調節:
如果增加了學習率,那么batch size最好也跟着增加,這樣收斂更穩定。
盡量使用大的學習率,因為很多研究都表明更大的學習率有利於提高泛化能力。如果真的要衰減,可以嘗試其他辦法,比如增加batch size,學習率對模型的收斂影響真的很大,慎重調整。
ResNet50網絡