趋近智
我们已经编译了模型,定义了它如何学习(优化器)、应该最小化什么(损失函数 (loss function)),以及如何衡量进展(评估指标)。但优化器究竟是如何利用损失值来改进网络的预测呢?这就是反向传播 (backpropagation)方法发挥作用的地方。
设想你的网络刚刚为一个训练样本做出了预测。你使用损失函数将此预测与真实目标标签进行比较,损失函数会计算出一个数字,表示预测的误差或“偏差”。损失值高意味着预测偏差大;损失值低则表示预测接近真实值。训练的目标是使所有训练样本的损失值最小化。
如何调整网络以减少损失呢?网络的表现由其权重 (weight)和偏差决定。如果我们能确定每个权重微小变化会对最终损失产生多大影响,我们就可以系统地调整权重,使其朝着损失减少最多的方向移动。
这正是反向传播的作用。它是一种计算网络中每个权重和偏差对应的损失函数梯度的算法。回想一下微积分知识,梯度指向函数最陡峭的上升方向。因为我们要最小化损失,所以需要朝梯度的反方向调整权重。
可以把反向传播看作一种将误差责任逐层向后分配给网络各部分的方式。
从数学角度看,这种信息反向流动主要依赖于微积分中的链式法则,使得我们能够从最终损失开始,逐层有效地计算这些梯度。
前向传播将输入数据送入网络以生成预测。通过比较预测值与目标值来计算损失。然后,反向传播将误差梯度从损失处向后传递,计算权重(W1, W2)和激活值(H1, Output)的变化如何影响损失。
一旦反向传播 (backpropagation)计算出所有权重 (weight)和偏差的梯度,优化器(你在compile步骤中选择的,例如Adam或SGD)就会介入。它会利用这些梯度以及其特有的更新规则(通常包含学习率和动量等因素),来调整网络的权重和偏差。目标是将权重“微调 (fine-tuning)”到能减少损失的方向。
这个完整的循环,包括前向传播、损失计算、反向传播(backpropagation)和权重更新,构成了训练过程的一个步骤。它在多个时期内对数据批次重复多次,逐步引导网络参数 (parameter)趋向于使总损失函数 (loss function)最小化的值,从而使网络在其任务中表现更好。
尽管当你调用fit()方法时,Keras会自动处理反向传播的实现细节,但理解这个流程对于诊断训练问题和就模型架构、损失函数和优化器做出明智选择非常重要。
这部分内容有帮助吗?
© 2026 ApX Machine LearningAI伦理与透明度•