线性代数之矩阵微积分

前言

线性代数相关知识的学习笔记,仅供自己备忘及网友学习交流使用。

1.1 梯度

假设 f  ⁣ : R m × n → R f \colon \mathbb{R}^{m \times n} \rightarrow \mathbb{R} f:Rm×nR 是将维度为 m × n m \times n m×n 的矩阵作为输入并返回实数值的函数。 然后 f f f 的梯度(相对于 A ∈ R m × n A \in \mathbb{R}^{m \times n} ARm×n )是偏导数矩阵,定义如下:
∇ A f ( A ) ∈ R m × n = [ ∂ f ( A ) ∂ A 11 ∂ f ( A ) ∂ A 12 ⋯ ∂ f ( A ) ∂ A 1 n ∂ f ( A ) ∂ A 21 ∂ f ( A ) ∂ A 22 ⋯ ∂ f ( A ) ∂ A 2 n ⋮ ⋮ ⋱ ⋮ ∂ f ( A ) ∂ A m 1 ∂ f ( A ) ∂ A m 2 ⋯ ∂ f ( A ) ∂ A m n ] \nabla_{A} f(A) \in \mathbb{R}^{m \times n} = \begin{bmatrix} \frac{\partial{f(A)}}{\partial{A_{11}}} & \frac{\partial{f(A)}}{\partial{A_{12}}} & \cdots & \frac{\partial{f(A)}}{\partial{A_{1n}}} \\ \frac{\partial{f(A)}}{\partial{A_{21}}} & \frac{\partial{f(A)}}{\partial{A_{22}}} & \cdots & \frac{\partial{f(A)}}{\partial{A_{2n}}} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial{f(A)}}{\partial{A_{m1}}} & \frac{\partial{f(A)}}{\partial{A_{m2}}} & \cdots & \frac{\partial{f(A)}}{\partial{A_{mn}}} \end{bmatrix} Af(A)Rm×n=A11f(A)A21f(A)Am1f(A)A12f(A)A22f(A)Am2f(A)A1nf(A)A2nf(A)Amnf(A)
m × n m \times n m×n 矩阵:
( ∇ A f ( A ) ) i j = ∂ f ( A ) ∂ A i j (\nabla_{A} f(A))_{ij} = \frac{\partial{f(A)}}{\partial{A_{ij}}} (Af(A))ij=Aijf(A)

请注意, ∇ A f ( A ) \nabla_{A} f(A) Af(A) 的维度始终与 A A A 的维度相同。特殊情况,如果 A A A 只是向量 A ∈ R n A \in \mathbb{R}^n ARn ,则:
∇ x f ( x ) = [ ∂ f ( x ) ∂ x 1 ∂ f ( x ) ∂ x 2 ⋮ ∂ f ( x ) ∂ x n ] \nabla_{x} f(x) = \begin{bmatrix} \frac{\partial{f(x)}}{\partial{x_{1}}} \\ \frac{\partial{f(x)}}{\partial{x_{2}}} \\ \vdots \\ \frac{\partial{f(x)}}{\partial{x_{n}}} \end{bmatrix} xf(x)=x1f(x)x2f(x)xnf(x)

重要的是要记住,只有当函数是实值时,即如果函数返回标量值,才定义函数的梯度。例如 A ∈ R m × n A \in \mathbb{R}^{m \times n} ARm×n ,相对于 x x x ,我们不能取 A x Ax Ax 的梯度,因为这个量是向量值。 它直接从偏导数的等价性质得出:

  • ∇ x ( f ( x ) + g ( x ) ) = ∇ x f ( x ) + ∇ x g ( x ) \nabla_{x} (f(x) + g(x)) = \nabla_{x} f(x) + \nabla_{x} g(x) x(f(x)+g(x))=xf(x)+xg(x)
  • 对于 t ∈ R t \in \mathbb{R} tR ∇ x ( t f ( x ) ) = t ∇ x f ( x ) \nabla_{x} (tf(x)) = t\nabla_{x} f(x) x(tf(x))=txf(x)

