张量计算系列 - 1. 基础

定义:逐元素幂(component-wise power)

  • 对于向量 \(x \in \mathbb{R}^n\),用 \(x_i\) 表示它的各个分量,
  • 向量 \(x \in \mathbb{R}^n\)逐元素幂 记为 \(x^{[m]}\in\mathbb{R}^n\),其第 \(i\) 个分量满足
    \[ \left( x^{[m]} \right) _i = x_i^{\,m}, \qquad \forall \; i\in\left\{1,\ldots,n\right\}. \] 此外 \(x^{[m]}\) 可以表示为 Hadamard 乘积: \[ \begin{align} x^{[m]} = x \odot x \odot \cdots \odot x, \end{align} \]

定义:张量(矩阵的升维)

一个实的 \(m\)\(n\) 维张量 \(A\)\(n^m\) 个实数分量构成: \[ A_{i_1,\ldots,i_m} \in \mathbb{R}, \] 其中 \(i_j = 1,\ldots,n\)\(j = 1,\ldots,m\)

定义:超对称(supersymmetric)张量(对称矩阵的升维)

若在指标的任意排列下 \(A\) 的各个分量都保持不变, 则称张量 \(A\)超对称张量(Kofidis and Regalia, 2002)。

例:张量与向量的乘法(矩阵二次型的升维)

  • 矩阵二次型: 2 阶张量 + 2 个向量
    • 矩阵只是 2 阶张量;
    • 二次型 $ x^A x $ 其实就是最终得到的标量二次多项式。
  • 张量的高阶乘法: m 阶张量 + m 个向量
    • 高阶张量也是一样:用张量乘法做 内积/收缩/降维
    • 最后可以得到一个标量 \(m\) 次齐次多项式。

这里讨论 三阶二维张量\(Ax,Ax^2,Ax^3\) 的计算示例

\(m=3,n=2\)。张量 \(A\) 的索引为 \[ A_{i_1 i_2 i_3},\qquad i_1,i_2,i_3\in\{1,2\}, \] 共有 \(2^3=8\) 个分量。我们取一个超对称(supersymmetric)张量 \(A\),其非零分量为 \[ \begin{align*} &A_{111}=1,\qquad A_{222}=3,\\ &A_{112}=A_{121}=A_{211}=2,\\ &A_{122}=A_{212}=A_{221}=-1, \end{align*} \] 其余分量均为零。记向量 \[ x= \begin{pmatrix} x_1\\[0.2em] x_2 \end{pmatrix}. \]

一般地,对于三阶张量 \(A_{ijk}\) 与向量 \(x\),我们定义 \[ \begin{align*} (Ax)_{ij} &= \sum_{k=1}^2 A_{ijk}x_k,\\ (Ax^2)_i &= \sum_{j,k=1}^2 A_{ijk}x_jx_k,\\ Ax^3 &= \sum_{i,j,k=1}^2 A_{ijk}x_ix_jx_k. \end{align*} \] 可以看到,每与 \(x\) 收缩一次,张量的阶数就降低 \(1\)\(A\) 是三阶张量,\(Ax\) 是二阶张量(矩阵),\(Ax^2\) 是一阶张量(向量),\(Ax^3\) 则是零阶张量(标量,即一个多项式)。

  • \(Ax\) 的计算(得到矩阵) 根据定义 \[ (Ax)_{ij}=\sum_{k=1}^2 A_{ijk}x_k, \] 分别计算四个分量: \[ \begin{align*} (Ax)_{11} &= A_{111}x_1 + A_{112}x_2 = 1\cdot x_1 + 2\cdot x_2 = x_1 + 2x_2,\\ (Ax)_{12} &= A_{121}x_1 + A_{122}x_2 = 2x_1 + (-1)x_2 = 2x_1 - x_2,\\ (Ax)_{21} &= A_{211}x_1 + A_{212}x_2 = 2x_1 + (-1)x_2 = 2x_1 - x_2,\\ (Ax)_{22} &= A_{221}x_1 + A_{222}x_2 = (-1)x_1 + 3x_2 = -x_1 + 3x_2. \end{align*} \] 因此 \[ Ax= \begin{pmatrix} x_1+2x_2 & 2x_1-x_2\\[0.3em] 2x_1-x_2 & -x_1+3x_2 \end{pmatrix}. \]

  • \(Ax^2\) 的计算(得到向量) 由定义 \[ (Ax^2)_i=\sum_{j,k=1}^2 A_{ijk}x_jx_k, \]\(i=1,2\) 分别计算:

    • 第一个分量 \(i=1\) \[ \begin{align*} (Ax^2)_1 &=A_{111}x_1x_1 +A_{112}x_1x_2 +A_{121}x_2x_1 +A_{122}x_2x_2\\ &=1\cdot x_1^2 +2x_1x_2 +2x_2x_1 +(-1)x_2^2\\ &=x_1^2+4x_1x_2-x_2^2. \end{align*} \]

    • 第二个分量 \(i=2\) \[ \begin{align*} (Ax^2)_2 &=A_{211}x_1x_1 +A_{212}x_1x_2 +A_{221}x_2x_1 +A_{222}x_2x_2\\ &=2x_1^2 +(-1)x_1x_2 +(-1)x_2x_1 +3x_2^2\\ &=2x_1^2-2x_1x_2+3x_2^2. \end{align*} \] 于是 \[ Ax^2= \begin{pmatrix} x_1^2+4x_1x_2-x_2^2\\[0.3em] 2x_1^2-2x_1x_2+3x_2^2 \end{pmatrix}. \] 注意到也可以写成 \[ (Ax^2)_i=\sum_{j=1}^2 (Ax)_{ij}x_j, \]\[ Ax^2=(Ax)\,x, \] 与上面的直接计算完全一致。

  • \(Ax^3\) 的计算(得到标量多项式) 按定义 \[ Ax^3=\sum_{i,j,k=1}^2 A_{ijk}x_ix_jx_k, \] 将 8 项按「出现的下标组合」分类:

    • 纯 1: \[ A_{111}x_1x_1x_1 = x_1^3. \]

    • 纯 2: \[ A_{222}x_2x_2x_2 = 3x_2^3. \]

    • 两个 1 一个 2 的三种排列: \[ \begin{align*} &A_{112}x_1^2x_2 +A_{121}x_1x_2x_1 +A_{211}x_2x_1^2 \\ &=2x_1^2x_2+2x_1^2x_2+2x_1^2x_2 =6x_1^2x_2. \end{align*} \]

    • 一个 1 两个 2 的三种排列: \[ \begin{align*} &A_{122}x_1x_2^2 +A_{212}x_2x_1x_2 +A_{221}x_2^2x_1\\ &=(-1-1-1)x_1x_2^2 =-3x_1x_2^2. \end{align*} \] 综合得到 \[ Ax^3=x_1^3+6x_1^2x_2-3x_1x_2^2+3x_2^3. \] 同样地,也可以利用 \[ Ax^3 = x^\mathsf{T}(Ax^2) = x_1(Ax^2)_1 + x_2(Ax^2)_2, \] 代入上面求得的 \((Ax^2)_1,(Ax^2)_2\),可以验证得到的结果与直接展开完全一致。

