❶ bp神經網路遇到新的數據,就預測不準,怎麼弄
預測數據的話BP不是特別好用,最好用Elman反饋神經網路或者RNN循環神經網路,這些有記憶功能的網路比較好用。bp主要和你選擇的隱含層數,和誤差范圍,學習率有關。你可以調節相關參數來改變神經網路,獲得更精確的結果。
❷ 怎樣提高神經網路的預測精度
增加神經網路訓練目標,以提高精度要求:
trainparam.goal
=
0.01
%0.01表示訓練目標誤差為0.01
❸ 怎麼才能使bp神經網路預測的結果更准確
這個問的太哪個了吧,神經網路預測一般也就是對已有數據進行非線性擬合而已,簡單的說,他只是一個擬合方法,只是與傳統的擬合方法相比有一些優點。用神經網路預測也不會是一定很非常准確的。
❹ BP神經網路
我不是大神。但可以給給意見。
1,遺傳演算法不能改變BP神經網路准確率低的本質問題的。只能在一定程度上優化BP神經網路。
2,你的數據是怎麼增加的?由原來的80組數據基礎上隨意組合的?還有你的輸出結果是3個等級。期望輸出是什麼類型?預測輸出是什麼類型?你判斷正確率的標準是什麼?這些都會對正確率有影響。
3,BP神經網路的正確率的提高可以通過:一,改變隱層的節點數。或增減隱層的層數。最少一個隱層,最多2個。二,改變傳遞函數,一般隱層用tansig,輸出層用linear或者tansig。
4,最後的方法是不怎麼重要的,就是數據的歸一化,一般是歸一化或不歸一化都可以的,都試試。
我都是書本學過,做過點題目,只能給這些建議。
❺ 如何提高深度神經網路測試准確率
沉下心來推推公式,多思考,明白了反向傳播本質上是鏈式法則(雖然之前也知道,但是當時還是理解的迷迷糊糊的)。
所有的梯度其實都是對最終的loss進行求導得到的,也就是標量對矩陣or向量的求導。當然同時也學到了許多其他的關於cnn的。
並且建議題主不僅要完成練習,最好能自己也寫一個cnn,這個過程可能會讓你學習到許多更加細節和可能忽略的東西。
❻ BP神經網路誤差如何提高
你好,誤差大,第一步需要嘗試的是做歸一化處理。有線性歸一化,有對數函數歸一化等等,這個你可以去網上搜索數據歸一化方法,有相關的代碼,應該。
第二部需要做出的改動是隱層節點數量,如果節點數量太多,那麼結果的隨機性就會很大,如果太少,那麼復雜數據的規律計算不出來。多少層節點最合適,這個目前除了一個一個試沒有更好的辦法。但是你會發現每一個相同的結構計算出的結果卻不盡相同,這個時候就需要考慮後續的問題。
第三步嘗試,變換transfer function。麻煩你查查字典,因為我不是用中文學的神經網路。我姑且翻譯成傳輸函數。傳輸函數在matlab中內建了3中 pureline logsig tansig。分別有不同的應用范圍。因為沒看到你的數據,我也不清楚具體應該推薦你用哪一種。不過你可以去網上搜索一下三種傳輸函數的特點。
如果有用請給「採納」謝謝。
❼ 如何提高pb神經網路分類的准確率
要想提高BP神經網路分類的准確率,關鍵在於提高網路性能,使網路能夠反映數據的內部非線性規律。一般有以下幾種措施:
保證學習樣本質量。網路的輸出結果質量不可能超出原始訓練數據的質量,一定要保證樣本准確、典型、規模足夠大。
選定合適的輸入向量方案。輸入向量的配置方案不是固定的,可以添加自變數,增加因素。
選定適當的隱層節點數。過少學習能力不足,過多可能過擬合並且學習較慢。
調整參數,如學習率、學習目標等。
與其他演算法結合進行改進。如帶動量項的BP演算法、與GA演算法融合的GA-BP演算法等。
效果不理想時,可考慮增加隱層數量。
❽ 如何訓練神經網路
1、先別著急寫代碼
訓練神經網路前,別管代碼,先從預處理數據集開始。我們先花幾個小時的時間,了解數據的分布並找出其中的規律。
Andrej有一次在整理數據時發現了重復的樣本,還有一次發現了圖像和標簽中的錯誤。所以先看一眼數據能避免我們走很多彎路。
由於神經網路實際上是數據集的壓縮版本,因此您將能夠查看網路(錯誤)預測並了解它們的來源。如果你的網路給你的預測看起來與你在數據中看到的內容不一致,那麼就會有所收獲。
一旦從數據中發現規律,可以編寫一些代碼對他們進行搜索、過濾、排序。把數據可視化能幫助我們發現異常值,而異常值總能揭示數據的質量或預處理中的一些錯誤。
2、設置端到端的訓練評估框架
處理完數據集,接下來就能開始訓練模型了嗎?並不能!下一步是建立一個完整的訓練+評估框架。
在這個階段,我們選擇一個簡單又不至於搞砸的模型,比如線性分類器、CNN,可視化損失。獲得准確度等衡量模型的標准,用模型進行預測。
這個階段的技巧有:
· 固定隨機種子
使用固定的隨機種子,來保證運行代碼兩次都獲得相同的結果,消除差異因素。
· 簡單化
在此階段不要有任何幻想,不要擴增數據。擴增數據後面會用到,但是在這里不要使用,現在引入只會導致錯誤。
· 在評估中添加有效數字
在繪制測試集損失時,對整個測試集進行評估,不要只繪制批次測試損失圖像,然後用Tensorboard對它們進行平滑處理。
· 在初始階段驗證損失函數
驗證函數是否從正確的損失值開始。例如,如果正確初始化最後一層,則應在softmax初始化時測量-log(1/n_classes)。
· 初始化
正確初始化最後一層的權重。如果回歸一些平均值為50的值,則將最終偏差初始化為50。如果有一個比例為1:10的不平衡數據集,請設置對數的偏差,使網路預測概率在初始化時為0.1。正確設置這些可以加速模型的收斂。
· 人類基線
監控除人為可解釋和可檢查的損失之外的指標。盡可能評估人的准確性並與之進行比較。或者對測試數據進行兩次注釋,並且對於每個示例,將一個注釋視為預測,將第二個注釋視為事實。
· 設置一個獨立於輸入的基線
最簡單的方法是將所有輸入設置為零,看看模型是否學會從輸入中提取任何信息。
· 過擬合一個batch
增加了模型的容量並驗證我們可以達到的最低損失。
· 驗證減少訓練損失
嘗試稍微增加數據容量。
❾ 採用什麼手段使神經網路預測更加准確
優化神經網路結構。如BP神經網路改變隱層神經元數量、訓練演算法等;
使用其他神經網路。如Elman神經網路考慮了前一時刻的輸出,比較適合用於預測,預測效果往往更好。RBF神經網路的訓練速度很快,訓練效果也很好。
改進的神經網路演算法。例如BP神經網路增加動量項、自適應學習率等措施,防止陷入局部極小影響預測效果。
組合神經網路。取長補短,將全局搜索能力強的演算法與局部逼近快的演算法組合起來,如遺傳演算法優化初始權值,再訓練。這種方法比較靈活,可以和許多演算法融合。
全面考慮影響因素。未來的預測值受許多因素影響,所以應該在基於歷史數據的基礎上,充分考慮各種因素,考慮得越周全,預知信息越多,預測效果一般更好。
❿ bp神經網路 Matlab實現總是達不到精度,請問應該要怎麼弄
更改參數,如修改學習率、更換訓練函數如trainlm等。
更改結構:增加隱層節點數、甚至增加隱層數,可以做成雙隱層。
BP(Back Propagation)神經網路是86年由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆傳播演算法訓練的多層前饋網路,是目前應用最廣泛的神經網路模型之一。BP網路能學習和存貯大量的輸入-輸出模式映射關系,而無需事前揭示描述這種映射關系的數學方程。它的學習規則是使用最速下降法,通過反向傳播來不斷調整網路的權值和閾值,使網路的誤差平方和最小。BP神經網路模型拓撲結構包括輸入層(input)、隱層(hidden layer)和輸出層(output layer)。