神經網路基本訓練技巧
兩部分:1.降低訓練誤差 2. 降低測試誤差/增加泛化能力
1. 如何降低訓練誤差
1. 使用恰當的loss function
好處:e.g. cross entroypy的效果好於square error
2. 使用mini-batch進行訓練 (隨機梯度下降)
細節:將整體樣本分為n個mini-batch進行訓練,每次迭代,只需要訓練n個batch
好處:a.減少計算量 b. 與沒有batch相比,權值是每迭代一次,更新一次,有了batch則每個batch完更新一次
3. 使用適合的activiation function, 如relu方程
好處:1.有些情況下,可解決梯度消失問題(gradient vanishing problem) 2. 使用relu可以造成網路稀疏性
4. 適應性學習率(adaptive learning rate)(adagrad 演算法)
細節:在開始時,使用大學習率,後期時的時候使用小學習率,
好處:1. 可以避免陷入區域性最優解 2.加快收斂速度
5. 加入動量(momentum)
細節:在每次迭代w公式之後加乙個momentum
2. 降低測試誤差(過擬合問題)
1. 使用更多的資料
細節:容量與錯誤率的關係圖
細節:迭代次數不要太多
3. 正則項(regularization)
細節:e.g. 權值衰減(weight decay)
細節:每次進行運算的時候,對於一部分節點棄之不用
神經網路訓練技巧
1 學習速率。首先設學習速率為乙個較大的值,確保training cost在不斷下降。當accuracyy在n個epoch內不再增加時,使得學習速率減小一半。重複迭代,直到學習速率變成原來的1 1024。2 學習速率要根據訓練cost調。但是網路層數和神經元數目,mini batch size要根據...
神經網路訓練
學習了bp神經網路演算法,剛開始最終要的一點不明白的就是前一層和後一層 這裡指的只有三層,輸入層,隱藏層,輸出層 的權重,其實神經網路演算法中,前一層的每乙個節點和後一層的每乙個節點都有連線權重,初始權重是隨機的。而更新權重是通過輸出層的值來反向更新的。基本過程如下 1.輸入第乙個訓練樣本 對應的就...
神經網路的訓練
既然我們希望網路的輸出盡可能的接近真正想要 的值。那麼就可以通過比較當前網路的 值和我們真正想要的目標值,再根據兩者的差異情況來更新每一層的權重矩陣 比如,如果網路的 值高了,就調整權重讓它 低一些,不斷調整,直到能夠 出目標值 因此就需要先定義 如何比較 值和目標值的差異 這便是損失函式或目標函式...