跳至内容

微积分/矩阵上的微积分

来自维基教科书,开放世界中的开放书籍

本节概述了如何在矩阵上应用微积分。请注意,需要对线性代数有一个基本的理解——您应该熟悉矩阵操作的常用方法。

考虑一个nn矩阵和一个n乘1向量。例如,我们如何求?现在,如果您要天真地应用单变量微积分规则,一个合理的答案将是

毕竟,问题的相应标量形式确实是a。实际上,向量形式的答案是。但现在考虑以下问题:。如果您要采用标量形式,您可能会认为答案应该是。但这并不正确——实际上答案是,其中T表示向量x的转置。

本节的目的是触及这个美丽领域的表面——因为它不是大学里普通的微积分 3 线性代数课程会讲到的东西——但它有自己的特点。它有什么用?矩阵微积分在机器学习和计算金融等其他领域得到了广泛应用。它还可以帮助我们避免使用(可能很麻烦的)拉格朗日,并有效地将问题简化为单变量场景!

关于向量的导数

[编辑 | 编辑源代码]

在本节中,我们考虑涉及对向量x进行微分的问题。与上面一样,我们假设x是一个列向量。

思考这个问题的一种方法是将其简化为标量问题。请注意,我们可以将x视为标量的集合 。现在分别求 的偏导数,其中 。最后将它们组合在一起。我们实际上是在寻找 - 步骤相同(只是之前,x 的大小是 2 或 3,代表 i、j 和 k 坐标系)。

所以让我们从上面的例子中尝试一下。我们想要找到,对于所有的

... 也就是A。对于每个i都一样。

现在,如果你将所有偏导数组合起来会得到什么?就像你如何找到 ,你会得到 。这仅仅是A!实际上,这就是为什么

迈向矩阵的第一步

[编辑 | 编辑源代码]

现在我们回到另一个问题:.

假设A是一个2×2的矩阵,并表示A。使用x相同的记法,进行矩阵乘法

A的每个元素求偏导数(这等效于求雅可比矩阵)。对于,求

但是,接下来该怎么做呢?如何将结果“组合”起来?显然,我们遗漏了一些东西。

f的维度

[编辑 | 编辑源代码]

让我们退一步,问一个问题:给定一个向量 的维度应该是什么?

考虑上面的例子。我们有两个变量:A 有 4 个元素(2x2)和 x 有 2 个元素,我们想要找到 。很容易看出 f 的维度是一个列向量,其中 ,其中 。因此,我们还需要考虑关于 的导数。换句话说, 是一个 2x2 向量,对应于矩阵 A 的每个元素的偏导数。

总共有多少个元素?对于构成 f 的两个标量中的每一个,都有四个偏导数。这导致了 (2 * (2 * 2)) = 8 个元素 - 实际上是一个张量(可以看作是更高阶的矩阵)。这就是事情开始变得混乱的地方,但幸运的是,这是一个足够简单的例子。

获得解决方案

[edit | edit source]

所以让我们利用上面的观察来解决这个问题。

首先考虑 ,其中 。计算各个偏导数: 。类似地,

现在,我们如何将这些组合起来?问题是 是一个张量,但我们只能使用矩阵显示二维表示。因此,让我们取与 对应的“面”。我们可以用矩阵表示我们上面找到的偏导数集合(即雅可比矩阵):。类似地,。我们观察到什么?这仅仅是 (注意从列向量到行向量的变化)!事实上,这就是我们证明 的方法。

在实践中

[编辑 | 编辑源代码]

在实践中,你无需每次都进行所有这些工作来寻找矩阵的导数。相反,存在许多矩阵手册(有时也称为速查表),它们提供了一张关于矩阵的常见导数的表格,而这正是你在实践中可能需要的。 这里有一个

一个例子

[编辑 | 编辑源代码]

考虑 Markowitz 问题。假设我们有n支股票,我们希望分配权重 。每支股票之间的互元素协方差为 ,对于所有 。假设我们想以传统的方式解决这个问题。那么优化问题是最小化 ,受约束条件的约束,虽然很重要,但我们这里不提。

由于存在双重求和,解决这个问题可能很麻烦。 让我们尝试矩阵微积分。 令 **w** 为一个 N 行 1 列的向量, 为一个 N 行 N 列的矩阵。 上述问题可以简化为最小化 ,你只需要对 **w** 求导数! 如上所示,使用矩阵微积分手册,,这比计算单个偏导数要优雅得多。

华夏公益教科书