第五章:计算机视觉(Computer Vision)
第一部分:计算机视觉基础
第二节:神经网络的前向传播与反向传播原理
一、引言
神经网络(Neural Network)是现代计算机视觉的核心算法基础。从图像分类、目标检测到语义分割,都依赖于神经网络的训练与推理。要理解神经网络如何“学习”,必须掌握两个基本过程:
前向传播(Forward Propagation):输入数据经过神经网络层层运算,生成输出结果(如分类概率)。
反向传播(Backpropagation):基于预测结果与真实标签之间的误差,利用梯度下降算法更新网络参数。
这两个过程循环迭代,逐步优化模型,使其能够更好地完成任务。
二、前向传播(Forward Propagation)
前向传播是神经网络的“推理”过程。假设我们有一个三层的前馈神经网络(输入层 → 隐藏层 → 输出层),其核心计算公式为:
其中:
l:表示网络的第几层
:第 l 层的权重矩阵
:第 l 层的偏置向量
:第 l 层的输出(激活值)
:激活函数(如 ReLU、Sigmoid、Softmax 等)
过程示意:
输入层:接收图像数据(如 28×2828 \times 28 的手写数字灰度图)。
隐藏层:进行线性变换和非线性激活。
输出层:通过 Softmax 得到类别概率分布。
例子:输入一张“猫”的图片,经过前向传播后,网络输出 [猫:0.9, 狗:0.1]
,表示网络认为这是猫的概率为 90%。
三、损失函数(Loss Function)
前向传播得到输出结果后,需要评估其与真实标签的差异,这一差异由 损失函数 衡量。常见损失函数:
均方误差(MSE):适用于回归任务
交叉熵损失(Cross Entropy Loss):适用于分类任务
损失值越小,说明模型预测越接近真实结果。
四、反向传播(Backpropagation)
反向传播是神经网络的“学习”过程。其核心思想:
使用链式法则(Chain Rule),将损失函数对各层参数的偏导数逐层计算出来。
根据这些梯度,用 梯度下降(Gradient Descent) 更新参数:
其中:
η:学习率(Learning Rate),控制更新步长
:损失函数对权重的梯度
直观理解:
如果网络预测为“狗”,但真实是“猫”,损失函数会较大。
反向传播计算出错误方向和幅度,逐层修正权重,让下一次预测更接近“猫”。
五、数值示例
假设:
输入 x = [1, 2]
权重 W = [0.5, -0.3],偏置 b = 0.1
激活函数:Sigmoid
前向传播:
反向传播:
若真实标签 y = 1,则损失函数(交叉熵)为:
计算梯度,更新权重,使输出更接近 1。
六、前向传播与反向传播的整体流程
输入数据 x
前向传播:逐层计算 z, a
输出预测结果
计算损失 L
反向传播:逐层计算梯度
更新参数 W, b
重复迭代,直至收敛
七、总结
前向传播:负责“推理”,计算预测值。
损失函数:衡量预测与真实标签的差异。
反向传播:负责“学习”,通过梯度下降更新参数。
掌握这两个核心过程,才能理解深度学习的训练机制,为后续的卷积神经网络(CNN)、循环神经网络(RNN)以及 Transformer 模型打下基础。