導航:首頁 > 網路設置 > bp神經網路訓練精度怎麼設置

bp神經網路訓練精度怎麼設置

發布時間:2022-07-23 04:29:35

㈠ matlab bp神經網路 精度低

首先是我不知道你用的matlab是什麼版本。

如果用的2010以後的版本,那麼你這樣初始化神經網路一定會報警告。

2010版以後初始化神經網路的語句是這樣的

net = newff(p, t, 7);

輸出層不需要自己去告訴系統。

我想知道的第二個問題,是你的輸出層函數是否需要使用logsig。如果使用purelin,那麼你大可不必去歸一化。後面我會告訴你原因。

你手動指定了訓練次數,但是學習率0.01這個數值不知道你從哪裡找到的。我可能會選擇高一點的學習率,最高我用過0.25.

訓練函數你也是手動指定的,這個是需要的么?如果不需要,對於7個神經節點,完全可以使用trainlm,這樣你也不需要這么多的訓練次數。


下面說一下2010以後的matlab中,神經網路訓練增加的一個功能。在初始化神經網路以後,有一個默認的dividing function,將訓練樣本中的一部分用來校驗神經網路性能,以防止過度訓練。那麼這個參數可能會導致訓練不充分。在初始化神經網路以後,需要做的工作是設定net.divideFcn = '';用來去掉這個分配函數。

如果你需要更改你的transfer function,那麼可以在net.layers{2}.transferFcn = 'logsig'將輸出層傳輸函數手動修改。


那麼,我使用全默認設置,沒有進行歸一化處理,獲得的結果是這樣的。

這個就是把你的t和訓練後的神經網路計算的結果放在一起。結果已經很不錯了。

如過我去掉了分配函數,那麼神經網路就會一直訓練到訓練次數上限或者達到目標值。165次訓練後,誤差值是1.77e-19(誤差使用mean squared error計算),結果在這里貼出來已經沒意義了,因為幾乎沒有誤差。

如果你還有問題,那麼跟我細聊一下。

如何提高bp神經網路的預測精度啊

跟你的預測對象有很大關系。
1. 根據你的預測對象的特性選取合適的輸入層、輸出層和隱層神經元數目。
2. 選擇合適的神經網路訓練函數。
3. 保證足夠的訓練樣本數據,並且確保這個訓練樣本數據有足夠的精度能夠反映需要預測的對象的特性。

㈢ 我的BP神經網路訓練一直達不到要求,要怎樣修改才能達到要求

net=init(net);不用這一句,把『logsig『改成「tansig」,第一個,同樣,把第二個改成』purelin『
建議你把』trainrp『改成』trainlm「,試試!

㈣ BP神經網路訓練精度保持為0。

你當時沒有保存曲線,現在就沒有了,不妨重新預測一遍。在R2009的NN工具箱中,數據被自動分成training set、validation set 及test set 三部分,training set是訓練樣本數據,validation set是驗證樣本數據,test set是測試樣本數據,這樣這三個數據集是沒有重疊的。在訓練時,用training訓練,每訓練一次,系統自動會將validation set中的樣本數據輸入神經網路進行驗證,在validation set輸入後會得出一個誤差(不是網路的訓練誤差,而是驗證樣本數據輸入後得到的輸出誤差,可能是均方誤差),而此前對validation set會設置一個步數,比如默認是6echo,則系統判斷這個誤差是否在連續6次檢驗後不下降,如果不下降或者甚至上升,說明training set訓練的誤差已經不再減小,沒有更好的效果了,這時再訓練就沒必要了,就停止訓練,不然可能陷入過學習。所以validation set有個設置步數,作用就在這里。在你的10組樣本中,不可能全部作為訓練樣本的,還要有測試樣本和驗證樣本。根據matlab版本的不同,具體怎麼分配樣本也不一樣,像R2009應該是自動分配的。

㈤ MATLAB中BP神經網路的訓練演算法具體是怎麼樣的

先用newff函數建立網路,再用train函數訓練即可。
1)正向傳播:輸入樣本->輸入層->各隱層(處理)->輸出層
注1:若輸出層實際輸出與期望輸出(教師信號)不符,則轉入2)(誤差反向傳播過程)
2)誤差反向傳播:輸出誤差(某種形式)->隱層(逐層)->輸入層
其主要目的是通過將輸出誤差反傳,將誤差分攤給各層所有單元,從而獲得各層單元的誤差信號,進而修正各單元的權值(其過程,是一個權值調整的過程)。

