如果题主学过泛函分析,可能会更容易理解矩阵对矩阵的求导。
定义:假设和为赋范向量空间,是一个映射,那么在可导的意思是说存在一个有界线性算子,使得对于任意的都存在,对于满足的都有.我们称为在点的导数。
取一些特殊情况,比如当的时候就被称作梯度;当的时候被称作雅可比,等等。从这个一般化的定义出发的好处是,我们可以更好的理解矩阵到矩阵映射的"导数",甚至是从一个函数空间到另一个函数空间的“导数"。
以上定义有一个等价的表述,往往计算起来更方便:对于距离足够近的点,即,有
(注:此处应该理解为线性算子在这个点的值,而不是乘以。不过在有限维空间所有线性算子都可以用矩阵表述,在这个点的值便正好可以表述为矩阵与向量的乘积!这个notation正好巧妙的一致。)
例子:假设是一个的映射,其中为n维对称阵的空间。那么的导数就应该是的一个有界线性算子。究竟是什么样可以从定义出发计算:
所以我们有,这个就是在点的导数。这个函数(有界线性算子)可以用张量来表述,这里就不详细说了。
例子:最小二乘问题,是一个的映射。
所以我们有,这个就是在点的导数。在这种情况下,这个有界线性算子可以用梯度来表述(recall Riesz表示定理):
所以梯度。
例子:单层神经网络,是一个的映射。这里是一个elementwise的logistic function。算起来
其中为Hadamard乘积(elementwise乘积),为长度为m的元素均为1的向量。这里我使用了一维logistic函数的导数公式。所以
。
注:这个例子的倒数第二步到最后一步的计算影射了微积分中的一个重要的思想——链式法则(chain rule)。链式法则能够成立的本质是和。
最后,由于和是同构的,所以可以通过vectorization把矩阵映射到中再进行计算,见 @SS Wang 的答案。