最近在重温CS231n的Assignment,采用SGD进行参数更新,在back propagation计算gradient时经常涉及到矩阵运算的的“求导”,在许多代码中该步骤仅需进行一次矩阵乘法,对其实现背后的推导没有进行说明,自己只有照抄死记硬背,但是毕竟只有明白背后的原理才能举一反三,在遇到其他需要对矩阵进行求导的情况时能够自己解决,因此今天我试着推导了一下,并且希望记录下来方便以后查阅:
首先简单介绍下Softmax:
假设在神经网络的最后一层输出为f(N,C),N表示train data的数目,C表示种类的数量,f[i,j]可以理解为第i个train data在j类的分数,而Softmax将以f为输入,然后计算各个train data属于j类的概率,再计算Loss(一种对Softmax的解释)。Softmax的Loss function为: