『壹』 bp神經網路數據檢驗的誤差太大,如何調解
呵呵,bp演算法本身有缺陷 ,你的訓練步長 迭代率啥的要設置好
『貳』 神經網路訓練一定次數後准確率突然下降怎麼回事
經網路訓練時准確度突然變得急劇下降,很有可能是你的休息不夠睡眠不足導致注意力不集中,近段時間的心情也很影響訓練時的准確度,心情煩躁准確度也就會下降。
『叄』 bp神經網路訓練速度慢怎麼調整
BP(Back Propagation)網路是1986年由Rumelhart和McCelland為首的科學家小組提出,是一種按誤差逆傳播演算法訓練的多層前饋網路,是目前應用最廣泛的神經網路模型之一。BP網路能學習和存貯大量的輸入-輸出模式映射關系,而無需事前揭示描述這種映射關系的數學方程。它的學習規則是使用最速下降法,通過反向傳播來不斷調整網路的權值和閾值,使網路的誤差平方和最小。BP神經網路模型拓撲結構包括輸入層(input)、隱層(hide layer)和輸出層(output layer)。
人工神經網路就是模擬人思維的第二種方式。這是一個非線性動力學系統,其特色在於信息的分布式存儲和並行協同處理。雖然單個神經元的結構極其簡單,功能有限,但大量神經元構成的網路系統所能實現的行為卻是極其豐富多彩的。
『肆』 如何訓練神經網路
1、先別著急寫代碼
訓練神經網路前,別管代碼,先從預處理數據集開始。我們先花幾個小時的時間,了解數據的分布並找出其中的規律。
Andrej有一次在整理數據時發現了重復的樣本,還有一次發現了圖像和標簽中的錯誤。所以先看一眼數據能避免我們走很多彎路。
由於神經網路實際上是數據集的壓縮版本,因此您將能夠查看網路(錯誤)預測並了解它們的來源。如果你的網路給你的預測看起來與你在數據中看到的內容不一致,那麼就會有所收獲。
一旦從數據中發現規律,可以編寫一些代碼對他們進行搜索、過濾、排序。把數據可視化能幫助我們發現異常值,而異常值總能揭示數據的質量或預處理中的一些錯誤。
2、設置端到端的訓練評估框架
處理完數據集,接下來就能開始訓練模型了嗎?並不能!下一步是建立一個完整的訓練+評估框架。
在這個階段,我們選擇一個簡單又不至於搞砸的模型,比如線性分類器、CNN,可視化損失。獲得准確度等衡量模型的標准,用模型進行預測。
這個階段的技巧有:
· 固定隨機種子
使用固定的隨機種子,來保證運行代碼兩次都獲得相同的結果,消除差異因素。
· 簡單化
在此階段不要有任何幻想,不要擴增數據。擴增數據後面會用到,但是在這里不要使用,現在引入只會導致錯誤。
· 在評估中添加有效數字
在繪制測試集損失時,對整個測試集進行評估,不要只繪制批次測試損失圖像,然後用Tensorboard對它們進行平滑處理。
· 在初始階段驗證損失函數
驗證函數是否從正確的損失值開始。例如,如果正確初始化最後一層,則應在softmax初始化時測量-log(1/n_classes)。
· 初始化
正確初始化最後一層的權重。如果回歸一些平均值為50的值,則將最終偏差初始化為50。如果有一個比例為1:10的不平衡數據集,請設置對數的偏差,使網路預測概率在初始化時為0.1。正確設置這些可以加速模型的收斂。
· 人類基線
監控除人為可解釋和可檢查的損失之外的指標。盡可能評估人的准確性並與之進行比較。或者對測試數據進行兩次注釋,並且對於每個示例,將一個注釋視為預測,將第二個注釋視為事實。
· 設置一個獨立於輸入的基線
最簡單的方法是將所有輸入設置為零,看看模型是否學會從輸入中提取任何信息。
· 過擬合一個batch
增加了模型的容量並驗證我們可以達到的最低損失。
· 驗證減少訓練損失
嘗試稍微增加數據容量。
『伍』 患上神經衰弱怎麼辦
神經衰弱是一種常見的神經病症,患者常感腦力和體力不足,容易疲勞,工作效率低下,常有頭痛等軀體不適感和睡眠障礙,但無器質性病變存在。神經衰弱主要症狀有:①容易疲勞;②容易興奮;③睡眠障礙;④情緒障礙;⑤緊張性疼痛和植物神經功能紊亂。這些都會對學習產生不良的影響。
如果你已患了神經衰弱,首先不要為此而苦惱,或背上思想包袱,因為這種病不是器質性疾病,也不是神經中樞的病變,而是大腦機能暫時性功能失調所引起的一種心因疾病。只要稍加調節,抱以樂觀的態度,神經衰弱是可以治癒的。在治癒過程中,可注意以下幾個問題:
一、樹立戰勝疾病的自信心
對神經衰弱這一疾病的態度正確與否,常常影響治癒的進程與效果。如前所述,神經衰弱既然不是器質性疾病,因此,不必為患此病而顧慮重重,對平時出現的一些症狀,不要過多地去注意,要盡可能地去淡化它,不要隨時去體驗,隨時去暗示自己。
曾有一位患神經衰弱的病人,因他總是擔心自己病情加重,住進了醫院,他最害怕的就是晚上失眠。第二天清早,護士剛走進病房,他便對護士講:「不行了,昨天我一夜都沒睡好!」護士說:「你昨晚睡得挺好的,夜裡下雨時我來病房關窗子,你睡得呼呼的,一點都不知道。我還兩次進來拿葯,你也不知道。」可見,這位病人主要是疑心太重的緣故。因此,淡化病情,樹立治癒的自信心,是病情好轉的前提和條件。
二、勞逸結合,科學用腦
應根據自己的情況,制訂出合理的作息制度,在保證8小時的睡眠的前提下,有規律地生活,這利於大腦神經活動的節律化。用腦時間長了,便會感到疲勞和注意力不集中,學習效率下降。這是一種正常的現象。因為疲勞是人體的一種保護性反應。大腦疲勞後,應及時休息。
休息可分兩大類,一類是消極的休息,即睡眠或閉目養神。這種休息可使剛才過度興奮的腦細胞暫時處於相對抑制狀態,得到相應的休息。另一類是積極的休息。如適當參加文體活動或輪換學習不同課程,這種休息可以交替發揮大腦兩個半球不同功能區的作用。因為大腦的左半球主要管人的邏輯、語言思維,右半球主要管人的形象、運動思維。因此,交替發揮大腦兩個半球不同功能區的作用,便可使原來處於興奮狀態的部位轉入抑制狀態,原來處於抑制的部位轉入興奮狀態。如看語文久了,可演算一會兒數學題;物理、化學題做多了,可唱唱歌、聽聽音樂等。
三、培養樂觀、開朗、活潑的性格
具有自卑、敏感、多疑、自製力差、主觀任性、爭強好勝等性格特徵的人易患神經衰弱,因此,培養活潑、樂觀的性格是治本的關鍵。
四、適當運用葯物治療
治療神經衰弱常用的葯物有:三溴合劑、安定、谷維素、維生素C、谷氨酸、利眠寧、養血安神丸、安神補心丸等。
五、注意營養補充
營養出現障礙時也會出現神經衰弱的一些症狀。飢餓時人可以出現疲勞感、注意力渙散、行動遲緩、頭痛頭暈、嗜睡或失眠等神經衰弱症狀,除食物以外對任何事物都不感興趣。此外維生素B、維生素C的缺乏,水、鹽的攝人不足等等,都可以出現神經衰弱症狀。大腦需要的營養物質,除了脂類、蛋白質、糖類、氧氣和水分以外,其他如維生素、鈣、磷、鉀、鎂以及微量元素等也是不可缺少的。神經衰弱患者在飲食療法方面應特別注意食用對腦有營養價值的食物。
『陸』 lstm神經網路訓練時如何減小誤差
lstm神經網路訓練時如何減小誤差:
istm神經網路主要通過結合函數本身的曲線的特點對加速度進行誤差補償。
加速度計受其零偏、溫度等影響明顯,直接影響導航系統的精度,需要研究補償方法,提高加速度計的測量精度。鑒於神經網路具有高效的曲線擬合功能和優越的逼近復雜非線性函數的特點,提出了基於BP神經網路的加速度計誤差補償方法。模擬結果表明,經BP神經網路補償後,加速度計誤差補償後的輸出能良好地逼近其期望輸出,輸出最大誤差的絕對值由0.4575g減少到0.07014g,誤差降低了一個數量級,很好地抑制了加速度計的誤差,提高了加速度計的精度。
『柒』 我用bp神經網路做預測,可是每次預測出來的結果都不一樣,且差的比較多,要怎麼辦
初始值不一樣,結果可能相差很大。
還有bp網路的收斂速度很慢。
不知道你的訓練函數是什麼。
樣本一般來說越多越好,但是多了訓練就更慢了。
『捌』 神經網路:欠擬合和過擬合
以我們前面講述的線性回歸為例,比如我們在訓練集上訓練出最優的模型,但是當我們將其使用到測試集時,測試的誤差很大,我們該怎麼辦?
我們一般採取的措施主要包括以下6種:
增加訓練樣本的數目(該方法適用於過擬合現象時,解決高方差。一般都是有效的,但是代價較大,如果下面的方法有效,可以優先採用下面的方式);
嘗試減少特徵的數量(該方法適用於過擬合現象時,解決高方差);
嘗試獲得更多的特徵(該方法適用於欠擬合現象時,解決高偏差);
嘗試增加多項式特徵(該方法適用於欠擬合現象時,解決高偏差);
嘗試減小正則化程度λ(該方法適用於欠擬合現象時,解決高偏差);
嘗試增加正則化程度λ(該方法適用於過擬合現象時,解決高方差);
上面的方法不是隨機選擇,是在合適的情況下(過擬合和欠擬合)選擇合適的方法,對於怎麼判斷一個模型是過擬合還是欠擬合,我們會在下面給出一些機器學習診斷法。
如何對一個假設進行評估?
我們前面在講述線性回歸和邏輯回歸時,只是注重針對訓練數據集訓練出一個最優的參數,但是我們訓練處的模型對於測試集的性能好壞我們沒有進行判斷,我們只是訓練的模型使得損失函數最小,我們前面也討論過,在訓練數據集上損失函數最小並不能代表對於給定的測試數據,測試數據的評估非常准確,比如過擬合現象發生時,那我們如何評價一個假設的好壞呢?
主要的方法包括兩種:
1.對於簡答的模型,我們可以採用將hθ(x)的圖像畫出,來判斷模型的好壞,但是這種方法對於特徵變數不是一個時,這種方法很難實現或者不可能實現。例如我們曾經看到過這樣的圖像,可以通過hθ(x)的圖像明顯可以看出,該假設存在著過擬合現象。
2.另一種評估假設的方法為:將原來的數據集分為訓練集和測試集,一般我們是從原來的數據集中隨機選取(保證訓練集和測試集中都含有各種類型的數據)70%的數據作為訓練集,剩下的30%的樣本作為測試集。同時這種將原來數據集劃分為訓練集和測試集的方法可以用於幫助特徵選擇、多項式次數的選擇以及正則化參數的選擇等。數據集劃分的過程如下:
以上面數據集為例,選取前7個為訓練集,後3個為測試集。用前7個數據集做訓練訓練出一個最優的模型,評價這個訓練出的模型的好壞可以使用測試集來進行判斷,判斷的標准可以使用測試集的損失函數來進行定量的衡量。
對於回歸問題,測試集的損失函數計算公式如下:
Jtest(θ)=12mtest∑i=1mtest(hθ(x(i)test)−y(i)test)2
而對於分類問題,測試集的損失函數計算公式如下:
這種測量方式,如果測試樣本損失函數很大,則代表訓練出的模型泛化能力不好。
對於分類問題,還有另外一種測量的方式,稱為誤分類率,它對於每一個測試樣本進行計算,計算的公式如下:
error=1mtest∑i=1mtesterr(hθ(x(i)test),y(i)))
其中,
模型的選擇和交叉驗證集:
上述我們是在模型選擇好了之後進行訓練的,也就是上述我們都是確定了假設進行訓練的,但是我們怎麼對模型進行選擇呢,這一節我們來討論一下模型的選擇,以及和交叉驗證集的關系。
模型選擇主要包括以下內容:1.怎樣選擇正確的特徵來構造學習演算法?2.怎樣選擇學習演算法中正則化參數λ?等問題。
首先我們結合一個例子來引出模型的選擇和驗證集:
例如我們有上面十個模型,我們對於給定的數據集選擇哪種模型呢?按照我們上面討論的將數據集劃分為訓練集和測試集,使用訓練集對上述模型進行訓練,然後使用測試集來進行選擇最佳的模型,比如最優的為第五個模型,但是這並不能衡量這個模型的泛化能力,因為測試集已經用於選擇最優的模型,這個模型對於其他未知數據的泛化能力還是未知的。
所以針對上述問題我們可以將數據集劃分為訓練集、交叉驗證集和測試集。一般情況下,訓練集占總樣本的60%,交叉驗證集佔20%,測試集佔20%。其中訓練集用於訓練,交叉驗證集用於選擇最優的模型,測試集用於測試模型的泛化能力。
模型選擇方法為:
1. 使用訓練集訓練10個模型;
2. 用10個模型分別對交叉驗證集計算出交叉驗證誤差(代價函數的值),其中計算公式為:
3. 選取交叉驗證誤差最小的模型作為選擇的模型;
4. 用測試集對選擇出的模型計算泛化能力(測試樣本的損失函數),計算公式如上文中討論的一樣。
假設對診斷偏差和方差(即過擬合還是欠擬合)的影響
利用上述方法學習到的演算法性能不好一般會有兩種情況:
1.會出現過擬合,也就是所謂的方差很大;
2.會出現欠擬合,也就是所謂的偏差很大;
首先應該確定演算法性能的不好,是由哪種原因造成的,然後針對不同的情況採取不同的改進策略,可以有效的改進當前的演算法。下面我們來講述一下怎麼判斷是過擬合還是欠擬合。
以下面例子為例,來進行討論:
我們可以通過繪制出訓練集的代價函數和交叉驗證驗證集的代價函數與方次d的關系來進行判斷是上述哪種情況的一種:
對於訓練集,當d較小時,模型的擬合程度不是很好,所以訓練樣本集的代價函數比較大;隨著d的增加,模型的擬合程度不斷提高,代價函數不斷的減小;
對於交叉驗證集,由於d比較小時,模型的擬合程度不是很好,對於新來的樣本預測結果會偏差很大,所以交叉驗證集的代價函數在初始階段會很大,而隨著d的增加會出現一個比較好的方次d,使得模型的擬合程度最佳,同時對於新來的樣本泛化能力很強,所以會有一個代價函數最小的點出現(該轉折點即是模型開始由欠擬合轉向過擬合的點),隨後隨著d的增加,由於過擬合,會存在對新的樣本預測結果不良的現象,所以代價函數會逐漸增大。
當我們繪制出上述曲線時,我們就可以判斷出什麼時候是過擬合什麼時候欠擬合,判斷的標准如下:
1. 當訓練誤差與交叉驗證集誤差接近時,並且都很大時,該模型高偏差(欠擬合);
2. 當訓練誤差遠小於驗證集誤差時,並且訓練誤差很小時,該模型高方差(過擬合)。
判斷出該模型是過擬合或者欠擬合之後,然後使用上述提到的過擬合和欠擬合的解決方法,對演算法進行改進。
正則化對偏差和方差的影響
我們前面講述過正則化可以有效的處理過擬合現象,但是我們上述所說的處理過擬合是在合適的λ情況下,那麼λ值的大小對模型的性能是怎樣影響的呢?我們採用上述與方次d對性能的影響相同的方式來分析λ的值對性能的影響。
我們首先選擇一系列的λ值,通常λ的選擇是0~10之間呈現二倍關系的值(如:0,0.01,0.02,0.04,0.08,0.15,0.32,0.64,1.28,5.26,5.12,10)
構建方式如下:
選擇λ的方法如下:
1.使用訓練集訓練處12個不同程度正則化模型;
2.用12個模型分別對交叉驗證集計算出交叉驗證誤差;
3.選擇得出交叉驗證誤差最小的模型;
4.運用步驟3選出的模型對測試集計算得出推廣誤差
我們同樣可以將訓練集和交叉驗證集模型的代價函數與λ的值繪制在一張圖上。對於訓練集、驗證集和測試集的代價函數計算公式為:
需要注意的是,當計算訓練集、交叉驗證集和測試集誤差時,不計算正則項,然後繪制出訓練集和交叉驗證集代價函數與λ值的關系,如下圖所示:
1. 當λ較小時,訓練誤差較小(過擬合)而交叉驗證集誤差較大;
2. 隨著λ的增加(從過擬合到欠擬合的過程),訓練集誤差逐漸增大(欠擬合),而交叉驗證集誤差則是先減小後增大。
學習曲線
學習曲線也是一種可以判斷演算法是否處於過擬合還是欠擬合的情況,學習曲線是將訓練集誤差和交叉驗證集誤差作為訓練集實例數量(m)的函數繪制的圖像。學習曲先不僅可以幫助我們是不是處於過擬合或者欠擬合,它還可以幫助我們判斷是否為了提高演算法的性能需要我們收集多的數據。
假設我們有100行數據,我們從第一行數據開始,逐漸增加數據進行訓練,得到每次訓練數據的代價函數值。當數據很少時,訓練模型能夠非常完美的擬合很少的數據,但是訓練出的模型卻不能泛化其他的數據,所以當數據很少時,訓練集的代價函數很小,但是交叉驗證集的代價函數很大,隨著樣本的增加,訓練集的代價函數逐漸增大,交叉驗證集的代價函數逐漸減小。繪制的曲線如下圖所示:
1. 如何用學習曲線識別欠擬合:
假設我們的模型處於欠擬合的情況下,擬合曲線如下圖所示:
我們可以看出,無論我們怎樣增加樣本數據,誤差都不會有很大改觀。同時在欠擬合的情況下,會出現隨著樣本的增加,訓練集代價函數和交叉驗證集代價函數都很大的情況,在這種情況下,就沒有必要花費時間在收集數據上了,同時這也是一種判斷模型是過擬合還是欠擬合的方法。
2. 如何使用學習曲線識別過擬合:
假設我們有一個非常高次的多項式模型(比如最高次項達到100次),並且正則化非常小時,從下圖可以看出,當交叉驗證集誤差遠大於訓練集誤差時,往訓練集增加更多數據可以提高模型的效果。
對於過擬合現象時,會出現訓練集代價函數一直都很小(雖然是增加的趨勢),但是驗證集的損失函數會很大(雖然是減小的趨勢),同時訓練集代價函數和驗證集代價函數相差會很大,可以使用這種方法來判斷該模型處於過擬合階段。
對於神經網路我們在討論一下過擬合和欠擬合現象:
使用較小的神經網路,類似於參數較少的情況,容易導致高偏差和欠擬合,但是計算代價小;使用較大的神經網路,類似於參數較多的情況,容易導致高方差和過擬合,雖然計算代價比較大,但是可以通過正則化手段來調整而更加適應數據。
對於 神經網路的模型選擇 :我們一般選擇較大的神經網路並採用正則化處理,而不會選擇較小的神經網路。
對於 神經網路隱藏層的層數選擇 ,一般我們從一層開始逐漸增加層數,為了更好的選擇出最佳的層數,可以針對不同隱藏層層數的神經網路進行訓練,然後選擇交叉驗證集代價函數最小的神經網路。
『玖』 神經網路測試結果很差,該怎麼做
你好,計算機等級考試不是所有科目都考的,如計算機二級有office操作,C語言等,報名的時候是要你自己選擇的,考試的時候也只考自己選擇的科目。 ps:只選一門就行。
『拾』 MATLAB神經網路BP,誤差超大,怎樣調試是誤差更接近目標值主要調試哪些參數謝謝。。。
被推薦的答案倒是沒說錯,基本上和沒說一樣…… 就好比問怎麼安排時間,回答一個「合理安排時間」……
誤差大,第一步需要嘗試的是做歸一化處理。有線性歸一化,有對數函數歸一化等等,這個你可以去網上搜索數據歸一化方法,有相關的代碼,應該。
第二部需要做出的改動是隱層節點數量,如果節點數量太多,那麼結果的隨機性就會很大,如果太少,那麼復雜數據的規律計算不出來。多少層節點最合適,這個目前除了一個一個試沒有更好的辦法。但是你會發現每一個相同的結構計算出的結果卻不盡相同,這個時候就需要考慮後續的問題。
第三步嘗試,變換transfer function。麻煩你查查字典,因為我不是用中文學的神經網路。我姑且翻譯成傳輸函數。傳輸函數在matlab中內建了3中 pureline logsig tansig。分別有不同的應用范圍。因為沒看到你的數據,我也不清楚具體應該推薦你用哪一種。不過你可以去網上搜索一下三種傳輸函數的特點。
一般情況下,前三步已經可以解決問題了。
如果不行,那麼你需要嘗試的就是比較高級的內容了。嘗試一下,不行再追問。