原则上,梯度是偏导数对多变量函数的自然延伸。然而,在实践中,由于符号的原因,使用梯度有时是很困难的。例如,假设 A ∈ R m × n A \in \mathbb{R}^{m \times n} ARm×n 是一个固定系数矩阵,假设 b ∈ R m b \in \mathbb{R}^m bRm 是一个固定系数向量。设 f  ⁣ : R m × n → R f \colon \mathbb{R}^{m \times n} \rightarrow \mathbb{R} f:Rm×nR f ( z ) = z T z f(z) = z^Tz f(z)=zTz 定义的函数,因此 ∇ z f ( z ) = 2 z \nabla_{z} f(z) = 2z zf(z)=2z 。但现在考虑表达式:
∇ f ( A x ) \nabla f(Ax) f(Ax)

该表达式应该如何解释? 至少有两种可能性:

  1. 在第一个解释中,回想起 ∇ z f ( z ) = 2 z \nabla_{z} f(z) = 2z zf(z)=2z 。 在这里,我们将 ∇ f ( A x ) \nabla f(Ax) f(Ax) 解释为评估点 A x Ax Ax 处的梯度,因此:
    ∇ f ( A x ) = 2 ( A x ) = 2 A x ∈ R m \nabla f(Ax) = 2(Ax) = 2Ax \in \mathbb{R}^m f(Ax)=2(Ax)=2AxRm
  2. 在第二种解释中,我们将数量 f ( A x ) f(Ax) f(Ax) 视为输入变量 x x x 的函数。 更正式地说,设 g ( x ) = f ( A x ) g(x) = f(Ax) g(x)=f(Ax) 。 然后在这个解释中:
    ∇ f ( A x ) = ∇ x g ( x ) ∈ R n \nabla f(Ax) = \nabla_{x} g(x) \in \mathbb{R}^n f(Ax)=xg(x)Rn

在这里,我们可以看到这两种解释确实不同。 一种解释产生 m m m 维向量作为结果,而另一种解释产生 n n n 维向量作为结果! 我们怎么解决这个问题?

这里,关键是要明确我们要区分的变量(即是对标量求导还是对向量求导)。 在第一种情况下,我们将函数 f f f 与其参数 z z z 进行区分,然后替换参数 A x Ax Ax 。 在第二种情况下,我们将复合函数 g ( x ) = f ( A x ) g(x) = f(Ax) g(x)=f(Ax) 直接与 x x x 进行微分。

我们将第一种情况表示为 ∇ z f ( A x ) \nabla_{z} f(Ax) zf(Ax) ,第二种情况表示为 ∇ x f ( A x ) \nabla_{x} f(Ax) xf(Ax)
保持符号清晰是非常重要的,在以后练习推导的过程中你就会发现。

1.2 黑塞矩阵

