【矩阵分析与应用】【第1章 矩阵与线性方程组】【1.6.2.2 迹的循环置换性质】

【矩阵分析与应用】【第1章 矩阵与线性方程组】【1.6.2.2 迹的循环置换性质】

    • [1. 引言:为什么需要循环置换性质?](#1. 引言:为什么需要循环置换性质?)
    • [2. 循环置换性质的定义](#2. 循环置换性质的定义)
      • [2.1 基本表述](#2.1 基本表述)
      • [2.2 重要限制](#2.2 重要限制)
    • [3. 性质的理论基础](#3. 性质的理论基础)
      • [3.1 从两个矩阵的情况出发](#3.1 从两个矩阵的情况出发)
      • [3.2 推广到多个矩阵](#3.2 推广到多个矩阵)

1. 引言:为什么需要循环置换性质?

在矩阵微分中,我们经常需要处理复杂的矩阵乘积的迹。迹的循环置换性质是矩阵微分中最重要的"技巧",它让我们能够自由地重新排列矩阵乘积,从而将微分结果 d f df df "凑"成我们想要的标准形式。

核心价值 :这个性质使得我们能够在不改变迹值的前提下,将目标矩阵(通常是 d X d\mathbf{X} dX)移动到乘积链的末尾,为后续的导数识别奠定基础。

2. 循环置换性质的定义

2.1 基本表述

对于任意一组矩阵 A , B , C , ... \mathbf{A}, \mathbf{B}, \mathbf{C}, \ldots A,B,C,...,只要它们的维度使得下列矩阵乘法是可行的,那么迹在循环置换下保持不变。

三元情况
Tr ( A B C ) = Tr ( B C A ) = Tr ( C A B ) \text{Tr}(\mathbf{A}\mathbf{B}\mathbf{C}) = \text{Tr}(\mathbf{B}\mathbf{C}\mathbf{A}) = \text{Tr}(\mathbf{C}\mathbf{A}\mathbf{B}) Tr(ABC)=Tr(BCA)=Tr(CAB)

一般情况 (k个矩阵):
Tr ( A 1 A 2 ⋯ A k ) = Tr ( A 2 A 3 ⋯ A k A 1 ) = Tr ( A 3 A 4 ⋯ A k A 1 A 2 ) = ⋯ \text{Tr}(\mathbf{A}_1\mathbf{A}_2 \cdots \mathbf{A}_k) = \text{Tr}(\mathbf{A}_2\mathbf{A}_3 \cdots \mathbf{A}_k\mathbf{A}_1) = \text{Tr}(\mathbf{A}_3\mathbf{A}_4 \cdots \mathbf{A}_k\mathbf{A}_1\mathbf{A}_2) = \cdots Tr(A1A2⋯Ak)=Tr(A2A3⋯AkA1)=Tr(A3A4⋯AkA1A2)=⋯

2.2 重要限制

关键点 :只能进行循环 置换(像一个圆圈),不能进行任意置换。

正确示例
Tr ( A B C ) = Tr ( B C A ) ✓ \text{Tr}(\mathbf{A}\mathbf{B}\mathbf{C}) = \text{Tr}(\mathbf{B}\mathbf{C}\mathbf{A}) \quad \text{✓} Tr(ABC)=Tr(BCA)✓

错误示例
Tr ( A B C ) = Tr ( A C B ) ✗ \text{Tr}(\mathbf{A}\mathbf{B}\mathbf{C}) = \text{Tr}(\mathbf{A}\mathbf{C}\mathbf{B}) \quad \text{✗} Tr(ABC)=Tr(ACB)✗

3. 性质的理论基础

3.1 从两个矩阵的情况出发

循环置换性质的基础来源于迹的基本性质:
Tr ( A B ) = Tr ( B A ) \text{Tr}(\mathbf{A}\mathbf{B}) = \text{Tr}(\mathbf{B}\mathbf{A}) Tr(AB)=Tr(BA)

证明

迹是矩阵对角线元素之和: Tr ( A ) = ∑ i A i i \text{Tr}(\mathbf{A}) = \sum_i A_{ii} Tr(A)=∑iAii

矩阵乘积 A B \mathbf{A}\mathbf{B} AB 的第 i i i 个对角线元素为:

A B \] i i = ∑ k A i k B k i \[\\mathbf{A}\\mathbf{B}\]_{ii} = \\sum_k A_{ik}B_{ki} \[AB\]ii=k∑AikBki 因此: Tr ( A B ) = ∑ i \[ A B \] i i = ∑ i ∑ k A i k B k i \\text{Tr}(\\mathbf{A}\\mathbf{B}) = \\sum_i \[\\mathbf{A}\\mathbf{B}\]_{ii} = \\sum_i \\sum_k A_{ik}B_{ki} Tr(AB)=i∑\[AB\]ii=i∑k∑AikBki 同理: Tr ( B A ) = ∑ i \[ B A \] i i = ∑ i ∑ k B i k A k i \\text{Tr}(\\mathbf{B}\\mathbf{A}) = \\sum_i \[\\mathbf{B}\\mathbf{A}\]_{ii} = \\sum_i \\sum_k B_{ik}A_{ki} Tr(BA)=i∑\[BA\]ii=i∑k∑BikAki 由于求和索引 i i i 和 k k k 都是哑元,且 A i k B k i = B k i A i k A_{ik}B_{ki} = B_{ki}A_{ik} AikBki=BkiAik,因此两个求和式相等。 #### 3.2 推广到多个矩阵 **三个矩阵的情况** : Tr ( A B C ) = Tr ( ( A B ) C ) = Tr ( C ( A B ) ) (应用 Tr ( X Y ) = Tr ( Y X ) ) = Tr ( C A B ) \\begin{aligned} \\text{Tr}(\\mathbf{A}\\mathbf{B}\\mathbf{C}) \&= \\text{Tr}((\\mathbf{A}\\mathbf{B})\\mathbf{C}) \\\\ \&= \\text{Tr}(\\mathbf{C}(\\mathbf{A}\\mathbf{B})) \\quad \\text{(应用 } \\text{Tr}(\\mathbf{X}\\mathbf{Y}) = \\text{Tr}(\\mathbf{Y}\\mathbf{X}) \\text{)} \\\\ \&= \\text{Tr}(\\mathbf{C}\\mathbf{A}\\mathbf{B}) \\end{aligned} Tr(ABC)=Tr((AB)C)=Tr(C(AB))(应用 Tr(XY)=Tr(YX))=Tr(CAB) 同理可证明其他循环排列也相等。

相关推荐
6Hzlia10 小时前
【Hot 100 刷题计划】 LeetCode 48. 旋转图像 | C++ 矩阵变换题解
c++·leetcode·矩阵
网域小星球20 小时前
C语言从0入门(十)|二维数组详解与矩阵实战
c语言·算法·矩阵·二维数组·数组遍历
无尽的罚坐人生1 天前
hot 100 73. 矩阵置零
线性代数·算法·矩阵
TK云大师-KK1 天前
2026年4月TikTok矩阵运营系统横向评测TOP5
大数据·网络·人工智能·矩阵·自动化·新媒体运营
superior tigre2 天前
NumPy 基础使用方法(基础+矩阵运算+Attention)
线性代数·矩阵·numpy
计算机安禾2 天前
【数据结构与算法】第38篇:图论(二):深度优先搜索(DFS)与广度优先搜索(BFS)
数据结构·算法·矩阵·排序算法·深度优先·图论·宽度优先
_日拱一卒2 天前
LeetCode:矩阵置零
java·数据结构·线性代数·算法·leetcode·职场和发展·矩阵
学习永无止境@2 天前
MATLAB中矩阵转置
算法·matlab·fpga开发·矩阵
汀、人工智能2 天前
[特殊字符] 第106课:旋转图像
数据结构·算法·矩阵·数据库架构·数组·旋转图像
zd8451015002 天前
51单片机-矩阵按键程序代码
矩阵·51单片机