机器学习中的矩阵向量求导(四) 矩阵向量求导链式法则

本文介绍了矩阵向量求导的链式法则,包括向量对向量、标量对多个向量及标量对多个矩阵的求导规则。通过这些法则,可以简化机器学习和深度学习中的求导过程,特别是在处理复杂依赖关系时。文章还给出了常用机器学习问题的求导例子,如最小二乘法的梯度求解。
摘要由CSDN通过智能技术生成

机器学习中的矩阵向量求导(三) 矩阵向量求导之微分法中,我们讨论了使用微分法来求解矩阵向量求导的方法。但是很多时候,求导的自变量和因变量直接有复杂的多层链式求导的关系,此时微分法使用起来也有些麻烦。需要一些简洁的方法。

本文我们讨论矩阵向量求导链式法则,使用该法则很多时候可以帮我们快速求出导数结果。

本文的标量对向量的求导,标量对矩阵的求导使用分母布局, 向量对向量的求导使用分子布局。如果遇到其他资料求导结果不同,请先确认布局是否一样。

1. 向量对向量求导的链式法则

首先我们来看看向量对向量求导的链式法则。假设多个向量存在依赖关系,比如三个向量 x → y → z \mathbf{x} \to \mathbf{y} \to \mathbf{z} xyz存在依赖关系,则我们有下面的链式求导法则:
∂ z ∂ x = ∂ z ∂ y ∂ y ∂ x \frac{\partial \mathbf{z}}{\partial \mathbf{x}} = \frac{\partial \mathbf{z}}{\partial \mathbf{y}}\frac{\partial \mathbf{y}}{\partial \mathbf{x}} xz=yzxy
该法则也可以推广到更多的向量依赖关系。但是要注意的是要求所有有依赖关系的变量都是向量,如果有一个 Y \mathbf{Y} Y是矩阵,比如是 x → Y → z \mathbf{x} \to \mathbf{Y} \to \mathbf{z} xYz, 则上式并不成立。

从矩阵维度相容的角度也很容易理解上面的链式法则,假设 x , y , z \mathbf{x} , \mathbf{y} ,\mathbf{z} x,y,z分别是m,n.p维向量,则求导结果 ∂ z ∂ x \frac{\partial \mathbf{z}}{\partial \mathbf{x}} xz是一个 p × m p \times m p×m的雅克比矩阵,而右边 ∂ z ∂ y \frac{\partial \mathbf{z}}{\partial \mathbf{y}} yz是一个 p × n p \times n p×n的雅克比矩阵, ∂ y ∂ x \frac{\partial \mathbf{y}}{\partial \mathbf{x}} xy是一个 n × m n \times m n×m的雅克比矩阵,两个雅克比矩阵的乘积维度刚好是 p × m p \times m p×m,和左边相容。

2. 标量对多个向量的链式求导法则

在我们的机器学习算法中,最终要优化的一般是一个标量损失函数,因此最后求导的目标是标量,无法使用上一节的链式求导法则,比如2向量,最后到1标量的依赖关系: x → y → z \mathbf{x} \to \mathbf{y} \to z xyz,此时很容易发现维度不相容。

假设 x , y \mathbf{x},\mathbf{y} x,y分别是 m , n m,n m,n维向量, 那么 ∂ z ∂ x \frac{\partial z}{\partial \mathbf{x}} xz的求导结果是一个 m × 1 m \times 1 m×1的向量, 而 ∂ z ∂ y \frac{\partial z}{\partial \mathbf{y}} yz是一个 n × 1 n \times 1 n×1的向量, ∂ y ∂ x \frac{\partial y}{\partial \mathbf{x}} xy是一个 n × m n \times m n×m的雅克比矩阵,右边的向量和矩阵是没法直接乘的。

但是假如我们把标量求导的部分都做一个转置,那么维度就可以相容了,也就是:
( ∂ z ∂ x ) T = ( ∂ z ∂ y ) T ∂ y ∂ x (\frac{\partial z}{\partial \mathbf{x}})^T = (\frac{\partial z}{\partial \mathbf{y}})^T\frac{\partial \mathbf{y}}{\partial \mathbf{x}} (xz)T=(yz)Txy
但是毕竟我们要求导的是 ( ∂ z ∂ x ) (\frac{\partial z}{\partial \mathbf{x}}) (

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值