假设 f  ⁣ : R n → R f \colon \mathbb{R}^{n} \rightarrow \mathbb{R} f:RnR 是一个函数,它接受 R n \mathbb{R}^{n} Rn 中的向量并返回实数。那么关于 x x x黑塞矩阵(也有翻译作海森矩阵),写做: H = ∇ x 2 f ( A x ) H = \nabla_{x}^2 f(Ax) H=x2f(Ax) ,或者简单地说, H H H n × n n \times n n×n 矩阵的偏导数:
∇ x 2 f ( A x ) ∈ R n × n = [ ∂ 2 f ( x ) ( ∂ x 1 ) 2 ∂ 2 f ( x ) ∂ x 1 ∂ x 2 ⋯ ∂ 2 f ( x ) ∂ x 1 ∂ x n ∂ 2 f ( x ) ∂ x 2 ∂ x 1 ∂ 2 f ( x ) ( ∂ x 2 ) 2 ⋯ ∂ 2 f ( x ) ∂ x 2 ∂ x n ⋮ ⋮ ⋱ ⋮ ∂ 2 f ( x ) ∂ x n ∂ x 1 ∂ 2 f ( x ) ∂ x n ∂ x 2 ⋯ ∂ 2 f ( x ) ( ∂ x n ) 2 ] \nabla_{x}^2 f(Ax) \in \mathbb{R}^{n \times n} = \begin{bmatrix} \frac{\partial^2 f(x)}{(\partial x_1)^2} & \frac{\partial^2 f(x)}{\partial x_1 \partial x_2} & \cdots & \frac{\partial^2 f(x)}{\partial x_1 \partial x_n} \\ \frac{\partial^2 f(x)}{\partial x_2 \partial x_1} & \frac{\partial^2 f(x)}{(\partial x_2)^2} & \cdots & \frac{\partial^2 f(x)}{\partial x_2 \partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial^2 f(x)}{\partial x_n \partial x_1} & \frac{\partial^2 f(x)}{\partial x_n \partial x_2} & \cdots & \frac{\partial^2 f(x)}{(\partial x_n)^2} \end{bmatrix} x2f(Ax)Rn×n=(x1)22f(x)x2x12f(x)xnx12f(x)x1x22f(x)(x2)22f(x)xnx22f(x)x1xn2f(x)x2xn2f(x)(xn)22f(x)
换句话说, ∇ x 2 f ( A x ) ∈ R n × n \nabla_{x}^2 f(Ax) \in \mathbb{R}^{n \times n} x2f(Ax)Rn×n ,其:
( ∇ x 2 f ( A x ) ) i j = ∂ 2 f ( x ) ∂ x i ∂ x j (\nabla_{x}^2 f(Ax))_{ij} = \frac{\partial^2 f(x)}{\partial x_i \partial x_j} (x2f(Ax))ij=xixj2f(x)
注意:黑塞矩阵通常是对称阵
∂ 2 f ( x ) ∂ x i ∂ x j = ∂ 2 f ( x ) ∂ x j ∂ x i \frac{\partial^2 f(x)}{\partial x_i \partial x_j} = \frac{\partial^2 f(x)}{\partial x_j \partial x_i} xixj2f(x)=xjxi2f(x)

与梯度相似,只有当 f ( x ) f(x) f(x) 为实值时才定义黑塞矩阵。

很自然地认为梯度与向量函数的一阶导数的相似,而黑塞矩阵与二阶导数的相似(我们使用的符号也暗示了这种关系)。 这种直觉通常是正确的,但需要记住以下几个注意事项。 首先,对于一个变量 f  ⁣ : R → R f \colon \mathbb{R} \rightarrow \mathbb{R} f:RR 的实值函数,它的基本定义:二阶导数是一阶导数的导数,即:
∂ 2 f ( x ) ∂ x 2 = ∂ ∂ x ∂ ∂ x f ( x ) \frac{\partial^2 f(x)}{\partial x^2} = \frac{\partial}{\partial{x}} \frac{\partial}{\partial x} f(x) x22f(x)=xxf(x)
然而,对于向量的函数,函数的梯度是一个向量,我们不能取向量的梯度,即:
∇ x ∇ x f ( x ) = ∇ x [ ∂ f ( x ) ∂ x 1 ∂ f ( x ) ∂ x 2 ⋮ ∂ f ( x ) ∂ x n ] \nabla_{x} \nabla_{x} f(x) = \nabla_{x} \begin{bmatrix} \frac{\partial{f(x)}}{\partial{x_{1}}} \\ \frac{\partial{f(x)}}{\partial{x_{2}}} \\ \vdots \\ \frac{\partial{f(x)}}{\partial{x_{n}}} \end{bmatrix} xxf(x)=xx1f(x)x2f(x)xnf(x)
上面这个表达式没有意义。 因此,黑塞矩阵不是梯度的梯度。 然而,下面这种情况却几乎是正确的:如果我们看一下梯度 ∇ x f ( x ) \nabla_{x} f(x) xf(x) 的第 i i i 个元素 ( ∇ x f ( x ) ) i = ∂ f ( x ) ∂ x i (\nabla_{x} f(x))_i = \frac{\partial f(x)}{\partial{x_i}} (xf(x))i=xif(x) ,并取关于 x x x 的梯度我们得到:
∇ x ∂ f ( x ) ∂ x i = [ ∂ 2 f ( x ) ∂ x i ∂ x 1 ∂ 2 f ( x ) ∂ x i ∂ x 2 ⋮ ∂ 2 f ( x ) ∂ x i ∂ x n ] \nabla_{x} \frac{\partial f(x)}{\partial{x_i}} = \begin{bmatrix} \frac{\partial^2{f(x)}}{\partial{x_{i}} \partial{x_{1}}} \\ \frac{\partial^2{f(x)}}{\partial{x_{i}} \partial{x_{2}}} \\ \vdots \\ \frac{\partial^2{f(x)}}{\partial{x_{i}} \partial{x_{n}}} \end{bmatrix} xxif(x)=xix12f(x)xix22f(x)xixn2f(x)
这是黑塞矩阵第 i i i 行(列),所以:
∇ x 2 f ( x ) = [ ∇ x ( ∇ x f ( x ) ) 1 ∇ x ( ∇ x f ( x ) ) 2 ⋯ ∇ x ( ∇ x f ( x ) ) n ] \nabla_{x}^2 f(x) = \begin{bmatrix} \nabla_{x} (\nabla_{x} f(x))_1 & \nabla_{x} (\nabla_{x} f(x))_2 & \cdots & \nabla_{x} (\nabla_{x} f(x))_n \end{bmatrix} x2f(x)=[x(xf(x))1x(xf(x))2x(xf(x))n]
简单地说:我们可以说由于: ∇ x 2 f ( x ) = ∇ x ( ∇ x f ( x ) ) T \nabla_{x}^2 f(x) = \nabla_{x} (\nabla_{x} f(x))^T x2f(x)=x(xf(x))T ,只要我们理解,这实际上是取的每个元素的梯度,而不是整个向量的梯度

