導航:首頁 > 編程大全 > bp神經網路公式

bp神經網路公式

發布時間:2024-10-21 22:58:18

Ⅰ 用BP神經網路建立數學模型,MATLAB實現,怎樣得到輸入到輸出的計算公式

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] = mapminmax(p);
[tn, outputStr] = mapminmax(t);
%建立BP神經網路
net = newff(pn, tn, [200,10]);
%每10輪回顯示一次結果
net.trainParam.show = 10;
%最大訓練次數
net.trainParam.epochs = 5000;
%網路的學習速率
net.trainParam.lr = 0.05;
%訓練網路所要達到的目標誤差
net.trainParam.goal = 10^(-8);
%網路誤差如果連續6次迭代都沒變化,則matlab會默認終止訓練。為了讓程序繼續運行,用以下命令取消這條設置
net.divideFcn = '';
%開始訓練網路
net = train(net, pn, tn);
%獲取網路權值、閾值
netiw = net.iw;
netlw = net.lw;
netb = net.b;
w1 = net.iw{1,1}; %輸入層到隱層1的權值
b1 = net.b{1} ; %輸入層到隱層1的閾值
w2 = net.lw{2,1}; %隱層1到隱層2的權值
b2 = net.b{2} ; %隱層1到隱層2的閾值
w3 = net.lw{3,2}; %隱層2到輸出層的權值
b3 = net.b{3} ;
in = mapminmax('apply',[0.1;0.5],inputStr);
%用公式計算輸出
y=w3*tansig(w2*tansig(w1*in+b1)+b2)+b3;
y1=mapminmax('reverse',y,outputStr);
%用網路驗證計算結果
out = sim(net,in);
out1=mapminmax('reverse',out,outputStr);

Ⅱ 反向傳播(Back propagation)演算法筆記

上學期學習的方向傳播演算法在此回顧。以下是一些讀書筆記,因為好記性不如爛筆頭!

Wiki上對反向傳播(Back propagation 或者BP)的描述是「誤差反向傳播」的簡稱,它是訓練人工神經網路的一種常見方法,通常與梯度下降結合使用。該方法計算網路中所有權重的損失函數梯度,並將這些梯度反饋給最優化方法,以更新權值並最小化損失函數。

反向傳播通常被認為是一種監督學習方法,因為它需要根據輸入值期望得到的已知輸出,來計算損失函數的梯度,進而更新權值。但也可以應用於無監督網路。它使用鏈式法則對網路的每層迭代計算梯度,因此,每個節點的激勵函數必須是可微的。

BP演算法主要由激勵傳播和權重更新循環迭代構成,直到網路的輸出滿足一定條件才停止。

激勵傳播和權重更新是BP演算法的兩個關鍵步驟。由於梯度指向誤差擴大的方向,而我們想要的是權重減小的方向,因此在更新權重時需要對其取反。

在推導過程中,我們首先分析神經元的結構,每個神經元由兩個部分組成。每個神經元的輸出由公式[公式] 表示,其中[公式] 表示神經元i和j之間的權值,[公式] 是上一層神經元的輸出。

在BP演算法中,誤差函數為[公式],其中t是目標輸出,y是神經元的實際輸出。其倒數為[公式]。

計算誤差對於權重的偏導數是BP演算法中最關鍵的部分。採用梯度下降的方式更新權重,關鍵是要得到誤差對於權重的偏導數[公式]。根據鏈式法則,偏導數可以表示為[公式],其中[公式]和[公式]是學習率。

以下是一個三層神經網路的例子,具有兩個輸入和一個輸出。從輸入信號開始,計算每個神經元的輸出信號[公式],總共有n個神經元。最終到輸出層。

在反向傳播階段,計算[公式]。然後依次計算[公式],... [公式]。最後更新權值[公式]。

一個回合結束後,重復該過程,直到滿足退出條件為止。

Ⅲ 對如下BP神經網路,寫出它的計算公式(含學習公式),並對其初始權值以及樣本x1=1,x

Ⅳ 【神經網路原理】如何利用梯度下降法更新權重與偏置

損失函數的值減小,意味著神經網路的預測值(實際輸出)和標簽值(預期的輸出)越接近。
損失函數通常為 多元函數 ,其自變數包括網路中包含的所有的權重w、以及所有的偏置b,有的地方也將其稱作代價函數(Cost function)或價值函數(Value function),這里只介紹均方誤差損失函數(MSE):

多元函數的梯度類似於一元函數導數 :對多元函數各變數依次求一階偏導,然後將各偏導值組合成一個一維列向量,就得到了該多元函數梯度。損失函數通常為 多元函數 ,其梯度如下:

對於神經網路結構 & 符號約定有疑惑的可以參考我的這篇文章—— 【神經網路原理】神經網路結構 & 符號約定

梯度的負方向 :因為梯度是一個向量,具有方向性。這里的 下降 是指損失函數值的減小。
那麼為什麼沿梯度的負方向損失函數值減小最快呢?這里主要利用 多元函數的一階泰勒展開 (一階形式還是比較簡單的)和 向量點積公式 來證明:

這里只給出了第 l 層的網路參數——權重(矩陣)與偏置(向量)的梯度下降更新公式,其他層網路參數的更新公式同理可得,對符號有疑惑的請參考: 【神經網路原理】神經網路結構 & 符號約定 。

有了各層網路參數(向量/矩陣)的更新公式,其中損失函數對各參數的梯度又該如何求解呢?事實上由於神經網路中參數(權重W和偏置b)通常較多,要想直接求解損失函數對這些參數的梯度,難度極大,所以在實際訓練網路時,我們通常採用 反向誤差傳播,即BP演算法 ,巧妙地利用預測值與標簽值的殘差,從輸出層到輸入層反向地求解出損失函數對各層網路參數的梯度。

閱讀全文

與bp神經網路公式相關的資料

熱點內容
ps入門必備文件 瀏覽:348
以前的相親網站怎麼沒有了 瀏覽:15
蘋果6耳機聽歌有滋滋聲 瀏覽:768
怎麼徹底刪除linux文件 瀏覽:379
編程中字體的顏色是什麼意思 瀏覽:534
網站關鍵詞多少個字元 瀏覽:917
匯川am系列用什麼編程 瀏覽:41
筆記本win10我的電腦在哪裡打開攝像頭 瀏覽:827
醫院單位基本工資去哪個app查詢 瀏覽:18
css源碼應該用什麼文件 瀏覽:915
編程ts是什麼意思呢 瀏覽:509
c盤cad佔用空間的文件 瀏覽:89
不銹鋼大小頭模具如何編程 瀏覽:972
什麼格式的配置文件比較主流 瀏覽:984
增加目錄word 瀏覽:5
提取不相鄰兩列數據如何做圖表 瀏覽:45
r9s支持的網路制式 瀏覽:633
什麼是提交事務的編程 瀏覽:237
win10打字卡住 瀏覽:774
linux普通用戶關機 瀏覽:114

友情鏈接