矩阵论专栏:专栏(文章按照顺序排序)
做机器学习的几乎避免不了矩阵求导,尤其是神经网络方面的,反向传播算法说白了就是在做矩阵求导,拿到代价函数对模型中每个参数矩阵的导数,才能找到一个下降方向,进而更新这些参数来降低损失。虽然实际编程时大可不必考虑这些繁琐的数学计算,但是要真正理解凸优化中的一些方法,掌握这个基本的数学工具还是有必要的。
【1】下面的探讨均在实数域内进行。
【2】虽然 R n R^n Rn定义为实数域 R R R中的 n n n个数组成的有序数组 ( x 1 , x 2 , . . . , x n ) (x_1,x_2,...,x_n) (x1,x2,...,xn)的集合,但当我们讨论 R n R^n Rn中向量时,总是约定它是列向量的形式,即总是一个 n × 1 n\times 1 n×1矩阵。这样更符合一般的习惯,比如线性方程组的表达: A x = b , A ∈ R m × n , x ∈ R n , b ∈ R m Ax=b, A\in R^{m\times n},x\in R^n,b\in R^m Ax=b,A∈Rm×n,x∈Rn,b∈Rm。
【3】我们讨论三种情形。向量对向量求导、矩阵对标量求导、标量对矩阵求导。标量对标量求导、标量对向量求导、向量对标量求导都可以看作是向量对向量求导的特例,而向量对矩阵求导、矩阵对向量求导和矩阵对矩阵求导涉及到高阶张量的运算,可以通过把矩阵向量化,从而把高阶运算用低阶运算代替。这样的方法需要向量化运算vec和kronecker积的基础,本篇博客不引入这两个概念,后面的博客探讨矩阵函数的微分时再引入。
【4】符号 ∂ y ∂ x \frac{\partial y}{\partial x} ∂x∂y表示偏导,本文为表示方便,用 ∂ y ∂ x ( a ) \frac{\partial y}{\partial x}(a) ∂x∂y(a)表示在点 a a a处的偏导的值(原本的表示应为 ∂ y ∂ x ∣ x = a \frac{\partial y}{\partial x}|_{x=a} ∂x∂y∣x=a或 ∂ f ( x ) ∂ x ∣ x = a \frac{\partial f(x)}{\partial x}|_{x=a} ∂x∂f(x)∣x=a)
- 矩阵微分与矩阵求导
- 布局约定
- 向量对向量求导
- 可微与可导的关系
- 复合函数的链式求导法则
- 微分的形式不变性
- 例子
- 矩阵对标量求导
- 标量对矩阵求导
- 应用
- 线性回归问题的最小二乘解
- 多层前馈网络(BP网络)的反向传播
- 循环神经网络(RNN)的反向传播
矩阵微分与矩阵求导
布局约定
详细请见数学-矩阵计算(4)两种布局。在本文中,多数情况下采用分子布局。分子布局和分母布局实际上无需刻意区分,只要两种布局采用不同的符号就可以了。然而,有时候有些作者对分子布局和分母布局采用相同的符号,这时候就必须事先知道作者采用的是什么样的布局,才能确定该符号表达的布局是怎样的。例如,设有m维向量 y y y和n维向量 x x x, ∂ y ∂ x \frac{\partial y}{\partial x} ∂x∂y如果采用的是分子布局,则是 m × n m\times n m×n矩阵,而如果采用的是分母布局,则是 n × m n\times m n×m矩阵。在本文中,我们通过符号来区分分子布局和分母布局(实际上,有了符号的约定以后,可以抛却这两个概念不谈)。
首先,正如文章开头所提,我们默认一个未显式指出究竟是行还是列的向量为列的形式,即任取 x ∈ R n x\in R^n x∈Rn,我们默认 x x x是列向量。接下来,导数的布局通过微商符号的分子和分母的形式推定。以向量对向量的偏导为例, ∂ y ∂ x T \frac{\partial y}{\partial x^T} ∂xT∂y分子上(即 y y y)是列向量,分母上(即 x T x^T xT)是行向量,则在该矩阵的布局中, y y y的分量 y 1 , y 2 , . . . , y m y_1,y_2,...,y_m y1,y2,...,ym是按列排布的, x x x的分量 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn是按行排布的(这里真不知道怎么表达才好,实际上我是想说 ∂ y 1 , ∂ y 2 , . . . ∂ y m \partial y_1,\partial y_2,...\partial y_m ∂y1,∂y2,...∂ym这样的顺序总是出现在矩阵的一列上, ∂ x 1 , ∂ x 2 , . . . ∂ x n \partial x_1,\partial x_2,...\partial x_n ∂x1,∂x2,...∂xn总是出现在矩阵的一行上),即 ∂ y ∂ x T = [ ∂ y 1 ∂ x 1 ∂ y 1 ∂ x 2 . . . ∂ y 1 ∂ x n ∂ y 2 ∂ x 1 ∂ y 2 ∂ x 2 . . . ∂ y 2 ∂ x n . . . . . . . . . . . . ∂ y m ∂ x 1 ∂ y m ∂ x 2 . . . ∂ y m ∂ x n ] \frac{\partial y}{\partial x^T}=\begin{bmatrix}\frac{\partial y_1}{\partial x_1}&\frac{\partial y_1}{\partial x_2}&...&\frac{\partial y_1}{\partial x_n}\\\frac{\partial y_2}{\partial x_1}&\frac{\partial y_2}{\partial x_2}&...&\frac{\partial y_2}{\partial x_n}\\...&...&...&...\\\frac{\partial y_m}{\partial x_1}&\frac{\partial y_m}{\partial x_2}&...&\frac{\partial y_m}{\partial x_n}\end{bmatrix} ∂xT∂y=⎣⎢⎢⎢⎡∂x1∂y1∂x1∂y2...∂x1∂ym∂x2∂y1∂x2∂y2...∂x2∂ym............∂xn∂y1∂xn∂y2...∂xn∂ym⎦⎥⎥⎥⎤
这就是所谓的分子布局。而 ∂ y T ∂ x = [ ∂ y 1 ∂ x 1 ∂ y 2 ∂ x 1 . . . ∂ y m ∂ x 1 ∂ y 1 ∂ x 2 ∂ y 2 ∂ x 2 . . . ∂ y m ∂ x 2 . . . . . . . . . . . . ∂ y 1 ∂ x n ∂ y 2 ∂ x n . . . ∂ y m ∂ x n ] \frac{\partial y^T}{\partial x}=\begin{bmatrix}\frac{\partial y_1}{\partial x_1}&\frac{\partial y_2}{\partial x_1}&...&\frac{\partial y_m}{\partial x_1}\\\frac{\partial y_1}{\partial x_2}&\frac{\partial y_2}{\partial x_2}&...&\frac{\partial y_m}{\partial x_2}\\...&...&...&...\\\frac{\partial y_1}{\partial x_n}&\frac{\partial y_2}{\partial x_n}&...&\frac{\partial y_m}{\partial x_n}\end{bmatrix} ∂x∂yT=⎣⎢⎢⎢⎡∂x1∂y1∂x2∂y1...∂xn∂y1∂x1∂y2∂x2∂y2...∂xn∂y2............∂x1∂ym∂x2∂ym...∂xn∂ym⎦⎥⎥⎥⎤就是所谓的分母布局。这两种布局间的关系是 ∂ y T ∂ x = ( ∂ y ∂ x T ) T \frac{\partial y^T}{\partial x}=(\frac{\partial y}{\partial x^T})^T ∂x∂yT=(∂xT∂y)T。总结一下就是,我们可以通过符号推定导数的布局是什么样的,在符号(微商)中,一个向量本来是什么形式,它在导数中就是怎样的排布,矩阵也同理。例如设有标量 x ∈ R x\in R x∈R和矩阵 Y = [ Y i j ] ∈ R m × n Y=[Y_{ij}]\in R^{m\times n} Y=[Yij]∈Rm×n,则 ∂ x ∂ Y = [ ∂ x ∂ Y 11 ∂ x ∂ Y 12 . . . ∂ x ∂ Y 1 n ∂ x ∂ Y 21 ∂ x ∂ Y 22 . . . ∂ x ∂ Y 2 n . . . . . . . . . . . . ∂ x ∂ Y m 1 ∂ x ∂ Y m 2 . . . ∂ x ∂ Y m n ] \frac{\partial x}{\partial Y}=\begin{bmatrix}\frac{\partial x}{\partial Y_{11}}&\frac{\partial x}{\partial Y_{12}}&...&\frac{\partial x}{\partial Y_{1n}}\\\frac{\partial x}{\partial Y_{21}}&\frac{\partial x}{\partial Y_{22}}&...&\frac{\partial x}{\partial Y_{2n}}\\...&...&...&...\\\frac{\partial x}{\partial Y_{m1}}&\frac{\partial x}{\partial Y_{m2}}&...&\frac{\partial x}{\partial Y_{mn}}\end{bmatrix} ∂Y∂x=⎣⎢⎢⎡∂Y11∂x∂Y21∂x...∂Ym1∂x∂Y12∂x∂Y22∂x...∂Ym2∂x............∂Y1n∂x∂Y2n∂x...∂Ymn∂x⎦⎥⎥⎤而 ∂ x ∂ Y T = [ ∂ x ∂ Y 11 ∂ x ∂ Y 21 . . . ∂ x ∂ Y m 1 ∂ x ∂ Y 12 ∂ x ∂ Y 22 . . . ∂ x ∂ Y m 2 . . . . . . . . . . . . ∂ x ∂ Y 1 n ∂ x ∂ Y 2 n . . . ∂ x ∂ Y m n ] \frac{\partial x}{\partial Y^T}=\begin{bmatrix}\frac{\partial x}{\partial Y_{11}}&\frac{\partial x}{\partial Y_{21}}&...&\frac{\partial x}{\partial Y_{m1}}\\\frac{\partial x}{\partial Y_{12}}&\frac{\partial x}{\partial Y_{22}}&...&\frac{\partial x}{\partial Y_{m2}}\\...&...&...&...\\\frac{\partial x}{\partial Y_{1n}}&\frac{\partial x}{\partial Y_{2n}}&...&\frac{\partial x}{\partial Y_{mn}}\end{bmatrix} ∂YT∂x=⎣⎢⎢⎡∂Y11∂x∂Y12∂x...∂Y1n∂x∂Y21∂x∂Y22∂x...∂Y2n∂x............∂Ym1∂x∂Ym2∂x...∂Ymn∂x⎦⎥⎥⎤
向量对向量求导
在谈求导前,有必要谈一下微分的概念。一方面在后面可以看到可微是比可导更强的概念,在可微的条件下运用一阶微分的形式不变性可以简化复合函数的求导运算;另一方面,凸优化中的很多结论都是以可微为前提的,仅仅可导是远远不够的。
可微的定义:
- 定义1:设 c ∈ R n c\in R^n c∈Rn,函数 f : D → R m f:D\rightarrow R^m f:D→Rm在 c c c的某个半径为 r > 0 r>0 r>0的邻域 U ( c ) U(c) U(c)内有定义。若存在矩阵 A ∈ R m × n A\in R^{m\times n} A∈Rm×n,使得对于任意的 u ∈ U ˚ ( 0 ) u\in \mathring U(0) u∈U˚(0)( 0 ∈ R n 0\in R^n 0∈Rn是零向量,去心邻域 U ˚ ( 0 ) \mathring U(0) U˚(0)的半径为 r r r)有如下关系成立: f ( c + u ) − f ( c ) = A u + ο ( ∣ ∣ u ∣ ∣ 2 ) f(c+u)-f(c)=Au+\omicron(||u||_2) f(c+u)−f(c)=Au+ο(∣∣u∣∣2),其中 ο ( ∣ ∣ u ∣ ∣ 2 ) \omicron(||u||_2) ο(∣∣u∣∣2)是当 u → 0 u\rightarrow 0 u→0时的一个高阶无穷小,则称 f f f在点 c c c处是可微的,称 u u u的线性函数 A u Au Au(又叫 f f f在点 c c c处的线性主部)为 f f f在点 c c c处的微分,记作 d f ( c ) = A u df(c)=Au df(c)=Au,并称 A A A是 f f f在点 c c c处的一阶导数矩阵,简称一阶导数。
【注1】“ f f f在 c c c的某个半径为 r > 0 r>0 r>0的邻域 U ( c ) U(c) U(c)内有定义”中“某个”的意思是指存在一个邻域 U ( c ) U(c) U(c),它在 f f f的定义域内
【注2】当点 c c c给定后, A A A就是一个常矩阵,即要求 A A A与 u u u是无关的, A A A可以看做是 c c c的函数 A ( c ) A(c) A(c)
【注3】微分的基本思想是将非线性函数局部线性化。 f ( c + u ) − f ( c ) f(c+u)-f(c) f(c+u)−f(c)可以看做是 f f f在点 c c c处,自变量改变量为 u u u时的函数值改变量(因变量改变量),若忽略高阶无穷小项 ο ( ∣ ∣ u ∣ ∣ 2 ) \omicron(||u||_2) ο(∣∣u∣∣2)则得到 f ( c + u ) − f ( c ) = A u f(c+u)-f(c)=Au f(c+u)−f(c)=Au,即在点 c c c的某个邻域内(即“局部”的意思)将 f f f用一个线性函数 A u Au Au替代
【注4】符号 d f ( c ) df(c) df(c)直观上可以理解为 f f f在点 c c c处的一个微小改变量,相应地 u u u则是 f f f的自变量的一个微小改变量,常记作 d c dc dc,故微分的式子可以写作 d f ( c ) = A d c df(c)=Adc df(c)=Adc(为什么自变量的改变量要采用微分符号d,实际上后面证明了一阶微分的形式不变性后就知道了)
【注5】高阶无穷小 ο ( ∣ ∣ u ∣ ∣ 2 ) \omicron(||u||_2) ο(∣∣u∣∣2)在 u = 0 u=0 u=0处是无定义的,常补充定义 ο ( 0 ) = 0 \omicron(0)=0 ο(0)=0,这样定义中的关系式无论 u u u是否为零都成立
可微是比可导更强的概念,我们在说一个多元向量值函数可导时,往往是指它的每个分量对自变量的每个分量的偏导都存在。再严格一点的,就是指函数的每个分量对自变量的任意方向导数都存在。可微一定可导,可导不一定可微(在一元数量值函数的情形下,这个结论退化成可微与可导等价)。下面给出偏导的概念并证明可微与可导间的关系。
偏导的定义:
- 定义2:设 c ∈ R n c\in R^n c∈Rn,函数 f : D → R m f:D\rightarrow R^m f:D→Rm在 c c c的某个半径为 r > 0 r>0 r>0的邻域 U ( c ) U(c) U(c)内有定义。设 0 ≠ t < r 0\neq t0=t<r,称极限(若存在的话) lim t → 0 f i ( c + t e j ) − f i ( c ) t \lim_{t\rightarrow 0}\frac{f_i(c+te_j)-f_i(c)}{t} t→0limtfi(c+tej)−fi(c)(其中 e j e_j ej是第j个标准向量,其第 j j j个分量为1,其他分量为零)为 f f f的分量 f i f_i fi在点 c c c处对自变量 x ∈ R n x\in R^n x∈Rn的第 j j j个分量的偏导,记作 ∂ f i ∂ x j ( c ) \frac{\partial f_i}{\partial x_j}(c) ∂xj∂fi(c)。
- 定义3(Jacobian矩阵):函数 f : D → R m ( D ⊆ R n ) f:D\rightarrow R^m(D\subseteq R^n) f:D→Rm(D⊆Rn)在点 c c c处对自变量 x x x的Jacobian矩阵定义如下 ∂ f ∂ x T ( c ) = [ ∂ f 1 ∂ x 1 ( c ) ∂ f 1 ∂ x 2 ( c ) . . . ∂ f 1 ∂ x n ( c ) ∂ f 2 ∂ x 1 ( c ) ∂ f 2 ∂ x 2 ( c ) . . . ∂ f 2 ∂ x n ( c ) . . . . . . . . . . . . ∂ f m ∂ x 1 ( c ) ∂ f m ∂ x 2 ( c ) . . . ∂ f m ∂ x n ( c ) ] \frac{\partial f}{\partial x^T}(c)=\begin{bmatrix}\frac{\partial f_1}{\partial x_1}(c)&\frac{\partial f_1}{\partial x_2}(c)&...&\frac{\partial f_1}{\partial x_n}(c)\\\frac{\partial f_2}{\partial x_1}(c)&\frac{\partial f_2}{\partial x_2}(c)&...&\frac{\partial f_2}{\partial x_n}(c)\\...&...&...&...\\\frac{\partial f_m}{\partial x_1}(c)&\frac{\partial f_m}{\partial x_2}(c)&...&\frac{\partial f_m}{\partial x_n}(c)\end{bmatrix} ∂xT∂f(c)=⎣⎢⎢⎢⎡∂x1∂f1(c)∂x1∂f2(c)...∂x1∂fm(c)∂x2∂f1(c)∂x2∂f2(c)...∂x2∂fm(c)............∂xn∂f1(c)∂xn∂f2(c)...∂xn∂fm(c)⎦⎥⎥⎥⎤
【注1】当 f f f是数量值函数时,Jacobian矩阵退化为一维行向量,即 f f f的梯度的转置(梯度常常写作列向量);需要注意的是,Jacobian矩阵的第i行就是 f f f的第i个分量 f i f_i fi的梯度的转置;当 f f f是一元数量值函数时,Jacobian矩阵退化为一元情形下的导数的概念。
【注2】需要区分Jacobian矩阵和梯度矩阵的概念:梯度矩阵是Jacobian矩阵的转置
可微与可导间的关系:
- 定理1:设 c ∈ R n c\in R^n c∈Rn,若 f f f在点 c c c处可微,则 f f f在 c c c处的Jacobian矩阵存在,且导数矩阵 A ( c ) = ∂ f ∂ x T ( c ) A(c)=\frac{\partial f}{\partial x^T}(c) A(c)=∂xT∂f(c)。
证明:
根据可微的定义,存在 r > 0 r>0 r>0,对任意 u u u满足 0 < ∣ ∣ u ∣ ∣ 2 < r 0<||u||_20<∣∣u∣∣2<r,有 f ( c + u ) − f ( c ) = A ( c ) u + ο ( ∣ ∣ u ∣ ∣ 2 ) f(c+u)-f(c)=A(c)u+\omicron (||u||_2) f(c+u)−f(c)=A(c)u+ο(∣∣u∣∣2),故 lim u → 0 f ( c + u ) − f ( c ) − A ( c ) u ∣ ∣ u ∣ ∣ 2 = 0 \lim_{u\rightarrow 0}\frac{f(c+u)-f(c)-A(c)u}{||u||_2}=0 u→0lim∣∣u∣∣2f(c+u)−f(c)−A(c)u=0令 u = t e j , t < r u=te_j,tu=tej,t<r,则 lim t → 0 f ( c + t e j ) − f ( c ) − t A ( c ) e j t = 0 \lim_{t\rightarrow 0}\frac{f(c+te_j)-f(c)-tA(c)e_j}{t}=0 t→0limtf(c+tej)−f(c)−tA(c)ej=0故对任意 i = 1 , 2 , . . . , m i=1,2,...,m i=1,2,...,m及 j = 1 , 2 , . . . , n j=1,2,...,n j=1,2,...,n有 ∂ f i ∂ x j ∣ c = lim t → 0 f i ( c + t e j ) − f i ( c ) t = e i T A ( c ) e j = a i j \frac{\partial f_i}{\partial x_j}|_c=\lim_{t\rightarrow 0}\frac{f_i(c+te_j)-f_i(c)}{t}=e_i^TA(c)e_j=a_{ij} ∂xj∂fi∣c=t→0limtfi(c+tej)−fi(c)=eiTA(c)ej=aij其中 a i j a_{ij} aij是导数矩阵 A ( c ) A(c) A(c)的 ( i , j ) (i,j) (i,j)元素。得证。
这个定理告诉我们,可微一定可导,且导数矩阵就是Jacobian矩阵。可导不一定可微,有很多反例,这里不再列举。反向传播算法是以复合函数链式求导法则为基础的,实际上,链导法是复合函数微分法则的一个附带结果,下面给出复合函数微分法则,并导出复合函数的链导法则。
- 定理2:若函数 f : D f → R m ( D f ⊆ R n ) f:D_f\rightarrow R^m(D_f\subseteq R^n) f:Df→Rm(Df⊆Rn)在点 a a a处可微,函数 g : D g → R r ( D g ⊇ R ( f ) ) g:D_g\rightarrow R^r(D_g\supseteq R(f)) g:Dg→Rr(Dg⊇R(f))在点 b = f ( a ) b=f(a) b=f(a)处可微,则复合函数 g ∘ f g\circ f g∘f在点 a a a处可微,且 d g ( f ( a ) ) = B ( b ) A ( a ) d a dg(f(a))=B(b)A(a)da dg(f(a))=B(b)A(a)da,其中 B ( b ) B(b) B(b)是 g g g在点 b b b处的导数, A ( a ) A(a) A(a)是 f f f在点 a a a处的导数
证明:(下面涉及到的所有高阶无穷小都在点 0 0 0处补充定义 ο ( 0 ) = 0 \omicron(0)=0 ο(0)=0)
由可微的定义,存在半径为 r 1 > 0 r_1>0 r1>0的邻域 U ( a ) U(a) U(a),使得任意 ∣ ∣ u ∣ ∣ 2 < r 1 ||u||_2∣∣u∣∣2<r1有 f ( a + u ) − f ( a ) = A ( a ) u + ο 1 ( ∣ ∣ u ∣ ∣ 2 ) ( 1 ) f(a+u)-f(a)=A(a)u+\omicron_1 (||u||_2)\qquad (1) f(a+u)−f(a)=A(a)u+ο1(∣∣u∣∣2)(1)存在半径为 r 2 > 0 r_2>0 r2>0的邻域 U ( b ) U(b) U(b),其中 b = f ( a ) b=f(a) b=f(a),使得任意 ∣ ∣ v ∣ ∣ 2 < r 2 ||v||_2∣∣v∣∣2<r2有 g ( b + v ) − g ( b ) = B ( b ) v + ο 2 ( ∣ ∣ v ∣ ∣ 2 ) ( 2 ) g(b+v)-g(b)=B(b)v+\omicron_2 (||v||_2)\qquad (2) g(b+v)−g(b)=B(b)v+ο2(∣∣v∣∣2)(2)令 Δ f = f ( a + u ) − f ( a ) \Delta f=f(a+u)-f(a) Δf=f(a+u)−f(a),令(1)式两端 u → 0 u\rightarrow 0 u→0得到 Δ f → 0 \Delta f\rightarrow 0 Δf→0,故 ∣ ∣ Δ f ∣ ∣ 2 → 0 ||\Delta f||_2\rightarrow 0 ∣∣Δf∣∣2→0,由极限的定义知存在 r 3 > 0 r_3>0 r3>0使得任意 ∣ ∣ u ∣ ∣ 2 < r 3 ||u||_2∣∣u∣∣2<r3有 ∣ ∣ Δ f ∣ ∣ 2 < r 2 ||\Delta f||_2∣∣Δf∣∣2<r2。由(2)知可将 v = Δ f v=\Delta f v=Δf代入,得 g ( b + Δ f ) − g ( b ) = B ( b ) Δ f + ο 2 ( ∣ ∣ Δ f ∣ ∣ 2 ) g(b+\Delta f)-g(b)=B(b)\Delta f+\omicron_2 (||\Delta f||_2) g(b+Δf)−g(b)=B(b)Δf+ο2(∣∣Δf∣∣2),即 g ( f ( a + u ) ) − g ( f ( a ) ) = B ( b ) A ( a ) u + α g(f(a+u))-g(f(a))=B(b)A(a)u+\alpha g(f(a+u))−g(f(a))=B(b)A(a)u+α对任意 ∣ ∣ u ∣ ∣ 2 < min { r 1 , r 3 } ||u||_2<\min\{r_1,r_3\} ∣∣u∣∣2<min{ r1,r3}成立,其中 α = B ( b ) ο 1 ( ∣ ∣ u ∣ ∣ 2 ) + ο 2 ( ∣ ∣ Δ f ∣ ∣ 2 ) \alpha=B(b)\omicron_1 (||u||_2)+\omicron_2(||\Delta f||_2) α=B(b)ο1(∣∣u∣∣2)+ο2(∣∣Δf∣∣2)。要证明 g ∘ f g\circ f g∘f在点 a a a处可微,只需证明 lim u → 0 α ∣ ∣ u ∣ ∣ 2 = 0 \lim_{u\rightarrow 0}\frac{\alpha}{||u||_2}=0 limu→0∣∣u∣∣2α=0即可。由于 lim u → 0 B ( b ) ο 1 ( ∣ ∣ u ∣ ∣ 2 ) ∣ ∣ u ∣ ∣ 2 = 0 \lim_{u\rightarrow 0}B(b)\frac{\omicron_1(||u||_2)}{||u||_2}=0 limu→0B(b)∣∣u∣∣2ο1(∣∣u∣∣2)=0,故只需证明 lim u → 0 ο 2 ( ∣ ∣ Δ f ∣ ∣ 2 ) ∣ ∣ u ∣ ∣ 2 = 0 \lim_{u\rightarrow 0}\frac{\omicron_2(||\Delta f||_2)}{||u||_2}=0 limu→0∣∣u∣∣2ο2(∣∣Δf∣∣2)=0。引入函数 Q ( u ) = { ο 2 ( ∣ ∣ Δ f ∣ ∣ 2 ) ∣ ∣ Δ f ∣ ∣ 2 Δ f ≠ 0 0 Δ f = 0 Q(u)=\begin{cases}\frac{\omicron_2(||\Delta f||_2)}{||\Delta f||_2}&\Delta f\neq 0\\0&\Delta f=0\end{cases} Q(u)={ ∣∣Δf∣∣2ο2(∣∣Δf∣∣2)0Δf=0Δf=0,其中 ∣ ∣ u ∣ ∣ 2 < min { r 1 , r 3 } ||u||_2<\min\{r_1,r_3\} ∣∣u∣∣2<min{ r1,r3},可以证明当 u → 0 u\rightarrow 0 u→0时 Q ( u ) → 0 Q(u)\rightarrow 0 Q(u)→0,此处略去,证明见注释。由于 ο 2 ( ∣ ∣ Δ f ∣ ∣ 2 ) ∣ ∣ u ∣ ∣ 2 = Q ( u ) ∣ ∣ Δ f ∣ ∣ 2 ∣ ∣ u ∣ ∣ 2 \frac{\omicron_2(||\Delta f||_2)}{||u||_2}=Q(u)\frac{||\Delta f||_2}{||u||_2} ∣∣u∣∣2ο2(∣∣Δf∣∣2)=Q(u)∣∣u∣∣2∣∣Δf∣∣2, ∣ ∣ Δ f ∣ ∣ 2 ∣ ∣ u ∣ ∣ 2 ⩽ ∣ ∣ A ( a ) u ∣ ∣ 2 ∣ ∣ u ∣ ∣ 2 + ∣ ∣ ο 1 ( ∣ ∣ u ∣ ∣ 2 ) ∣ ∣ 2 ∣ ∣ u ∣ ∣ 2 \frac{||\Delta f||_2}{||u||_2}\leqslant \frac{||A(a)u||_2}{||u||_2}+\frac{||\omicron_1(||u||_2)||_2}{||u||_2} ∣∣u∣∣2∣∣Δf∣∣2⩽∣∣u∣∣2∣∣A(a)u∣∣2+∣∣u∣∣2∣∣ο1(∣∣u∣∣2)∣∣2,由矩阵不等式 A ( a ) T A ( a ) ⩽ λ ( a ) I A(a)^TA(a)\leqslant \lambda(a)I A(a)TA(a)⩽λ(a)I,其中 λ ( a ) \lambda(a) λ(a)是 A ( a ) T A ( a ) A(a)^TA(a) A(a)TA(a)的最大特征值,得到 ∣ ∣ A ( a ) u ∣ ∣ 2 ∣ ∣ u ∣ ∣ 2 ⩽ λ ( a ) \frac{||A(a)u||_2}{||u||_2}\leqslant \sqrt{\lambda(a)} ∣∣u∣∣2∣∣A(a)u∣∣2⩽λ(a) ,又由 lim u → 0 ∣ ∣ ο 1 ( ∣ ∣ u ∣ ∣ 2 ) ∣ ∣ 2 ∣ ∣ u ∣ ∣ 2 = 0 \lim_{u\rightarrow 0}\frac{||\omicron_1(||u||_2)||_2}{||u||_2}=0 limu→0∣∣u∣∣2∣∣ο1(∣∣u∣∣2)∣∣2=0,得到 ∣ ∣ ο 1 ( ∣ ∣ u ∣ ∣ 2 ) ∣ ∣ 2 ∣ ∣ u ∣ ∣ 2 \frac{||\omicron_1(||u||_2)||_2}{||u||_2} ∣∣u∣∣2∣∣ο1(∣∣u∣∣2)∣∣2是局部有界的,故 ∣ ∣ Δ f ∣ ∣ 2 ∣ ∣ u ∣ ∣ 2 \frac{||\Delta f||_2}{||u||_2} ∣∣u∣∣2∣∣Δf∣∣2是局部有界的。综上有 lim u → 0 ο 2 ( ∣ ∣ Δ f ∣ ∣ 2 ) ∣ ∣ u ∣ ∣ 2 = 0 \lim_{u\rightarrow 0}\frac{\omicron_2(||\Delta f||_2)}{||u||_2}=0 limu→0∣∣u∣∣2ο2(∣∣Δf∣∣2)=0,证毕。
【注1】矩阵不等式见矩阵的正定性
【注2】 lim u → 0 Q ( u ) = 0 \lim_{u\rightarrow 0}Q(u)=0 limu→0Q(u)=0的证明:
利用 l i m u → 0 Δ f = 0 lim_{u\rightarrow 0}\Delta f=0 limu→0Δf=0以及 l i m v → 0 ο 2 ( ∣ ∣ v ∣ ∣ 2 ) ∣ ∣ v ∣ ∣ 2 = 0 lim_{v\rightarrow 0}\frac{\omicron_2(||v||_2)}{||v||_2}=0 limv→0∣∣v∣∣2ο2(∣∣v∣∣2)=0这两个条件即可。 ∀ ϵ > 0 , ∃ δ > 0 , ∀ v \forall \epsilon>0,\exist \delta>0,\forall v ∀ϵ>0,∃δ>0,∀v满足 0 < ∣ ∣ v ∣ ∣ 2 < δ 0<||v||_2<\delta 0<∣∣v∣∣2<δ都有 ∣ ∣ ο 2 ( ∣ ∣ v ∣ ∣ 2 ) ∣ ∣ v ∣ ∣ 2 ∣ ∣ 2 < ϵ ||\frac{\omicron_2(||v||_2)}{||v||_2}||_2<\epsilon ∣∣∣∣v∣∣2ο2(∣∣v∣∣2)∣∣2<ϵ, ∃ δ 1 > 0 , ∀ u \exist \delta_1>0,\forall u ∃δ1>0,∀u满足 0 < ∣ ∣ u ∣ ∣ 2 < δ 1 0<||u||_2<\delta_1 0<∣∣u∣∣2<δ1都有 ∣ ∣ Δ f ∣ ∣ 2 < δ ||\Delta f||_2<\delta ∣∣Δf∣∣2<δ,故由如下结论: ∀ ϵ > 0 , ∃ δ 1 > 0 , ∀ u \forall \epsilon >0,\exist \delta_1>0,\forall u ∀ϵ>0,∃δ1>0,∀u满足 0 < ∣ ∣ u ∣ ∣ 2 < δ 1 0<||u||_2<\delta_1 0<∣∣u∣∣2<δ1,若 Δ f = 0 \Delta f=0 Δf=0,则 ∣ ∣ Q ( u ) ∣ ∣ 2 = 0 < ϵ ||Q(u)||_2=0<\epsilon ∣∣Q(u)∣∣2=0<ϵ,若 0 < ∣ ∣ Δ f ∣ ∣ 2 < δ 0<||\Delta f||_2<\delta 0<∣∣Δf∣∣2<δ,则 ∣ ∣ Q ( u ) ∣ ∣ 2 = ∣ ∣ ο 2 ( ∣ ∣ Δ f ∣ ∣ 2 ) ∣ ∣ Δ f ∣ ∣ 2 ∣ ∣ 2 < ϵ ||Q(u)||_2=||\frac{\omicron_2(||\Delta f||_2)}{||\Delta f||_2}||_2<\epsilon ∣∣Q(u)∣∣2=∣∣∣∣Δf∣∣2ο2(∣∣Δf∣∣2)∣∣2<ϵ,即无论 ∣ ∣ Δ f ∣ ∣ 2 ||\Delta f||_2 ∣∣Δf∣∣2是否为零都有 ∣ ∣ Q ( u ) ∣ ∣ 2 < ϵ ||Q(u)||_2<\epsilon ∣∣Q(u)∣∣2<ϵ,故 lim u → 0 Q ( u ) = 0 \lim_{u\rightarrow 0}Q(u)=0 limu→0Q(u)=0。
下面由复合函数的微分法则导出复合函数的链式求导法则:
- 推论:若函数 y = f ( x ) ( D f ⊆ R n , y ∈ R m ) y=f(x)(D_f\subseteq R^n,y\in R^m) y=f(x)(Df⊆Rn,y∈Rm)在点 a a a处可微,函数 z = g ( y ) ( D g ⊇ R ( f ) , z ∈ R r ) z=g(y)(D_g\supseteq R(f),z\in R^r) z=g(y)(Dg⊇R(f),z∈Rr)在点 b = f ( a ) b=f(a) b=f(a)处可微,则复合函数 g ∘ f g\circ f g∘f在点 a a a处可微,且其在点 a a a处的导数 ∂ z ∂ x T ( a ) = ∂ z ∂ y T ( b ) ∂ y ∂ x T ( a ) \frac{\partial z}{\partial x^T}(a)=\frac{\partial z}{\partial y^T}(b)\frac{\partial y}{\partial x^T}(a) ∂xT∂z(a)=∂yT∂z(b)∂xT∂y(a)
通过一阶微分的形式不变性,我们可以通过求微分来计算复合函数的导数,这在很多情况下是有用的,例如,在矩阵求导中通过计算微分,可以一次性得到多个参变量矩阵的导数。下面给出一阶微分的形式不变性:
- 一阶微分的形式不变性:
设函数 f : D f → R m ( D f ⊆ R n ) f:D_f\rightarrow R^m(D_f\subseteq R^n) f:Df→Rm(Df⊆Rn)在点 a a a处可微,其微分为 d f ( a ) = A ( a ) d a df(a)=A(a)da df(a)=A(a)da,函数 g : D g → R r ( D g ⊇ R ( f ) ) g:D_g\rightarrow R^r(D_g\supseteq R(f)) g:Dg→Rr(Dg⊇R(f))在点 b = f ( a ) b=f(a) b=f(a)处可微,其微分为 d g ( b ) = B ( b ) d b dg(b)=B(b)db dg(b)=B(b)db,则由复合函数的微分法则知,函数 g ∘ f g\circ f g∘f在点 a a a处的微分为 d g ( f ( a ) ) = B ( b ) A ( a ) d a dg(f(a))=B(b)A(a)da dg(f(a))=B(b)A(a)da。注意到 d f ( a ) = A ( a ) d a df(a)=A(a)da df(a)=A(a)da,于是 d g ( f ( a ) ) = B ( b ) A ( a ) d a = B ( b ) d f ( a ) dg(f(a))=B(b)A(a)da=B(b)df(a) dg(f(a))=B(b)A(a)da=B(b)df(a),即 d g ( b ) = B ( b ) d b dg(b)=B(b)db dg(b)=B(b)db,这恰好就是 g g g在 b b b处的微分的形式。这说明无论函数 g g g的变量是自变量还是中间变量,其微分形式就和 g g g只有自变量时一样(这里可以这样理解:给定一个函数,其微分是一个线性函数,即一个线性映射,即使该函数与其他函数复合,这并不影响该函数本身的微分这个线性映射)。
【注】一阶微分的形式不变性说明了为什么自变量的微小增量也用微分符号d表示: d f ( a ) = A ( a ) d a df(a)=A(a)da df(a)=A(a)da中, d a da da既能表示 f f f在 a a a处的微分这个线性函数的自变量(这是人为规定的),又能表示把 f f f的自变量当成因变量(中间变量),其取值为 a a a时的微小增量(这是由形式不变性决定的)。
对于函数有多个自变量的情况,例如 y = f ( x 1 , x 2 , . . . , x n ) y=f(x_1,x_2,...,x_n) y=f(x1,x2,...,xn),其中 x 1 , x 2 , . . . , x n x_1,x_2,...,x_n x1,x2,...,xn分别是 m 1 , m 2 , . . . , m n m_1,m_2,...,m_n m1,m2,...,mn维向量,实际上可以看成只有一个自变量 x x x,其中 x = ( x 1 T , x 2 T , . . . , x n T ) T ∈ R ∑ i = 1 n m i x=(x_1^T,x_2^T,...,x_n^T)^T\in R^{\sum_{i=1}^nm_i} x=(x1T,x2T,...,xnT)T∈R∑i=1nmi, f f f的微分的定义仍适用。实际上,可以把 f f f的微分的定义等价地拆开写成 f ( x 1 + u 1 , x 2 + u 2 , . . . , x n + u n ) − f ( x 1 , x 2 , . . . , x n ) = A 1 u 1 + A 2 u 2 + . . . + A n u n + ο ( ∣ ∣ u 1 ∣ ∣ 2 2 + ∣ ∣ u 2 ∣ ∣ 2 2 + . . . + ∣ ∣ u n ∣ ∣ 2 2 ) \begin{aligned}&f(x_1+u_1,x_2+u_2,...,x_n+u_n)-f(x_1,x_2,...,x_n)\\=&A_1u_1+A_2u_2+...+A_nu_n+\omicron(\sqrt{||u_1||_2^2+||u_2||_2^2+...+||u_n||_2^2})\end{aligned} =f(x1+u1,x2+u2,...,xn+un)−f(x1,x2,...,xn)A1u1+A2u2+...+Anun+ο(∣∣u1∣∣22+∣∣u2∣∣22+...+∣∣un∣∣22 )相应地微分写成 d y = A 1 d x 1 + A 2 d x 2 + . . . + A n d x n = A d x dy=A_1dx_1+A_2dx_2+...+A_ndx_n=Adx dy=A1dx1+A2dx2+...+Andxn=Adx,其中 A i A_i Ai是 y y y对 x i x_i xi的导数, A = [ A 1 A 2 . . . A n ] , d x = ( d x 1 T , d x 2 T , . . . , d x n T ) T A=\begin{bmatrix}A_1&A_2&...&A_n\end{bmatrix},dx=(dx_1^T,dx_2^T,...,dx_n^T)^T A=[A1A2...An],dx=(dx1T,dx2T,...,dxnT)T。
对于函数有多个中间变量的情况,复合函数的微分法则与一阶微分的形式不变性仍适用。例如 z = g ( y 1 , y 2 , . . . , y m ) z=g(y_1,y_2,...,y_m) z=g(y1,y2,...,ym), y i = f i ( x 1 , x 2 , . . . , x n ) y_i=f_i(x_1,x_2,...,x_n) yi=fi(x1,x2,...,xn),若 f 1 , f 2 , . . . , f m f_1,f_2,...,f_m f1,f2,...,fm都在点 x 0 = ( c 1 T , c 2 T , . . , c n T ) T x_0=(c_1^T,c_2^T,..,c_n^T)^T x0=(c1T,c2T,..,cnT)T可微, g g g在点 ( f 1 T ( x 0 ) , f 2 T ( x 0 ) , . . . , f m T ( x 0 ) ) T (f_1^T(x_0),f_2^T(x_0),...,f_m^T(x_0))^T (f1T(x0),f2T(x0),...,fmT(x0))T可微,那么复合函数 z = g ( f 1 ( x ) , f 2 ( x ) , . . . , f m ( x ) ) , x = ( x 1 T , x 2 T , . . , x n T ) T z=g(f_1(x),f_2(x),...,f_m(x)),x=(x_1^T,x_2^T,..,x_n^T)^T z=g(f1(x),f2(x),...,fm(x)),x=(x1T,x2T,..,xnT)T是否在点 x 0 x_0 x0可微呢?答案是肯定的,有如下定理保证:
- 定理3:函数 f : D f → R m ( D f ⊆ R n ) f:D_f\rightarrow R^m(D_f\subseteq R^n) f:Df→Rm(Df⊆Rn)在点 a a a处可微的充要条件为 f f f的每个分量都在点 a a a处可微(证明略)
【注】比较 f f f的微分 d f df df和分量 f i f_i fi的微分 d f i df_i dfi可知, d f = ( d f 1 , d f 2 , . . . , d f m ) T df=(df_1,df_2,...,df_m)^T df=(df1,df2,...,dfm)T
对于上述情形,利用该定理可知 f i f_i fi的任意分量都在 x 0 x_0 x0可微( i = 1 , 2 , . . , m i=1,2,..,m i=1,2,..,m),再利用该定理知 f = ( f 1 T , f 2 T , . . . , f m T ) T f=(f_1^T,f_2^T,...,f_m^T)^T f=(f1T,f2T,...,fmT)T在 x 0 x_0 x0可微,于是由复合函数微分法则得到上述结论。由于多个中间变量可以看成只有一个中间变量,故一阶微分的形式不变性仍成立。
例1:设 z = f ( x , y ) = x T A y , x ∈ R m , y ∈ R n z=f(x,y)=x^TAy,x\in R^m,y\in R^n z=f(x,y)=xTAy,x∈Rm,y∈Rn,求 ∂ z ∂ x \frac{\partial z}{\partial x} ∂x∂z和 ∂ z ∂ y \frac{\partial z}{\partial y} ∂y∂z。
法1:根据梯度矩阵(梯度)的定义
∂ z ∂ x = [ ∂ z ∂ x 1 ⋮ ∂ z ∂ x m ] = [ ∂ ∑ i a i y x i ∂ x 1 ⋮ ∂ ∑ i a i y x i ∂ x m ] = [ a 1 y ⋮ a m y ] = A y \begin{aligned}\frac{\partial z}{\partial x}&=\begin{bmatrix}\frac{\partial z}{\partial x_1}\\\vdots\\\frac{\partial z}{\partial x_m}\end{bmatrix}\\&=\begin{bmatrix}\frac{\partial \sum_ia_iyx_i}{\partial x_1}\\\vdots\\\frac{\partial \sum_ia_iyx_i}{\partial x_m}\end{bmatrix}\\&=\begin{bmatrix}a_1y\\\vdots\\a_my\end{bmatrix}\\&=Ay\end{aligned} ∂x∂z=⎣⎢⎡∂x1∂z⋮∂xm∂z⎦⎥⎤=⎣⎢⎢⎡∂x1∂∑iaiyxi⋮∂xm∂∑iaiyxi⎦⎥⎥⎤=⎣⎢⎡a1y⋮amy⎦⎥⎤=Ay式中 a i a_i ai是矩阵 A A A的第i行。同理可得 ∂ z ∂ y = A T x \frac{\partial z}{\partial y}=A^Tx ∂y∂z=ATx。
法2:利用一阶微分的形式不变性
根据一阶微分的形式不变性容易证明以下几个微分公式:
- d ( x T y ) = y T d x + x T d y d(x^Ty)=y^Tdx+x^Tdy d(xTy)=yTdx+xTdy
- d ( A x ) = A d x d(Ax)=Adx d(Ax)=Adx
所以 d ( x T A y ) = ( A y ) T d x + x T d ( A y ) = ( A y ) T d x + x T A d y = ( A y ) T d x + ( A T x ) T d y d(x^TAy)=(Ay)^Tdx+x^Td(Ay)=(Ay)^Tdx+x^TAdy=(Ay)^Tdx+(A^Tx)^Tdy d(xTAy)=(Ay)Tdx+xTd(Ay)=(Ay)Tdx+xTAdy=(Ay)Tdx+(ATx)Tdy,由微分与导数的关系和梯度与导数的关系得 ∂ z ∂ x = A y \frac{\partial z}{\partial x}=Ay ∂x∂z=Ay和 ∂ z ∂ y = A T x \frac{\partial z}{\partial y}=A^Tx ∂y∂z=ATx。
例2:设 z = f ( x , y ) = ( A x ) ⊙ ( B y ) , x ∈ R m , y ∈ R n , z ∈ R t z=f(x,y)=(Ax)\odot(By),x\in R^m,y\in R^n,z\in R^t z=f(x,y)=(Ax)⊙(By),x∈Rm,y∈Rn,z∈Rt,求 ∂ z ∂ x T \frac{\partial z}{\partial x^T} ∂xT∂z和 ∂ z ∂ y T \frac{\partial z}{\partial y^T} ∂yT∂z
【注】 ⊙ \odot ⊙是Hardamard积,即逐元素乘积
法1:根据Jacobian矩阵(导数)的定义
∂ z ∂ x T = [ ∂ z 1 ∂ x 1 ⋯ ∂ z 1 ∂ x m ⋮ ⋱ ⋮ ∂ z t ∂ x 1 ⋯ ∂ z t ∂ x m ] = [ ∂ ( a 1 x ) ( b 1 y ) ∂ x 1 ⋯ ∂ ( a 1 x ) ( b 1 y ) ∂ x m ⋮ ⋱ ⋮ ∂ ( a t x ) ( b t y ) ∂ x 1 ⋯ ∂ ( a t x ) ( b t y ) ∂ x m ] = [ a 11 ( b 1 y ) ⋯ a 1 m ( b 1 y ) ⋮ ⋱ ⋮ a t 1 ( b t y ) ⋯ a t m ( b t y ) ] = d i a g ( B y ) A \begin{aligned}\frac{\partial z}{\partial x^T}&=\begin{bmatrix}\frac{\partial z_1}{\partial x_1}&\cdots&\frac{\partial z_1}{\partial x_m}\\\vdots&\ddots&\vdots\\\frac{\partial z_t}{\partial x_1}&\cdots&\frac{\partial z_t}{\partial x_m}\end{bmatrix}\\&=\begin{bmatrix}\frac{\partial (a_1x)(b_1y)}{\partial x_1}&\cdots&\frac{\partial (a_1x)(b_1y)}{\partial x_m}\\\vdots&\ddots&\vdots\\\frac{\partial (a_tx)(b_ty)}{\partial x_1}&\cdots&\frac{\partial (a_tx)(b_ty)}{\partial x_m}\end{bmatrix}\\&=\begin{bmatrix}a_{11}(b_1y)&\cdots&a_{1m}(b_1y)\\\vdots&\ddots&\vdots\\a_{t1}(b_ty)&\cdots&a_{tm}(b_ty)\end{bmatrix}\\&=diag(By)A\end{aligned} ∂xT∂z=⎣⎢⎡∂x1∂z1⋮∂x1∂zt⋯⋱⋯∂xm∂z1⋮∂xm∂zt⎦⎥⎤=⎣⎢⎢⎡∂x1∂(a1x)(b1y)⋮∂x1∂(atx)(bty)⋯⋱⋯∂xm∂(a1x)(b1y)⋮∂xm∂(atx)(bty)⎦⎥⎥⎤=⎣⎢⎡a11(b1y)⋮at1(bty)⋯⋱⋯a1m(b1y)⋮atm(bty)⎦⎥⎤=diag(By)A其中 a i , b i a_i,b_i ai,bi分别是 A A A, B B B的第i行。同理可得 ∂ z ∂ y T = d i a g ( A x ) B \frac{\partial z}{\partial y^T}=diag(Ax)B ∂yT∂z=diag(Ax)B。
法2:利用一阶微分的形式不变性
根据一阶微分的形式不变性可以证明如下微分公式:
- d ( x ⊙ y ) = y ⊙ d x + x ⊙ d y = d i a g ( y ) d x + d i a g ( x ) d y d(x\odot y)=y\odot dx+x\odot dy=diag(y)dx+diag(x)dy d(x⊙y)=y⊙dx+x⊙dy=diag(y)dx+diag(x)dy
所以 d z = ( B y ) ⊙ d ( A x ) + ( A x ) ⊙ d ( B y ) = ( B y ) ⊙ ( A d x ) + ( A x ) ⊙ ( B d y ) = d i a g ( B y ) A d x + d i a g ( A x ) B d y dz=(By)\odot d(Ax)+(Ax)\odot d(By)=(By)\odot (Adx)+(Ax)\odot (Bdy)=diag(By)Adx+diag(Ax)Bdy dz=(By)⊙d(Ax)+(Ax)⊙d(By)=(By)⊙(Adx)+(Ax)⊙(Bdy)=diag(By)Adx+diag(Ax)Bdy,故由微分与导数的关系得 ∂ z ∂ x T = d i a g ( B y ) A \frac{\partial z}{\partial x^T}=diag(By)A ∂xT∂z=diag(By)A和 ∂ z ∂ y T = d i a g ( A x ) B \frac{\partial z}{\partial y^T}=diag(Ax)B ∂yT∂z=diag(Ax)B。
矩阵对标量求导
矩阵对标量求导用的不多,只简单提一下。
仿照定义1,我们可以写出以标量为自变量的矩阵函数的微分的定义,但由定理3启发,我们可以给出一个等价的定义:
-
定义4:若矩阵函数 A ( t ) A(t) A(t)的每个元素 a i j ( t ) a_{ij}(t) aij(t)在点 t 0 ∈ R t_0\in R t0∈R处可微,则称 A ( t ) A(t) A(t)在 t 0 t_0 t0处可微,且其在该点的导数为 ∂ A ∂ t ( t 0 ) = [ ∂ a 11 ∂ t ( t 0 ) ⋯ ∂ a 1 n ∂ t ( t 0 ) ⋮ ⋱ ⋮ ∂ a m 1 ∂ t ( t 0 ) ⋯ ∂ a m n ∂ t ( t 0 ) ] \frac{\partial A}{\partial t}(t_0)=\begin{bmatrix}\frac{\partial a_{11}}{\partial t}(t_0)&\cdots&\frac{\partial a_{1n}}{\partial t}(t_0)\\\vdots&\ddots&\vdots\\\frac{\partial a_{m1}}{\partial t}(t_0)&\cdots&\frac{\partial a_{mn}}{\partial t}(t_0)\end{bmatrix} ∂t∂A(t0)=⎣⎢⎡∂t∂a11(t0)⋮∂t∂am1(t0)⋯⋱⋯∂t∂a1n(t0)⋮∂t∂amn(t0)⎦⎥⎤
【注】 A ( t ) A(t) A(t)在 t 0 t_0 t0处的微分写作 d A ( t 0 ) = ( d t 0 ) ∂ A ∂ t ( t 0 ) dA(t_0)=(dt_0)\frac{\partial A}{\partial t}(t_0) dA(t0)=(dt0)∂t∂A(t0)
-
定理4(链式法则):设 A = A ( α ) A=A(\alpha) A=A(α)在 α = α 0 \alpha=\alpha_0 α=α0处可微,标量 α ( t ) \alpha(t) α(t)在 t 0 t_0 t0处可微, α 0 = α ( t 0 ) \alpha_0=\alpha(t_0) α0=α(t0),则 A ( α ( t ) ) A(\alpha(t)) A(α(t))在 t 0 t_0 t0可微,且 ∂ A ∘ α ∂ t ( t 0 ) = ∂ α ∂ t ( t 0 ) ∂ A ∂ t ( α ( t 0 ) ) \frac{\partial A\circ\alpha}{\partial t}(t_0)=\frac{\partial \alpha}{\partial t}(t_0)\frac{\partial A}{\partial t}(\alpha(t_0)) ∂t∂A∘α(t0)=∂t∂α(t0)∂t∂A(α(t0))。
矩阵对标量求导有一些简单的公式,在此作为例子:
设 A ( t ) , B ( t ) A(t),B(t) A(t),B(t)在 t 0 t_0 t0处可微,则有
- 若 A A A, B B B可加,则 ∂ ( A + B ) ∂ t ( t 0 ) = ∂ A ∂ t ( t 0 ) + ∂ B ∂ t ( t 0 ) \frac{\partial (A+B)}{\partial t}(t_0)=\frac{\partial A}{\partial t}(t_0)+\frac{\partial B}{\partial t}(t_0) ∂t∂(A+B)(t0)=∂t∂A(t0)+∂t∂B(t0)
- 若 A A A, B B B可乘,则 ∂ A B ∂ t ( t 0 ) = ∂ A ∂ t ( t 0 ) B ( t 0 ) + A ( t 0 ) ∂ B ∂ t ( t 0 ) \frac{\partial AB}{\partial t}(t_0)=\frac{\partial A}{\partial t}(t_0)B(t_0)+A(t_0)\frac{\partial B}{\partial t}(t_0) ∂t∂AB(t0)=∂t∂A(t0)B(t0)+A(t0)∂t∂B(t0)
- 设标量函数 α ( t ) \alpha(t) α(t)在 t 0 t_0 t0处可微,则 ∂ α A ∂ t ( t 0 ) = ∂ α ∂ t ( t 0 ) B ( t 0 ) + α ( t 0 ) ∂ B ∂ t ( t 0 ) \frac{\partial \alpha A}{\partial t}(t_0)=\frac{\partial \alpha}{\partial t}(t_0)B(t_0)+\alpha(t_0)\frac{\partial B}{\partial t}(t_0) ∂t∂αA(t0)=∂t∂α(t0)B(t0)+α(t0)∂t∂B(t0)
标量对矩阵求导
这部分内容才是机器学习中需要用到的矩阵微分的核心内容。神经网络往往以一个标量值的代价函数作为优化目标,网络参数往往是矩阵形式的,前向传播的过程可以视为计算一个以多个矩阵为自变量的复合函数的值,反向传播的过程可以视为运用链式法则(或复合函数的微分法则)计算该标量函数对各个矩阵参数的导数。
鉴于以(多个)矩阵为自变量的标量函数本质上是多元数量值函数,我们先研究多元数量值函数的微分和导数的定义,然后将它们推广。由于多元数量值函数的微分可以视作多元向量值函数的微分的特例,因此在定义1中令 m = 1 m=1 m=1,就得到了多元数量值函数微分的概念:
- 定义5:设 c ∈ R n c\in R^n c∈Rn,函数 f : D → R f:D\rightarrow R f:D→R在 c c c的某个半径为 r > 0 r>0 r>0的邻域 U ( c ) U(c) U(c)内有定义。若存在向量 a ∈ R n a\in R^{n} a∈Rn,使得对于任意的 u ∈ U ˚ ( 0 ) u\in \mathring U(0) u∈U˚(0)( 0 ∈ R n 0\in R^n 0∈Rn是零向量,去心邻域 U ˚ ( 0 ) \mathring U(0) U˚(0)的半径为 r r r)有如下关系成立: f ( c + u ) − f ( c ) = a T u + ο ( ∣ ∣ u ∣ ∣ 2 ) = ∑ i a i u i + ο ( ∑ i u i 2 ) f(c+u)-f(c)=a^Tu+\omicron(||u||_2)=\sum_{i}a_iu_i+\omicron(\sqrt{\sum_{i}u_i^2}) f(c+u)−f(c)=aTu+ο(∣∣u∣∣2)=i∑aiui+ο(i∑ui2 ),其中 ο ( ∣ ∣ u ∣ ∣ 2 ) \omicron(||u||_2) ο(∣∣u∣∣2)是当 u → 0 u\rightarrow 0 u→0时的一个高阶无穷小,则称 f f f在点 c c c处是可微的,称 u u u的线性函数 a T u a^Tu aTu为 f f f在点 c c c处的微分,记作 d f ( c ) = a T u df(c)=a^Tu df(c)=aTu,并称 a a a是 f f f在点 c c c处的梯度向量,简称梯度。
注意到微分的本质是把函数局部线性化,得到函数在某一点的邻域内的线性主部,故很容易将定义5推广到以矩阵为自变量的标量函数的情形:
- 定义6:设 ( a i j ) m × n = A ∈ R m × n (a_{ij})_{m\times n}=A\in R^{m\times n} (aij)m×n=A∈Rm×n,存在 r > 0 r>0 r>0,数量值函数 y = f ( X ) y=f(X) y=f(X)当 ∣ ∣ X − A ∣ ∣ F < r ||X-A||_F∣∣X−A∣∣F<r时有定义。若存在 ( b i j ) m × n = B ∈ R m × n (b_{ij})_{m\times n}=B\in R^{m\times n} (bij)m×n=B∈Rm×n,使得对于任意的 ( u i j ) m × n = U ∈ R m × n (u_{ij})_{m\times n}=U\in R^{m\times n} (uij)m×n=U∈Rm×n满足 0 < ∣ ∣ U ∣ ∣ F < r 0<||U||_F0<∣∣U∣∣F<r有如下关系成立: f ( A + U ) − f ( A ) = ∑ i j b i j u i j + ο ( ∑ i j u i j 2 ) = t r ( B T U ) + ο ( ∣ ∣ U ∣ ∣ F ) f(A+U)-f(A)=\sum_{ij}b_{ij}u_{ij}+\omicron(\sqrt{\sum_{ij}u_{ij}^2})=tr(B^TU)+\omicron(||U||_F) f(A+U)−f(A)=ij∑bijuij+ο(ij∑uij2 )=tr(BTU)+ο(∣∣U∣∣F),则称 f f f在点 A A A处是可微的,称 U U U的 m × n m\times n m×n个元素的线性函数 t r ( B T U ) tr(B^TU) tr(BTU)为 f f f在点 A A A处的微分,记作 d f ( A ) = t r ( B T U ) df(A)=tr(B^TU)