Matlab ANN人工神经网络 validation checks
?bp網(wǎng)絡設置如下:
%創(chuàng)建網(wǎng)絡 % logsig:對數(shù)S形轉(zhuǎn)移函數(shù),單極性;tansig: 雙極性S形轉(zhuǎn)移函數(shù);purelin:線性函數(shù) % traingdx :梯度下降自適應學習率訓練函數(shù),traingdm,trainlm, trainscg 這些是權(quán)值的學習算法 % traingdm是帶動量的梯度下降法,trainlm是指L-M優(yōu)化算法,trainscg是指量化共軛梯度法 net=newff(minmax(p1),[8, 15, 12, 1],{'tansig', 'tansig','tansig','purelin'},'trainlm'); %設置訓練次數(shù) net.trainParam.epochs = 600; %設置收斂誤差 net.trainParam.goal=0.0001; %設置學習率 net.trainParam.lr = 0.003 ; %設置動量因子,避免局部最優(yōu)和過擬合 net.trainParam.mc=0.9; %最小確認失敗次數(shù) net.trainParam.max_fail=6; %設置訓練數(shù)據(jù) 比例:訓練:驗證:測試 net.divideFcn = 'divideblock' ; net.divideParam.trainRatio = 0.7; net.divideParam.valRatio = 0.15; net.divideParam.testRatio = 0.15;?? 對上述bp神經(jīng)網(wǎng)絡進行訓練的時候,訓練結(jié)果還沒有達到目標的精度,就由于validation checks的值達到了6而停止了進一步的訓練,如下圖:
? ? 神經(jīng)網(wǎng)絡的樣本默認情況下會將樣本隨即分為3類:訓練樣本,確認樣本和測試樣本。
? ? 確認檢查值默認是6,它的意思是指隨著網(wǎng)絡利用訓練樣本進行訓練的過程中,確認樣本的誤差曲線連續(xù)6次迭代不再下降。這時訓練終止(這只是訓練終止條件之一,滿足任一終止條件,訓練過程都將終止)。
? ? 深層含義你可以這樣理解,如果隨著網(wǎng)絡的訓練,確認樣本的誤差已經(jīng)基本不在減小,甚至增大,那么就沒有必要再去訓練網(wǎng)絡了,因為繼續(xù)訓練下去的話,在利用測試樣本進行測試網(wǎng)絡的話,測試樣本的誤差將同樣不會有所改善,甚至會出現(xiàn)過度擬合的現(xiàn)象。
? ? 根據(jù)《matlab人工神經(jīng)網(wǎng)絡參數(shù)》的提示,可以通過下面的設置來改變Validation Checks的值
net.trainParam.max_fail=100; % 最小確認失敗次數(shù)?
參考資料
[1]請教:Matlab 7.8 BP網(wǎng)絡訓練時validation checks 6 退出訓練問題
[2]求助:有人懂validation check嗎
總結(jié)
以上是生活随笔為你收集整理的Matlab ANN人工神经网络 validation checks的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: CNN 卷积神经网络(卷积、池化)长度、
- 下一篇: Docker挂载主机目录Docker访问