矩阵求导简析

article/2025/9/15 16:17:10

    大家好,这是我的第一篇博客。

    矩阵求导(Matrix Derivation,或者Matrix Differential),在机器学习、图像处理、最优化领域经常会遇到。其本质是多元变量的微积分,只是把求导应用在了矩阵上,不同在于这些求导是按照一定规则排列的。因此,说简单也很简单,在矩阵理论的书籍中一般会介绍雅克比(Jacobi)矩阵,点到为止,也不会详细讨论。但是这个小问题有时遇到了还是会有所疑惑,可能你会发现同一求导在不同的资料中结果不一样。关于这一方面,网上的资料略混乱,没有抓住重点,因此这里作简要总结,一些基本公式会给出简单的推导,希望对你有帮助。


布局(Layout)

    首先,介绍一个重要的概念——布局。求导最简单的是标量,然后是向量和矩阵求导。所有我们把dY/dX,看做两部分-分子和分母,按照每一部分对应三种类型(标量、向量、矩阵),那么就会有9种组合,但是常用的不多,比如较常见的分母和分子都是向量。如果向量求导掌握了,那么复杂一点的矩阵求导你只需拆解为向量就可以了。因为同一个求导可以有不同的写法,所以就有了布局约定(layout conventions),分为两种:1)分子布局,numerator layout;2)分母布局,denominator layout。 举个例子,向量关于向量求导,注意这两个都是列向量: 

    1)按照分子布局,也就是按照y的布局,其结果为

    

    2)按照分母布局,即按照X的布局,结果为

    

    对比以上结果,分子布局指结果与分子保持一致,以分子为主序,也就是说分子原来有3行,求导结果就有3行,每一行和分子中的每一行对应;同理,分母布局与分母保持一致,求导结果维数为:分子维数*分母维数。  理解了这个概念后,那基本上矩阵求导就无所遁形了,对于复杂的矩阵可看做由行向量组成,逐步求导。

 下面将列举几个常见的例子。


实例

(1)   ,   其中     

 

这个式子可以说是最基本的,但是结果有两种形式,分别是  和 ,差一个转置。首先

         

如果按照分子布局计算,记 是  的行向量,则

        

如果按照分母布局计算,则 

        

 

(2)  ,  其中      

可设         

                

所以

               

                                

上述求导过程可以看出采用的是分母布局。因此若采用分子布局,会得到另一个结果  ,这里你可以自己证明。

 

(3)另外矩阵求导往往也和矩阵的迹联系在一起,这里附赠一个关于迹的公式推导,对于很多关于迹的求导也许会有启发。

证明: tr(AXX^{T})=X^{T}AX

首先   ,   而 

         

                得证。    


总结

    在很多时候你可能常见到以下的结论,实际上这些结果都是基于分母布局而得到的。

    但是,如果你观察下面这个Jacobi矩阵的形式,我们可以说是基于分子布局的,这里分子分母都是列向量,之所以分母会写成转置的形式(有时候不加转置),这样显得更不容易产生歧义,因为无论是哪一种布局似乎都是对的,其中分子主序作行,分母主序作列。    

    最后,如果你觉得这些不够用,你可以查看以下博客,有更全面的公式。

https://blog.csdn.net/daaikuaichuan/article/details/80620518

https://blog.csdn.net/yc461515457/article/details/49682473

 

 

 


http://chatgpt.dhexx.cn/article/gstk3r0M.shtml

相关文章

矩阵求导法则

转载自:https://blog.csdn.net/dinkwad/article/details/72819832 矩阵求导的技术,在统计学、控制论、机器学习等领域有广泛的应用。鉴于我看过的一些资料或言之不详、或繁乱无绪,本文来做个科普,分作两篇,上篇讲标量…

矩阵求导总结

文章目录 1.分子为标量1.1 ∂ 标量 ∂ 标量 \frac{\partial 标量}{\partial标量} ∂标量∂标量​1.2 ∂ 标量 ∂ 向量 \frac{\partial 标量}{\partial向量} ∂向量∂标量​1.3 ∂ 标量 ∂ 矩阵 \frac{\partial 标量}{\partial矩阵} ∂矩阵∂标量​ 2.分子为向量2.1 ∂ 向量…

矩阵求导方法

矩阵求导方法 在机器学习过程中,我们经常会对矩阵进行相关的操作,现对矩阵求导方法进行概况与推导。 首先总结矩阵求导的本质,即矩阵A中每个元素对矩阵B中每个元素求导。我们先从宏观上理解这个公式,即从求导后元素的个数来理解…

矩阵求导

一、矩阵和向量求导 参考地址:https://cloud.tencent.com/developer/article/1668818 求导公式大全:https://cloud.tencent.com/developer/article/1551901 机器学习中最常用的矩阵求导有:标量对矩阵的求导,矩阵对标量求导以…

矩阵求导、几种重要的矩阵及常用的矩阵求导公式

