關閉→
當前位置:知科普>IT科技>中bp神經網絡算法應該怎麼實現 - matlab

中bp神經網絡算法應該怎麼實現 - matlab

知科普 人氣:2.77W

BP神經網絡是最基本、最常用的神經網絡,Matlab有專用函數來建立、訓練它,主要就是newff()、train()、sim()這三個函數

BP神經網絡算法提供了一種普遍並且實用的方法從樣例中學習值為實數、離散值或者向量的函數,這裏就簡單介紹一下如何用MATLAB編程實現該算法。

方法

這裏以一個普遍實用的簡單案例為例子進行編程的説明。

額。。。 一種啟發式的改進就是,為學習速率選用自適應值,它依賴於連續迭代步驟中的誤差函數值。 自適應調整學習速率的梯度下降算法,在訓練的過程中,力圖使算法穩定,同時又使學習的步長儘量地大,學習速率則是根據局部誤差曲面作出相應的調整。

假設一組x1,x2,x3的值對應一個y值,有2000組這樣的數字,我們選擇其中1900組x1,x2,x3和y作為樣本,其餘100組x1,x2,x3作為測試數據來驗證。

1.初始權值不一樣,如果一樣,每次訓練結果是相同的 2.是 3.在train之前修改權值,IW,LW,b,使之相同 4.取多次實驗的均值 一點淺見,僅供參考

matlab 中bp神經網絡算法應該怎麼實現

首先需要讀取這些數據,並把數據賦值給input 和 output 。

clear; %輸入數據矩陣 p1=zeros(1,1000); p2=zeros(1,1000); for i=1:1000 p1(i)=rand; p2(i)=rand; end p=[p1;p2]; %目標(輸出)數據矩陣 t = cos(pi*p1)+sin(pi*p2); %對訓練集中的輸入數據矩陣和目標數據矩陣進行歸一化處理 [pn, inputStr]

我是把數據存儲在excel表中,所以用xlsread函數來讀取數據。讀取出來的數據是2000*4的矩陣。

matlab中BP神經網絡的訓練算法(traingd)與學習算法(learngd)的具體關係? 兩者有什麼區別?如何共同實現神經網絡的訓練的? 兩者有什麼區別?如何共同實現神經網絡的

matlab 中bp神經網絡算法應該怎麼實現 第2張

將樣本數據進行歸一化處理。

lr=0.05; %lr為學習速率; err_goal=0.1; %err_goal為期望誤差最小值 max_epoch=15000; %max_epoch為訓練的最大次數; a=0.9; %a為慣性系數 Oi=0; Ok=0; %置隱含層和輸出層各神經元輸出初值為0 這些初始參數是誰提供給你? 調整一下這些參數看看.

matlab 中bp神經網絡算法應該怎麼實現 第3張

初始化網絡結果,設置參數,並用數據對網絡進行訓練。

第0節、引例 本文以Fisher的Iris數據集作為神經網絡程序的測試數據集。Iris數據集可以在http://en.wikipedia.org/wiki/Iris_flower_data_set 找到。這裏簡要介紹一下Iris數據集: 有一批Iris花,已知這批Iris花可分為3個品種,現需要對其進行分

newff函數是給出了最簡單的設置,即輸入樣本數據,輸出樣本數據和隱含層節點數;epochs是設置迭代次數;lr是設置學習率;goal是設置目標值。

如果你的式子寫對了,那出來的結果肯定和sim函數輸出的結果是一樣的。 % 計算S1與S2層的輸出A1=tansig(W1*p,B1);A2=purelin(W2*A1,B2);隱層為tansig函數,輸出層簡單的線性相加,再附上閾值,不可能會錯的。sim函數的原理也就是如此。

matlab 中bp神經網絡算法應該怎麼實現 第4張

設置好參數,需要將預測數據進行歸一化處理,然後將預測結果輸出,並將輸出的結果進行反歸一化處理,神經網絡就完成了。BPoutput為預測結果。

你提供的代碼是一個基本的BP神經網絡訓練過程。一般都是用GA訓練,之後再用改進動量法繼續訓練,直至最後達到目標。 遺

matlab 中bp神經網絡算法應該怎麼實現 第5張

程序運行時顯示的網絡結構和運行過程如下圖。

使用神經網絡工具箱可以非常簡便地實現網絡建立和訓練,實例代碼如下: %% BP算法function Out=bpnet(p,t,p_test)%p,t為

matlab 中bp神經網絡算法應該怎麼實現 第6張

如果以後需要用到已訓練好的網絡可以把訓練好的網絡儲存起來,下次可以直接進行預測,具體方法見下圖。

如果你的式子寫對了,那出來的結果肯定和sim函數輸出的結果是一樣的。 % 計算S1與S2層的輸出A1=tansig(W1*p,B1);A2=purelin(W2*A1,B2);隱層為tansig函數,輸出層簡單的線性相加,再附上閾值,不可能會錯的。sim函數的原理也就是如此。

