CV学习笔记-BP神经网络训练实例(含详细计算过程与公式推导)

简介: CV学习笔记-BP神经网络训练实例(含详细计算过程与公式推导)

BP神经网络训练实例

1. BP神经网络

关于BP神经网络在我的上一篇博客《CV学习笔记-推理和训练》中已有介绍,在此不做赘述。本篇中涉及的一些关于BP神经网络的概念与基础知识均在《CV学习笔记-推理和训练》中,本篇仅推演实例的过程。

BP的算法基本思想:


将训练集数据输入到神经网络的输入层,经过隐藏层,最后达到输出层并输出结果,这就是前

向传播过程。

由于神经网络的输出结果与实际结果有误差,则计算估计值与实际值之间的误差,并将该误差

从输出层向隐藏层反向传播,直至传播到输入层;

在反向传播的过程中,根据误差调整各种参数的值(相连神经元的权重),使得总损失函数减

小。

迭代上述三个步骤(即对数据进行反复训练),直到满足停止准则。

2. 训练实例

1. 实例设计

image.png

sigmoid函数是一种激活函数,在笔者上一篇博文《CV学习笔记-推理和训练》中已有介绍,此处不再赘述。

2018122814580746.png

2. 训练过程

1. 前向传播

输入层->隐藏层:

根据网络结构示意图,神经元h1接收前一层i1和i2的加权求和结果作为输入,将此输入用zh1表示,则有

image.png

由于激活函数为sigmoid函数,故而神经元h1的输出ah1为

image.png

同理可得,神经元h2的输出ah2为

image.png

image.png

image.png

同理可以计算出ao2 =0.772928465至此,一个完整的前向传播过程结束输出值为[ 0.751365069 , 0.772928465 ] ,与实际值[ 0.01 , 0.99 ] 误差还比较大,需要对误差进行反向传播,更新权值后重新计算。

2. 反向传播

计算损失函数:

传递误差需要经过损失函数的处理,来估计出合适的传递值进行反向传播并合理的更新权值。

image.png

隐藏层->输出层的权值更新:

2018122814580746.png

image.png

image.png

如果我们将上述的步骤去除具体数值,抽象出来

则得到

image.png

第二行的公式在笔者的上一篇博客中提到过,现作了推导。

image.png

η为学习率,在笔者的上一篇博文《CV学习笔记-推理和训练》中介绍过,不再赘述。

同理,可更新w 6 , w 7 , w 8

image.png

隐藏层->隐藏层的权值更新:

2018122814580746.png

image.png

同理可得:

image.png

两者相加得:

image.png

image.png

image.png

至此,一次反向传播的过程结束。

训练过程就是这样反复迭代,正向传播后得误差,在反向传播更新权值,再正向传播,这样反复进行,本例再第一次迭代后总误差从0.298371109下降到了0.291027924,在迭代10000次后,总误差降至0.000035085。输出为[0.015912196,0.984065734]


相关文章
|
6月前
|
机器学习/深度学习 Python
Matlab|基于BP神经网络进行电力系统短期负荷预测
Matlab|基于BP神经网络进行电力系统短期负荷预测
264 26
|
5月前
|
机器学习/深度学习 算法 调度
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
14种智能算法优化BP神经网络(14种方法)实现数据预测分类研究(Matlab代码实现)
456 0
|
6月前
|
机器学习/深度学习 数据采集 传感器
【故障诊断】基于matlab BP神经网络电机数据特征提取与故障诊断研究(Matlab代码实现)
【故障诊断】基于matlab BP神经网络电机数据特征提取与故障诊断研究(Matlab代码实现)
218 0
|
4月前
|
机器学习/深度学习 数据可视化 网络架构
PINN训练新思路:把初始条件和边界约束嵌入网络架构,解决多目标优化难题
PINNs训练难因多目标优化易失衡。通过设计硬约束网络架构,将初始与边界条件内嵌于模型输出,可自动满足约束,仅需优化方程残差,简化训练过程,提升稳定性与精度,适用于气候、生物医学等高要求仿真场景。
539 4
PINN训练新思路:把初始条件和边界约束嵌入网络架构,解决多目标优化难题
|
4月前
|
机器学习/深度学习 算法
采用蚁群算法对BP神经网络进行优化
使用蚁群算法来优化BP神经网络的权重和偏置,克服传统BP算法容易陷入局部极小值、收敛速度慢、对初始权重敏感等问题。
414 5
|
5月前
|
机器学习/深度学习 并行计算 算法
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
【CPOBP-NSWOA】基于豪冠猪优化BP神经网络模型的多目标鲸鱼寻优算法研究(Matlab代码实现)
132 8
|
5月前
|
网络协议 Java Linux
【App Service】在Azure环境中如何查看App Service实例当前的网络连接情况呢?
在 Azure App Service(Windows 和 Linux)中部署应用时,分析网络连接状态是排查异常、验证端口监听及确认后端连接的关键。本文介绍如何在 Linux 环境中使用 `netstat` 命令查看特定端口(如 443、3306、6380)的连接情况,并解析输出结果。同时说明在 Windows App Service 中 `netstat` 被禁用的情况下,如何通过门户抓包等替代方法进行网络诊断。内容涵盖命令示例、操作步骤及附录说明,帮助开发者快速掌握云环境中的网络分析技巧。
154 11
|
5月前
|
机器学习/深度学习 传感器 算法
【表面粗糙度】基于粒子群PSO算法优化-BP神经网络的表面粗糙度研究(Matlab代码实现)
【表面粗糙度】基于粒子群PSO算法优化-BP神经网络的表面粗糙度研究(Matlab代码实现)
279 7
|
5月前
|
机器学习/深度学习 编解码 并行计算
【创新未发表!】基于BKA算法优化-BP、HO算法优化-BP、CP算法优化-BP、GOOSE算法优化-BP、NRBO算法优化-BP神经网络回归预测比较研究(Matlab代码)
【创新未发表!】基于BKA算法优化-BP、HO算法优化-BP、CP算法优化-BP、GOOSE算法优化-BP、NRBO算法优化-BP神经网络回归预测比较研究(Matlab代码)
267 0
|
5月前
|
机器学习/深度学习 数据采集 运维
改进的遗传算法优化的BP神经网络用于电厂数据的异常检测和故障诊断
改进的遗传算法优化的BP神经网络用于电厂数据的异常检测和故障诊断

热门文章

最新文章