一、矩阵求导 一般来讲,我们约定x(x1,x2,...xN)Tx(x1,x2,...xN)T,这是分母布局。常见的矩阵求导方式有:向量对向量求导,标量对向量求导,向量对标量求导。 1、向量对向量求导 2、标量对向量求导 3、向量对标量求导 其他…

矩阵求导(本质、原理与推导)详解

矩阵求导是机器学习与深度学习的基础,它是高等数学、线性代数知识的综合,并推动了概率论与数理统计向多元统计的发展。在一般的线性代数的课程中,很少会提到矩阵导数的概念;而且在网上寻找矩阵求导的知识点,也是五花八…

矩阵求导常用公式

矩阵求导常用公式 1 引言2 向量的导数2.1 向量对标量求导 Vector-by-scalar2.2 标量对向量求导 Scalar-by-vector2.3 向量对向量求导 Vector-by-vector 3 矩阵的导数3.1 矩阵对标量求导 Matrix-by-scalar3.2 标量对矩阵求导 Scalar-by-matrix 4 常用求导公式4.1 向量对向量求导…

矩阵的求导

目录 1 布局(Layout) 1.1 矩阵向量求导引入 1.2 矩阵向量求导定义 1.3 矩阵向量求导布局 1.4 分母布局的另一种求解方法 1.5 总结 2 基本的求导规则 2.1 向量对标量求导(相对于数量变量的微分,即自变量是数量变量) 2.1.1 定义 2.1.…

JAVA—IO流详解

1. 流概述 1.1. 什么是IO IO:Input/Output即输入&输出,也称之为流(河流,水流),指的是数据从一个地点到另一个地点过程;对于计算机来说文件的拷贝过程,文件的编写保存,显示功能…

Java高级特性-IO流

文章目录 前言一、什么是IO流二、字节流-输入输出三、字符流 - 输入输出四、复制文件五、总结 前言 在Java开发中我们经常会涉及到文件方面的操作,不论是网站的上传文件,还是服务器提供给客户端下载文件,这些都需要我们来处理,那J…

java IO流之BufferedReader和BufferedWriter

前言: 👏作者简介:我是笑霸final,一名热爱技术的在校学生。 📝个人主页:笑霸final的主页 📕系列专栏::本文写在java专栏 📧如果文章知识点有错误的地方&#…

IO流详解

文章目录 IO流IO流分类FileInputStream输入流框架相对路径读取过程详解available()skip(long n) FileOutputStream输入流框架 FileReaderFileWriter文件复制FileInputStream 、FileOutputStreamFileReader 、FileWriter 缓冲流BufferedReader 数据专属流DataOutputStreamDataIn…

java中的io流

文章目录 1. IO流,什么是IO?2.IO流的分类?3.IO流都在java.io.*包下4.java IO流有四个家族5.java.io包下需要掌握的流有16个6.FileInputStream的1个字节读入法7.FileInputStream的byte[]读入法8.FileInputStream的其他方法9.FileOutputStream用…

Java读写IO流详解

一、IO流要明确的几点 (1)明确要操作的数据是数据源还是数据目的(是读还是写) 源/读 InputStream Reader 目的/写 OutputStream Writer (2)明确操作设备上的数据是字节还是文本 源/读 字节&…

python IO流

python io流 总的来说就说计算机输入和输出的操作,一般来说是内存与磁盘之间的输入输出 一种虚拟世界的物质。 IO流操作是一种持久化操作,是将数据持久化在磁盘上。 这里用了open函数 函数的第一个引号内放的是运行的python文件目录下的一个名为1.txt的…

IO流的概念

IO流的概念 IO就是Input和Output的简写,也就是输入和输出的含义 IO流就是读写数据时像流水一样从一端流到另外一端,因此得名为"流" 基本分类 按照读写数据的基本单位不同,分为字节流和字符流 其中字节流主要指以字节为单位进行…

什么是IO流?

大家好,我是IT修真院北京分院第27期的JAVA学员,一枚正直纯洁善良的java程序员。 今天给大家分享一下,修真院官网Java任务10,深度思考中的知识点———什么是IO流? 1.背景介绍 什么是流 流就是一系列的数据 当不同的介质之间有数据交互的时候,JAVA就使用流来实现。 数…

JavaIO流详解

转载:https://www.cnblogs.com/LittleHann/p/3678685.html Java输入、输入、IO流 类层次关系梳理 本文主要关注在Java编程中涉及到的IO相关的类库、方法。以及对各个层次(抽线、接口继承)的流之间的关系进行梳理 相关学习资料 http://baike.baidu.com/view/100795…

IO流的介绍

一:IO流的介绍 1.IO流属于一种Java技术,主要用于处理数据传输。通过IO与外界进行数据交互,通信等。 2.IO流适用于文件,图片,音乐,视频等等的传输任务。 3.通信的目标也存在多种。例如&…

最全最详细的IO流教程

前言 io流用到的地方很多,就比如上传下载,传输,设计模式等…基础打扎实了,才能玩更高端的。 在博主认为真正懂IO流的优秀程序员每次在使用IO流之前都会明确分析如下四点: (1)明确要操作的数据…