導航:首頁 > 編程語言 > 編程構建BP神經網路

編程構建BP神經網路

發布時間:2022-09-22 17:14:29

❶ 如何用matlab編寫BP神經網路程序

matlab編寫BP神經網路很方便的,這個工作不用像編程序的C什麼的那樣還要編寫演算法。這個演算法早已經在軟體的庫里提供了。你只要用一條語句就出來了。把參數,深度和節點固定的往裡一代數就可以了。還有一點,注意最後結果的收斂性,神經網路發展一直是曲折前進的,為什麼這樣,現在不太給力,因為面臨著一個收斂的問題,實現起來效果不好。這些程序網上有很多,你借一本基本的神經網路的書裡面也有。望採納。

❷ 如何編寫預測人口預測的bp神經網路的程序

這個比較簡單:
就要看你要用前多少年作為預測,如果你要用5年作為一個周期的話,要預測x6,就要把x1,x2,x3,x4,x5前五年的數據作為神經網路的輸入,這樣就得到一組輸入(x1,....x5)和對應的的輸出x6,x6預測正確後,再構造第二組輸入(x2,....x6)和對應的輸出x7,如果訓練數據20個,則應該構造15組輸入和輸出對對神經網路進行訓練.然後可以用後面的幾個數據進行預測.
根據上面的這個模型可以構造BP網路結構為:5*H*1,H為隱層,可以根據啟發式規則確定,如:H=5+1=6等.
具體程序網上很多,下載下來看看就行.

❸ 建立BP神經網路地面沉降預測模型

基坑降水引起地面沉降的BP神經網路預測模型建模過程如下:

(1)樣本選擇

因基坑降水引起的地面沉降量和距離基坑的距離關系密切,因此建模選用「基坑降水引起沉降工程數據(第二類)」(見表4.1)中的相關數據作為樣本進行學習訓練和檢驗。

(2)BP神經網路結構設計

對於BP網路,對於任何在閉區間內的一個連續函數都可以用單隱層的BP網路逼近,因而一個三層BP網路就可以完成任意的n維到m維的映射。根據網路結構簡單化的原則,確定採用三層BP網路結構,即輸入層為沉降點距基坑的距離L(m)、等效壓縮模量E(MPa)、水位降深H(m)和支護剛度n四個參數,輸出層為地面累積沉降量(mm),隱層層數為1層。隱層的神經元數目選擇是一個十分復雜的問題,往往需要根據設計者的經驗和多次實驗來確定,因而不存在一個理想的解析式來表示。隱單元的數目與問題的要求,與輸入、輸出單元的數目有直接的關系。隱單元數目太多會導致學習時間過長,誤差不一定最佳,也會導致容錯性差、不能識別以前沒有看到的樣本,因此一定存在一個最佳的隱單元數。研究通過一次編程比較了隱層神經元個數分別為5、10、15、20、25、30、40時訓練速度及檢驗精度。

圖4.2 BP神經網路程序框圖

(3)網路訓練及檢驗

BP網路採用梯度下降法來降低網路的訓練誤差,考慮到基坑降水地面沉降范圍內沉降量變化幅度較小的特點,訓練時以訓練目標取0.001為控制條件,考慮到網路的結構比較復雜,神經元個數比較多,需要適當增加訓練次數和學習速率,因此初始訓練次數設為10000次,學習速率取0.1,中間層的神經元傳遞函數採用S型正切函數tansig,傳輸函數採用logsig,訓練函數採用trainlm,選用38組數據中的33組作為訓練樣本,5組作為檢驗樣本。

(4)網路實現及檢驗效果

使用MATLAB6.0編程建立基於BP神經網路的基坑降水地面沉降預測模型(程序代碼見附件1),其訓練誤差及檢驗效果如下:

圖4.3 訓練誤差曲線

圖4.4 預測誤差曲線

由圖4.3、圖4.4可見:樣本數據收斂,訓練誤差較小,中間層神經單元個數為10時預測精度較好,誤差小於20%,誤差滿足工程需求。

❹ 如何建立bp神經網路預測 模型

