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

前面针对机器学习中基础的线性代数知识,我们做了一个常用知识的梳理。接下来针对机器学习公式推导过程中经常用到的矩阵求导,我们做一个详细介绍。

矩阵求导(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\end{bmatrix} 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} \end{bmatrix}\tag{1} 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} \end{bmatrix}\tag{2} 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\end{bmatrix} y=y1y2yn,关于标量 x x x 的求导就是 y {\bf y} y 的每一个元素分别对 x x x求导,可以表示为
∂ y ∂ x = [ ∂ y 1 ∂ x ∂ y 2 ∂ x ⋮ ∂ y n ∂ x ] (3) \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} \end{bmatrix}\tag{3} xy=

评论 31
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值