机器学习中的线性代数之矩阵求导

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 xy ∂ y ∂ x \\frac \\partial \\bf y\\partial x xy ∂ Y ∂ x \\frac \\partial \\bf Y\\partial x xY
Vector x \\bf x x ∂ y ∂ x \\frac \\partial y\\partial \\bf x xy ∂ y ∂ x \\frac \\partial \\bf y\\partial \\bf x xy
Matrix X \\bf X X ∂ y ∂ X \\frac \\partial y\\partial \\bf X Xy

下面我们根据分子的布局(即X的类型)来介绍矩阵的导数求解

0 布局约定(Layout conventions)

事实上,所有求导的法则都可以从最基本的求导规则推导出来。不知你有没发现,不同的文献中,同样的式子求导的结果有时候会不一样,仔细观察会发现刚好相差一个转置,于是我们得先说说求导的两个派别(布局)。

由向量关于向量的求导 ∂ y ∂ x \\frac\\partial y\\partial x xy可以得出两种矛盾的表示:结果表示为 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=y1y2yn,关于标量 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 xy=xy1xy2xyn(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 xy=[xy1xy2xyn](2)
通过观察和推导我们可以知道,分子布局和分母布局之间刚好差一个转置,即在分子布局下与原来 Y \\bf Y Y相同,而在分母布局下差一个转置。

对于正切矩阵 ∂ y ∂ x \\frac\\partial y\\partial x xy采用分母布局,即 Y ⊤ \\bf Y^ \\top Y,很不符合表达的习惯,所以本文中我们采用的是分子布局

1 关于标量的导数

对于 X \\bf X X 是标量的情况,是我们最熟悉的一种情况。

1.1 标量关于标量X的求导

这中情况就是我们平时的代数求导,直接就是 ∂ y ∂ x \\frac \\partial y\\partial x xy

1.2 向量关于标量X的求导

向量 y = [ y 1 y 2 ⋮ y n ] \\bf y = \\begin bmatrix y_1 \\\\ y_2\\\\ \\vdots \\\\ y_n\\endbmatrix y=y1y2yn,关于标量 x x 线性代数笔记:标量向量矩阵求导

机器学习中的线性代数之矩阵求导

动手学深度学习v2学习笔记02:线性代数矩阵计算自动求导

矩阵求导

机器学习中的线性代数

机器学习入门之----线性回归(正规方程)