机器学习基础之反向传播(Back Propagation)原理简述

反向传播是一种训练神经网络的算法,通过计算损失函数梯度并反向传播至网络各层,优化权重和偏差。本文介绍了步骤包括前向传播、损失函数计算、反向传播梯度、权重更新及重复迭代,强调其在深度学习模型训练中的关键作用。
摘要由CSDN通过智能技术生成

反向传播(Back Propagation)是一种用于训练神经网络的算法,通过计算神经网络的参数对损失函数的梯度(偏导数),然后通过反向传播,以更新神经网络的权重和偏差,以最小化损失函数,提高神经网络的性能。

以下是反向传播的主要步骤:

1、前向传播(Forward Propagation):通过神经网络的前向传播计算,将输入样本沿着网络的神经元进行计算,最终得到输出结果。这部分不了解可以参考笔者的前一篇文章:机器学习基础之前向传播(Forward Propagation)原理简述_liuqs2023的博客-CSDN博客

2、计算损失函数(Lost Function):将网络的输出结果,与真实标签(Label)进行比较,计算出损失函数的值。损失函数存在多个种类,不同的机器学习任务和模型类型可能会使用不同的损失函数:以下是一些常见的损失函数:

        ①,均方误差(Mean Square Error,MSE):

                计算公式:MSE = (1/N) * Σ(y - y_pred)^2

        ②,平均绝对误差(Mean Absolute Error,MAE):
                计算公式:MAE = (1/N) * Σ|y - y_pred|

        ③,交叉熵损失(Cross-Entropy Loss):

                计算公式(二分类问题):

                Cross-Entropy Loss = - (y * log(y_pred) + (1 - y) * log(1 - y_pred))

                计算公式(多分类问题,使用softmax激活函数):

                Cross-Entropy Loss = - Σ(y * log(y_pred))

以上损失函数计算公式中,y是真实标签,y_pred是模型的预测值。

3、反向传播梯度计算(Backward Propagation of Gradients):从损失函数开始,通过链式法则,将梯度从输出层像输入层反向传播。在每个节点处,计算出每个权重和偏置对损失函数的影响,即损失函数对该参数的梯度。

 下图为一个简单的神经网络:仅有一个隐藏层,一个输出层,激活函数为ReLU。

 这里通过前向传播计算出成本函数之后,反向计算每一层对应的偏导数(即梯度)。

 

4、权重与偏差更新:根据计算得到的权重和偏置的梯度,采用梯度下降法来更新网络中的权重与偏置。

        梯度下降法(Gradient Descent):是一种常用的优化算法,用于求解损失函数的最优解。它通过沿着损失函数梯度的反方向来更新参数,逐步调整网络中节点的权重和偏差值,直至达到停止条件(如最大迭代次数或梯度变化很小)

        梯度下降法的基本思想是先随机初始化参数,然后计算当前参数下的损失函数梯度,并沿着梯度的反方向以一定的步长(学习率)更新参数。这个过程在模型训练过程中不断重复,直到达到停止条件。

5、重复迭代:重复执行上述步骤,直到达到预定的训练停止条件。

反向传播算法的关键是通过链式法则(Chain Rule)来计算每个权重对误差的贡献。它利用网络的层级结构,从输出层向输入层逐层传播梯度,相对较浅的层会受到更早层传来的梯度影响。

通过不断地迭代反向传播算法,神经网络可以不断地调整权重,以最小化损失函数并提高对输入样本的预测准确性。

反向传播算法通过计算损失函数对网络参数的梯度,实现了有效的参数更新。它将梯度从输出层反向传播到网络的每一层,根据每个节点的梯度和操作,更新每个节点的参数。这样,在每次迭代中,网络的参数都会根据损失函数的梯度进行微调,逐渐朝着损失函数最小化的方向更新,从而提高网络的性能。

反向传播算法是深度学习中训练神经网络的核心算法之一,可以用于多层感知机(MLP)、卷积神经网络(CNN)、循环神经网络(RNN)等各种类型的神经网络。现代的深度学习框架已经内置了反向传播算法的实现,使得开发者可以方便地使用并优化神经网络模型。

我是一名神经网络的初学者,以上为本人对反向传播算法的部分解释,如有不准确的地方请见谅,部分解读参考了吴恩达老师的机器学习课程与网络相关资料。

最后,推荐机器学习初学者可以学习吴恩达老师的神经网络课程,谢谢!

  • 2
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值