Softmax函数反向传播求导详细过程
图:纽约,曼哈顿(Manhattan, New York)
Guderian出品
回顾:Softmax函数正向传播
第一步:计算Z函数
对神经网络输出层(即第$ L $层)有$Z^{[L]}=W^{[L]}a^{[L-1]}+b^{[L]}$,其中$a^{[L-1]}$为上一层输出值。
第二步:计算Softmax函数
for i in range(1, C + 1): $\quad a_i^{[L]}=\frac{e^{Z_i^{[L]}}}{\sum_{k=1}^C e^{Z_k^{[L]}}}$
其中$C$表示要预测的类别数,上式满足$\sum_{i=1}^C a_i{[L]}=1$,即输入样本属于各类别的概率和为$1$。
第三步:计算损失函数
单个样本的损失函数为$L(a,y)=-\sum_{i=1}^C y_i\log{a_i}$,其中$y$为目标输出。
求导
第一步:对Softmax函数求导
对$\mathrm{Softmax}$函数求导,即求$\frac{\partial a_i}{\partial z_j}$:第$\mathrm{i}$项输出对第$\mathrm{j}$项输入的偏导数。
$\frac{\partial a_i}{\partial z_j}=\frac{\partial\frac{e^{z_i}}{\sum_{k=1}^C e^{z_k}}}{\partial z_j}$(省略$[ L ]$标记,默认为第$ L $层,下同),分类讨论:
$(1)$当$\mathrm{i=j}$时,把$a_i$分母中除$e^{z_j}$项外视作常量
$\frac{\partial a_i}{\partial z_j}=\frac{\partial\frac{e^{z_j}}{\sum_{k=1}^C e^{z_k}}}{\partial z_j}=(\frac{e^{z_j}}{e^{z_j}+\sum_{k\ne j}^C e^{z_k}})^\prime=a_j(1-a_j)$
$(2)$当$\mathrm{i\ne j}$时,把$a_i$分子和分母中除$e^{z_j}$项外视作常量
$\frac{\partial a_i}{\partial z_j}=\frac{\partial\frac{e^{z_i}}{\sum_{k=1}^C e^{z_k}}}{\partial z_j}=(\frac{e^{z_i}}{e^{z_j}+\sum_{k\ne j}^C e^{z_k}})^\prime=\frac{e^{z_i}e^{z_j}}{\sum_{k=1}^C e^{z_k}}=-a_i a_j$
第二步:对损失函数求导
对损失函数求导,即求$\frac{\partial L}{\partial z_j}$:损失函数对第$\mathrm{j}$项输入的偏导数。
$\because L(a,y)=-\sum_{i=1}^C y_i\log{a_i}$
$\therefore \frac{\partial L}{\partial z_j}=-\sum_{i=1}^C y_i\frac{\partial \log a_i}{\partial z_j}=-\sum_{i=1}^C \frac{y_i}{a_i}\frac{\partial a_i}{\partial z_j}$
(把$y_i$视作常量,再用链导法则转化为对$\mathrm{Softmax}$函数求导)
分别代入$(1)(2)$得:
$-\sum_{i=1}^C \frac{y_i}{a_i}\frac{\partial a_i}{\partial z_j}=-\frac{y_i}{a_i}\frac{\partial a_i}{\partial z_j} \, -\sum_{i=1,i \ne j}^C \frac{y_i}{a_i}\frac{\partial a_i}{\partial z_j}$
$\quad =$ $-\frac{y_j}{a_j}a_j(1-a_j)\,+\sum_{i=1,i \ne j}^C \frac{y_i}{a_i}a_ia_j$
$\quad =$ $-y_j\, +y_ja_j\, +\sum_{i=1,i \ne j}^C y_ia_j$
$\quad =$ $-y_j\, +\sum_{i=1}^C y_ia_j$ (合并$y_ja_j$至$\sum_{i=1,i \ne j}^C y_ia_j$中)
$\quad =$ $-y_i\, +a_j\sum_{i=1}^C y_i$ (提出$a_j$)
$\quad =$ $a_j-y_j$
从上述结果可以看出,$\mathrm{Softmax}$回归和$\mathrm{Logistic}$回归中损失函数求导后具有相同的形式,这也说明了$\mathrm{Softmax}$回归和$\mathrm{Logistic}$回归具有相同的本质,$\mathrm{Softmax}$回归是$\mathrm{Logistic}$的推广。
Reference and lots of thanks:https://www.cnblogs.com/zhaopAC/p/9539118.html