Matlab——nntool_validation check

2017-01-17  by:CAE仿真在線  來源:互聯(lián)網(wǎng)

問:求助:有人懂validationcheck嗎?


我在訓練BP網(wǎng)絡時,nntraintool的界面上提示說validationstop.而且它的validationcheck自動顯示的是6,而訓練目標沒有達到,訓練就結束了。

答:validationcheck
翻譯過來:確認檢查
內涵:神經(jīng)網(wǎng)絡的樣本若輸入網(wǎng)絡,默認情況下會將樣本隨即分為3類:訓練樣本,確認樣本和測試樣本。確認檢查值默認是6,它的意思是指隨著網(wǎng)絡利用訓練樣本進行訓練的過程中,確認樣本的誤差曲線連續(xù)6次迭代不在下降。這時訓練終止(這只是訓練終止條件之一,滿足任一終止條件,訓練過程都將終止)深層含義你可以這樣理解,如果隨著網(wǎng)絡的訓練,確認樣本的誤差已經(jīng)基本不在減小,甚至增大,那么就沒有必要再去訓練網(wǎng)絡了,因為繼續(xù)訓練下去的話,在利用測試樣本進行測試網(wǎng)絡的話,測試樣本的誤差將同樣不會有所改善,甚至會出現(xiàn)過度擬合的現(xiàn)象。validationchecks已經(jīng)達到設置的值了,所以停止訓練了,如果網(wǎng)絡在連續(xù)max_failepochs后不能提高網(wǎng)絡性能,就停止訓練。

有三種方法解決這個問題;

1提高validationchecks的數(shù)值,比如設置net.trainParam.max_fail=200;其實這等于自己糊弄自己嚴重不推薦,出現(xiàn)停止訓練,就是因為被訓練的網(wǎng)絡已經(jīng)過擬合,停下來是應該的。但6的確有點小,建議改成1020之間的數(shù)
2修改被訓練的網(wǎng)絡,比如說再加一個隱藏層試試
3如果是數(shù)據(jù)太相近的問題,試試選擇用divideind

還可以加入如下參數(shù),取消validationcheck功能
net.divideFcn=''
但是這個方法對于網(wǎng)絡的訓練精度提高和輸出的逼近程度沒有顯著改善,但是取消這個功能之后,gradient又首先達到指定的目標,我的神經(jīng)網(wǎng)絡是不是陷入局部最優(yōu)了。


開放分享:優(yōu)質有限元技術文章,助你自學成才

相關標簽搜索:Matlab——nntool_validation check MatLab培訓 MatLab培訓課程 MatLab在線視頻教程 MatLab技術學習教程 MatLab軟件教程 MatLab資料下載 MatLab代做 MatLab基礎知識 Fluent、CFX流體分析 HFSS電磁分析 Ansys培訓 Abaqus培訓 

編輯
在線報名:
  • 客服在線請直接聯(lián)系我們的客服,您也可以通過下面的方式進行在線報名,我們會及時給您回復電話,謝謝!
驗證碼

全國服務熱線

1358-032-9919

廣州公司:
廣州市環(huán)市中路306號金鷹大廈3800
電話:13580329919
          135-8032-9919
培訓QQ咨詢:點擊咨詢 點擊咨詢
項目QQ咨詢:點擊咨詢
email:kf@1cae.com