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]


相关文章
|
3月前
|
机器学习/深度学习 PyTorch 算法框架/工具
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
这篇文章介绍了如何使用PyTorch框架,结合CIFAR-10数据集,通过定义神经网络、损失函数和优化器,进行模型的训练和测试。
179 2
目标检测实战(一):CIFAR10结合神经网络加载、训练、测试完整步骤
|
3月前
|
机器学习/深度学习 数据可视化 计算机视觉
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
这篇文章详细介绍了如何通过可视化深度学习中每层特征层来理解网络的内部运作,并使用ResNet系列网络作为例子,展示了如何在训练过程中加入代码来绘制和保存特征图。
70 1
目标检测笔记(五):详细介绍并实现可视化深度学习中每层特征层的网络训练情况
|
3月前
|
Ubuntu 网络安全 图形学
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
在Ubuntu 20.04系统中解决网络图标消失和无法连接有线网络问题的方法,其中第三种方法通过检查并确保Windows防火墙中相关服务开启后成功恢复了网络连接。
847 0
Ubuntu学习笔记(二):ubuntu20.04解决右上角网络图标激活失败或者消失,无法连接有线问题。
|
2天前
|
机器学习/深度学习 自然语言处理 并行计算
社区供稿 | Para-Former:DUAT理论指导下的CV神经网络并行化,提速多层模型推理
神经网络正越来越多地朝着使用大数据训练大型模型的方向发展,这种解决方案在许多任务中展现出了卓越的性能。然而,这种方法也引入了一个迫切需要解决的问题:当前的深度学习模型基于串行计算,这意味着随着网络层数的增加,训练和推理时间也会随之增长。
|
24天前
|
机器学习/深度学习 数据采集 人工智能
基于Huffman树的层次化Softmax:面向大规模神经网络的高效概率计算方法
层次化Softmax算法通过引入Huffman树结构,将传统Softmax的计算复杂度从线性降至对数级别,显著提升了大规模词汇表的训练效率。该算法不仅优化了计算效率,还在处理大规模离散分布问题上提供了新的思路。文章详细介绍了Huffman树的构建、节点编码、概率计算及基于Gensim的实现方法,并讨论了工程实现中的优化策略与应用实践。
65 15
基于Huffman树的层次化Softmax:面向大规模神经网络的高效概率计算方法
|
2月前
|
机器学习/深度学习 自然语言处理 语音技术
Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧
本文介绍了Python在深度学习领域的应用,重点讲解了神经网络的基础概念、基本结构、训练过程及优化技巧,并通过TensorFlow和PyTorch等库展示了实现神经网络的具体示例,涵盖图像识别、语音识别等多个应用场景。
67 8
|
2月前
|
弹性计算 监控 数据库
制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程
本文通过一个制造企业ERP系统迁移至阿里云ECS的实例,详细介绍了从需求分析、数据迁移、应用部署、网络配置到性能优化的全过程,展示了企业级应用上云的实践方法与显著优势,包括弹性计算资源、高可靠性、数据安全及降低维护成本等,为企业数字化转型提供参考。
61 5
|
2月前
|
网络协议 Go
Go语言网络编程的实例
【10月更文挑战第27天】Go语言网络编程的实例
28 7
|
3月前
|
存储 缓存 算法
|
3月前
|
机器学习/深度学习 数据采集 算法
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)
这篇博客文章介绍了如何使用包含多个网络和多种训练策略的框架来完成多目标分类任务,涵盖了从数据准备到训练、测试和部署的完整流程,并提供了相关代码和配置文件。
71 0
目标分类笔记(一): 利用包含多个网络多种训练策略的框架来完成多目标分类任务(从数据准备到训练测试部署的完整流程)

热门文章

最新文章