反向传播
神经网络是怎么学''的?先正向算一遍,得到一个误差(loss);再反着走一遍,把这个误差顺着计算图一层层传回去,算出每个权重该往哪个方向调、调多少’‘——这就是反向传播,深度学习的引擎。它的全部秘密就是高中学过的链式法则。下面这个只有几个节点的迷你网络,让你一步步看清楚。
绿框是要学的参数(w₁ w₂ b),蓝色数字是正向算出的值,金色数字是反向传回的梯度。目标是让输出 a 逼近 1。点``训练一步''反复看 loss 怎么降下来。
计算图
loss 随训练下降
正向:算误差
输入沿计算图往前算,一路到输出 a 和误差 loss。
反向:链式法则
从 loss 出发往回走,每个节点把``上游梯度''乘以``本地导数'',就得到自己的梯度。
更新:沿梯度下降
每个权重朝梯度的反方向挪一小步,loss 就会下降一点;反复多步即``训练''。