矩阵求导常用公式解析:标量、向量与矩阵的导数计算

矩阵求导常用公式解析:标量、向量与矩阵的导数计算

矩阵求导是机器学习、优化理论中的重要数学工具。本文将系统推导标量对向量、向量对向量、标量对矩阵的求导公式,并解析分子布局与分母布局的核心差异。

矩阵求导的布局问题

1. 分子布局 vs 分母布局对比表

特性分子布局 (Numerator Layout)分母布局 (Denominator Layout)
导数维度 m × n m \times n m×n n × m n \times m n×m
元素排列规则 ∂ y i ∂ x j \frac{\partial y_i}{\partial x_j} xjyi ∂ y j ∂ x i \frac{\partial y_j}{\partial x_i} xiyj
线性变换示例 ∂ A x ∂ x = A \frac{\partial \mathbf{Ax}}{\partial \mathbf{x}} = \mathbf{A} xAx=A ∂ A x ∂ x = A T \frac{\partial \mathbf{Ax}}{\partial \mathbf{x}} = \mathbf{A}^T xAx=AT
链式法则顺序从左到右自然顺序需要转置调整顺序

2. 布局冲突的典型场景分析

场景:计算 ∂ z ∂ x \frac{\partial \mathbf{z}}{\partial \mathbf{x}} xz,其中 z = W x + b \mathbf{z} = \mathbf{W}\mathbf{x} + \mathbf{b} z=Wx+b

  • 分子布局
    ∂ z ∂ x = W ( 维度  m × n ) \frac{\partial \mathbf{z}}{\partial \mathbf{x}} = \mathbf{W} \quad (\text{维度 } m \times n) xz=W(维度 m×n)

  • 分母布局
    ∂ z ∂ x = W T ( 维度  n × m ) \frac{\partial \mathbf{z}}{\partial \mathbf{x}} = \mathbf{W}^T \quad (\text{维度 } n \times m) xz=WT(维度 n×m)

应用建议

  • 在反向传播算法中,分母布局更自然(梯度维度与参数维度一致)
  • 在理论推导中,分子布局更便于公式链式展开

3. 混合布局的兼容性处理

当不同文献使用不同布局时,可通过以下规则转换:
( ∂ y ∂ x ) Denominator = ( ∂ y ∂ x ) Numerator T \left( \frac{\partial \mathbf{y}}{\partial \mathbf{x}} \right)_{\text{Denominator}} = \left( \frac{\partial \mathbf{y}}{\partial \mathbf{x}} \right)_{\text{Numerator}}^T (xy)Denominator=(xy)NumeratorT


一、标量对向量求导

1. 线性函数求导

设向量 a = [ a 1 , a 2 , … , a n ] T \mathbf{a} = [a_1, a_2, \dots, a_n]^T a=[a1,a2,,an]T x = [ x 1 , x 2 , … , x n ] T \mathbf{x} = [x_1, x_2, \dots, x_n]^T x=[x1,x2,,xn]T,标量函数为:

y = a T x = ∑ i = 1 n a i x i y = \mathbf{a}^T \mathbf{x} = \sum_{i=1}^n a_i x_i y=aTx=i=1naixi

求导结果
梯度向量为系数向量本身:

∂ y ∂ x = [ a 1 a 2 ⋮ a n ] = a \frac{\partial y}{\partial \mathbf{x}} = \begin{bmatrix} a_1 \\ a_2 \\ \vdots \\ a_n \end{bmatrix} = \mathbf{a} xy= a1a2an =a


2. 二次型函数(对称矩阵)

设对称矩阵 A ∈ R n × n \mathbf{A} \in \mathbb{R}^{n \times n} ARn×n,标量函数:

y = x T A x = ∑ i = 1 n ∑ j = 1 n a i j x i x j y = \mathbf{x}^T \mathbf{A} \mathbf{x} = \sum_{i=1}^n \sum_{j=1}^n a_{ij} x_i x_j y=xTAx=i=1nj=1naijxixj

求导过程
对分量 x k x_k xk 求偏导:

