015: 深度学习之正向传播和反向传播

ops/2025/1/17 7:08:12/

本文为合集收录,欢迎查看合集/专栏链接进行全部合集的系统学习。

合集完整版请参考这里。

上一节介绍了训练和推理的概念,这一节接着训练和推理的概念讲一下,神经网络的正向传播和反向传播。

正反向传播

其实单看正向传播和反向传播这两个概念,很好理解。

正向传播(Forward Propagation)是指数据从神经网络的第一层(也叫输入层)到最后一层(也叫输出层)的数据流动过程。

而反向传播(Backpropagation)是指数据从输出层到输入层的反向流动过程。

正常情况下,利用神经网络推理一张图像。图像数据从神经网络的输入层一直流到输出层就可以得到推理的结果,这是典型的正向传播过程,因此在推理时只有正向传播。

那反向传播是用在什么地方呢?没错,是训练。

上一节举了个例子,训练的过程就好像我们在初中高中学习课本知识一样,不断的校正我们大脑中对于知识的理解。

因此训练的过程需要有一个不断反馈、不断校正的过程,在神经网络中被校正的参数被称为神经网络的权重(或权值)。

还记得之前在介绍传统计算机视觉的时候提到的均值滤波器吗?均值滤波器中的参数都是1,可以完成对噪声的均匀滤除。

在这里插入图片描述

而神经网络中很多算法的参数是不确定的,我们没有办法来进行设计,只能让神经网络自己去学习,自己不断的去调整这些。

因此科学家们设计了一个反向传播机制,专门用来调整这个参数,下面用通俗的语言来介绍训练过程,以及反向传播是如何运行的。

训练和反向传播的模拟介绍

首先,在神经网络最后的输出层后面,都会有一个损失函数,该函数用来评判神经网络输出的结果与真实结果的接近程度。预测结果与真实结果越接近,那么损失函数的输出值就越低,如果损失函数输出值为0,那么说明预测结果和输出结果完全一致。

假设,AI模型在第一次训练时,神经网络里的参数权重都是随机值(实际情况也是这样),那么基本上第一次的预测结果与真实结果差着十万八千里。

比如真实值是10,而预测结果是1000,此时预测结果比真实结果高了很多,那我们就希望模型的参数进行调整,使得预测的结果继续变小。

这里就要用到神经网络的反向传播过程。

它会把本次预测结果与真实结果之间的差距(这里是1000 -10 = 990)反向传给神经网络的每一层,神经网络的每一层拿到后面传过来的 990 的变化量之后就会知道,本次预测高了,神经网络就会把自己的权重进行调整,调整的方向是使下一次的预测变得低一些。
在这里插入图片描述

若是下一次预测的结果是 800,结果还是偏高,会继续把这一次的变化量 (800-10=790) 再次进行反向传播,然后每一层继续往下调整参数,直到网络输出的结果为10。

学习率

上面描述的是一个大致的过程。在实际模型训练中,损失函数的输出是有波动的。

比如某一次预测值为 20,这是高于真实值的,我们希望继续往下调,下一次的预测值可能会变成0,此时又低于真实值,模型需要再继续调整参数使输出变得大一些,此时可能输出又变成了 20,这样反复调整会使得预测结果在真实的结果10之间上下波动,但是不收敛到10。

这是因为每次反向传播时,调整的幅度过大,在这个时候可以适当的将调整的幅度降低。

这个幅度,可以通过配置学习率来控制。学习率是神经网络模型的一个超参数,我们可以在训练模型时配置这个参数。

学习率降低后,假设输出可以做到每次调整的变化量为 5,这样结果就在5和15之间波动,如果在继续降低学习率,调整成0.1,那么预测值就在9.9和10.1之间波动,基本上就可以认为模型收敛到10了。

在真实的训练过程中,刚开始可以将学习率设置的大一些,到了后期将学习率设置的小一些,从而实现前期快速收敛、后期精度微调的效果。

以上便是训练的大致过程,反向传播在其中发挥了巨大的作用。

具体而言,反向传播在实际神经网络中计算的过程如下(了解即可):

根据预测结果和真实标签计算损失函数,输出损失值。

计算损失值对权重的偏导数(得到反向传播的梯度)。

通过链式法则依次计算前一层的梯度。

使用梯度下降法或其他优化算法,更新网络参数,使损失函数的输出值最小化。

正向传播和反向传播是神经网络中的核心概念,通过这两个过程,神经网络可以通过大量样本的训练来调整模型的权重,从而使模型逐渐优化并具备较好的泛化能力。

后面会有一个实战:在笔记本上训练一个图像识别的小模型。


http://www.ppmy.cn/ops/150736.html

相关文章

软硬件项目运维管理制度,安全运行维护管理手册(Word原件)

第一章 总则 第二章 运行维护组织架构 第一节 运行维护组织 第二节 职责分工 第三章 运行维护工作基本制度 第一节 故障管理 第二节 问题管理 第三节 变更管理 第四节 巡检管理 第五节 备份及日志管理 第六节 安全保密管理 运行维护管理的基本任务&#…

5G+工业互联网迈入规模化发展新阶段

百度安全验证 https://blog.csdn.net/qq_25467441/article/details/145036191?sharetypeblogdetail&sharerId145036191&sharereferPC&sharesourceqq_25467441&spm1011.2480.3001.8118 好看视频-轻松有收获 产业供给加速提升。国内主流模组厂商引领全球5G模组…

macos 一直报错 XXX 将对你的电脑造成伤害。你应该将它移到废纸篓

Docker 将对你的电脑造成伤害。你应该将它移到废纸篓 今天碰到一个神奇的问题,Docker 忽然运行不了了,然后将 Docker 卸载重装,接着就出现了这个问题,电脑一直弹框这个错误,将 Docker 卸载也不行,重启之后就…

大疆发布可折叠航拍无人机,仅重249g,支持 4800 万像素拍摄

在以往的无人机使用经历中,携带不便一直是个让人头疼不已的问题。那些体积硕大的无人机,每次出行都像是一场艰难的搬运,塞进车里都费劲,更别提轻松地穿梭在城市街头或是户外探险中了。但就在大家对这些问题习以为常、感到无奈时&a…

lua下标是可以从0开始

故事背景,策划搞了一个功能配置表,我看居然是0开始的,功能也正常。于是测试了下,还真的可以。网上看了资料确实可以,但是也有需要注意的问题 local test {[0] 0} for k,v in pairs(test)doprint(k,v) endhttps://bl…

AudioGPT全新的 音频内容理解与生成系统

AudioGPT全新的 音频内容理解与生成系统 ChatGPT、GPT-4等大型语言模型 (LLM) 在语言理解、生成、交互和推理方面表现出的非凡能力,引起了学界和业界的极大关注,也让人们看到了LLM在构建通用人工智能 (AGI) 系统方面的潜力。 现有的GPT模型具有极高的语言生成能力,是目前最…

Python 如何操作 PDF 文件?

💖 欢迎来到我的博客! 非常高兴能在这里与您相遇。在这里,您不仅能获得有趣的技术分享,还能感受到轻松愉快的氛围。无论您是编程新手,还是资深开发者,都能在这里找到属于您的知识宝藏,学习和成长…

【华为路由/交换机的ssh远程设置】

华为路由/交换机的ssh远程设置 R1(client):10.1.1.1 R2(server):10.1.1.2 R2服务端配置: 生成本机密钥 查看生成的密钥 设置AAA授权验证方式,并设置支持SSH协议 创建本地用户&…