推文
@Zen_with_AI · 2026-10-09 00:28
📐 ML 铅笔手稿 第 11期 📷✏️ 上期的问题:MLP 参数成千上万,隐藏层的"正确输出"是多少没人知道,w 到底怎么调?答案:反向传播(backpropagation)。 前向传播(forward pass)就是上期的公式: z⁽ˡ⁾ = W⁽ˡ⁾a⁽ˡ⁻¹⁾ + b⁽ˡ⁾,a⁽ˡ⁾ = σ(z⁽ˡ⁾) 一层层算出预测 ŷ,再用损失 L 量一下和真值 y 差多少,比如 L = ½(ŷ − y)²。 关键:L 对某个权重 w 的导数怎么求?w 藏在多层复合函数里——靠链式法则(chain rule),导数一层层乘回去。 定义每层的"误差" δ⁽ˡ⁾ = ∂L/∂z⁽ˡ⁾:损失对该层加权输入的敏感度。输出层的 δ⁽ᴸ⁾ 直接对损失求导得到,比如均方误差下 δ⁽ᴸ⁾ = (ŷ − y)·σ′(z⁽ᴸ⁾)。 然后把误差往回传: δ⁽ˡ⁾ = (W⁽ˡ⁺¹⁾)ᵀδ⁽ˡ⁺¹⁾ ⊙ σ′(z⁽ˡ⁾) 读法:后一层的误差,乘上权重矩阵转置(把"锅"按权重分摊回去),再乘本层激活函数的导数 σ′(激活函数在"踩刹车"的区域,误差传回来就衰减——梯度消失的源头就在这)。 拿到 δ,梯度就有了: ∂L/∂W⁽ˡ⁾ = δ⁽ˡ⁾(a⁽ˡ⁻¹⁾)ᵀ,∂L/∂b⁽ˡ⁾ = δ⁽ˡ⁾ 直觉:权重的梯度 = 本层分到的"锅" × 上一层的输入。锅越大、输入越强,这个参数背的责任越大。最后一步梯度下降: W ← W − η·∂L/∂W 前向算预测,反向算"每个参数背多少锅"——1986 年 Rumelhart、Hinton、Williams 的论文让多层网络第一次真正能训练。 一句话:反向传播 = 链式法则把输出层误差按权重"分锅",一路算回输入层。 下一期:Attention——让网络自己决定"该看哪里"。 配图:铅笔手稿第 11 期 ✏️
曝光 509 · 评论 1 · 点赞 5 · 书签 2 · 曝光/时 45.90044619122485