Matlab——nntool_validation check
2017-01-17 by:CAE仿真在線 來源:互聯網
問:求助:有人懂validationcheck嗎?
我在訓練BP網絡時,nntraintool的界面上提示說validationstop.而且它的validationcheck自動顯示的是6,而訓練目標沒有達到,訓練就結束了。
答:validationcheck
翻譯過來:確認檢查
內涵:神經網絡的樣本若輸入網絡,默認情況下會將樣本隨即分為3類:訓練樣本,確認樣本和測試樣本。確認檢查值默認是6,它的意思是指隨著網絡利用訓練樣本進行訓練的過程中,確認樣本的誤差曲線連續6次迭代不在下降。這時訓練終止(這只是訓練終止條件之一,滿足任一終止條件,訓練過程都將終止)深層含義你可以這樣理解,如果隨著網絡的訓練,確認樣本的誤差已經基本不在減小,甚至增大,那么就沒有必要再去訓練網絡了,因為繼續訓練下去的話,在利用測試樣本進行測試網絡的話,測試樣本的誤差將同樣不會有所改善,甚至會出現過度擬合的現象。validationchecks已經達到設置的值了,所以停止訓練了,如果網絡在連續max_failepochs后不能提高網絡性能,就停止訓練。
有三種方法解決這個問題;
1提高validationchecks的數值,比如設置net.trainParam.max_fail=200;其實這等于自己糊弄自己嚴重不推薦,出現停止訓練,就是因為被訓練的網絡已經過擬合,停下來是應該的。但6的確有點小,建議改成10到20之間的數
2修改被訓練的網絡,比如說再加一個隱藏層試試
3如果是數據太相近的問題,試試選擇用divideind
還可以加入如下參數,取消validationcheck功能
net.divideFcn=''
但是這個方法對于網絡的訓練精度提高和輸出的逼近程度沒有顯著改善,但是取消這個功能之后,gradient又首先達到指定的目標,我的神經網絡是不是陷入局部最優了。
相關標簽搜索:Matlab——nntool_validation check MatLab培訓 MatLab培訓課程 MatLab在線視頻教程 MatLab技術學習教程 MatLab軟件教程 MatLab資料下載 MatLab代做 MatLab基礎知識 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓 Abaqus培訓