反向传播如何为?
摘要:1 懂了懂了,还是这样好理解。。。。那么反向传播的计算呢?通过y1, y2, y3 求出x1 ? 太好了!现在我们来推导反向传播的计算。这是深度学习中最核心的部分! 1. 问题设定 我们有一个简单的三层结构: 输入 x → 线性层(得 z)
1
懂了懂了,还是这样好理解。。。。那么反向传播的计算呢?通过y1, y2, y3 求出x1 ?
太好了!现在我们来推导反向传播的计算。这是深度学习中最核心的部分!
1. 问题设定
我们有一个简单的三层结构:
输入 x → 线性层(得 z)→ softmax → 交叉熵损失 L
其中:
$ z = Wx + b $(为了简化,我们先只考虑从 z 开始的反向传播)
$ p = \text{softmax}(z) $
$ L = -\sum y_i \log p_i $
我们要求 $ \frac{\partial L}{\partial z_j} $,也就是损失对原始输出 z 的梯度。
2. 已知关系
设类别数 $ C = 3 $,则:
\[p_i = \frac{e^{z_i}}{\sum_{k=1}^C e^{z_k}}
\]
\[L = -\sum_{i=1}^C y_i \log p_i
\]
3. 计算梯度 \(\frac{\partial L}{\partial z_j}\)
这是一个非常重要的结果,也是 softmax 与交叉熵结合的美妙之处。