最后,请注意,虽然我们可以对矩阵 A ∈ R n A \in \mathbb{R}^{n} ARn 取梯度,但是在这个地方,我们只考虑对向量 x ∈ R n x \in \mathbb{R}^{n} xRn 取黑塞矩阵。 这会方便很多(事实上,我们所做的任何计算都不要求我们找到关于矩阵的黑森方程),因为关于矩阵的黑森方程就必须对矩阵所有元素求偏导数 ∂ 2 f ( A ) ∂ A i j ∂ A k l \frac{\partial^2{f(A)}}{\partial{A_{ij}\partial{A_{kl}}}} AijAkl2f(A) ,将其表示为矩阵相当麻烦。

1.3 二次函数和线性函数的梯度和黑塞矩阵

对于 x ∈ R n x \in \mathbb{R}^{n} xRn , 设 f ( x ) = b T x f(x) = b^Tx f(x)=bTx 的某些已知向量 b ∈ R n b \in \mathbb{R}^{n} bRn ,则:
f ( x ) = ∑ i = 1 n b i x i f(x) = \sum_{i=1}^n b_i x_i f(x)=i=1nbixi
所以:
∂ f ( x ) ∂ x k = ∂ ∂ x k ∑ i = 1 n b i x i = b k \frac{\partial{f(x)}}{\partial{x_k}} = \frac{\partial}{\partial{x_k}} \sum_{i=1}^n b_i x_i = b_k xkf(x)=xki=1nbixi=bk
由此我们可以很容易地看出 ∇ x b T x = b \nabla_x b^Tx = b xbTx=b 。 这应该与单变量微积分中的类似情况进行比较,其中 ∂ ∂ x a x = a \frac{\partial}{\partial{x}} ax = a xax=a 。 现在考虑 A ∈ S n A \in \mathbb{S}^n ASn 的二次函数 f ( x ) = x T A x f(x) = x^TAx f(x)=xTAx 。 记住这一点:
f ( x ) = ∑ i = 1 n ∑ j = 1 n A i j x i x j f(x) = \sum_{i=1}^n \sum_{j=1}^n A_{ij}x_i x_j f(x)=i=1nj=1nAijxixj
为了取偏导数,我们将分别考虑包括 x k x_k xk x k 2 x_k^2 xk2 因子的项:
∂ f ( x ) ∂ x k = ∂ ∂ x k ∑ i = 1 n ∑ j = 1 n A i j x i x j \frac{\partial{f(x)}}{\partial{x_k}} = \frac{\partial}{\partial{x_k}} \sum_{i=1}^n \sum_{j=1}^n A_{ij}x_i x_j xkf(x)=xki=1nj=1nAijxixj
= ∂ ∂ x k [ ∑ i ≠ k ∑ j ≠ k A i j x i x j + ∑ i ≠ k A i k x i x k ∑ j ≠ k A j k x j x k + A k k x k 2 ] = \frac{\partial}{\partial{x_k}} \bigg[ \sum_{i \ne k} \sum_{j \ne k} A_{ij}x_i x_j + \sum_{i \ne k} A_{ik}x_i x_k \sum_{j \ne k} A_{jk}x_j x_k + A_{kk}x_k^2\bigg] =xk[i=kj=kAijxixj+i=kAikxixkj=kAjkxjxk+Akkxk2]
= ∑ i ≠ k A i k x i + ∑ j ≠ k A j k x j + 2 A k k x k = \sum_{i \ne k} A_{ik}x_i + \sum_{j \ne k} A_{jk}x_j + 2A_{kk}x_k =i=kAikxi+j=kAjkxj+2Akkxk
= ∑ i = 1 n A i k x i + ∑ j = 1 n A j k x j = \sum_{i=1}^n A_{ik}x_i + \sum_{j=1}^n A_{jk}x_j =i=1nAikxi+j=1nAjkxj
= 2 ∑ i = 1 n A k i x i = 2\sum_{i=1}^n A_{ki}x_i =2i=1nAkixi
$$
最后一个等式,是因为 A A A 是对称的(我们可以安全地假设,因为它以二次形式出现)。 注意, ∇ x f ( x ) \nabla_{x} f(x) xf(x) 的第 k k k 个元素是 A A A x x x 的第 k k k 行的内积。 因此, ∇ x x T A x = 2 A x \nabla_{x} x^TAx = 2Ax xxTAx=2Ax 。 同样,这应该提醒你单变量微积分中的类似事实,即 ∂ ∂ x a x 2 = 2 a x \frac{\partial}{\partial{x}} ax^2 = 2ax xax2=2ax

