BP神经网络的预测模型
1.具體應用實例。根據表2,預測序號15的跳高成績。
表2?國內男子跳高運動員各項素質指標
| 序號 | 跳高成績() | 30行進跑(s) | 立定三級跳遠() | 助跑摸高() | 助跑4—6步跳高() | 負重深蹲杠鈴() | 杠鈴半蹲系數 | 100 (s) | 抓舉 () |
| ?????1 | 2.24 | 3.2 | 9.6 | 3.45 | 2.15 | 140 | 2.8 | 11.0 | 50 |
| 2 | 2.33 | 3.2 | 10.3 | 3.75 | 2.2 | 120 | 3.4 | 10.9 | 70 |
| 3 | 2.24 | 3.0 | 9.0 | 3.5 | 2.2 | 140 | 3.5 | 11.4 | 50 |
| 4 | 2.32 | 3.2 | 10.3 | 3.65 | 2.2 | 150 | 2.8 | 10.8 | 80 |
| 5 | 2.2 | 3.2 | 10.1 | 3.5 | 2 | 80 | 1.5 | 11.3 | 50 |
| 6 | 2.27 | 3.4 | 10.0 | 3.4 | 2.15 | 130 | 3.2 | 11.5 | 60 |
| 7 | 2.2 | 3.2 | 9.6 | 3.55 | 2.1 | 130 | 3.5 | 11.8 | 65 |
| 8 | 2.26 | 3.0 | 9.0 | 3.5 | 2.1 | 100 | 1.8 | 11.3 | 40 |
| 9 | 2.2 | 3.2 | 9.6 | 3.55 | 2.1 | 130 | 3.5 | 11.8 | 65 |
| 10 | 2.24 | 3.2 | 9.2 | 3.5 | 2.1 | 140 | 2.5 | 11.0 | 50 |
| 11 | 2.24 | 3.2 | 9.5 | 3.4 | 2.15 | 115 | 2.8 | 11.9 | 50 |
| 12 | 2.2 | 3.9 | 9.0 | 3.1 | 2.0 | 80 | 2.2 | 13.0 | 50 |
| 13 | 2.2 | 3.1 | 9.5 | 3.6 | 2.1 | 90 | 2.7 | 11.1 | 70 |
| 14 | 2.35 | 3.2 | 9.7 | 3.45 | 2.15 | 130 | 4.6 | 10.85 | 70 |
| 15 | ? | 3.0 | 9.3 | 3.3 | 2.05 | 100 | 2.8 | 11.2 | 50 |
?
4.4?(序號15)跳高成績預測
4.4.1?數據整理
1)我們將前14組國內男子跳高運動員各項素質指標作為輸入,即(30m行進跑,立定三級跳遠,助跑摸高,助跑4-6步跳高,負重深蹲杠鈴,杠鈴半蹲系數,100m,抓舉),將對應的跳高成績作為輸出。并用matlab自帶的premnmx()函數將這些數據歸一化處理。
數據集:(注意:每一列是一組輸入訓練集,行數代表輸入層神經元個數,列數輸入訓練集組數)
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];
4.4.2?模型建立
4.4.2.1?BP網絡模型
????BP網絡(Back-ProPagation?Network)又稱反向傳播神經網絡,?通過樣本數據的訓練,不斷修正網絡權值和閾值使誤差函數沿負梯度方向下降,逼近期望輸出。它是一種應用較為廣泛的神經網絡模型,多用于函數逼近、模型識別分類、數據壓縮和時間序列預測等。
?
BP網絡由輸入層、隱層和輸出層組成,隱層可以有一層或多層,圖2是m×k×n的三層BP網絡模型,網絡選用S型傳遞函數,?通過反傳誤差函數?(?(Ti為期望輸出、Oi為網絡的計算輸出),不斷調節網絡權值和閾值使誤差函數E達到極小。
BP網絡具有高度非線性和較強的泛化能力,但也存在收斂速度慢、迭代步數多、易于陷入局部極小和全局搜索能力差等缺點。可以先用遺傳算法對“BP網絡”進行優化在解析空間找出較好的搜索空間,再用BP網絡在較小的搜索空間內搜索最優解。
4.4.2.2?模型求解?
4.4.2.2.1?網絡結構設計
1)?輸入輸出層的設計
該模型由每組數據的各項素質指標作為輸入,以跳高成績作為輸出,所以輸入層的節點數為8,輸出層的節點數為1。
2)?隱層設計
有關研究表明,?有一個隱層的神經網絡,?只要隱節點足夠多,?就可以以任意精度逼近一個非線性函數。因此,?本文采用含有一個隱層的三層多輸入單輸出的BP網絡建立預測模型。在網絡設計過程中,?隱層神經元數的確定十分重要。隱層神經元個數過多,?會加大網絡計算量并容易產生過度擬合問題;?神經元個數過少,?則會影響網絡性能,?達不到預期效果。網絡中隱層神經元的數目與實際問題的復雜程度、輸入和輸出層的神經元數以及對期望誤差的設定有著直接的聯系。目前,?對于隱層中神經元數目的確定并沒有明確的公式,?只有一些經驗公式,?神經元個數的最終確定還是需要根據經驗和多次實驗來確定。本文在選取隱層神經元個數的問題上參照了以下的經驗公式:
其中,?n為輸入層神經元個數,?m?為輸出層神經元個數,?a?為[?1,?10]之間的常數。?
根據上式可以計算出神經元個數為4-13個之間,在本次實驗中選擇隱層神經元個數為6.
網絡結構示意圖如下:
?
4.4.2.2.2?激勵函數的選取
BP神經網絡通常采用Sigmoid可微函數和線性函數作為網絡的激勵函數。本文選擇S型正切函數tansig作為隱層神經元的激勵函數。而由于網絡的輸出歸一到[?-1,?1]范圍內,?因此預測模型選取S?型對數函數tansig作為輸出層神經元的激勵函數。
4.4.2.2.3?模型的實現
此次預測選用MATLAB中的神經網絡工具箱進行網絡的訓練,?預測模型的具體實現步驟如下:
將訓練樣本數據歸一化后輸入網絡,?設定網絡隱層和輸出層激勵函數分別為tansig和logsig函數,?網絡訓練函數為traingdx,?網絡性能函數為mse,隱層神經元數初設為6。設定網絡參數。網絡迭代次數epochs為5000次,?期望誤差goal為0.00000001,?學習速率lr為0.?01。設定完參數后,?開始訓練網絡。
該網絡通過24次重復學習達到期望誤差后則完成學習。詳細代碼見附錄。
網絡訓練完成后,只需要將各項素質指標輸入網絡即可得到預測數據。
預測結果為:2.20
?
matlab代碼:
| 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 | ?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'); ?%設置訓練次數 ?net.trainParam.epochs = 5000; ?%設置收斂誤差 ?net.trainParam.goal=0.0000001; ?%訓練網絡 ?[net,tr]=train(net,p1,t1); TRAINLM, Epoch 0/5000, MSE 0.533351/1e-007, Gradient 18.9079/1e-010 TRAINLM, Epoch 24/5000, MSE 8.81926e-008/1e-007, Gradient 0.0022922/1e-010 TRAINLM, Performance goal met. ? ?%輸入數據 ?a=[3.0;9.3;3.3;2.05;100;2.8;11.2;50]; ?%將輸入數據歸一化 ?a=premnmx(a); ?%放入到網絡輸出數據 ?b=sim(net,a); ?%將得到的數據反歸一化得到預測數據 ?c=postmnmx(b,mint,maxt); ?c ? c = ? ????2.2003 |
轉載于:https://blog.csdn.net/c_1996/article/details/72793827
總結
以上是生活随笔為你收集整理的BP神经网络的预测模型的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: LLVM完整参考安装
- 下一篇: 读书笔记:秘密