bp神经网络应用实例_预测方法合集——BP神经网络
? ? ? ?首先來說說神經網絡,生物的大腦神經元,細胞,觸點等組成了網絡,用于產生生物的意識,幫助生物進行思考和行動,可以干很多很多事情的,雖然說現在科技迅猛進步,但是目前來講人腦依舊是最發達的,有的這些科學家啊就想讓機器跟人腦一樣能夠干很多事情,所以就有了現在的人工智能一系列的玩意兒,而這些人工智能或者說機器學習中里用到的模型就是神經網絡模型,神經網絡很廣泛,涉及到的知識也非常之多,學習過程是灰常灰常的痛苦。依據我的理解我用一句話來解釋我對神經網絡的理解就是:這有一個機器,要讓它會某項技能,你就得給它灌輸點東西,比如說基礎知識或者說例子之類的,然后它就開始學習,學著學著就學會了,機器也不會偷懶對吧,然后你的目的就達成了。
? ? ? ?我們今天分享的是神經網絡的一種——BP神經網絡,是一種按照誤差逆向傳播算法訓練的多層前饋神經網絡。什么意思?? 不重要!!!會用就行
關于這個原理和步驟我在這里也就不多說了,因為真的很抽象,建立模型最終就是要建立這樣:
一個 輸入層—隱含層——輸出層? ?的結構。接下來我們用一個實例來說明一下。
這里有14個運動員的運動項目數據,然后預測第15個人的跳高成績。
第一步:對前14個人的數據進行歸一化處理
第二步:模型建立
?BP網絡由輸入層、隱層和輸出層組成,隱層可以有一層或多層,網絡選用S型傳遞函數 ??
通過反傳誤差函數,
不斷調節網絡權值和閾值使誤差函數E達到極小。
第三步:網絡結構設計
1,輸入層,對于這個問題總共有除跳高外8個項目所以設置8個輸入層
2,隱含層,有關研究表明,有一個隱層的神經網絡,只要隱節點足夠多,?就可以以任意精度逼近一個非線性函數。一般來說隱含層個數L?
其中,m是輸入層的個數,n是輸出層的個數,a是介于1到10之間的常數。
3,輸出層,我們用跳高成績作為輸出層,一般輸出層都是一個。
第四步:激勵函數的選取
BP神經網絡通常采用Sigmoid可微函數和線性函數作為網絡的激勵函數。本文選擇S型正切函數tansig作為隱層神經元的激勵函數。而由于網絡的輸出歸一到[?-1,?1]范圍內,?因此預測模型選取S?型對數函數tansig作為輸出層神經元的激勵函數。
第五步:模型實現
將訓練樣本數據歸一化后輸入網絡,?設定網絡隱層和輸出層激勵函數分別為tansig和logsig函數,?網絡訓練函數為traingdx,?網絡性能函數為mse,隱層神經元數初設為6。設定網絡參數。網絡迭代次數epochs為5000次,?期望誤差goal為0.00000001,?學習速率為0.?01。設定完參數后,?開始訓練網絡。
第六步:反歸一化處理
這一步與第一步對應,我們最后得到的值是在[-1,1]之間的一個值,所以,為了還原以前的值,需要用postmnmx()函數進行一下處理。最后就能得到結果。
話不多說,上代碼:
P=[3.2 3.2 3 3.2 3.2 3.4 3.2 3 3.2 3.2 3.2 3.9 3.1 3.2;9.6 10.3 9 10.3 10.1 10 9.6 9 9.6 9.2 9.5 9 9.5 9.7;3.45 3.75 3.5 3.65 3.5 3.4 3.55 3.5 3.55 3.5 3.4 3.1 3.6 3.45;2.15 2.2 2.2 2.2 2 2.15 2.14 2.1 2.1 2.1 2.15 2 2.1 2.15;140 120 140 150 80 130 130 100 130 140 115 80 90 130;2.8 3.4 3.5 2.8 1.5 3.2 3.5 1.8 3.5 2.5 2.8 2.2 2.7 4.6;11 10.9 11.4 10.8 11.3 11.5 11.8 11.3 11.8 11 11.9 13 11.1 10.85;50 70 50 80 50 60 65 40 65 50 50 50 70 70];T=[2.24 2.33 2.24 2.32 2.2 2.27 2.2 2.26 2.2 2.24 2.24 2.2 2.2 2.35];[p1,minp,maxp,t1,mint,maxt]=premnmx(P,T);%歸一化處理net=newff(minmax(P),[8,6,1],{'tansig','tansig','purelin'},'trainlm');%創建網絡,表示有輸入層8層,隱層6層,輸出層1層net.trainParam.epochs = 10000;%設置訓練次數net.trainParam.goal=0.0000000000000001;%設置收斂誤差[net,tr]=train(net,p1,t1);%訓練網絡a=[3.0;9.3;3.3;2.05;100;2.8;11.2;50];%輸入數據a=premnmx(a);%歸一化處理b=sim(net,a);%放入網絡中,輸出1數據c=postmnmx(b,mint,maxt);%反歸一化處理disp('模擬值為:')c沒有具體的跟大家分享原理,大家可以自己去找相關資料進行詳細了解。
本期內容就到此結束啦,感謝您的閱讀,快快關注公眾號“樹仁閱讀”
創作屬實不易,點個關注,點亮在看,幫忙轉發一下增長人氣也是非常感謝!樹仁巧說與您下期再見!
總結
以上是生活随笔為你收集整理的bp神经网络应用实例_预测方法合集——BP神经网络的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 求两条轨迹间的hausdorff距离_圆
- 下一篇: matplotlib 横坐标只显示整数_