最后,让我们来看看二次函数 f ( x ) = x T A x f(x) = x^TAx f(x)=xTAx 的黑塞矩阵(显然,线性函数 b T x b^Tx bTx 的黑塞矩阵为零)。在这种情况下:
∂ 2 f ( x ) ∂ x k ∂ x l = ∂ ∂ x k [ ∂ f ( x ) ∂ x l ] = ∂ ∂ x k [ 2 ∑ i = 1 n A l i x i ] = 2 A l k = 2 A k l \frac{\partial^2{f(x)}}{\partial{x_k} \partial{x_l}} = \frac{\partial}{\partial{x_k}} \bigg[\frac{\partial{f(x)}}{\partial{x_l}} \bigg] = \frac{\partial}{\partial{x_k}} \bigg[2\sum_{i=1}^n A_{li}x_i \bigg] = 2A_{lk} = 2A_{kl} xkxl2f(x)=xk[xlf(x)]=xk[2i=1nAlixi]=2Alk=2Akl
因此,应该很清楚 ∇ x 2 x T A x = 2 A \nabla_{x}^2 x^TAx = 2A x2xTAx=2A ,这应该是完全可以理解的(同样类似于 ∂ 2 ∂ x 2 a x 2 = 2 a \frac{\partial^2}{\partial{x^2}} ax^2 = 2a x22ax2=2a 的单变量事实)。

简要概括起来:

  • ∇ x b T x = b \nabla_{x} b^Tx = b xbTx=b
  • ∇ x x T A x = 2 A x \nabla_{x} x^TAx = 2Ax xxTAx=2Ax ,(如果 A A A 是对称阵);
  • ∇ x 2 x T A x = 2 A \nabla_{x}^2 x^TAx = 2A x2xTAx=2A ,(如果 A A A 是对称阵)。
