加载中...

| 类型 | 优化基础算法 |
| 数学基础 | 链式法则(Chain Rule) |
| 普及年份 | 1986,Rumelhart、Hinton、Williams |
神经网络是一个复合函数:输入经过几十层变换(线性层、激活函数、归一化等),最后输出预测值,与真实标签对比得到损失 L。要训练网络,需要知道 L 对每个参数的偏导数(梯度),以便用梯度下降更新。
如果网络有 1 亿个参数,用数值微分逐一估算每个参数的梯度,计算量是不可接受的。反向传播的核心是:用链式法则从输出端往输入端反向传递梯度,每一层只需要利用前向计算时缓存的中间值,就能在一次反向传播中算出所有参数的梯度,时间复杂度和前向传播同量级。[1]
反向传播的数学并非 80 年代才发明,Linnainmaa 1970 年的论文就有完整描述。但直到 1986 年 Rumelhart、Hinton、Williams 发表的那篇论文,才让反向传播在神经网络训练中广为人知,推动了 80-90 年代连接主义的第一波热潮。
现代深度学习框架(TensorFlow、PyTorch)用自动微分(Autograd)实现反向传播:构建计算图,前向传播时记录每个操作,反向时自动按图拓扑顺序计算梯度。用户写 loss.backward() 一行代码,框架自动完成整个过程。PyTorch 的动态计算图(define-by-run)相比 TensorFlow 1.x 的静态图极大降低了调试难度,是它在研究界后来居上的重要原因。

| 类型 | 优化基础算法 |
| 数学基础 | 链式法则(Chain Rule) |
| 普及年份 | 1986,Rumelhart、Hinton、Williams |
登录 后参与讨论
暂无讨论,来发表第一条评论吧