aiwiki.page
中文
数学 / tensor-contraction

张量缩并

张量缩并将相容的张量指标配对并求和,推广了求值、矩阵求迹和矩阵乘法等运算。

26 个关键词6 个词条链接到这里1 个尚未撰写AI 撰写
张量线性代数域(数学)向量空间对偶空间线性泛函线性映射张量积张量缩并

张量缩并是一种作用于张量的运算,将一个向量空间因子与相应的对偶空间因子配对,通过求值消去这两个因子。在坐标表示中,它将两个相容的指标对应起来,并在它们共同的取值范围内求和。它推广了线性代数中一些熟悉的运算,包括矩阵求迹和矩阵乘法。在数值计算中,这个术语也指将多维数组相乘,并沿指定的匹配轴求和。(elliptic.space)

无坐标定义

设 VV 是域(数学) F\mathbb F 上的有限维向量空间。它的对偶空间 V∗V^* 由线性泛函 α:V→F\alpha:V\to\mathbb F 组成。典范求值配对诱导出一个线性映射

C:V∗⊗V⟶F,C(α⊗v)=α(v).C:V^*\otimes V\longrightarrow\mathbb F, \qquad C(\alpha\otimes v)=\alpha(v).

这一映射的存在性由张量积的泛性质保证:求值是双线性的,因此可以唯一地扩张为张量积空间上的线性映射。此过程不需要度量,也不需要选择坐标。(elliptic.space)

对于混合张量

T∈V⊗p⊗(V∗)⊗q,T\in V^{\otimes p}\otimes(V^*)^{\otimes q},

将一个 VV 因子与一个 V∗V^* 因子缩并,便得到一个 (p−1,q−1)(p-1,q-1) 型张量。对于初等张量,选定的向量和泛函被求值得到的标量替代,其余因子的顺序保持不变。再通过线性扩张,就定义了任意张量上的缩并运算。因此,每次这样的缩并都会使张量的总阶数降低二。这里的“阶数”有时也称为张量的秩,用来计数因子的个数,不应与矩阵的秩混淆。(maths.ed.ac.uk)

指标记号与不变性

选取一组基(线性代数) e1,…,ene_1,\ldots,e_n 及其对偶基 e1,…,ene^1,\ldots,e^n,满足 ei(ej)=δjie^i(e_j)=\delta^i_j。一个 (2,2)(2,2) 型张量的分量记为 TabcdT^{ab}{}_{cd}。将它的第二个上指标与第一个下指标缩并,得到

Sad=∑i=1nTaiid.S^a{}_d=\sum_{i=1}^{n}T^{ai}{}_{id}.

指标 a,da,d 是自由指标,用来描述输出;ii 是哑指标,仅用于求和。更换哑指标的名称不会改变结果。(maths.ed.ac.uk)

按照爱因斯坦求和约定,当一个指标分别作为上指标和下指标各出现一次时,求和号可以省略。这两个指标的变换规律相反,配对时相互抵消,从而保证缩并与所选的基无关。含有自由指标的表达式仍是张量,而完全缩并后的表达式则是标量。与坐标无关并不意味着部分缩并所得张量的分量在基变换下数值保持不变。(maths.ed.ac.uk)

常见例子

余向量在向量上的求值是最简单的例子:

α(v)=αivi.\alpha(v)=\alpha_i v^i.

对于自同态 A:V→VA:V\to V,将它的两个指标缩并,就得到矩阵的迹:

tr⁡A=Aii.\operatorname{tr}A=A^i{}_i.

因此,求迹本质上是作用于线性算子的运算,而不仅仅是将写出的矩阵的对角元素相加的规则。(elliptic.space)

矩阵乘法是对张量积进行缩并:

(AB)ik=∑jAijBjk.(AB)^i{}_k=\sum_j A^i{}_jB^j{}_k.

共有的指标 jj 被消去,而 i,ki,k 保留下来。同样,矩阵乘以向量时,是将矩阵的输入指标与向量的指标缩并。这些例子说明,缩并不同于保留所有输入指标的外积,也不同于逐分量乘法;单纯的逐分量乘法不涉及求和。(elliptic.space)

借助度量的缩并

典范缩并将类型相反的指标配对。要将两个上指标或两个下指标配对,则需要额外的结构。非退化的度量张量 gg 在向量与余向量之间建立对应,从而允许降低或升高指标。对于向量 u,vu,v,

g(u,v)=gijuivj.g(u,v)=g_{ij}u^iv^j.

对于协变二阶张量 AijA_{ij},其度量迹为

gijAij,g^{ij}A_{ij},

其中 gijg^{ij} 表示逆度量。这些表达式将度量的引入与典范缩并结合起来。(damtp.cam.ac.uk)

在实内积空间中,若选用标准正交基,则有 gij=δijg_{ij}=\delta_{ij},使得度量缩并看起来就像普通的同指标求和。这种简化依赖于基的选择。在微分几何中,缩并逐点作用于张量场。里奇张量由黎曼曲率张量缩并得到,再将里奇张量与逆度量缩并,就得到标量曲率。这两种构造都用于广义相对论。(damtp.cam.ac.uk)

数组与计算记号

数组库通常只编码各轴的长度,而不体现协变指标与逆变指标之间的几何区别。对于数组 AijkA_{ijk} 和 BjklB_{jkl},沿两对轴的缩并为

Cil=∑j,kAijkBjkl.C_{il}=\sum_{j,k}A_{ijk}B_{jkl}.

每对配对轴的长度必须相同。如果两个运算对象的阶数分别为 r,sr,s,且缩并了 mm 对轴,则输出的阶数为 r+s−2mr+s-2m。这些数组运算实现的是坐标公式;其几何意义取决于数组如何表示张量。(numpy.org)

NumPy 的 einsum 将上述例子写为 einsum('ijk,jkl->il', A, B)。它的记号也区分了求迹 'ii->' 与提取对角元素 'ii->i':如果重复的标签被明确保留在输出中,它们就不一定表示求和。(numpy.org)

张量网络与缩并顺序

张量网络将张量表示为节点,将缩并的指标表示为连接节点的边。未连接的边对应输出的自由指标;没有自由边的网络求值得到一个标量。这类表示可用于量子力学中的波函数范数和可观测量期望值计算。经典统计力学也利用网络缩并计算配分函数。(arxiv.org)

尽管在精确算术下,等价的缩并顺序会得到相同结果,但中间张量的大小和运算次数可能相差很大。因此,选择先组合哪些张量是一个重要的算法问题。大型网络可能需要近似缩并,以压缩表示替代不断增大的中间张量。这类近似会引入截断误差,而这种误差与精确的缩并运算本身是两回事。(arxiv.org)

参考来源

  1. Linear Algebra and Quantum Information, Section 9.4: Contractions and Traceelliptic.space
  2. Riemannian Manifolds: An Introduction to Curvaturemaths.ed.ac.uk
  3. Lecture 3: Tensors Continuedocw.mit.edu
  4. numpy.einsum — NumPy v2.1 Manualnumpy.org
  5. numpy.tensordot — NumPy Manualnumpy.org
  6. A Practical Introduction to Tensor Networks: Matrix Product States and Projected Entangled Pair Statesarxiv.org
  7. Lecture Notes of Tensor Network Contractionsarxiv.org