1.4 最小二乘法

让我们应用上一节中得到的方程来推导最小二乘方程。假设我们得到矩阵 A ∈ R m × n A \in \mathbb{R}^{m \times n} ARm×n (为了简单起见,我们假设 A A A 是满秩)和向量 b ∈ R m b \in \mathbb{R}^m bRm ,从而使 b ∉ R ( A ) b \notin \mathcal{R} (A) b/R(A) 。在这种情况下,我们将无法找到向量 x ∈ R n x \in \mathbb{R}^n xRn ,由于 A x = b Ax = b Ax=b ,因此我们想要找到一个向量 x x x ,使得 A x Ax Ax 尽可能接近 b b b ,用欧几里德范数的平方 ∣ A x − b ∣ 2 2 |Ax - b|_2^2 Axb22 来衡量。

使用公式 ∣ ∣ x ∣ ∣ 2 = x T x ||x||^2 = x^Tx x2=xTx ,我们可以得到:
∣ A x − b ∣ 2 2 = ( A x − b ) T ( A x − b ) |Ax - b|_2^2 = (Ax - b)^T (Ax - b) Axb22=(Axb)T(Axb)
= x T A T A x − x T A T b − b T A x + b T b = x^TA^TAx - x^TA^Tb - b^TAx + b^Tb =xTATAxxTATbbTAx+bTb
= x T A T A x − 2 b T A x + b T b = x^TA^TAx - 2b^TAx + b^Tb =xTATAx2bTAx+bTb
根据 x x x 的梯度,并利用上一节中推导的性质:
∇ x ( x T A T A x − 2 b T A x + b T b ) \nabla_{x} (x^TA^TAx - 2b^TAx + b^Tb) x(xTATAx2bTAx+bTb)
= ∇ x x T A T A x − 2 ∇ x b T A x + ∇ x b T b = \nabla_{x} x^TA^TAx -2\nabla_{x} b^TAx + \nabla_{x} b^Tb =xxTATAx2xbTAx+xbTb
= 2 A T A x − 2 A T b = 2A^TAx - 2A^Tb =2ATAx2ATb
将最后一个表达式设置为零,然后解出 x x x ,得到了正规方程:
x = ( A T A ) − 1 A T b x = (A^TA)^{-1}A^Tb x=(ATA)1ATb
这和我们在线性回归求解方程的最优解中得到的相同。

1.5 行列式的梯度

