矩阵微分(Matrix Differential)

  在最优化问题中,经常涉及到导数或梯度的计算,比如 $\nabla(x’Ax)$,虽然自己最终也能推导出来等于 $(A+A’)x$,但总感觉在这块缺少系统的知识,有时还会想向量函数的导数又如何计算,矩阵函数呢?在网上搜了很久,似乎这块的知识点一直比较混乱,wikipedia的Matrix calculus词条也写得不好,甚至有人质疑。大约一年前又去中关村图书大厦遍寻矩阵相关的书籍,只找到清华出的一本《矩阵分析与应用》涉及到矩阵微分,手机拍了几十张照片回来细读仍不甚满意。无意间却从网上找到了这本书:Matrix Differential Calculus with Applications in Statistics and Econometrics,正是我想要的!(其实清华那本和wikipedia都提到了这本书,只是当时没注意。)书甚厚,博大精深,我把感兴趣的部分边看边做笔记,唯纸薄字陋难存久,便想着不如写成blog,可惜本是懒惰之人一拖便是一年,直到最近失意百无聊赖,终于完成。文章憎命达,诚如是。

1. 基础概念

  向量$x$的范数(norm)定义为:
$$||x||=(x’x)^{1/2}$$

  假设$a$为$n \times 1$向量,$A$为$n \times n$矩阵,$B$为$n \times m$矩阵,则$a’x$称为向量$x$的线性型,$x’Ax$称为$x$的二次型,$x’By$称为$x$和$y$的双线性型。
  不失一般性,我们假定$A$为对称阵,因为我们总可以用 $(A+A’)/2$ 来代替,推导如下:
$$x’(A+A’)x=x’Ax+x’A’x=x’Ax+(x’A’x)’=x’Ax+x’Ax=2x’Ax$$
  我们说,$A$是正定的,如果对所有$x\ne0$,有$x’Ax>0$;$A$是半正定的,如果对所有$x$,有$x’Ax\ge0$。负定的定义类似,不再赘述。
  易证 $BB’$ 和 $B’B$ 都是半正定的,因为 $x’B’Bx=(Bx)’Bx\ge0$

  方阵的迹(trace)定义为:

$$trA=\sum_{i=1}^na_{ii}$$

  矩阵的范数定义为:

$$||A||=(trA’A)^{1/2}$$

  矩阵的直积:
  $A$为$m\times n$矩阵,$B$为$p\times q$矩阵,则$A\otimes B$为$mp\times nq$的矩阵
$$
A\otimes B=
\left(\begin{array}{ccc}
a_{11}B & \cdots & a_{1n}B \\
\vdots & & \vdots \\
a_{m1}B & \cdots & a_{mn}B \\
\end{array}\right)
$$

  VEC算子:
  设$A$为$m\times n$矩阵,$a_i$为其第$i$列,则$vec\,A$为$mn\times 1$向量
$$
vec\,A=
\left(\begin{array}{c}
a_1 \\
a_2 \\
\vdots \\
a_n
\end{array}\right)
$$
  几个相关公式:
$$vec\,a’=vec\,a=a$$
$$vec\,ab’=b\otimes a$$
$$(vec\,A)’vec\,B=tr\,A’B$$
$$vec\,ABC=(C’\otimes A)vec\,B$$
$$vec\,AB=(B’\otimes I_m)vec\,A=(B’\otimes A)vec\,I_n=(I_q\otimes A)vec\,B,\,\,\,\,A:m\times n,B:n\times q$$

2. 微分(differential)的定义

2.1 标量函数的微分

  对于一维的情况,$\phi(x):R\rightarrow R$
$$\phi(c+u)=\phi(c)+u\phi’(c)+r_c(u)$$
$$\lim_{u\rightarrow 0}\frac{r_c(u)}{u}=0$$
  定义 $\phi$ 在$c$点基于增量$u$的一阶微分为
$$d\phi(c;u)=u\phi’(c)$$

2.2 向量函数的微分

  设函数$f:S\rightarrow R^m$,$S\subset R^n$,$c$是$S$的一个内点(interior point),$B(c;r)$ 是$S$中$c$点的一个邻域(n-ball),$u$是$R^n$中的一点,满足 $||u||<r$,因此有$c+u\in B(c;r)$,如果存在一个$m\times n$实矩阵$A$,满足
$$f(c+u)=f(c)+A(c)u+r_c(u)$$
对于所有的$u\in R^n$,$||u||<r$,且
$$\lim_{u\rightarrow0}\frac{r_c(u)}{||u||}=0$$
这样,函数$f$就被称为在$c$点可微。矩阵$A(c)$ 称为$f$在$c$点的一阶导数。$m\times 1$向量
$$df(c;u)=A(c)u$$
称为$f$在$c$点的一阶微分(基于增量$u$)。