BP演算法實現步驟(軟體):
1)初始化
2)輸入訓練樣本對,計算各層輸出
3)計算網路輸出誤差
4)計算各層誤差信號
5)調整各層權值
6)檢查網路總誤差是否達到精度要求
滿足,則訓練結束;不滿足,則返回步驟2)
註:改進演算法—增加動量項、自適應調整學習速率(這個似乎不錯)及引入陡度因子。

㈥ bp神經網路 Matlab實現總是達不到精度,請問應該要怎麼弄

  1. 更改參數,如修改學習率、更換訓練函數如trainlm等。

  2. 更改結構:增加隱層節點數、甚至增加隱層數,可以做成雙隱層。


BP(Back Propagation)神經網路是86年由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆傳播演算法訓練的多層前饋網路,是目前應用最廣泛的神經網路模型之一。BP網路能學習和存貯大量的輸入-輸出模式映射關系,而無需事前揭示描述這種映射關系的數學方程。它的學習規則是使用最速下降法,通過反向傳播來不斷調整網路的權值和閾值,使網路的誤差平方和最小。BP神經網路模型拓撲結構包括輸入層(input)、隱層(hidden layer)和輸出層(output layer)。

㈦ matlab訓練BP神經網路,nntool中如何設置,權值,激活函數的修改等問題

net1=newff(minmax(pX),[16,1],{'tansig','purelin'},'trainlm');

這個是激活函數的語句,但是一般不需要修改。

BP神經網路是計算機自主學習的一個過程,程序員要做的就是確定隱含層神經元的數量以及訓練精度,訓練步數以及學習速率等參數。

隱含層神經元數量的公式:

㈧ BP神經網路的精度低,怎麼解決

建議用RBP神經網路進行訓練。使用方法:
x=-1:0.1:5;
y=-1:0.1:5;
z=x.^2.*y-0.1*x+2*y;
net=newrbe([x;y],z); %創建一個RBF網路
t=sim(net,[x;y]);%模擬未經訓練的網路net
plot3(x,y,z,'rd');hold on
plot3(x,y,t,'b-');

㈨ 如何提高BP神經網路模型的預測精度

直接調用歸一化函數就可以啦,不會的話看一下這個帖子吧:遺傳演算法優化BP神經網路的案例(matlab代碼分享)
http://www.ilovematlab.cn/forum. ... &fromuid=679292
希望對你有幫助!

㈩ 用MATLAB中神經網路工具箱固有函數建立的BP網路,訓練精度始終達不到,而且誤差也大,該如何解決

除了樓上的方法,還可以修改下神經網路的初始權值,這方面的方法很多,可以改變下初始參數的取值范圍,或者用遺傳演算法搜索下。另外,改變神經網路的訓練函數是十分有效的,比如trainscg什麼的,還有好幾個記不得了,自己找找看!

閱讀全文

與bp神經網路訓練精度怎麼設置相關的資料

熱點內容
光纖交換機與網路交換機哪個好 瀏覽:536
如何安全使用網路家電 瀏覽:332
微信網路打開在哪裡設置 瀏覽:468
pq什麼意思網路上污 瀏覽:635
上海網路商城系統哪裡買 瀏覽:389
wifi網路延遲1500 瀏覽:202
網路高手的職業特徵是什麼 瀏覽:59
管家婆網路版如何遠程 瀏覽:756
網路病毒的危害主要有哪些 瀏覽:463
訂票時出現影院網路異常是什麼 瀏覽:667
網路安全法的規定製度 瀏覽:454
電信撥號鍵改成移動網路 瀏覽:477
無線網連接卻顯示網路設置錯誤 瀏覽:711
易尚WiFi顯示無網路 瀏覽:566
中維監控網路攝像頭連WiFi 瀏覽:712
6plus無線網路不穩定 瀏覽:966
3g視頻網路設置 瀏覽:874
一鍵設置網路壁紙 瀏覽:718
移動網路如何變更戶主 瀏覽:180
網路安全制度管理辦法 瀏覽:619

友情鏈接