现在让我们考虑一种情况,我们找到一个函数相对于矩阵的梯度,也就是说,对于 A ∈ R n A \in \mathbb{R}^n ARn ,我们要找到 ∇ A ∣ A ∣ \nabla_{A} |A| AA 。回想一下我们对行列式的讨论:
∣ A ∣ = ∑ i = 1 n ( − 1 ) i + j A i j ∣ A ∼ i , ∼ j ∣ (for any  j ∈ 1 , 2 , . . . , n ) |A| = \sum_{i=1}^n (-1)^{i+j} A_{ij} |A_{\sim i, \sim j}| \quad \text{(for any $j \in 1, 2, ..., n$)} A=i=1n(1)i+jAijAi,j(for any j1,2,...,n)
所以:
∂ ∂ A k l ∣ A ∣ = ∂ ∂ A k l ∑ i = 1 n ( − 1 ) i + j A i j ∣ A ∼ i , ∼ j ∣ \frac{\partial}{\partial{A_{kl}}} |A| = \frac{\partial}{\partial{A_{kl}}} \sum_{i=1}^n (-1)^{i+j} A_{ij} |A_{\sim i, \sim j}| AklA=Akli=1n(1)i+jAijAi,j
= ( − 1 ) k + l ∣ A ∼ k , ∼ l ∣ = ( a d j ( A ) ) l k = (-1)^{k+l} |A_{\sim k, \sim l}| = (adj(A))_{lk} =(1)k+lAk,l=(adj(A))lk
从这里可以知道,它直接从伴随矩阵的性质得出:
∇ A ∣ A ∣ = ( a d j ( A ) ) T = ∣ A ∣ A − T \nabla_{A} |A| = (adj(A))^T = |A|A^{-T} AA=(adj(A))T=AAT
现在我们来考虑函数 f  ⁣ : S + + n → R f \colon \mathbb{S}_{++}^n \rightarrow \mathbb{R} f:S++nR f ( A ) = l o g ∣ A ∣ f(A) = log |A| f(A)=logA 。注意,我们必须将 f f f 的域限制为正定矩阵,因为这确保了 ∣ A ∣ > 0 |A| \gt 0 A>0 ,因此 ∣ A ∣ |A| A 的对数(这里一般指以 e 为底的自然对数)是实数。在这种情况下,我们可以使用链式法则(没什么奇怪的,只是单变量演算中的普通链式法则)来看看:
∂ l o g ∣ A ∣ ∂ A i j = ∂ l o g ∣ A ∣ ∂ ∣ A ∣ ∂ ∣ A ∣ ∂ A i j = 1 ∣ A ∣ ∂ ∣ A ∣ ∂ A i j \frac{\partial{log |A|}}{\partial{A_{ij}}} = \frac{\partial{log |A|}}{\partial{|A|}} \frac{\partial{|A|}}{\partial{A_{ij}}} = \frac{1}{|A|} \frac{\partial{|A|}}{\partial{A_{ij}}} AijlogA=AlogAAijA=A1AijA
从这一点我们可以明显看出:
∇ A l o g ∣ A ∣ = 1 ∣ A ∣ ∇ A ∣ A ∣ = A − 1 \nabla_{A} log |A| = \frac{1}{|A|} \nabla_{A} |A| = A^{-1} AlogA=A1AA=A1
我们可以在最后一个表达式中删除转置,因为 A A A 是对称的。注意与单值情况的相似性,其中 ∂ ∂ x l o g x = 1 / x \frac{\partial}{\partial{x}} log x = 1/x xlogx=1/x

1.6 特征值优化

最后,我们使用矩阵来演算,并以直接导致特征值/特征向量分析的方式求解优化问题。 考虑如下等式约束优化问题:
max ⁡ x ∈ R x T A x subject to  ∣ ∣ x ∣ ∣ 2 2 = 1 \max_{x \in \mathbb{R}} x^TAx \quad \text{subject to $||x||_2^2 = 1$} xRmaxxTAxsubject to ∣∣x22=1
对于对称矩阵 A ∈ S n A \in \mathbb{S}^n ASn 。求解等式约束优化问题的标准方法是采用拉格朗日形式,一种包含等式约束的目标函数,在这种情况下,拉格朗日函数可由以下公式给出:
L ( x , λ ) = x T A x − λ x T x \mathcal{L} (x, \lambda) = x^TAx - \lambda x^Tx L(x,λ)=xTAxλxTx
其中, λ \lambda λ 被称为与等式约束关联的拉格朗日乘子。可以确定,要使 x ∗ x^{*} x 成为问题的最佳点,拉格朗日的梯度必须在 x ∗ x^{*} x 处为零(这不是唯一的条件,但它是必需的)。也就是说:
∇ x L ( x , λ ) = ∇ x ( x T A x − λ x T x ) \nabla_{x} \mathcal{L} (x, \lambda) = \nabla_{x} (x^TAx - \lambda x^Tx) xL(x,λ)=x(xTAxλxTx)
= 2 A x − 2 λ x = 0 = 2Ax - 2\lambda x = 0 =2Ax2λx=0
请注意,这只是线性方程 A x = λ x Ax = \lambda x Ax=λx 。 这表明在约束条件 x T x = 1 x^Tx = 1 xTx=1 下,可能最大化(或最小化) x T A x x^TAx xTAx唯一点 A A A 的特征向量

1.7 常用矩阵求导公式

因为在机器学习中常见的是标量函数 y y y 对向量 x x x 的求导(Scalar-by-vector_identities),所以这里只给大家贴出这种情况下的求导公式:
888
更多情况下的求导公式,详见维基百科
https://en.wikipedia.org/wiki/Matrix_calculus