∂ y ∂ x k = 2 ∑ i = 1 n a i k x i \frac{\partial y}{\partial x_k} = 2 \sum_{i=1}^n a_{ik} x_i xky=2i=1naikxi

梯度向量
∂ y ∂ x = 2 A x \frac{\partial y}{\partial \mathbf{x}} = 2 \mathbf{A} \mathbf{x} xy=2Ax


3. 二次型函数(非对称矩阵)

A \mathbf{A} A 非对称时,标量函数展开同上。对 x k x_k xk 求偏导:

∂ y ∂ x k = ( A x ) k + ( A T x ) k \frac{\partial y}{\partial x_k} = (\mathbf{A}\mathbf{x})_k + (\mathbf{A}^T \mathbf{x})_k xky=(Ax)k+(ATx)k

梯度向量
∂ y ∂ x = ( A + A T ) x \frac{\partial y}{\partial \mathbf{x}} = (\mathbf{A} + \mathbf{A}^T) \mathbf{x} xy=(A+AT)x


二、向量对向量求导(分子布局)

1. 线性变换的雅可比矩阵(详细推导)

y = A x + b \mathbf{y} = \mathbf{A}\mathbf{x} + \mathbf{b} y=Ax+b,其中:

  • A ∈ R m × n \mathbf{A} \in \mathbb{R}^{m \times n} ARm×n 为系数矩阵
  • x ∈ R n \mathbf{x} \in \mathbb{R}^n xRn 为输入向量
  • b ∈ R m \mathbf{b} \in \mathbb{R}^m bRm 为偏置向量

分量化表示
y i = ∑ j = 1 n a i j x j + b i ( i = 1 , 2 , … , m ) y_i = \sum_{j=1}^n a_{ij} x_j + b_i \quad (i=1,2,\dots,m) yi=j=1naijxj+bi(i=1,2,,m)

对分量求偏导
对每个 y i y_i yi 关于 x j x_j xj 求偏导:
∂ y i ∂ x j = a i j \frac{\partial y_i}{\partial x_j} = a_{ij} xjyi=aij

雅可比矩阵构造
将所有偏导数按如下规则排列:

  • 行索引对应输出分量 y i y_i yi
  • 列索引对应输入分量 x j x_j xj

∂ 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 ] = A \frac{\partial \mathbf{y}}{\partial \mathbf{x}} = \begin{bmatrix} \frac{\partial y_1}{\partial x_1} & \frac{\partial y_1}{\partial x_2} & \cdots & \frac{\partial y_1}{\partial x_n} \\ \frac{\partial y_2}{\partial x_1} & \frac{\partial y_2}{\partial x_2} & \cdots & \frac{\partial y_2}{\partial x_n} \\ \vdots & \vdots & \ddots & \vdots \\ \frac{\partial y_m}{\partial x_1} & \frac{\partial y_m}{\partial x_2} & \cdots & \frac{\partial y_m}{\partial x_n} \end{bmatrix} = \mathbf{A} xy= x1y1x1y2x1ymx2y1x2y2x2ymxny1xny2xnym =A


2. 一般向量函数的雅可比矩阵(补充关键说明)

对向量函数 y = f ( x ) = [ f 1 ( x ) , f 2 ( x ) , … , f m ( x ) ] T \mathbf{y} = \mathbf{f}(\mathbf{x}) = [f_1(\mathbf{x}), f_2(\mathbf{x}), \dots, f_m(\mathbf{x})]^T y=f(x)=[f1(x),f2(x),,fm(x)]T,其雅可比矩阵的构造规则为:

  • 每个元素 ∂ f i ∂ x j \frac{\partial f_i}{\partial x_j} xjfi 表示第 i i i 个输出对第 j j j 个输入的偏导
  • 行维度 m m m 由输出向量维度决定
  • 列维度 n n n 由输入向量维度决定

