1. BP神經網路的核心問題是什麼其優缺點有哪些
人工神經網路,是一種旨在模仿人腦結構及其功能的信息處理系統,就是使用人工神經網路方法實現模式識別.可處理一些環境信息十分復雜,背景知識不清楚,推理規則不明確的問題,神經網路方法允許樣品有較大的缺損和畸變.神經網路的類型很多,建立神經網路模型時,根據研究對象的特點,可以考慮不同的神經網路模型. 前饋型BP網路,即誤差逆傳播神經網路是最常用,最流行的神經網路.BP網路的輸入和輸出關系可以看成是一種映射關系,即每一組輸入對應一組輸出.BP演算法是最著名的多層前向網路訓練演算法,盡管存在收斂速度慢,局部極值等缺點,但可通過各種改進措施來提高它的收斂速度,克服局部極值現象,而且具有簡單,易行,計算量小,並行性強等特點,目前仍是多層前向網路的首選演算法.
多層前向BP網路的優點:
網路實質上實現了一個從輸入到輸出的映射功能,而數學理論已證明它具有實現任何復雜非線性映射的功能。這使得它特別適合於求解內部機制復雜的問題;
網路能通過學習帶正確答案的實例集自動提取「合理的」求解規則,即具有自學習能力;
網路具有一定的推廣、概括能力。
多層前向BP網路的問題:
從數學角度看,BP演算法為一種局部搜索的優化方法,但它要解決的問題為求解復雜非線性函數的全局極值,因此,演算法很有可能陷入局部極值,使訓練失敗;
網路的逼近、推廣能力同學習樣本的典型性密切相關,而從問題中選取典型樣本實例組成訓練集是一個很困難的問題。
難以解決應用問題的實例規模和網路規模間的矛盾。這涉及到網路容量的可能性與可行性的關系問題,即學習復雜性問題;
網路結構的選擇尚無一種統一而完整的理論指導,一般只能由經驗選定。為此,有人稱神經網路的結構選擇為一種藝術。而網路的結構直接影響網路的逼近能力及推廣性質。因此,應用中如何選擇合適的網路結構是一個重要的問題;
新加入的樣本要影響已學習成功的網路,而且刻畫每個輸入樣本的特徵的數目也必須相同;
網路的預測能力(也稱泛化能力、推廣能力)與訓練能力(也稱逼近能力、學習能力)的矛盾。一般情況下,訓練能力差時,預測能力也差,並且一定程度上,隨訓練能力地提高,預測能力也提高。但這種趨勢有一個極限,當達到此極限時,隨訓練能力的提高,預測能力反而下降,即出現所謂「過擬合」現象。此時,網路學習了過多的樣本細節,而不能反映樣本內含的規律
由於BP演算法本質上為梯度下降法,而它所要優化的目標函數又非常復雜,因此,必然會出現「鋸齒形現象」,這使得BP演算法低效;
存在麻痹現象,由於優化的目標函數很復雜,它必然會在神經元輸出接近0或1的情況下,出現一些平坦區,在這些區域內,權值誤差改變很小,使訓練過程幾乎停頓;
為了使網路執行BP演算法,不能用傳統的一維搜索法求每次迭代的步長,而必須把步長的更新規則預先賦予網路,這種方法將引起演算法低效。
2. bp神經網路函數中哪個預測性能好
traingdm是帶動量的梯度下降法,trainlm是指L-M優化演算法,trainscg是指量化共軛梯度法,除此之外還有traingdx、traingda等,都是權值的訓練演算法。看MATLAB結合神經網路的基礎書上都有介紹。tansig和logsig 統稱Sigmoid函數,logsig是單極性S函數,tansig是雙極性S函數,也叫雙曲正切函數,purelin是線性函數,是節點的傳輸函數。
學習函數和訓練函數的區別:學習函數的輸出是權值和閾值的增量,訓練函數的輸出是訓練好的網路和訓練記錄,在訓練過程中訓練函數不斷調用學習函數修正權值和閾值,通過檢測設定的訓練步數或性能函數計算出的誤差小於設定誤差,來結束訓練。
下面是幾個模擬實驗,用了不同的訓練函數:
1.創建BP網路的學習函數,訓練函數和性能函數都採用default值,分別為learngdm,trainlm和mse時的逼近結果:
由此可見,進過200次訓練後,雖然網路的性能還沒有為0,但是輸出均方誤差已經很小了,MSE=6.72804e-0.06,顯示的結果也證明P和T之間非線性映射關系的擬合是非常精確的;
2.建立一個學習函數為learnd,訓練函數為traingd,和性能函數為msereg的BP網路,來完成擬合任務:
可見,經過200次訓練後,網路的輸出誤差比較大,而且網路誤差的收斂速度非常慢。這是由於訓練函數traingd為單純的梯度下降訓練函數,訓練速度比較慢,而且容易陷入局部最小的情況。結果顯示網路精度確實比較差。
3.將訓練函數修改為traingdx,該i函數也是梯度下降法訓練函數,但是在訓練過程中,他的學習速率是可變的
在200次訓練後,以msereg函數評價的網路性能為1.04725,已經不是很大,結果顯示P和T之間非線性關系的擬合情況不錯,網路的性能不錯。
3. 識別數字,bp神經網路演算法,卷積神經網路演算法,svm演算法,adaboost演算法哪種好
看數字圖片而定。如果圖片較小並且質量還不錯,那麼通過2層的神經網路就能勝任。
對於MNIst數據集(28*28的手寫數字),2層神經網路准確率可達99%,svm也有98%以上。
以上實現非常簡單,matlab已經有現成工具箱。
卷積神經網路通常用於更加復雜的場合,閉合是被圖像內容等。在MNIST數據集上cnn可達99.7%准確率,但是實現起來較為復雜,需要通過開源框架caffe,keras等進行編程。
如果對准確率要求沒有達到小數點後兩位的程度,用簡單的svm,神經網路,softmax等調調參數就行了。
4. 神經網路——BP演算法
對於初學者來說,了解了一個演算法的重要意義,往往會引起他對演算法本身的重視。BP(Back Propagation,後向傳播)演算法,具有非凡的歷史意義和重大的現實意義。
1969年,作為人工神經網路創始人的明斯基(Marrin M insky)和佩珀特(Seymour Papert)合作出版了《感知器》一書,論證了簡單的線性感知器功能有限,不能解決如「異或」(XOR )這樣的基本問題,而且對多層網路也持悲觀態度。這些論點給神經網路研究以沉重的打擊,很多科學家紛紛離開這一領域,神經網路的研究走向長達10年的低潮時期。[1]
1974年哈佛大學的Paul Werbos發明BP演算法時,正值神經外網路低潮期,並未受到應有的重視。[2]
1983年,加州理工學院的物理學家John Hopfield利用神經網路,在旅行商這個NP完全問題的求解上獲得當時最好成績,引起了轟動[2]。然而,Hopfield的研究成果仍未能指出明斯基等人論點的錯誤所在,要推動神經網路研究的全面開展必須直接解除對感知器——多層網路演算法的疑慮。[1]
真正打破明斯基冰封魔咒的是,David Rumelhart等學者出版的《平行分布處理:認知的微觀結構探索》一書。書中完整地提出了BP演算法,系統地解決了多層網路中隱單元連接權的學習問題,並在數學上給出了完整的推導。這是神經網路發展史上的里程碑,BP演算法迅速走紅,掀起了神經網路的第二次高潮。[1,2]
因此,BP演算法的歷史意義:明確地否定了明斯基等人的錯誤觀點,對神經網路第二次高潮具有決定性意義。
這一點是說BP演算法在神經網路領域中的地位和意義。
BP演算法是迄今最成功的神經網路學習演算法,現實任務中使用神經網路時,大多是在使用BP演算法進行訓練[2],包括最近炙手可熱的深度學習概念下的卷積神經網路(CNNs)。
BP神經網路是這樣一種神經網路模型,它是由一個輸入層、一個輸出層和一個或多個隱層構成,它的激活函數採用sigmoid函數,採用BP演算法訓練的多層前饋神經網路。
BP演算法全稱叫作誤差反向傳播(error Back Propagation,或者也叫作誤差逆傳播)演算法。其演算法基本思想為:在2.1所述的前饋網路中,輸入信號經輸入層輸入,通過隱層計算由輸出層輸出,輸出值與標記值比較,若有誤差,將誤差反向由輸出層向輸入層傳播,在這個過程中,利用梯度下降演算法對神經元權值進行調整。
BP演算法中核心的數學工具就是微積分的 鏈式求導法則 。
BP演算法的缺點,首當其沖就是局部極小值問題。
BP演算法本質上是梯度下降,而它所要優化的目標函數又非常復雜,這使得BP演算法效率低下。
[1]、《BP演算法的哲學思考》,成素梅、郝中華著
[2]、《機器學習》,周志華著
[3]、 Deep Learning論文筆記之(四)CNN卷積神經網路推導和實現
2016-05-13 第一次發布
2016-06-04 較大幅度修改,完善推導過程,修改文章名
2016-07-23 修改了公式推導中的一個錯誤,修改了一個表述錯誤
5. 如果是以預測為准,是BP神經網路好,還是徑向量什麼網路好
1、這是一個發展的問題,在神經網路的發展過程中,在前期,徑向量的效果好;
2、自從出現了卷積神經網路、循環神經網路出現後,神經網路的效果好。
6. 求助大神,使用BP神經網路預測數據,為什麼誤差很大
預測數據的話BP不是特別好用,最好用Elman反饋神經網路或者RNN循環神經網路,這些有記憶功能的網路比較好用。bp主要和你選擇的隱含層數,和誤差范圍,學習率有關。你可以調節相關參數來改變神經網路,獲得更精確的結果。