BP神经网络训练实例
背景介绍
BP(Back Propagation)神经网络是一种按误差逆传播算法训练的多层前馈神经网络,在BP神经网络中,输入信号从输入层经各隐层向输出层传递,如果在输出层得不到期望的输出,则转入反向传播过程,通过调整各神经元之间的权值和偏置量,使网络误差的平方和最小,BP神经网络因其简单、易实现、计算量小、并行性强等优点,被广泛应用于函数逼近、模式识别、分类和数据压缩等领域。
实例展示
实例设计
输入层:两个节点,分别表示 \(i1\) 和 \(i2\),对应输入值分别为 0.05 和 0.10。
隐藏层:两个节点,分别表示 \(h1\) 和 \(h2\),激活函数为 sigmoid 函数。
输出层:两个节点,分别表示 \(o1\) 和 \(o2\),对应正确的输出值为 [0.01, 0.99]。
网络结构图
i1 h1 -o1 \| | \ |-o2 \ | \---h2 \| \| i2
表格展示网络连接及权重
输入层 (i) | 隐藏层 (h) | 输出层 (o) | |
连接 | i1 h1 | h1 o1 | o1 |
连接 | i1 h2 | h2 o2 | o2 |
连接 | i2 h1 | ||
连接 | i2 h2 |
激活函数
使用 sigmoid 函数作为激活函数,其公式为:
\[ f(x) = \frac{1}{1 + e^{-x}} \]
训练过程
前向传播
1、输入层 -> 隐藏层:
\[ z_{h1} = w1 \times i1 + w2 \times i2 + b1 \]
\[ z_{h2} = w3 \times i1 + w4 \times i2 + b2 \]
2、隐藏层 -> 输出层:
\[ z_{o1} = w5 \times a_{h1} + w6 \times a_{h2} + b2 \]
\[ z_{o2} = w7 \times a_{h1} + w8 \times a_{h2} + b2 \]
\(a_{h1}\) 和 \(a_{h2}\) 是隐藏层节点的输出,计算公式如下:
\[ a_{h1} = f(z_{h1}) = \frac{1}{1 + e^{-z_{h1}}} \]
\[ a_{h2} = f(z_{h2}) = \frac{1}{1 + e^{-z_{h2}}} \]
均方误差(MSE)作为损失函数,用于衡量预测值与实际值之间的差异:
\[ E_{total} = \frac{1}{2} \sum_{i=1}^{n} (target_i output_i)^2 \]
反向传播
通过链式法则更新权重和偏置:
\[ w_{new} = w_{old} \eta \times \frac{\partial E}{\partial w} \]
\[ b_{new} = b_{old} \eta \times \frac{\partial E}{\partial b} \]
具体步骤
1、计算损失:根据损失函数计算当前总损失。
2、计算梯度:逐层计算每个权重和偏置的梯度。
3、更新权重和偏置:使用梯度下降法更新权重和偏置。
结果分析
经过多次迭代后,网络的输出接近于目标值:
\[ [o1, o2] \approx [0.01, 0.99] \]
BP神经网络通过前向传播和反向传播的过程,不断调整网络中的权重和偏置,以最小化损失函数,在这个实例中,我们通过具体的计算步骤展示了BP神经网络的训练过程,并验证了其有效性。
各位小伙伴们,我刚刚为大家分享了有关“bp神经网络训练实例”的知识,希望对你们有所帮助。如果您还有其他相关问题需要解决,欢迎随时提出哦!
原创文章,作者:K-seo,如若转载,请注明出处:https://www.kdun.cn/ask/698576.html