关键特性

  • f ( x ) \mathbf{f}(\mathbf{x}) f(x) 为线性函数(即 f ( x ) = A x \mathbf{f}(\mathbf{x}) = \mathbf{A}\mathbf{x} f(x)=Ax),雅可比矩阵退化为系数矩阵 A \mathbf{A} A
  • f ( x ) \mathbf{f}(\mathbf{x}) f(x) 为非线性函数(如神经网络激活函数),需逐元素计算偏导数

3. 链式法则的矩阵形式

设复合函数 z = g ( y ) = g ( f ( x ) ) \mathbf{z} = \mathbf{g}(\mathbf{y}) = \mathbf{g}(\mathbf{f}(\mathbf{x})) z=g(y)=g(f(x)),则链式法则的矩阵形式为:
∂ z ∂ x = ∂ z ∂ y ⋅ ∂ y ∂ x \frac{\partial \mathbf{z}}{\partial \mathbf{x}} = \frac{\partial \mathbf{z}}{\partial \mathbf{y}} \cdot \frac{\partial \mathbf{y}}{\partial \mathbf{x}} xz=yzxy
其中:

  • ∂ z ∂ y ∈ R p × m \frac{\partial \mathbf{z}}{\partial \mathbf{y}} \in \mathbb{R}^{p \times m} yzRp×m
  • ∂ y ∂ x ∈ R m × n \frac{\partial \mathbf{y}}{\partial \mathbf{x}} \in \mathbb{R}^{m \times n} xyRm×n
  • 最终结果维度为 p × n p \times n p×n


三、标量对矩阵求导

1. 标量函数 y = tr ( A ) y = \text{tr}(\mathbf{A}) y=tr(A) 对矩阵 A \mathbf{A} A 求导

  • 矩阵的迹
    tr ( A ) = ∑ i = 1 n a i i \text{tr}(\mathbf{A}) = \sum_{i=1}^n a_{ii} tr(A)=i=1naii

  • 对矩阵元素 a i j a_{ij} aij 求偏导

    • i ≠ j i \neq j i=j 时,
      ∂ y ∂ a i j = 0 \frac{\partial y}{\partial a_{ij}} = 0 aijy=0
    • i = j i = j i=j 时,
      ∂ y ∂ a i i = 1 \frac{\partial y}{\partial a_{ii}} = 1 aiiy=1
  • 梯度矩阵
    ∂ y ∂ A = I \frac{\partial y}{\partial \mathbf{A}} = \mathbf{I} Ay=I
    (其中 I \mathbf{I} I 是与 A \mathbf{A} A 同维度的单位矩阵)


2. 标量函数 y = tr ( A B ) y = \text{tr}(\mathbf{A} \mathbf{B}) y=tr(AB) 对矩阵 A \mathbf{A} A 求导(假设 A \mathbf{A} A B \mathbf{B} B 可相乘)

  • 迹的性质
    tr ( A B ) = tr ( B A ) ( 若维度合适 ) \text{tr}(\mathbf{A} \mathbf{B}) = \text{tr}(\mathbf{B} \mathbf{A}) \quad (\text{若维度合适}) tr(AB)=tr(BA)(若维度合适)

  • 展开形式
    A \mathbf{A} A m × n m \times n m×n 矩阵, B \mathbf{B} B n × m n \times m n×m 矩阵,则
    y = ∑ i = 1 m ∑ j = 1 n a i j b j i y = \sum_{i=1}^m \sum_{j=1}^n a_{ij} b_{ji} y=i=1mj=1naijbji

  • a k l a_{kl} akl 求偏导
    ∂ y ∂ a k l = b l k \frac{\partial y}{\partial a_{kl}} = b_{lk} akly=blk

  • 梯度矩阵
    ∂ y ∂ A = B T \frac{\partial y}{\partial \mathbf{A}} = \mathbf{B}^T Ay=BT