建立BP神經網路預測 模型,可按下列步驟進行:

1、提供原始數據

2、訓練數據預測數據提取及歸一化

3、BP網路訓練

4、BP網路預測

5、結果分析

現用一個實際的例子,來預測2015年和2016年某地區的人口數。

已知2009年——2014年某地區人口數分別為3583、4150、5062、4628、5270、5340萬人

執行BP_main程序,得到

[ 2015, 5128.631704710423946380615234375]

[ 2016, 5100.5797325642779469490051269531]

代碼及圖形如下。

❺ BP神經網路——Python簡單實現三層神經網路(Numpy)

我們將在Python中創建一個NeuralNetwork類,以訓練神經元以給出准確的預測。該課程還將具有其他幫助程序功能。

1. 應用Sigmoid函數
我們將使用 Sigmoid函數 (它繪制一條「 S」形曲線)作為神經網路的激活函數。

2. 訓練模型
這是我們將教神經網路做出准確預測的階段。每個輸入將具有權重(正或負)。
這意味著具有大量正權重或大量負權重的輸入將對結果輸出產生更大的影響。

我們最初是將每個權重分配給一個隨機數。

本文參考翻譯於此網站 —— 原文

❻ 1.如何用MATLAB神經網路工具箱創建BP神經網路模型具體有哪些步驟請高手舉實例詳細解釋下 2.如何把輸

%人臉識別模型,臉部模型自己找吧。
function mytest()

clc;
images=[ ];
M_train=3;%表示人臉
N_train=5;%表示方向
sample=[];
pixel_value=[];
sample_number=0;

