两层神经网络正向 反向推导一、网络结构 输入 x 第一层全连接 W1 b1 → a1 ReLU 激活 → z1 第二层全连接 W2 b2 → a2 Softmax 输出 y 真实标签 t 损失 L二、正向传播 1 a1 x・W1 b12 z1 ReLU (a1) a10 时 z1a1 a1≤0 时 z103 a2 z1 · W2 b24 y softmax(a2)5 L -1/N · ΣΣ t · lny三、反向传播 从损失往回求梯度 1 末尾 SoftmaxWithLoss 层 da2 ∂L/∂a2 y - t2 第二层 Affine 层 ∂L/∂W2 z1 转置・da2 ∂L/∂b2 按样本维度求和 da2 dz1 da2・W2 转置3 ReLU 激活层 a10 导数为 1 a1≤0 导数为 0 da1 dz1 逐元素乘 ReLU 局部导数4 第一层 Affine 层 ∂L/∂W1 x 转置・da1 ∂L/∂b1 按样本维度求和 da1四、参数梯度下降更新 学习率 η W2 W2 - η・∂L/∂W2 b2 b2 - η・∂L/∂b2 W1 W1 - η・∂L/∂W1 b1 b1 - η・∂L/∂b1五、传播流程简写 L → da2 → W2 b2 梯度、dz1 dz1 → da1 → W1 b1 梯度反向传播的作用正向传播只能算出网络最终的损失误差无法知道每个权重、偏置需要修改多少。反向传播依靠链式求导从损失函数倒着逐层计算 每一层权重 W、偏置 b 对总损失 L 的偏导数梯度。拿到梯度后配合梯度下降算法按照学习率更新所有参数减小预测值与真实标签之间的误差。让神经网络可以迭代自主学习不断修正参数提升模型识别、分类的准确率。只执行一次反向遍历就能求出全部参数梯度计算效率高是训练深度神经网络的核心方法。