2.3 向量函数的偏导数

  令$f=(f_1,f_2,\cdots,f_m)$,$t\in R$,如果极限
$$\lim_{t\rightarrow0}\frac{f_i(c+te_j)-f_i(c)}{t}$$
存在,则称之为$f_i$在$c$点的第$j$个偏导数,记为$D_jf_i(c)$,或者 $[\partial f_i(x)/\partial x_j]_{x=c}$ 或者 $\partial f_i(c)/\partial x_j$。

  如果$f$在$c$点可微,则所有的偏导数$D_jf_i(c)$ 存在。反过来不一定成立。

  如果$f$在$c$点可微,那么存在矩阵$A(c)$,
$$f(c+u)=f(c)+A(c)u+r_c(u)$$
这里忽略了一些限制条件,详见前面向量的微分。
  $A(c)$ 的每一项$a_{ij}(c)$ 其实就是相应的偏导数$D_jf_i(c)$,即
$$A(c)=Df(c)$$
这里的$Df(c)$ 被称作雅可比矩阵(Jacobian matrix),注意$A(c)$ 存在时$Df(c)$ 一定存在,反之未必。

2.4 梯度(gradient)的定义

  $Df(c)$ 的转置称为$f$在$c$点的梯度,用 $\nabla f(c)$ 表示,即
$$\nabla f(c)=(Df(c))’$$
  当向量函数$f:S\rightarrow R^m$ 退化成标量函数 $\phi:S\rightarrow R$ 时,雅可比矩阵退化成$1\times n$行向量$D\phi(c)$,梯度退化成$n\times 1$列向量 $\nabla\phi(c)$。

2.5 矩阵函数的微分

  现在终于轮到矩阵函数出场了,令 $F:S\rightarrow R^{m\times p}$,其中 $S\subset R^{n\times q}$。$C$是$S$的内点,且令 $B(C;r)=\{X:X\in R^{n\times q},||X-C||<r\}$,这里 $||X||=(trX’X)^{1/2}$。
  设点$U$是$R^{n\times q}$ 内一点,满足 $||U||<r$,因此有 $C+U\in B(C;r)$。如果存在一个 $mp\times nq$ 的矩阵 $A$,有
$$vec\,F(C+U)=vec\,F(C)+A(C)vec\,U+vec\,R_C(U)$$
对于所有 $U\in R^{n\times q}$,$||U||<r$,且
$$\lim_{U\rightarrow0}\frac{R_C(U)}{||U||}=0$$
那么,函数 $F$ 被称为在 $C$ 点可微。
  $m\times p$ 矩阵 $dF(C;U)$ 由下式定义
$$vec\,dF(C;U)=A(C)vec\,U$$
被称作 $F$ 在 $C$ 点基于增量 $U$ 的一阶微分,$mp\times nq$ 矩阵 $A(C)$ 被称作 $F$ 在 $C$ 点的一阶导数。

  可以看到,这里的做法就是将矩阵函数化为向量函数来处理。对于每个矩阵函数 $F$(自变量和函数值均为矩阵),
我们都可以构造一个对应的向量函数$f:vec\,S\rightarrow R^{mp}$(自变量和函数值均为向量)
$$f(vec\,X)=vec\,F(X)$$
易得
$$vec\,dF(C;U)=df(vec\,C;vec\,U)$$
我们定义 $F$ 在 $C$ 点的雅可比矩阵为
$$DF(C)=Df(vec\,C)$$
这是一个 $mp\times nq$ 的矩阵,其第 $ij$ 元素是$vec\,F$的第 $i$ 个分量对 $vec\,X$ 的第 $j$个分量在 $X=C$ 处的偏导数。

  当 $F$ 在 $C$ 点可微,有 $DF(C)=A(C)$

  设 $U$ 和 $V$ 是矩阵函数,$A$ 是矩阵常量,有
$$dA=0$$
$$d(\alpha U)=\alpha dU$$
$$d(U+V)=dU+dV$$
$$d(U-V)=dU-dV$$
$$d(UV)=(dU)V+UdV$$
$$dU’=(dU)’$$
$$d\,vec\,U=vec\,dU$$
$$d\,tr\,U=tr\,dU$$

2.6 链式法则

  同最简单的标量自变量的标量函数一样,链式法则同样成立。
  设函数$f:S\rightarrow R^m$,$S\subset R^n$,在 $c$ 点可微。$f(x)\in T$,设函数$g:T\rightarrow R^p$在 $b=f(c)$ 点可微。定义复合函数$h:S\rightarrow R^p$ 如下:
$$
h(x)=g(f(x))
$$
那么,$h$ 在 $c$ 点可微,并且
$$
Dh(c)=(Dg(b))(Df(c))
$$
$$
dh(c;u)=(Dg(b))(Df(c))u=(Dg(b))df(c;u)=dg(b;df(c;u))
$$
  对矩阵函数类似,省略掉函数定义,直接给出公式:
$$
H(X)=G(F(X))
$$
$$
DH(C)=(DG(B))(DF(C))
$$
$$
dH(C;U)=dG(B;dF(C;U))
$$
  我们还可以简写微分符号:
$$
y=g(t)
$$
$$
dy=dg(t;dt)
$$
$$
t=f(x)
$$
$$
y=g(f(x))\equiv h(x)
$$
$$
dy=dh(x;dx)=dg(f(x);df(x;dx))=dg(t;dt)
$$
  我们甚至可以不用$y$直接用$g$本身来简写:
$$
dg=dg(t;dt)
$$
  举例:
$$
y=\phi(x)=e^{x’x}\\
dy=de^{x’x}=e^{x’x}(dx’x)=e^{x’x}((dx)’x+x’dx)=(2e^{x’x}x’)dx
$$
$$
z=\phi(\beta)=(y-X\beta)’(y-X\beta)
$$
设$e=y-X\beta$,则
$$
dz=de’e=2e’de=2e’d(y-X\beta)\\
=-2e’Xd\beta=-2(y-X\beta)’Xd\beta
$$

3. 雅可比矩阵(Jacobian matrix)

  重新梳理一下雅克比矩阵的求法,基本思路如下:
  给定一个矩阵函数$F(X)$
  (1)计算$F(X)$ 的微分
  (2)向量化得到$d\,vec\,F(X)=A(X)d\,vec\,X$
  (3)得到雅克比矩阵$DF(X)=A(X)$

  我们再次明确一下自变量和函数的符号,见下表
$$
\begin{array}{cccc}
\hline
& Scalar & Vector & Matrix \\
& variable & variable & variable \\
\hline
Scalar\,function & \phi(\xi) & \phi(x) & \phi(X) \\
Vector\,function & f(\xi) & f(x) & f(X) \\
Matrix\,function & F(\xi) & F(x) & F(X) \\
\hline
\end{array}
$$

  雅克比矩阵本质上就是要解决如何排列 $F(X)$ 的所有偏导数 $\partial f_{st}(X)/\partial x_{ij}$ 的问题。
  先给出一些符号定义:
  $\phi$为标量函数,$X=(x_{ij})$ 为 $n\times q$ 矩阵,$F=(f_{st})$ 为 $m\times p$ 矩阵
$$
\frac{\partial\phi(X)}{\partial X}=
\left(\begin{array}{ccc}
\partial\phi/\partial x_{11} & \cdots & \partial\phi/\partial x_{1q} \\
\vdots & & \vdots \\
\partial\phi/\partial x_{n1} & \cdots & \partial\phi/\partial x_{nq} \\
\end{array}\right)
$$

$$
\frac{\partial F(X)}{\partial X}=
\left(\begin{array}{ccc}
\partial f_{11}/\partial X & \cdots & \partial f_{1p}/\partial X \\
\vdots & & \vdots \\
\partial f_{m1}/\partial X & \cdots & \partial f_{mp}/\partial X \\
\end{array}\right)
$$

  特别地,$\phi$为标量函数,$\partial\phi/\partial x$是列向量,$\partial\phi/\partial x’$ 是行向量;$m\times1$的向量函数$f(x)$,$x$为$n\times1$向量,可以有四种排列:$\partial f/\partial x’$($m\times n$矩阵),$\partial f’/\partial x$($n\times m$矩阵),$\partial f/\partial x$($mn\times 1$矩阵),$\partial f’/\partial x’$($1\times mn$矩阵)。
  下面给出雅克比矩阵的符号定义:
$$
D\phi(x)=(D_1\phi(x),\dots,D_n(x))=\frac{\partial\phi(x)}{\partial x’}
$$
$$
Df(x)=\frac{\partial f(x)}{\partial x’}
$$
$$
DF(X)=\frac{\partial\,vec\,F(X)}{\partial(vec\,X)’}
$$
  可以对比一下,$DF(X)$ 是 $mp\times nq$,而 $\partial F(X)/\partial X$ 是$mn\times pq$。
  举几个例子,$F(X)=AXB$,则
$$dF(X)=A(dX)B$$
$$d\,vec\,F(X)=(B’\otimes A)d\,vec\,X$$
  因此有
$$DF(X)=B’\otimes A$$
  令 $\phi(x)=x’Ax$,则
$$
d\phi(x)=d(x’Ax)=(dx)’Ax+x’Adx\\
=((dx)’Ax)’+x’Ax=x’A’dx+x’Adx\\
=x’(A+A’)dx
$$
  因此有
$$
D\phi(x)=x’(A+A’)
$$