Softmax反向传播推导

Softmax公式及作用

Softmax函数,或称归一化指数函数,通常在机器学习的分类器中做输出层用。它可以将一个含任意实数的K维向量 “压缩”为另一个K维向量,使得每一个元素的范围都在之间,也就代表了相应输出的概率。

Softmax函数公式如下:

Softmax的反向传播推导

我们已知:

则由链式法则可得输入 的梯度:

其中为上一层反向传播回来的梯度。下面重点分析:

\begin{equation} \begin{aligned} \frac{\partial{y_j}}{\partial{z_i}} &= \frac{\partial}{\partial{z_i}}\left[ e^{z_j} \cdot \left( \sum_{k=1}^{K}{e^{z_k}} \right)^{-1} \right]\\ &= \left( \sum_{k=1}^{K}{e^{z_k}} \right)^{-1} e^{z_j} \delta_{ij} - e^{z_j} \left( \sum_{k=1}^{K}{e^{z_k}} \right)^{-2} \left( \sum_{k=1}^{K}{e^{z_k} \delta_{ik}} \right)\\ &= \left( \sum_{k=1}^{K}{e^{z_k}} \right)^{-1} e^{z_j} \delta_{ij} - e^{z_j} \left( \sum_{k=1}^{K}{e^{z_k}} \right)^{-2} e^{z_i}\\ &=y_j\delta_{ij} - y_iy_j \end{aligned} \end{equation}

上式中 if ,否则为0。带回原式:

\begin{equation} \begin{aligned} \frac{\partial{L}}{\partial{z_i}} &= \sum_{j=1}^{K}{ \frac{\partial{L}}{\partial{y_j}} (y_j\delta_{ij} - y_iy_j) }\\ &= \frac{\partial{L}}{\partial{y_i}} y_i - y_i \sum_{j=1}^{K}{\frac{\partial{L}}{\partial{y_j}}y_j} \end{aligned} \end{equation}

码公式辛苦,转载请注明出处。

你可能感兴趣的:(Softmax反向传播推导)