3. 标量函数 y = x T A x y = \mathbf{x}^T \mathbf{A} \mathbf{x} y=xTAx 对矩阵 A \mathbf{A} A 求导( x \mathbf{x} x 为向量)

  • 展开形式
    y = ∑ i = 1 n ∑ j = 1 n a i j x i x j y = \sum_{i=1}^n \sum_{j=1}^n a_{ij} x_i x_j y=i=1nj=1naijxixj

  • a k l a_{kl} akl 求偏导
    ∂ y ∂ a k l = x k x l \frac{\partial y}{\partial a_{kl}} = x_k x_l akly=xkxl

  • 梯度矩阵
    ∂ y ∂ A = x x T \frac{\partial y}{\partial \mathbf{A}} = \mathbf{x} \mathbf{x}^T Ay=xxT


本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/78785.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/78785.shtml
英文地址,请注明出处:http://en.pswp.cn/web/78785.shtml

如若内容造成侵权/违法违规/事实不符,请联系英文站点网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NocoDB:开源的 Airtable 替代方案

NocoDB:开源的 Airtable 替代方案 什么是 NocoDB?NocoDB 的主要特点丰富的电子表格界面工作流自动化应用商店程序化访问NocoDB 的应用场景使用 Docker 部署 NocoDB1. 创建数据目录2. 运行 Docker 容器3. 访问 NocoDB注意事项总结什么是 NocoDB? NocoDB 是一款功能强大的开源…

全格式文档转 Markdown 工具,Docker 一键部署,支持 API 调用

以下是简要介绍: 这是一款可以快速将任意文档文件转markdown格式内容的工具,提供API转换接口,方便集成与应用原理就是利用libreoffice、pandoc文件转换工具,把所有文档类型的文件逐步转化,最终转成markdown格式的内容…

MATLAB绘制饼图(二维/三维)

在数据分析与展示领域,饼图是一种直观且高效的可视化工具,能够在瞬间传递各部分与整体的比例关系。今天,我将分享一段 MATLAB 绘制二维及三维饼图的代码,助你轻松将数据以饼图形式呈现于众人眼前。 无论是二维饼图的简洁明了&…

AI笔记-1

Halide Perovskites (HPs) 卤化物钙钛矿 卤化物钙钛矿(HPs)已被 公认为 光伏和发光器件 中最有前途的材料之一 在本观点中,我们将探讨钙钛矿的定义,主要聚焦于由 较重卤素(Cl、Br和I)组成的钙钛矿亚群&…

excel表数据导入数据库

前两天,有个两DB之间的数据导出导入的需求。对方提供的是excel表,我这边是mysql数据库,excel表第一行是字段名,之后的行是记录的值。 其实没有多复杂,我先将exel转成csv,结果mysql导入csv,第一行…

智能机器人在物流行业的应用:效率提升与未来展望

随着全球电子商务的蓬勃发展,物流行业正面临着前所未有的挑战和机遇。传统的物流模式已经难以满足日益增长的市场需求,尤其是在效率、成本控制和精准配送方面。智能机器人技术的出现,为物流行业的转型升级提供了强大的动力。本文将探讨智能机…

如何对 Redis 进行水平扩展和垂直扩展以应对微服务流量的增长?

核心概念: 垂直扩展 (Scale Up): 提升单个节点的性能。简单来说就是给现有的 Redis 服务器增加更多的 CPU 、内存、更快的存储(SSD)或更高的网络带宽。水平扩展 (Scale Out): 增加更多节点来分担负载。这意味着部署多个 Redis 实例&#xff…

Elasticsearch知识汇总之ElasticSearch与OpenSearch比较

四 ElasticSearch与OpenSearch比较 OpenSearch项目分为 OpenSearch(源自 Elasticsearch 7.10.2)与 OpenSearch Dashboards(源自 Kibana 7.10.2)两部分。此外,OpenSearch 项目也将成为之前发布的 Elasticsearch 发行版&…

《OmniMeetProTrack 全维会议链智能追录系统 软件设计文档》

撰稿人:wjz 一、引言 1.1 目的 本软件设计文档详细描述了 OmniMeetProTrack 全维会议链智能追录系统的架构、组件、模块设计及实现细节,旨在为开发人员、利益相关者和维护人员提供系统的全面设计蓝图。本文档基于需求定义文档,确保系统实现…

LeetCode 196. 删除重复的电子邮箱

