神经网络中的前向传播(Forward Propagation)和后向传播(Backward Propagation)

有时候会搞混这两个概念。什么是前向传播?不是只有后向传播吗?后向传播好像是用来更新模型参数的,前向传播是什么东西?

带着疑问再次梳理一遍:

前向传播

前向传播是神经网络进行预测的过程。在这个过程中,输入数据沿着神经网络从输入层经过隐藏层(如果有的话)最终到输出层流动。在每一层,数据会与层内的权重(parameters)进行计算(如加权和),并通过激活函数(activation function)进行非线性转换,生成该层的输出。这个输出随后成为下一层的输入,直到最后生成最终的预测结果。前向传播的目的是根据当前的模型参数(权重和偏置)对输入数据进行预测

后向传播

后向传播是训练神经网络时用于计算损失函数(loss function)关于模型参数的梯度(gradient)的过程 。这个过程始于最终输出层的损失函数,此函数衡量了模型预测和实际标签之间的差异。在后向传播中,这个损失会被用来计算对每个参数的梯度,表示损失函数如何随这些参数的变化而变化。这通过链式法则(chain rule)实现,从输出层开始逐层向后计算梯度,直至输入层。计算得到的梯度随后用于更新模型的参数(如通过梯度下降法),目的是减少损失,从而改善模型的预测性能。

关系

前向传播提供了模型对当前输入的预测,这个预测随后用于计算损失,损失反映了模型当前性能的好坏。

后向传播利用这个损失,通过计算损失相对于每个参数的梯度,来指导模型参数的更新,以减少未来的预测误差。

前向传播是数据输入到网络模型得到预测结果的过程,后向传播是计算loss function计算模型参数梯度的过程。

引申概念:梯度。

什么是梯度?我们知道模型是根据目标函数的梯度反方向更新参数的,那么这个重要的梯度是如何计算和得到的?梯度的计算通常依赖于链式法则,它是微积分中的一个基本原则,用于计算复合函数的导数。在深度学习中,模型的输出和损失可以视为输入数据和模型参数的复合函数,链式法则允许我们分步骤计算损失相对于每个参数的偏导数。

相关推荐
大飞记Python1 分钟前
自动化测试脚本点击运行后,打开Chrome很久??
开发语言·python
虾球xz12 分钟前
游戏引擎学习第297天:将实体分离到Z层中
c++·人工智能·学习·游戏引擎
就叫飞六吧1 小时前
html文件cdn一键下载并替换
前端·python·html
kovlistudio1 小时前
机器学习第十八讲:混淆矩阵 → 诊断模型在医疗检查中的误诊情况
人工智能·机器学习·矩阵
云空1 小时前
《国家高等教育智慧平台:重塑学习新时代》
大数据·人工智能·科技·物联网·学习
带电的小王1 小时前
【动手学深度学习】1.3. 各种机器学习问题
人工智能·深度学习·机器学习
逢着1 小时前
Pandoc3.7新特性:存在合并单元格的 HTML 表格会被保留为嵌入的 HTML 表格
python·html·markdown·pandoc·pypandoc·文件类型转换·pandoc-binary
一个处女座的程序猿1 小时前
ChatGPT:OpenAI Codex—一款基于云的软件工程 AI 代理,赋能 ChatGPT,革新软件开发模式
人工智能·chatgpt·软件工程
J_Xiong01171 小时前
【VLNs篇】03:VLMnav-端到端导航与视觉语言模型:将空间推理转化为问答
人工智能·算法·语言模型
大模型服务器厂商1 小时前
VLA模型:自动驾驶与机器人行业的革命性跃迁,端到端智能如何重塑未来?
人工智能·机器人·自动驾驶