美文网首页
Softmax反向传播推导

Softmax反向传播推导

作者: YoungLittleFat | 来源:发表于2019-03-30 14:49 被阅读0次

Softmax公式及作用

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

Softmax函数公式如下:

\mathrm{y}=\frac{e^{\mathrm{z}}}{\sum_{i=1}^{K}{e^{z_i}}}

Softmax的反向传播推导

我们已知:

y_i = \frac{e^{z_i}}{\sum_{k=1}^{K}{e^{z_k}}}

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

\frac{\partial{L}}{\partial{z_i}} = \sum_{j=1}^{K}{ \frac{\partial{L}}{\partial{y_j}} \frac{\partial{y_j}}{\partial{z_i}} }

其中\frac{\partial{L}}{\partial{y_j}}为上一层反向传播回来的梯度。下面重点分析:

\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}

上式中\delta_{ij}=1 if i=j,否则为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反向传播推导

      本文链接:https://www.haomeiwen.com/subject/jtnjbqtx.html