2011-05-02 76 views
0

神經網絡,我使用此代碼做了NN爲了培養我的網絡給我上的圖像的分類:MATLAB的性能問題

net = newff(p,t,15,{},'traingd'); 
net.divideParam.trainRatio = 70/100; % Adjust as desired 
net.divideParam.valRatio = 15/100; % Adjust as desired 
net.divideParam.testRatio = 15/100; % Adjust as desired 
net.trainParam.epochs = 10000; 
net.trainParam.goal = 0.01; 
net.trainParam.show = 25; 
net.trainParam.time = inf; 
net.trainParam.min_grad = 1e-10; 
net.trainParam.max_fail = 10; 
net.trainParam.sigma = 5.0e-5; 
net.trainParam.lambda = 5.0e-7; 
net.trainParam.mu_max = 1e-20; 
net.trainParam.lr = 0.001; 

% Train and Apply Network 
[net,tr] = train(net,p,t); 
outputs = sim(net,p); 

% Create P. 

% Plot 
plotperf(tr) 
plotfit(net,p,t) 
plotregression(t,outpts) 

但我的表演永遠不會波紋管0.5。試圖對數據做PCA,但我認爲代碼上有些不正確?是否可以更改nntraintool上顯示的性能的初始值?

謝謝 聖保羅

回答

1

很難,而無需你的數據說,但我與神經網絡只有幾件事情之一經驗可能被髮生的事情:

  1. 你不必足夠的隱藏節點來表示您的數據
  2. 您的時間步太高
  3. 由於您的數據,您的錯誤空間很複雜,並且您正在到達大量本地最小值。這是一種相似但略有不同的說法1.
  4. 由於您的訓練樣本具有不同的標籤但功能完全相同,因此您的數據會變質。

如果1,則增加隱藏節點的數量。 如果2,減少時間步 如果3,你可以嘗試或許初始化與阮的Widrow初始化更好(這曾經是在功能initnw) 如果4,弄清楚爲什麼你的數據是這樣的,並修復它。

感謝@sazary您指出一些細節有關initnw是默認設置,當你創建newffnewcf一個新的網絡。

+0

謝謝你的幫助克里斯。我在1點,5點,10點和15點進行訓練,沒有任何反饋。我會嘗試你的建議 – Paulo 2011-05-03 13:24:52

+0

你嘗試降低'net.trainParam.lr'嗎? – 2011-05-03 13:30:26

+0

是的,我做到了。但它可能很愚蠢,你認爲它與重量有關嗎?沒有任何改變,網絡沒有任何改變。 – Paulo 2011-05-04 11:45:24