×

第十三天:反向传播算法

hqy hqy 发表于2025-02-28 19:33:30 浏览16 评论0百度已收录

抢沙发发表评论

2. 反向传播算法(Backpropagation)

• 梯度计算

• 链式法则

• 权重更新公式

反向传播及其在神经网络当中的作用

1、什么是反向传播?

反向传播BP是神经网络训练中的核心算法,用于计算误差对网络权重的梯度,并通过优化算法(如梯度下降)更新权重,以减少损失。

基本思想:

(1)前向传播

将输入数据通过神经网络逐层计算,得到最终的输出结果。

(2)计算损失

通过损失函数计算模型预测值与真实值之间的误差。

(3)反向传播

使用链式法则,将误差从输出层逐步向前传播到输入层,计算每一层的梯度。

(4)参数更新

使用梯度下降等优化算法,根据梯度更新神经网络的参数(权重和偏置)。

比方来说,我们考试得了90分(输出),目标是100分(真实值)。老师给我们指出错误(计算损失)。

当我们自己逐步回顾自己的解题过程(反向传播),找出导致错误的关键点。

然后调整解题方法(优化参数),争取下次考试拿到满分。

2、为什么神经网络中需要反向传播?

在神经网络中,训练的目标是调整网络的权重,使得预测误差最小。但由于神经网络是多层的,每一层的参数都会影响最终输出。因此,

(1)误差不仅与最后一层的权重相关,也与前面所有层的权重相关。

(2)我们需要知道如何调整每一层的参数,才能真正的减少误差。

而反向传播正是解决多层神经网络梯度计算的关键算法。

数学推导如下,

(1)前向传播

假设一个简单的三层神经网络,

输入层x,隐藏层h,输出层y

(2)反向传播(计算梯度)

目标是计算损失L对各层权重的梯度,然后使用梯度下降更新参数。

链式法则是反向传播的核心,具体步骤如下

这意味着梯度是从输出层逐步反向传播到输入层的,即反向传播的本质就是链式求导。

(3)参数更新

有了梯度后,我们可以用梯度下降或其他优化算法更新权重。

3、反向传播的作用

(1)高效的计算梯度

使得神经网络能够通过梯度下降等优化方法进行训练。

(2)自动调整权重

让模型在训练过程中不断改进,提高预测准确率。

(3)解决多层神经网络的训练问题,否则手动计算梯度会非常困难。

虽然反向传播是神经网络训练的核心,但也仍存在一定的局限性。

(1)梯度消失

如果梯度在传播过程中逐渐趋近于0,前面的层很难更新,尤其是对于深度神经网络来说。

(2)梯度爆炸

如果梯度在传播过程中逐渐变大,可能导致训练不稳定。

(3)依赖大量数据

需要足够的数据才能使梯度下降的方向正确,避免过拟合的问题。

总的来说,反向传播从损失函数出发,利用链式法则计算梯度,并逐层传播回去。

在计算的过程中,先进行前向传播计算输出和损失。再进行反向传播计算出梯度,最后使用优化算法更新权重。

反向传播是神经网络学习的关键,帮助网络不断地优化并提高预测的准确率。