前提:本文中, X X 为向量,则为列向量, XT X T 为行向量, x x 为标量,即一个数字。
布局
布局简单的理解就是分子,分母 x x 是行向量还是列向量。
- 分子布局:分子为列向量或者分母为行向量,分子为或者分母为
xT
x
T
- 分母布局:分子为行向量或者分母为列向量,分子为 yT y T 或者分母为 x x
- 总结:列向量在什么位置,就是什么布局,行向量在什么位置,就不是什么布局
下面是维基百科中的例子:
分子布局
例子1:标量/向量
特点:分子 y y 标量,分母为行向量,是一个标量/向量的形式
例子2:向量/标量
∂Y∂x=⎡⎣⎢⎢⎢⎢⎢⎢⎢∂y1∂x∂y2∂x⋮∂ym∂x⎤⎦⎥⎥⎥⎥⎥⎥⎥ ∂ Y ∂ x = [ ∂ y 1 ∂ x ∂ y 2 ∂ x ⋮ ∂ y m ∂ x ]
特点:分子 Y Y 为列向量,分母为标量,是一个向量/标量的形式
例子3:向量/向量
∂Y∂X=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢∂y1∂x1∂y2∂x1⋮∂ym∂x1∂y1∂x2∂y2∂x2⋮∂ym∂x2⋯⋯⋱⋯∂y1∂xn∂y2∂xn⋮∂ym∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥ ∂ Y ∂ X = [ ∂ 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 ]
特点:分子 Y Y 为列向量,分母为行向量,矩阵的特点是分子列向量横向平铺,分母为行向量纵向平铺
例子4:标量/矩阵
∂y∂X=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢∂y∂x11∂y∂x12⋮∂y∂x1q∂y∂x21∂y∂x22⋮∂y∂x2q⋯⋯⋱⋯∂y∂xp1∂y∂xp2⋮∂y∂xpq⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥ ∂ y ∂ X = [ ∂ y ∂ x 11 ∂ y ∂ x 21 ⋯ ∂ y ∂ x p 1 ∂ y ∂ x 12 ∂ y ∂ x 22 ⋯ ∂ y ∂ x p 2 ⋮ ⋮ ⋱ ⋮ ∂ y ∂ x 1 q ∂ y ∂ x 2 q ⋯ ∂ y ∂ x p q ]
特点:分子 y y 为标量,分母为矩阵,(注意这个矩阵是转置的)标量/矩阵
例子5:矩阵/标量
∂Y∂x=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢∂y11∂x∂y21∂x⋮∂ym1∂x∂y12∂x∂y22∂x⋮∂ym2∂x⋯⋯⋱⋯∂y1n∂x∂y2n∂x⋮∂ymn∂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 ∂ x ]
特点:分子 Y Y 为矩阵,分母为标量,(这个矩阵不转置) 矩阵/标量
分母布局
例子1:标量/向量
∂y∂X=⎡⎣⎢⎢⎢⎢⎢⎢⎢∂y∂x1∂y∂x2⋮∂y∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥ ∂ y ∂ X = [ ∂ y ∂ x 1 ∂ y ∂ x 2 ⋮ ∂ y ∂ x n ]
特点:分子 y y 标量,分母为列向量,是一个标量/向量的形式
例子2:向量/标量
∂Y∂x=[∂y1∂x,∂y2∂x,⋯,∂ym∂x] ∂ Y ∂ x = [ ∂ y 1 ∂ x , ∂ y 2 ∂ x , ⋯ , ∂ y m ∂ x ]
特点:分子 Y Y 为行向量,分母为标量,是一个向量/标量的形式
例子3:向量/向量
∂Y∂X=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢∂y1∂x1∂y1∂x2⋮∂y1∂xn∂y2∂x1∂y2∂x2⋮∂y2∂xn⋯⋯⋱⋯∂ym∂x1∂ym∂x2⋮∂ym∂xn⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥ ∂ Y ∂ 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 ]
特点:分子 Y Y 为行向量,分母为列向量,矩阵的特点是分子行向量纵向平铺,分母为列向量横向平铺
例子4:标量/矩阵
∂y∂X=⎡⎣⎢⎢⎢⎢⎢⎢⎢⎢∂y∂x11∂y∂x21⋮∂y∂xp1∂y∂x12∂y∂x22⋮∂y∂xp2⋯⋯⋱⋯∂y∂x1q∂y∂x2q⋮∂y∂xpq⎤⎦⎥⎥⎥⎥⎥⎥⎥⎥ ∂ y ∂ X = [ ∂ y ∂ x 11 ∂ y ∂ x 12 ⋯ ∂ y ∂ x 1 q ∂ y ∂ x 21 ∂ y ∂ x 22 ⋯ ∂ y ∂ x 2 q ⋮ ⋮ ⋱ ⋮ ∂ y ∂ x p 1 ∂ y ∂ x p 2 ⋯ ∂ y ∂ x p q ]
特点:分子 y y 为标量,分母为矩阵,(注意这个矩阵是未转置的)标量/矩阵
总结:
布局类型 分子 分母 特点 说明 分子布局 向量(1*1) 标量(1*n) 向量 (1*n) 分母为行向量 分子布局 标量(1*1) 向量 (n*1) 向量(n*1) 分子为列向量 分子布局 向量(m*1) 向量(1*n) 矩阵(m*n) 列向量横向平铺,分母行向量纵向平铺 分子布局 标量(1*1) 矩阵(m*n) 矩阵(n*m) 矩阵是转置的 分子布局 矩阵(m*n) 标量(1*1) 矩阵(m*n) 分母布局 标量(1*1) 向量(n*1) 向量(n*1) 分母为列向量 分母布局 向量(n*1) 标量(1*1) 向量(n*1) 分子为行向量 分母布局 向量(1*m) 向量(n*1) 向量(n*m) 分子行向量纵向平铺,分母列向量横向平铺 分母布局 标量(1*1) 矩阵(m*n) 矩阵(m*n) 一个求导的例子:
∂(y−Xw)T(y−Xw)∂w ∂ ( y − X w ) T ( y − X w ) ∂ w注意: y y 为列向量, X X 为矩阵
化简
可以发现,是的形式,需要先进行化简,已知: (A+B)T=AT+BT ( A + B ) T = A T + B T 且有 (AB)T=BTAT ( A B ) T = B T A T
所以,分子化简过程为:
(y−Xw)T(y−Xw)=[yT−(Xw)T](y−Xw)=yTy−yTXw−wTXTy+wTXTXw(1) (1) ( y − X w ) T ( y − X w ) = [ y T − ( X w ) T ] ( y − X w ) = y T y − y T X w − w T X T y + w T X T X w
所以有
∂(y−Xw)T(y−Xw)∂w=∂(yTy−yTXw−wTXTy+wTXTXw)∂w=∂(yTy)∂w−∂(yTXw)∂w−∂(wTXTy)∂w+∂(wTXTXw)∂w(2) (2) ∂ ( y − X w ) T ( y − X w ) ∂ w = ∂ ( y T y − y T X w − w T X T y + w T X T X w ) ∂ w = ∂ ( y T y ) ∂ w − ∂ ( y T X w ) ∂ w − ∂ ( w T X T y ) ∂ w + ∂ ( w T X T X w ) ∂ w
1, ∂(yTy)∂w=0 ∂ ( y T y ) ∂ w = 0说明: y y 是列向量,是标量,对 w w 求导,即分子为标量,分母为标量,所以求导结果是0
2,
说明:查wiki得知, ∂Ax∂x=A ∂ A x ∂ x = A ,其中 A A 不是包含x的函数,
3,
说明:因为分子为标量,标量的转置为其本身,所以对分子进行转置操作,等价于2
4, ∂(wTXTXw)∂w=2XTXw ∂ ( w T X T X w ) ∂ w = 2 X T X w
说明:查wiki得知, ∂xTAx∂x=2xTA ∂ x T A x ∂ x = 2 x T A ,其中 A A 是不包含的函数
整合:
∂(y−Xw)T(y−Xw)∂w=∂(yTy)∂w−∂(yTXw)∂w−∂(wTXTy)∂w+∂(wTXTXw)∂w=0−XTy−XTy+2XTXw=−2XT(y+Xw)(3) (3) ∂ ( y − X w ) T ( y − X w ) ∂ w = ∂ ( y T y ) ∂ w − ∂ ( y T X w ) ∂ w − ∂ ( w T X T y ) ∂ w + ∂ ( w T X T X w ) ∂ w = 0 − X T y − X T y + 2 X T X w = − 2 X T ( y + X w )
注:更多矩阵求导公式参见wiki百科https://en.wikipedia.org/wiki/Matrix_calculus