1.8 伴随矩阵

在线性代数中,一个方形矩阵的伴随矩阵是一个类似于逆矩阵的概念。如果二维矩阵可逆,那么它的逆矩阵和它的伴随矩阵之间只差一个系数,对多维矩阵也存在这个规律。然而,伴随矩阵对不可逆的矩阵也有定义,并且计算伴随矩阵不需要用到除法。

伴随矩阵的定义如下:

设矩阵 A = ( a i j ) n × n ∈ R n × n A = (a_{ij})_{n \times n} \in \mathbb{R}^{n \times n} A=(aij)n×nRn×n将矩阵 A A A 的元素 a i j a_{ij} aij 所在的第 i i i 行和第 j j j 列元素划去后,剩余的各元素按原来的排列顺序组成的 n − 1 n-1 n1 阶矩阵所确定的行列式称为元素 a i j a_{ij} aij 的余子式,记为 M i j M_{ij} Mij ,称 A i j = ( − 1 ) i + j M i j A_{ij} = (-1)^{i+j}M_{ij} Aij=(1)i+jMij 为元素 a i j a_{ij} aij代数余子式

方阵 A = ( a i j ) n × n ∈ R n × n A = (a_{ij})_{n \times n} \in \mathbb{R}^{n \times n} A=(aij)n×nRn×n 的各元素的代数余子式 A i j A_{ij} Aij 所构成的如下矩阵 A ∗ A^{*} A
A ∗ = [ A 11 A 21 ⋯ A n 1 A 12 A 22 ⋯ A n 2 ⋮ ⋮ ⋱ ⋮ A 1 n A 2 n ⋯ A n n ] A^{*} = \begin{bmatrix} A_{11} & A_{21} & \cdots & A_{n1} \\ A_{12} & A_{22} & \cdots & A_{n2} \\ \vdots & \vdots & \ddots & \vdots \\ A_{1n} & A_{2n} & \cdots & A_{nn} \end{bmatrix} A=A11A12A1nA21A22A2nAn1An2Ann
该矩阵 A ∗ A^{*} A 则称为矩阵 A A A 的伴随矩阵

伴随矩阵具有如下性质:

  • A A A 可逆,则有:
    A ∗ = ∣ A ∣ A − 1 , ( A ∗ ) ∗ = 1 ∣ A ∣ A A^{*} = |A| A^{-1}, \quad (A^{*})^{*} = \frac{1}{|A|} A A=AA1,(A)=A1A
    ( A ∗ ) − 1 = ( A − 1 ) ∗ (A^{*})^{-1} = (A^{-1})^{*} (A)1=(A1)
  • A ∗ A = A A ∗ = ∣ A ∣ E , ( A ∗ ) T = ( A T ) ∗ A^{*}A = AA^{*} = |A|E, \quad (A^{*})^{T} = (A^{T})^{*} AA=AA=AE,(A)T=(AT)
  • A A A n n n 阶方阵,则有:
    r a n k ( A ∗ ) = { n , if  r a n k ( A ) = n 1 , if  r a n k ( A ) = n − 1 0 , if  r a n k ( A ) < n − 1 rank(A^{*}) = \begin{cases} n, & \text{if $rank(A) = n$} \\ 1, & \text{if $rank(A) = n - 1$} \\ 0, & \text{if $rank(A) \lt n - 1$} \end{cases} rank(A)=n,1,0,if rank(A)=nif rank(A)=n1if rank(A)<n1
  • ∣ A ∗ ∣ = ∣ A ∣ n − 1 ( n ≥ 2 ) , ( k A ) ∗ = k n − 1 A ∗ , ( A ∗ ) ∗ = ∣ A ∣ n − 2 A ( n ≥ 3 ) |A^{*}| = |A|^{n - 1} (n \geq 2), \quad (kA)^{*} = k^{n-1} A^{*}, \quad (A^{*})^{*} = |A|^{n-2} A (n \geq 3) A=An1(n2),(kA)=kn1A,(A)=An2A(n3)
  • 2
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值