1. 程式人生 > >”單層多輸入單輸出“BP神經網路(公式+c 程式碼)

”單層多輸入單輸出“BP神經網路(公式+c 程式碼)

單層多輸入單輸出BP神經網路

上圖為本文所考慮的簡單的 單層多輸入單輸出BP神經網路。

輸入變數個數:n
隱含層神經元個數:k
輸出變數個數:1

輸入變數:x
輸出變數:y
期望輸出:t
樣本數量:m

隱含層-輸入層連線權值:ωjp
隱含層神經元偏置值: bj

輸出層-隱含層連線權值:ωoj
輸出層神經元偏置值: bo

隱含層 激勵函式採用sigmod函式:

f(x)=11+ex,f(x)=f(x)(1f(x))

公式推導部分

對於第i個樣本輸入,
隱含層第j個神經元輸入為:

netj=p=1nωjpxp+bj
隱含層第j個神經元輸出為:f(
netj)

BP模型輸出為:

y(i)=j=1kωojf(netj)+bo

對於第i個樣本,誤差定義為:E(i)=12[t(i)y(i)]2
根據誤差反向傳播演算法有:

輸出-隱含層權值 修正 梯度:

E(i)ωoj=ωoj12[(t(i)y(i))]2=[t(i)y(i)]y(i)ωoj=[t(i)y(i)]f(netj)

輸出層偏置值 修正 梯度:E(i)bo=[t(i)y(i)]

隱含-輸入層權值 修正 梯度:

E(i)ωjp=[t(i)y(i)]y(i)ωjp=[t(i)y(i)]ωjpj=1kωo
j
f(netj)+bo
=[t(i)y(i)]ωjpj=1kωojfp=1nωjpxp