原题题目 表: Person ---------------------- | Column Name | Type | ---------------------- | id | int | | email | varchar | ---------------------- id 是该表的主键列(具有唯一值的列)。 该表的每一行包含一封电子邮件。电子邮件将不包含大写字母…

基于WebUI的深度学习模型部署与应用实践

引言 随着深度学习技术的快速发展,如何将训练好的模型快速部署并提供友好的用户交互界面成为许多AI项目落地的关键。WebUI(Web User Interface)作为一种轻量级、跨平台的解决方案,正被广泛应用于各类AI模型的部署场景。本文将详细介绍基于Python生态构建WebUI的技术方案,包…

Spring AI Alibaba-03- Spring AI + DeepSeek-R1 + ES/Milvus + RAG 智能对话应用开发全流程

Spring AI Alibaba-03- Spring AI DeepSeek-R1 ES/Milvus RAG 智能对话应用开发全流程 在[人工智能](AI)应用中,模型通常需要访问外部资源或执行特定操作,例如数据库查询、调用外部API或执行计算任务。Spring AI,作…

某团小程序mtgsig,_token 生成逻辑分析

前言 本文章中所有内容仅供学习交流,抓包内容、敏感网址、数据接口均已做脱敏处理,严禁用于商业用途和非法用途,否则由此产生的一切后果均与作者无关,若有侵权,请联系我立即删除! 太久不更新 重新找回号 …

nginx服务--基础

1. nginx 介绍 Nginx (engine x) 是一个轻量级,高性能的 HTTP 和 反向代理 服务,也是一个IMAP/POP3/SMTP服务。因它的稳定性、丰富的功能集、示例配置文件和低系统资源的消耗而闻名。其特点是占有内存少,并发能力强 2. nginx优势 1.高并发,高性能 2.高可靠---可以7*24小时…

python如何word转pdf

在Python中,将Word文档(.docx或.doc)转换为PDF可以通过多种库实现。以下是几种常见的方法及详细步骤: 方法1:使用 python-docx comtypes(仅Windows,需安装Word) 适用于Windows系统…

Galini AI 技术实现方案及 GitHub 开源库推荐

Galini AI 技术实现方案及 GitHub 开源库推荐 1. Galini AI 的技术实现方案 根据前面的行业分析,Galini AI 的核心功能围绕 AI 驱动的通信安全,其技术实现可能包括以下模块: 模块 1:实时通信内容分析 功能:实时检测…

DXFViewer进行中2 -> 直线 解析+渲染 ✅已完成

DXFViewer进行中 : -&#xff1e;封装OpenGL -&#xff1e; 解析DXF直线-CSDN博客https://blog.csdn.net/qq_25547755/article/details/147723906 上篇博文 解析dxf直线635条 1. DXFViewer.h #pragma once #include "Application.h" #include <stdio.h> #inc…

[pdf,epub]292页《分析模式》漫谈合集01-59提供下载

《分析模式》漫谈合集01-59的pdf、epub文件提供下载&#xff0c;地址&#xff1a; umlchina.com/url/ap.html&#xff0c;或查看本账号的CSDN资源。 已排版成适合手机阅读&#xff0c;pdf的排版更好一些。

VTK 系统架构

VTK (Visualization Toolkit) 是一个功能强大的开源可视化系统,其架构设计体现了面向对象和管道处理的思想。以下是 VTK 系统的主要架构组成: 1. 核心架构层次 1.1 数据模型层 (Data Model) vtkDataObject: 所有数据对象的基类 vtkDataSet: 几何/拓扑数据的基类 (如 vtkPol…

移动应用开发:自定义 View 处理大量数据的性能与交互优化方案

实现 1 万条数据下流畅滑动与灵敏交互的完美平衡。 一、数据渲染优化&#xff1a;从 1 万条到丝滑体验 &#xff08;一&#xff09;视图复用机制 视图复用是提升大量数据渲染性能的关键策略。以一个简单的自定义列表视图为例&#xff0c;我们可以构建如下的复用池管理机制&a…