matlab 中bp神經網絡算法應該怎麼實現 第7張

擴展閲讀,以下內容您可能還感興趣。

matlab遺傳算法改進bp神經網絡

你提供的代碼是一個基本的BP神經網絡訓練過程。一般都是用GA訓練,之後再用改進動量法繼續訓練,直至最後百達到目標。

遺傳算法(Genetic Algorithm)是模擬達爾文生物進化論的自然選擇和遺傳學機理的生物進化過程的計算模型,是一種通過模擬自然進化過程搜索最優解的方法。遺傳算法是從代表問題可能潛在的解集的一個種羣(度population)開始的,而一個種羣則由經過基因(gene)編碼的一定數目的個體(individual)組成。每個個體實際上是染色體(chromosome)帶有特徵的實體。染色體作為遺傳物質的主要載體,即多個基因的集合,其內部表現(即基因型)是某種基因組合,它決定了個體的形狀的外部表現,如黑頭髮的特徵是由染色體中控制這一特徵的某種基因組合決定的。

如何用MATLAB的神經網絡工具箱實現三層BP網絡

使用神經網絡工具箱可以非常簡便地實現網絡建立和訓練復,實例代碼如下:%%制 BP算法

function Out=bpnet(p,t,p_test)

%p,t為樣本需要提前組織好

global S1

net=newff(minmax(p),[S1,8],{'tansig','purelin'},'trainlm');    %trainlm訓練函數最有效

%net=newff(P,T,31,{'tansig','purelin'},'trainlm');%新版用法

net.trainParam.epochs=1000;

net.trainParam.goal=0.00001;

net.trainParam.lr=0.01;

net.trainParam.showWindow = false;      %阻止訓知練窗口的彈出

net.trainParam.showCommandLine = false; %阻止訓練窗口的彈出

net=train(net,p,t);

Out=sim(net,p_test);

end

上面的代碼不完道整,完整的帶訓練樣本數據的程序見附件。

matlab 實現BP神經網絡 怎樣根據隱含層和輸入層的權值閾值得到輸入到輸出的計算公式

如果你百的式子寫對了,那出來的結果肯定和sim函數輸度出的結果是一樣的。

% 計算S1與S2層的輸出

A1=tansig(W1*p,B1);

A2=purelin(W2*A1,B2);

隱層為tansig函數,輸出層簡單的知線性相加,再附上閾值,不可能會錯的。sim函數的原道理也就是如此。更多追問追答追問這裏w1是權值,B1是閾值?w2是權值,B2是閾值?這樣的話是説A2與sim(net,P)是相等的?可是算出來還是不一樣的。追答注意閾值是負號,或者你可以認為b為正數,而x0=-1!追問這裏x0是什麼? 或者我把文件發給你看看或者QQ討教一下。按照輸入層到隱含層的權值乘以輸入值加閾值放在tansig函數中,然後隱含層到輸出層的權值乘以隱含層的輸出加閾值,應該就是輸出層的輸出,可是結果總是不對,但是sim(net,P)的結果是對的,按照你的所寫,A2就應該等於輸出層輸出吧,結果還是sim(net,P)不一樣。

能得到你的幫助不勝感激。追答就是閾值不是加,而是減。再試試。

求基於BP神經網絡實現汽車牌照識別的matlab代碼或者是汽車牌照識別系統(用matlab寫的,有用到BP神經網絡

這是基於模板匹配法的車牌識別

基於BP神經網絡的車牌識別程序網上有

追問有是有,但找不到可以成功運行的。您有資源嗎?可以發一個給我嗎?我是matlab小白,不會修改他的錯誤。幫幫我吧(*/∇\*)!好可惜我選的不是模版匹配不然你這個程序就很棒!或者是您可以把這個模板匹配的源碼資源共享給我嗎?我可以留着做個對比資料

您好,請問您有基於BP神經網絡算法的車牌識別的程序代碼嗎?用matlab可以運行的那種。

1、對樣本集進行歸一化

2、創建BP神經網絡

3、設置網絡的訓練參數

4、把樣本輸入BP網絡進行訓練

5、把代識別的樣本輸入樣本進行訓練得到相應的結果,並輸出。

這就是構建BP神經網絡的大致步驟更多追問追答追問您好,有沒有這種程序源碼資源可以共享給我。最近就要交了,找了很久matlab基於BP神經網絡的車牌識別的源碼,但運行的時候總是報錯。您好,有沒有這種程序源碼資源可以共享給我。最近就要交了,找了很久matlab基於BP神經網絡的車牌識別的源碼,但運行的時候總是報錯。追答這個又不難,你是大學生,多看一下書,你也會寫。追問但是我老師説在一週內就要交程序成功運行的視屏錄製給她,時間太趕了

TAG標籤:#bp #神經網絡 #matlab #算法 #