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]


相关文章
|
26天前
|
机器学习/深度学习 算法
基于改进遗传优化的BP神经网络金融序列预测算法matlab仿真
本项目基于改进遗传优化的BP神经网络进行金融序列预测,使用MATLAB2022A实现。通过对比BP神经网络、遗传优化BP神经网络及改进遗传优化BP神经网络,展示了三者的误差和预测曲线差异。核心程序结合遗传算法(GA)与BP神经网络,利用GA优化BP网络的初始权重和阈值,提高预测精度。GA通过选择、交叉、变异操作迭代优化,防止局部收敛,增强模型对金融市场复杂性和不确定性的适应能力。
165 80
|
19天前
|
机器学习/深度学习 自然语言处理 并行计算
社区供稿 | Para-Former:DUAT理论指导下的CV神经网络并行化,提速多层模型推理
神经网络正越来越多地朝着使用大数据训练大型模型的方向发展,这种解决方案在许多任务中展现出了卓越的性能。然而,这种方法也引入了一个迫切需要解决的问题:当前的深度学习模型基于串行计算,这意味着随着网络层数的增加,训练和推理时间也会随之增长。
|
10天前
|
机器学习/深度学习 算法 计算机视觉
基于CNN卷积神经网络的金融数据预测matlab仿真,对比BP,RBF,LSTM
本项目基于MATLAB2022A,利用CNN卷积神经网络对金融数据进行预测,并与BP、RBF和LSTM网络对比。核心程序通过处理历史价格数据,训练并测试各模型,展示预测结果及误差分析。CNN通过卷积层捕捉局部特征,BP网络学习非线性映射,RBF网络进行局部逼近,LSTM解决长序列预测中的梯度问题。实验结果表明各模型在金融数据预测中的表现差异。
|
19天前
|
机器学习/深度学习 算法
基于遗传优化的双BP神经网络金融序列预测算法matlab仿真
本项目基于遗传优化的双BP神经网络实现金融序列预测,使用MATLAB2022A进行仿真。算法通过两个初始学习率不同的BP神经网络(e1, e2)协同工作,结合遗传算法优化,提高预测精度。实验展示了三个算法的误差对比结果,验证了该方法的有效性。
|
1月前
|
机器学习/深度学习 算法 Python
基于BP神经网络的金融序列预测matlab仿真
本项目基于BP神经网络实现金融序列预测,使用MATLAB2022A版本进行开发与测试。通过构建多层前馈神经网络模型,利用历史金融数据训练模型,实现对未来金融时间序列如股票价格、汇率等的预测,并展示了预测误差及训练曲线。
|
7月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】26.卷积神经网络之AlexNet模型介绍及其Pytorch实现【含完整代码】
|
7月前
|
机器学习/深度学习 PyTorch 算法框架/工具
【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】
【从零开始学习深度学习】28.卷积神经网络之NiN模型介绍及其Pytorch实现【含完整代码】
|
5月前
|
机器学习/深度学习 PyTorch 算法框架/工具
PyTorch代码实现神经网络
这段代码示例展示了如何在PyTorch中构建一个基础的卷积神经网络(CNN)。该网络包括两个卷积层,分别用于提取图像特征,每个卷积层后跟一个池化层以降低空间维度;之后是三个全连接层,用于分类输出。此结构适用于图像识别任务,并可根据具体应用调整参数与层数。
|
5月前
|
机器学习/深度学习 数据可视化 Python
如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码
该博客展示了如何通过Python预处理神经网络权重矩阵并将其导出为表格,然后使用Chiplot网站来可视化神经网络的神经元节点之间的连接。
68 0
如何可视化神经网络的神经元节点之间的连接?附有Python预处理代码
|
5月前
|
机器学习/深度学习 Linux TensorFlow
【Tensorflow+keras】用代码给神经网络结构绘图
文章提供了使用TensorFlow和Keras来绘制神经网络结构图的方法,并给出了具体的代码示例。
75 0