人工智能之数学基础:标量是如何对矩阵进行求导的?

2025-07-10 14:47 76

本文重点

标量关于矩阵地求导有什么用呢?在机器学习和深度学习中,损失函数地值常常是标量,而参数往往是矩阵W,那么如果我们要想完成模型地训练任务,那么就需要使用梯度下降地算法,那么就需要通过损失来对参数W进行求导,然后完成梯度下降参数更新,所以如果这个不会计算,那么很多时候对参数地更新地认识是不足地,由于本课程是机器学习和深度学习基础,那么在后面地课程中,我们通过这种方式来计算一下常见地机器学习模型和深度学习模型地损失对参数地求导,这样理解地就会更加地深刻了。

微分公式(标量、向量、矩阵)

如上所示,从向量到矩阵x,它们的全微分是不同的计算方式,其中第一个等号是全微分公式,第二个等号表达了矩阵导数与微分之间的关系,其中全微分df可以看作是∂f/∂X与微分矩阵dx之间的内积,也就是说tr(A^B)表示的是矩阵A和矩阵B的内积。

我们来看一下标量如何来对矩阵求导,我们可以看到如下的公式:

我们可以先来求出df,由于df是标量,所以tr(df)=df,那么对df加tr,此时就变成了右边的形式,当变到右边形式的时候,我们就可以知道括号中除去dX之外的就是(∂f/∂X)^T了,所以∂f/∂X就求出来了

步骤

第一步:求df

第二步:对求出来的df加tr

第三步,将tr括号内部的处理成,如下格式,也就是只有一个dX,其它的都在dX左边,那么此时剩下的就是∂f/∂X)^T了,所以∂f/∂X就求出来了

工具

这里面最麻烦的就是第一步和第三步,其中第一步我们需要先求出df,此时我们可以使用一些微分运算法则,然后就是第三步了,我们需要处理成dx的形式,那么此时需要使用tr工具,下面我们先来介绍一下:

微分运算法则

其中⑧和⑨表示的含义是一样的,只不过⑧中的x#是伴随矩阵,而另外一个是x可逆的时候的表达。⑤中⊙表示对位相乘。以上公式我们就拥有了,通过它们我们需要将df给求出来。

tr工具

tr就是迹的意思,使用如上的变换可以帮助我们完成第三步的变换,最终得到我们想要的结果

举例

我们要求标量f对矩阵X(m*n)的偏导数,M是l*l的对称矩阵,由于中间有一个Y,所以先求f对矩阵Y的偏导数:

如上所示我们可以看出来先求df,其中b和c一样,这里写重复了,然后c到d是这样的逻辑:

d(ABC)=d(A)BC+Ad(B)C+ABdC

由于M是常数,所以d(M)=0,所以可以由d得到e,然后对e的前半部分应用tr工具的第②个,然后可以得到f,由于M是对称矩阵,所以M^T=M,所以此时可以变成h,此时我们已经将格式变成了第三步了,那么此时我们可以和i对比,我们可以得到k,进而得到∂f/∂y

下面继续求∂f/∂x,我们下面看一下如何利用∂f/∂y来求出∂f/∂x:

我们直接使用a,然后将a中的Y替换成σ(wx),然后对dσ(wx)应用微分公式7,那么此时可以得到c,然后应用tr工具②可以得到d,现在我们已经到了关于x的第三步了,此时就可以和e对比,此时我们可以得到∂f/∂x为第f个公式,但是里面有∂f/∂y,那么此时我们将∂f/∂y代入到f,那么可以得到h,进一步把Y换成σ(wx),那么此时就可以得到最后一个公式i了,那么此时就是最终的∂f/∂x了,那么至此标量f关于矩阵x的求导就完毕了。

总结一下

这个看起来是很麻烦的,但是真正理解之后,发现就是三个步骤,第一个步骤求df,然后求tr(df),然后转成...dx地形式,那么最终就求出来了,但是还要注意地一点是,上面地例子做了两个这个步骤,之所以做两个这个步骤,是因为这是一个复合求导地问题,如果不是复合求导地话,问题会更加简单。

要想处理好这个问题地关键在于如何很好地明确这三个步骤,以及如何很好地使用微分工具以及tr工具,ok,以上就是标量关于矩阵地求导公式。

意昂体育介绍

产品展示

新闻动态

意昂体育