从这个例子可以清楚地看到: \[ A \;\xrightarrow{\ \cdot x\ }\; Ax \;\xrightarrow{\ \cdot x\ }\; Ax^2 \;\xrightarrow{\ x^\mathsf{T}\cdot\ }\; Ax^3, \] 每收缩一次,张量的阶数降 \(1\),最终得到一个仅由 \(x_1,x_2\) 和张量系数 \(A_{ijk}\) 决定的三次齐次多项式。

定义:齐次多项式

\(\mathbb{R}^n\) 上的多项式 \[ f(x) = f(x_1,\ldots,x_n) \] 叫作 \(m\) 次齐次多项式(\(m\)-homogeneous polynomial),如果对任意实数 \(t\) 都有 \[ f(tx) = t^m f(x). \]

也就是说:齐次多项式中每个单项式的次幂都是 \(m\)

例子:齐次多项式举例

  • 二次: \[ f(x,y) = 3x^2 + 2xy + 5y^2. \]
  • 三次: \[ f(x,y,z) = x^3 + 2xyz - 5y^2 z. \] \end{itemize}

定义:张量诱导齐次多项式

张量 \(A\) 诱导出一个 \(m\) 次齐次多项式 \(f(x)\in\mathbb{R}[x_1,\ldots,x_n]\),其中 \(x=(x_1,\ldots,x_n)\),定义为 \[ \begin{equation} f(x)\equiv A x^m := \sum_{i_1,\ldots,i_m=1}^n A_{i_1,\ldots,i_m}\,x_{i_1}\cdots x_{i_m}. \label{eq:Axm-def} \end{equation} \] 其中,\(x^m\) 可以看作一个 \(m\)\(n\) 维的秩一张量,其分量为 \(x_{i_1}\cdots x_{i_m}\)(Kofidis and Regalia, 2002),而 \(A x^m\)\(A\)\(x^m\) 的张量积。

显然,如果 \(A\) 不是超对称的,我们可以用一个 超对称张量 \(\bar{A}\) 代替 \(A\),使得 \[ f(x)\equiv \bar{A}x^m \equiv A x^m. \] 我们把这个超对称张量 \(\bar{A}\) 记作 \(\operatorname{sym}(A)\)

利用张量积(Qi and Teo, 2003),对向量 \(x \in \mathbb{R}^n\)\(A x^{m-1}\) 表示 \(\mathbb{R}^n\) 中的一个向量,其第 \(i\) 个分量为 \[ \bigl(A x^{m-1}\bigr)_i = \sum_{i_2,\ldots,i_m=1}^n A_{i,i_2,\ldots,i_m}\,x_{i_2}\cdots x_{i_m}. \]

Qi (2004) 称实数 \(\lambda\) 为张量 \(A\) 的一个 (H-eigenvalue), 如果它与某个非零实向量 \(x\) 一起是下列齐次多项式方程的解: \[ \begin{equation} A x^{m-1} = \lambda x^{[m-1]}, \label{eq:H-eig} \end{equation} \] 并将该解 \(x\) 称为与 H-特征值 \(\lambda\) 相对应的 (H-eigenvector)。

Qi (2004) 还称实数 \(\lambda\) 以及实向量 \(x \in \mathbb{R}^n\) 分别为张量 \(A\) 的 (Z-eigenvalue)和与该 Z-特征值 \(\lambda\) 相联系的 (Z-eigenvector),如果它们满足下面的方程组: \[ \begin{equation} \begin{cases} A x^{m-1} = \lambda x,\\[0.3em] x^\mathsf{T} x = 1. \end{cases} \label{eq:Z-eig} \end{equation} \]


张量计算系列 - 1. 基础
http://yylustb.github.io/2025/12/07/opt/Tensor/tensor_1/
作者
yylustb
发布于
2025年12月7日
许可协议