给定函数f:Rn×1→Rf:\mathbb{R}^{n \times 1} \rightarrow \mathbb{R}f:Rn×1→R,对函数f(x)f(\mathbf{x})f(x)求微分,即∂f/∂x\partial{f}/\partial{\mathbf{x}}∂f/∂x究竟是一个行向量还是一个列向量呢?
个人理解,矩阵微分的关键仍然是对矩阵中的各个分量微分值,至于微分后组成什么形状,取决于不同应用场景下的convention。常见的有两种:即Jacobian form和Shape convention。
在Jacobian form下,∂f/∂x\partial{f}/\partial{\mathbf{x}}∂f/∂x是一个行向量。原因在于采用这种方式,利用chain rule推导微分比较方便。
在Shape convention下,∂f/∂x\partial{f}/\partial{\mathbf{x}}∂f/∂x是一个列向量。采用这个方式,用梯度法对x\mathbf{x}x进行更新时,可以不用转置,因此神经网络采用迭代时应用较多。