bp(Back Propagation)神经网络

https://blog.csdn.net/u010858605/article/details/69857957

反向传播(Backpropagation, BP)神经网络是训练神经网络的核心算法,用于自动调整网络中的权重,使预测结果越来越准确。

核心思想:用误差来“纠正”权重
想象你教小孩认猫:
• 第一次:小孩把老虎认成猫(误差大)
• 你告诉他:"耳朵太大,条纹不对"(反向传递误差)
• 小孩调整认知(更新权重)
• 下次识别更准确
BP算法就是这个"教学"过程的数学实现。

工作流程(4步循环)
第1步:前向传播(Forward)
• 输入数据从输入层 → 隐藏层 → 输出层
• 每层通过权重和激活函数计算
• 最终得到预测结果

复制
输入层 隐藏层 输出层
x1 ──w1──→ h1 ──w3──→
↘ ↘
→ ŷ (预测值)
↗ ↗
x2 ──w2──→ h2 ──w4──→
第2步:计算损失(Loss)
• 比较预测值 ŷ 与真实值 y
• 计算误差(如均方误差):Loss = (ŷ - y)²
第3步:反向传播(Backward)
这是最关键的一步:
• 从输出层向输入层逐层计算梯度(误差对权重的偏导数)
• 使用链式法则:误差像链条一样反向传递
• 确定每个权重对总误差的"责任大小"

复制
输出层误差 → 隐藏层误差 → 输入层误差
↓ ↓ ↓
更新w3,w4 更新w1,w2 ...
第4步:权重更新(Update)
• 按梯度方向调整权重:w_new = w_old - 学习率 × 梯度
• 学习率:控制调整步长(太小学得慢,太大可能学过头)

为什么叫“反向传播”?
因为误差信号的传播方向与数据流动方向相反:
• 数据流:输入 → 输出(正向)
• 误差流:输出 → 输入(反向)

关键要点
表格

复制
概念
作用
梯度
告诉权重该调多少、朝哪个方向调
学习率
控制"学习速度"的超参数
链式法则
将深层网络的梯度计算分解为逐层相乘
激活函数
引入非线性,让网络能学习复杂模式

简单示例
假设网络预测房价,真实值=100万,预测值=80万:
1. 误差 = 100 - 80 = 20万
2. 反向计算:这20万误差中,w3应负多少责?w4应负多少责?
3. 更新:如果w3责任大,就大幅调整w3;w4责任小,就小幅调整w4
4. 重复:下一次预测可能变为85万 → 误差15万 → 继续调整...

BP的优势与局限
✅ 优势:
• 自动高效计算所有权重调整量
• 理论成熟,应用广泛
• 支持深层网络训练
⚠️ 局限:
• 可能陷入局部最优解(非全局最优)
• 梯度消失/爆炸问题(深层网络中)
• 依赖大量标注数据

一句话总结:BP算法通过**"前向预测误差 → 反向传播责任 → 逐层调整权重"**的循环,让神经网络像人一样从错误中学习,不断优化预测能力。

posted @ 2023-09-07 00:56  yinghualeihenmei  阅读(121)  评论(0)    收藏  举报