美文网首页
BP神经网络流程

BP神经网络流程

作者: 雪地团子 | 来源:发表于2018-10-20 13:27 被阅读0次

1初始化

创建网络规模

创建网络规模列表

net[m+1]=[n_0 n_1 n_2 \dots n_m]
表示m+1层网络,第i层节点数为n_i,输入为n_0,输入为n_m

创建权重列表(初始为随机数)

weight[m]=[W_{n_1,n_0}^1 W_{n_2,n_1}^2 \dots W_{n_m,n_{m-1}}^m]

创建阈值列表(初始为随机数)

threshold[m]=[B_{n_1}^1 B_{n_2}^2 \dots B_{n_m}^m]

创建更新权重列表(初始为0)

delta_weight[m]=[dW_{n_1,n_0}^1 dW_{n_2,n_1}^2 \dots dW_{n_m,n_{m-1}}^m]

创建更新阈值列表(初始为0)

delta_threshold[m]=[dB_{n_1}^1 dB_{n_2}^2 \dots dB_{n_m}^m]

构造Sigmod函数

def sigmoid(x):
    return 1 / (1 + np.exp(-x))

Sigmod计算结果列表

h[m+1]=[H_{n_0}^0 H_{n_1}^1 H_{n_2}^2 \dots H_{n_m}^m]
输入为H_{n_0}^0,输入为H_{n_m}^m

加权和计算结果列表

i[m]=[I_{n_1}^1 I_{n_2}^2 \dots I_{n_m}^m]

2正向计算

for k in range(1,m+1):#循环m次
----#\begin{bmatrix}I_{n_k}^k\\1\end{bmatrix} = \begin{bmatrix}W_{n_k,n_0}^k&B_{n_k}^k\\0&1\\\end{bmatrix} {\cdot} \begin{bmatrix}H_{n_{k-1}}^{k-1}\\1\end{bmatrix}
----#H_{n_k}^k=Sigmod(I_{n_k}^k)

3反向计算

初始化:
E_H[m]=[EH_{n_1}^1EH_{n_2}^2 \dots EH_{n_m}^m]
EH_{n_m}^m=\frac{\partial E_{total}}{\partial H_{n_m}^m} = \begin{bmatrix} {h_1^m-y_1}\\{h_2^m-y_2}\\{\vdots}\\{h_{n_m}^m-y_{n_m}}\\ \end{bmatrix}
H_I[m]=[HI_{n_1,n_1}^1HI_{n_2,n_2}^2 \dots HI_{n_m,n_m}^m]


for k in range(m,0,-1):
----#1.HI_{n_k,n_k}^k=\frac{\partial H_{n_k}^k}{\partial I_{n_k}^k} =\begin{bmatrix} {h_1^k(1-h_1^k)}&0&0&0\\ 0&{h_2^k(1-h_2^k)}&0&0\\ {\vdots}&{\vdots}&{\ddots}&{\vdots}\\ 0&0&0&{h_{n_k}^k(1-h_{n_k}^k)}\\ \end{bmatrix}
----#2.\begin{bmatrix} dW_{n_k,n_{k-1}}^kdB_{n_k}^k\end{bmatrix} = \begin{bmatrix} \Delta W_{n_k,n_{k-1}}^k&\Delta B_{n_k}^k \end{bmatrix} = HI_{n_k,n_k}^kEH_{n_k}^k \begin{bmatrix} [H_{n_{k-1}}^{k-1}]^T&1\\ \end{bmatrix}
----#3.{IH_{n_k}^k}=\frac{\partial I_{n_k}^k}{\partial H_{n_{k-1}}^{k-1}}=[W_{n_k,n_{k-1}}^k]^T
----#4.{EH_{n_{k-1}}^{k-1}} = \frac{\partial I_{n_k}^k}{\partial H_{n_{k-1}}^{k-1}} \frac{\partial H_{n_k}^k}{\partial I_{n_k}^k} \frac{\partial E_{total}}{\partial H_{n_k}^k} ={IH_{n_k}^k}HI_{n_k,n_k}^kEH_{n_k}^k


weight[m]=weight[m]+delta_weight[m]
threshold[m]=threshold[m]+delta_threshold[m]

python实现的BP神经网络
https://github.com/dai-zb/BPNN_python.git

相关文章

网友评论

      本文标题:BP神经网络流程

      本文链接:https://www.haomeiwen.com/subject/dhpyzftx.html