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)依赖大量数据
需要足够的数据才能使梯度下降的方向正确,避免过拟合的问题。
总的来说,反向传播从损失函数出发,利用链式法则计算梯度,并逐层传播回去。
在计算的过程中,先进行前向传播计算输出和损失。再进行反向传播计算出梯度,最后使用优化算法更新权重。
反向传播是神经网络学习的关键,帮助网络不断地优化并提高预测的准确率。