对神经网络有一定了解的同学知道:一般的神经网络的具体实现都是通过矩阵实现的,包括误差反向传导,梯度计算和更新等等,比如y=w∗x+by=w*x+by=w∗x+b,这里的所有变量都是矩阵,我们通常会叫www和bbb为参数矩阵,矩阵相乘首先效率比较高,然后也比较好操作,那么对于矩阵形式的导数该怎么计算?比如www矩阵的具体导数dwdwdw应该如何计算?
首先我们来看一个只有输入和输出层的网络,我们输入XXX矩阵大小为 N∗DN*DN∗D, NNN为batch的大小,也就是一次性输入的样本数,DDD为输入数据的维度,也就是输入层神经元的个数,输出矩阵YYY大小为N∗MN*MN∗M,MMM为输出数据的维度,也就是输出层神经元的个数, 可以看成输入数据X经过这个网络的变换,数据维度由DDD映射到了MMM维,那么www矩阵的大小自然就是D∗MD*MD∗M