for j=1:N_train
for i=1:M_train
str=strcat('Images\',num2str(i),'_',num2str(j),'.bmp'); %讀取圖像,連接字元串形成圖像的文件名。
img= imread(str);
[rows cols]= size(img);%獲得圖像的行和列值。
img_edge=edge(img,'Sobel');

%由於在分割圖片中我們可以看到這個人臉的眼睛部分也就是位於分割後的第二行中,位置變化比較大,而且眼睛邊緣檢測效果很好

sub_rows=floor(rows/6);%最接近的最小整數,分成6行
sub_cols=floor(cols/8);%最接近的最小整數,分成8列
sample_num=M_train*N_train;%前5個是第一幅人臉的5個角度

sample_number=sample_number+1;
for subblock_i=1:8 %因為這還在i,j的循環中,所以不可以用i
block_num=subblock_i;
pixel_value(sample_number,block_num)=0;
for ii=sub_rows:(2*sub_rows)
for jj=(subblock_i-1)*sub_cols+1:subblock_i*sub_cols
pixel_value(sample_number,block_num)=pixel_value(sample_number,block_num)+img_edge(ii,jj);
end
end
end
end
end
%將特徵值轉換為小於1的值
max_pixel_value=max(pixel_value);
max_pixel_value_1=max(max_pixel_value);
for i=1:3
mid_value=10^i;
if(((max_pixel_value_1/mid_value)>1)&&((max_pixel_value_1/mid_value)<10))
multiple_num=1/mid_value;
pixel_value=pixel_value*multiple_num;
break;
end
end

% T 為目標矢量
t=zeros(3,sample_number);
%因為有五類,所以至少用3個數表示,5介於2的2次方和2的3次方之間
for i=1:sample_number
% if((mod(i,5)==1)||(mod(i,5)==4)||(mod(i,5)==0))
if(i<=3)||((i>9)&&(i<=12))||((i>12)&&(i<=15))
t(1,i)=1;
end
%if((mod(i,5)==2)||(mod(i,5)==4))
if((i>3)&&(i<=6))||((i>9)&&(i<=12))
t(2,i)=1;
end
%if((mod(i,5)==3)||(mod(i,5)==0))
if((i>6)&&(i<=9))||((i>12)&&(i<=15))
t(3,i)=1;
end
end

% NEWFF——生成一個新的前向神經網路
% TRAIN——對 BP 神經網路進行訓練
% SIM——對 BP 神經網路進行模擬

% 定義訓練樣本
% P 為輸入矢量
P=pixel_value'
% T 為目標矢量
T=t
size(P)
size(T)
% size(P)
% size(T)

% 創建一個新的前向神經網路
net_1=newff(minmax(P),[10,3],{'tansig','purelin'},'traingdm')

% 當前輸入層權值和閾值
inputWeights=net_1.IW{1,1}
inputbias=net_1.b{1}
% 當前網路層權值和閾值
layerWeights=net_1.LW{2,1}
layerbias=net_1.b{2}

% 設置訓練參數
net_1.trainParam.show = 50;
net_1.trainParam.lr = 0.05;
net_1.trainParam.mc = 0.9;
net_1.trainParam.epochs = 10000;
net_1.trainParam.goal = 1e-3;

% 調用 TRAINGDM 演算法訓練 BP 網路
[net_1,tr]=train(net_1,P,T);

% 對 BP 網路進行模擬
A = sim(net_1,P);
% 計算模擬誤差
E = T - A;
MSE=mse(E)

x=[0.14 0 1 1 0 1 1 1.2]';
sim(net_1,x)

❼ matlab編程問題,建立BP神經網路

%採用動量梯度下降演算法訓練 BP 網路。
close all
clear
echo on
clc
% NEWFF——生成一個新的前向神經網路
% TRAIN——對 BP 神經網路進行訓練
% SIM——對 BP 神經網路進行模擬
pause
% 敲任意鍵開始
clc
% 定義訓練樣本
% P 為輸入矢量 pau
P=[-1,-2,3,1;-1,1,5,-3];
% T 為目標矢量
T=[-1, -1, 1, 1];
pause;
clc
% 創建一個新的前向神經網路
minmax(P)
net=newff(minmax(P),[3,1],{'tansig''purelin'},'traingdm');
% minmax(P)取值范圍是P內的最小值到最大值 [3,1]是3個神經元 1維 tansig purelin traingdm各層神經網路的激勵函數
% tansig purelin隱含層更改權值的函數 當前輸入層權值和閾值
inputWeights=net.IW{1,1};
inputbias=net.b{1};
% 當前網路層權值和閾值
layerWeights=net.LW{2,1};
layerbias=net.b{2};
%表示對各層神經網路的權值與閾值傳遞到相應變數
pause
clc
% 設置訓練參數
net.trainParam.show = 50; %訓練顯示間隔 50次顯示一次
net.trainParam.lr = 0.05; %學習步長0.05學習率
net.trainParam.mc = 0.9; %動量項系數0.9
net.trainParam.epochs = 1000; %訓練次數1000次
net.trainParam.goal = 1e-3; %訓練精度目標為0.001
pause
clc
% 調用 traingdm 演算法訓練 BP 網路
[net,tr]=train(net,P,T);%調用網路指令
pause
clc
% 對 BP 網路進行模擬
A=sim(net,P)
% 計算模擬誤差
E=T-A
MSE=mse(E)
pause
clc
echo off

閱讀全文

與編程構建BP神經網路相關的資料

熱點內容
手機文件管理在哪兒新建文件夾 瀏覽:719
加密ts視頻怎麼合並 瀏覽:773
php如何寫app介面 瀏覽:800
宇宙的琴弦pdf 瀏覽:395
js項目提成計算器程序員 瀏覽:942
pdf光子 瀏覽:832
自拍軟體文件夾名稱大全 瀏覽:325
程序員留學移民 瀏覽:50
梁中間部位箍筋加密區 瀏覽:118
頻譜分析pdf 瀏覽:750
樂2怎麼升級安卓70 瀏覽:172
java中獲取日期 瀏覽:506
單片機74hc245 瀏覽:272
美國歷史上的總統pdf 瀏覽:751
程序員脫單實驗室靠不靠譜 瀏覽:460
php中間四位手機號 瀏覽:871
永旺app怎麼樣了 瀏覽:518
壓縮空氣流量計算軟體 瀏覽:651
智慧聊天app怎麼激活 瀏覽:926
一加換機備份到哪個文件夾 瀏覽:737