深度学习-神经网络反向传播计算方法
新预测值 = 0.9×2 + 0.2 = 2.0 → 损失 = (5-2)² = 9(反而更大了?说明学习率可能太大,需调小)。损失 = (y_true - y_pred)² = (5-3.5)² = 2.25。预测值 y_pred = w×x + b = 1.5×2 + 0.5 = 3.5。:通过“从后往前”传递误差,像教练纠正学生错误一样,指导模型调整参数。
·
神经网络反向传播流程
一句话总结:通过“从后往前”传递误差,像教练纠正学生错误一样,指导模型调整参数。
1. 核心目标
- 解决问题:前向传播得到预测结果后,模型需要知道“错在哪、如何改”。
- 核心任务:计算每个参数(权重和偏置)对误差的影响程度,并据此调整参数。
2. 反向传播四步流程
步骤1:计算损失(总误差)
- 用损失函数对比预测值和真实值。
- 例子:模型预测猫概率70%,真实值100% → 交叉熵损失 ≈ 0.36。
步骤2:反向逐层传递误差
- 从输出层开始,计算每层神经元对误差的“责任”。
- 链式法则(通俗理解):
- 将总误差拆解,像接力赛一样从后往前传递。
- 比如:输出层误差 → 隐藏层2误差 → 隐藏层1误差。
步骤3:计算每个参数的梯度
- 梯度:表示“参数微小调整时,损失会变化多少”。
- 计算方式:用误差和对应层的输入数据相乘。
- 权重梯度 = 当前层输入 × 下一层传递的误差
- 偏置梯度 = 直接等于下一层传递的误差
步骤4:更新参数(学习)
- 梯度下降:参数朝着减小损失的方向调整。
- 公式:
新权重 = 旧权重 - 学习率 × 权重梯度新偏置 = 旧偏置 - 学习率 × 偏置梯度 - 学习率:控制每次调整的步幅(类似“刹车灵敏度”)。
通俗比喻
-
教练改卷子:
- 学生(模型)提交答案 → 教练(损失函数)指出错误 → 从最后一道题开始,逐题分析哪一步出错(反向传播) → 学生根据反馈重点复习薄弱点(参数更新)。
-
导航纠偏:
- GPS(损失函数)发现偏离路线1公里 → 反向检查哪里走错(高速出口?转弯路口?) → 调整后续方向(参数更新)。
3. 具体例子(简化计算)
假设一个超简单网络:
- 输入:x=2(如图片像素值)
- 权重:w=1.5(初始随机值)
- 偏置:b=0.5
- 真实值:y_true=5(假设任务为数值预测)
前向传播:
预测值 y_pred = w×x + b = 1.5×2 + 0.5 = 3.5
计算损失(MSE):
损失 = (y_true - y_pred)² = (5-3.5)² = 2.25
反向传播:
- 计算梯度:
- 损失对w的梯度 = 2×(5-3.5)×x = 2×1.5×2 = 6
- 损失对b的梯度 = 2×(5-3.5) = 3
- 更新参数(假设学习率=0.1):
- 新w = 1.5 - 0.1×6 = 0.9
- 新b = 0.5 - 0.1×3 = 0.2
再次前向传播:
新预测值 = 0.9×2 + 0.2 = 2.0 → 损失 = (5-2)² = 9(反而更大了?说明学习率可能太大,需调小)。
关键点总结
- 反向传播本质:通过误差反推每个参数的“责任”,指导参数调整。
- 链式法则:误差从输出层到输入层逐层拆解,像多米诺骨牌反向传递。
- 梯度下降:参数沿着梯度反方向更新,逐步逼近最优解(类似“摸着石头下山”)。
魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。
更多推荐


所有评论(0)