机器学习中的线性代数之矩阵求导
Posted Vinicier
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了机器学习中的线性代数之矩阵求导相关的知识,希望对你有一定的参考价值。
前面针对机器学习中基础的线性代数知识,我们做了一个常用知识的梳理。接下来针对机器学习公式推导过程中经常用到的矩阵求导,我们做一个详细介绍。
矩阵求导(Matrix Derivative)也称作矩阵微分(Matrix Differential),在机器学习、图像处理、最优化等领域的公式推导中经常用到。
矩阵的微积分本质上是多元变量的微积分问题,只是应用在矩阵空间上而已
根据 Y \\bf Y Y 与 X \\bf X X 的不同类型(实值、向量、矩阵)给出如下表中的表示:
类型 | 标量(Scalar) y y y | 向量(Vector) y \\bf y y | 矩阵(Matrix) Y \\bf Y Y |
---|---|---|---|
Scalar x x x | ∂ y ∂ x \\frac \\partial y\\partial x ∂x∂y | ∂ y ∂ x \\frac \\partial \\bf y\\partial x ∂x∂y | ∂ Y ∂ x \\frac \\partial \\bf Y\\partial x ∂x∂Y |
Vector x \\bf x x | ∂ y ∂ x \\frac \\partial y\\partial \\bf x ∂x∂y | ∂ y ∂ x \\frac \\partial \\bf y\\partial \\bf x ∂x∂y | |
Matrix X \\bf X X | ∂ y ∂ X \\frac \\partial y\\partial \\bf X ∂X∂y |
下面我们根据分子的布局(即X的类型)来介绍矩阵的导数求解
0 布局约定(Layout conventions)
事实上,所有求导的法则都可以从最基本的求导规则推导出来。不知你有没发现,不同的文献中,同样的式子求导的结果有时候会不一样,仔细观察会发现刚好相差一个转置,于是我们得先说说求导的两个派别(布局)。
由向量关于向量的求导 ∂ y ∂ x \\frac\\partial y\\partial x ∂x∂y可以得出两种矛盾的表示:结果表示为 n × m n×m n×m 矩阵或 m × n m×n m×n 矩阵。也就是把 y \\bf y y 表示为列向量 x \\bf x x 表示为行向量或者反过来表示的问题。
布局(Layout):在矩阵求导中有两种布局,分别为分母布局(denominator layout)和分子布局(numerator layout)。这两种不同布局的求导规则是不一样的。
向量
y
=
[
y
1
y
2
⋮
y
n
]
\\bf y = \\begin bmatrix y_1 \\\\ y_2\\\\ \\vdots \\\\ y_n\\endbmatrix
y=⎣⎢⎢⎢⎡y1y2⋮yn⎦⎥⎥⎥⎤,关于标量
x
x
x 的求导,
在分子布局下,为:
∂
y
∂
x
=
[
∂
y
1
∂
x
∂
y
2
∂
x
⋮
∂
y
n
∂
x
]
(1)
\\frac \\partial \\bf y\\partial x = \\begin bmatrix \\frac\\partial y_1\\partial x \\\\ \\frac\\partial y_2\\partial x \\\\ \\vdots \\\\ \\frac\\partial y_n\\partial x \\endbmatrix\\tag1
∂x∂y=⎣⎢⎢⎢⎡∂x∂y1∂x∂y2⋮∂x∂yn⎦⎥⎥⎥⎤(1)
而在分母布局下,为:
∂
y
∂
x
=
[
∂
y
1
∂
x
∂
y
2
∂
x
⋯
∂
y
n
∂
x
]
(2)
\\frac \\partial \\bf y\\partial x = \\begin bmatrix \\frac\\partial y_1\\partial x & \\frac\\partial y_2\\partial x & \\cdots & \\frac\\partial y_n\\partial x \\endbmatrix\\tag2
∂x∂y=[∂x∂y1∂x∂y2⋯∂x∂yn](2)
通过观察和推导我们可以知道,分子布局和分母布局之间刚好差一个转置,即在分子布局下与原来
Y
\\bf Y
Y相同,而在分母布局下差一个转置。
对于正切矩阵 ∂ y ∂ x \\frac\\partial y\\partial x ∂x∂y采用分母布局,即 Y ⊤ \\bf Y^ \\top Y⊤,很不符合表达的习惯,所以本文中我们采用的是分子布局。
1 关于标量的导数
对于 X \\bf X X 是标量的情况,是我们最熟悉的一种情况。
1.1 标量关于标量X的求导
这中情况就是我们平时的代数求导,直接就是 ∂ y ∂ x \\frac \\partial y\\partial x ∂x∂y
1.2 向量关于标量X的求导
向量 y = [ y 1 y 2 ⋮ y n ] \\bf y = \\begin bmatrix y_1 \\\\ y_2\\\\ \\vdots \\\\ y_n\\endbmatrix y=⎣⎢⎢⎢⎡y1y2⋮yn⎦⎥⎥⎥⎤,关于标量 x x 线性代数笔记:标量向量矩阵求导