文章目录
- 张量
- 张量及其表示
- 张量的线性代数表示
- 三阶张量
- 张量的矩阵化和向量化
- 张量的水平展开与向量化
- 张量的基本代数运算
- 张量的內积、范数和外积
张量
基于张量的数据分析称为张量分析(tensor analysis),属于多重线性数据分析(multilinear data analysis)。
张量及其表示
数据沿一相同方向的排列称为一路阵列。标量称为零路阵列,行向量和列向量称为沿水平和垂直方向排列的一路阵列。矩阵是数据沿水平和垂直方向排列的二路阵列。张量即为数据的多路阵列表示,一个张量就是一个多路阵列或多维阵列,它是矩阵的一种扩展。
张量的数学符号表示为花体符号如
T
,
A
,
X
\mathcal{T,A,X}
T,A,X。
n
n
n路阵列表示为
n
n
n阶张量,是定义在
n
n
n个向量空间的笛卡尔积上的多重线性函数,记为
T
∈
K
I
1
×
I
2
×
⋯
×
I
n
\mathcal{T} \in\mathbb{K}^{I_1\times I_2\times \cdots \times I_n}
T∈KI1×I2×⋯×In。
其中
K
\mathbb{K}
K代表实数域
R
\mathbb{R}
R或复数域
C
\mathbb{C}
C。张量是跨越
n
n
n个向量空间的多线性映射,有:
T
:
K
I
1
×
K
I
2
×
⋯
×
K
I
n
→
K
I
1
×
I
2
×
⋯
×
I
n
\mathcal{T}:\mathbb{K}^{I_1}\times\mathbb{K}^{I_2}\times\cdots\times\mathbb{K}^{I_n}\rightarrow\mathbb{K}^{I_1\times I_2\times \cdots \times I_n}
T:KI1×KI2×⋯×KIn→KI1×I2×⋯×In
张量在各个领域均有应用,包括医学,化学等。
张量的线性代数表示
线性代数即有限维向量空间的矩阵的代数,定义一个有限维向量空间的线性算子。多重线性代数即高阶张量代数,定义了一组有限维向量空间的多重线性算子。
矩阵
A
∈
K
m
×
n
{\bm{A}}\in\mathbb{K}^{m\times n}
A∈Km×n用其元素和矩阵符号表示
[
⋅
]
[\cdot]
[⋅]表示为
A
=
[
a
i
j
]
i
,
j
=
1
m
,
n
{\bm{A}} = [a_{ij}]_{i,j=1}^{m,n}
A=[aij]i,j=1m,n。同样地,张量的表示可以写为
A
∈
K
I
1
×
I
2
×
⋯
×
I
n
\mathcal{A} \in\mathbb{K}^{I_1\times I_2\times \cdots \times I_n}
A∈KI1×I2×⋯×In使用双重矩阵符号
{
⋅
}
\begin{Bmatrix}\cdot \end{Bmatrix}
{⋅}表示为
A
=
{
a
i
1
⋯
i
n
}
i
1
,
⋯
i
n
=
1
I
1
,
⋯
,
I
n
\mathcal{A}= \begin{Bmatrix}a_{i_1\cdots i_n} \end{Bmatrix}_{i_1,\cdots i_n=1}^{I_1,\cdots,I_n}
A={ai1⋯in}i1,⋯in=1I1,⋯,In,其中
a
i
1
⋯
i
n
a_{i_1\cdots i_n}
ai1⋯in是张量第
(
i
1
⋯
i
n
)
({i_1\cdots i_n})
(i1⋯in)元素。
三阶张量
最常用的是三阶张量,有时也称为三维矩阵。
三阶张量的三路阵列不以行向量、列向量等相称,改称张量纤维(tensor fiber)。纤维是只保留一个下标可变,固定其他所有下标不变的一路阵列。水平纤维、竖直纤维、纵深纤维。例如:三阶张量
A
∈
K
I
×
J
×
K
\mathcal{A}\in\mathbb{K}^{I\times J\times K}
A∈KI×J×K,其符号表示纤维为:
a
i
:
k
,
a
:
j
k
,
a
i
j
:
a_{i:k},a_{:jk},a_{ij:}
ai:k,a:jk,aij:。
- 定义1:
N
N
N阶张量
A
=
{
a
i
1
⋯
i
n
}
i
1
,
⋯
i
n
=
1
I
1
,
⋯
,
I
n
∈
K
I
1
×
I
2
×
⋯
×
I
n
\mathcal{A}= \begin{Bmatrix}a_{i_1\cdots i_n} \end{Bmatrix}_{i_1,\cdots i_n=1}^{I_1,\cdots,I_n}\in \mathbb{K}^{I_1\times I_2\times \cdots\times I_n}
A={ai1⋯in}i1,⋯in=1I1,⋯,In∈KI1×I2×⋯×In的模式-
n
n
n向量是一个以
i
n
i_n
in为元素下标变量,而其他下标均固定不变的
I
n
I_n
In维向量,记作
A
i
1
⋯
i
n
−
1
:
i
n
+
1
⋯
i
N
{\bf{A}}_{i_1\cdots i_n-1:i_n+1\cdots i_N}
Ai1⋯in−1:in+1⋯iN。
注意张量阶数和维数的区别: N N N称为阶数, I n I_n In称为第 n n n路阵列的维数。
高阶张量也可以使用矩阵的集合表示。如三阶张量可以使用矩阵组成水平切片、侧向切片、正面切片等,符号表示为:
A
i
:
:
,
A
:
j
:
,
A
:
:
k
{\bf{A}}_{i::},{\bf{A}}_{:j:},{\bf{A}}_{::k}
Ai::,A:j:,A::k。
切片的数学表示:
- 三阶张量
A
∈
K
I
×
J
×
K
\mathcal{A}\in\mathbb{K}^{I\times J\times K}
A∈KI×J×K有
I
I
I个水平切片
A i : : = [ a i 11 ⋯ a i 1 K ⋮ ⋱ ⋮ a i J 1 ⋯ a i J K ] = [ a i : 1 , ⋯ , a i : K ] = [ a i 1 : ⋮ a i J : ] , i = 1 , ⋯ , I {\bf{A}}_{i::}=\begin{bmatrix}a_{i11}&\cdots & a_{i1K}\\ \vdots & \ddots & \vdots \\ a_{iJ1} & \cdots & a_{iJK}\end{bmatrix}=\begin{bmatrix}\bm{a}_{i:1},\cdots,\bm{a}_{i:K}\end{bmatrix}=\begin{bmatrix}\bm{a}_{i1:}\\\vdots\\\bm{a}_{iJ:}\end{bmatrix},i=1,\cdots,I Ai::=⎣⎢⎡ai11⋮aiJ1⋯⋱⋯ai1K⋮aiJK⎦⎥⎤=[ai:1,⋯,ai:K]=⎣⎢⎡ai1:⋮aiJ:⎦⎥⎤,i=1,⋯,I - 三阶张量
A
∈
K
I
×
J
×
K
\mathcal{A}\in\mathbb{K}^{I\times J\times K}
A∈KI×J×K有
J
J
J个侧向切片
A : j : = [ a 1 j 1 ⋯ a I j 1 ⋮ ⋱ ⋮ a 1 j K ⋯ a I j K ] = [ a 1 j : , ⋯ , a I j : ] = [ a : j 1 ⋮ a : j K ] , j = 1 , ⋯ , J {\bf{A}}_{:j:}=\begin{bmatrix}a_{1j1}&\cdots & a_{Ij1}\\ \vdots & \ddots & \vdots \\ a_{1jK} & \cdots & a_{IjK}\end{bmatrix}=\begin{bmatrix}\bm{a}_{1j:},\cdots,\bm{a}_{Ij:}\end{bmatrix}=\begin{bmatrix}\bm{a}_{:j1}\\\vdots\\\bm{a}_{:jK}\end{bmatrix},j=1,\cdots,J A:j:=⎣⎢⎡a1j1⋮a1jK⋯⋱⋯aIj1⋮aIjK⎦⎥⎤=[a1j:,⋯,aIj:]=⎣⎢⎡a:j1⋮a:jK⎦⎥⎤,j=1,⋯,J
3.三阶张量 A ∈ K I × J × K \mathcal{A}\in\mathbb{K}^{I\times J\times K} A∈KI×J×K有 K K K个正面切片
A : : k = [ a 11 k ⋯ a 1 J k ⋮ ⋱ ⋮ a I 1 k ⋯ a I J k ] = [ a : 1 k , ⋯ , a : J k ] = [ a 1 : k ⋮ a I : k ] , k = 1 , ⋯ , K {\bf{A}}_{::k}=\begin{bmatrix}a_{11k}&\cdots & a_{1Jk}\\ \vdots & \ddots & \vdots \\ a_{I1k} & \cdots & a_{IJk}\end{bmatrix}=\begin{bmatrix}\bm{a}_{:1k},\cdots,\bm{a}_{:Jk}\end{bmatrix}=\begin{bmatrix}\bm{a}_{1:k}\\\vdots\\\bm{a}_{I:k}\end{bmatrix},k=1,\cdots,K A::k=⎣⎢⎡a11k⋮aI1k⋯⋱⋯a1Jk⋮aIJk⎦⎥⎤=[a:1k,⋯,a:Jk]=⎣⎢⎡a1:k⋮aI:k⎦⎥⎤,k=1,⋯,K
张量的矩阵化和向量化
张量的计算中希望使用矩阵代表一个三阶张量。将一个三路或
N
N
N路阵列重新组织成一个矩阵形式的变换称为张量的矩阵化(matricization or matricizing)。也称张量的展开(unfolding)或扁平化(flattening)。
向量化同理。
张量的水平展开与向量化
张量的基本代数运算
张量的內积、范数和外积
- 定义:张量的內积,若
A
,
B
∈
T
(
I
1
,
I
2
,
⋯
,
I
n
)
\mathcal{A,B}\in \mathcal{T}(I_1,I_2,\cdots,I_n)
A,B∈T(I1,I2,⋯,In),则
A
\mathcal{A}
A和
B
\mathcal{B}
B的內积为标量,定义为两个张量的列向量化之间的內积
⟨ A , B ⟩ = def ⟨ v e c ( A ) , v e c ( B ) ⟩ = ( v e c ( A ) ) H v e c ( B ) = ∑ i 1 = 1 I 1 ∑ i 2 = 1 I 2 ⋯ ∑ i n = 1 I n a i 1 i 2 ⋯ i n ∗ b i 1 i 2 ⋯ i n \left \langle \mathcal{A,B}\right \rangle\overset{\text{def}}{=}\left\langle vec(\mathcal{A}),vec(\mathcal{B})\right\rangle=(vec(\mathcal{A}))^Hvec(\mathcal{B})\\ =\sum_{i_1=1}^{I_1}\sum_{i_2=1}^{I_2}\cdots\sum_{i_n=1}^{I_n}a_{i_1i_2\cdots i_n}^{*}b_{i_1i_2\cdots i_n} ⟨A,B⟩=def⟨vec(A),vec(B)⟩=(vec(A))Hvec(B)=i1=1∑I1i2=1∑I2⋯in=1∑Inai1i2⋯in∗bi1i2⋯in
其中 ∗ * ∗表示复共轭。
根据张量內积的概念,可以得到其张量范数的定义。
- 定义(张量的Frobenius范数):张量
A
\mathcal{A}
A的Frobenius范数的定义为:
∥ A ∥ F = ⟨ A , A ⟩ = def ( ∑ i 1 = 1 I 1 ∑ i 2 = 1 I 2 ⋯ ∑ i n = 1 I n ∣ a i 1 i 2 ⋯ i n ∣ 2 ) 1 / 2 \left \| \mathcal{A} \right \|_F=\sqrt{\left \langle \mathcal{A,A}\right\rangle}\overset{\text{def}}{=}\left( \sum_{i_1=1}^{I_1}\sum_{i_2=1}^{I_2}\cdots\sum_{i_n=1}^{I_n}\left| a_{i_1i_2\cdots i_n}\right|^2\right)^{1/2} ∥A∥F=⟨A,A⟩=def(i1=1∑I1i2=1∑I2⋯in=1∑In∣ai1i2⋯in∣2)1/2
其內积和范数具有如下性质: - 张量的范数可以转化成张量的矩阵化的范数
∥ A ∥ = ∥ A ( I n × I 1 ⋯ I n − 1 I n + 1 ⋯ I N ) ∥ = ∥ A ( I 1 ⋯ I n − 1 I n + 1 ⋯ I N × I n ) ∥ \left \| \mathcal{A} \right \|=\left \| \bm{A}^{(I_n\times I_1\cdots I_{n-1}I_{n+1}\cdots I_N)} \right \|=\left \| \bm{A}^{(I_1\cdots I_{n-1}I_{n+1}\cdots I_N\times I_n)} \right \| ∥A∥=∥∥∥A(In×I1⋯In−1In+1⋯IN)∥∥∥=∥∥∥A(I1⋯In−1In+1⋯IN×In)∥∥∥ - 张量的范数可以改成张量的向量化函数的范数
∥ A ∥ = ∥ a ( I 1 I 2 ⋯ I N × 1 ) ∥ = ∥ a ( 1 × I 1 I 2 ⋯ I N ) ∥ \left \| \mathcal{A} \right \|=\left\| \bm{a}^{(I_1I_2\cdots I_N\times 1)}\right\|=\left\| \bm{a}^{(1\times I_1I_2\cdots I_N)}\right\| ∥A∥=∥∥∥a(I1I2⋯IN×1)∥∥∥=∥∥∥a(1×I1I2⋯IN)∥∥∥ - 两个张量之差的范数平方
∥ A − B ∥ 2 = ∥ A ∥ 2 − 2 ⟨ A , B ⟩ + ∥ B ∥ 2 \left \| \mathcal{A-B} \right \|^2=\left \| \mathcal{A} \right \|^2-2\left \langle \mathcal{A,B}\right\rangle+\left \| \mathcal{B} \right \|^2 ∥A−B∥2=∥A∥2−2⟨A,B⟩+∥B∥2 - 若
Q
∈
K
J
×
I
n
Q\in\mathbb{K}^{J\times I_n}
Q∈KJ×In为标准正交矩阵,即
Q
Q
H
=
I
J
×
J
QQ^H=I_{J\times J}
QQH=IJ×J或
Q
H
Q
=
I
I
n
×
I
N
Q^HQ=I_{I_n\times I_N}
QHQ=IIn×IN,则有
∥ A × n Q ∥ = ∥ A ∥ \left \| \mathcal{A}{\times_n} Q \right \|=\left \| \mathcal{A} \right \| ∥A×nQ∥=∥A∥ - 令
A
,
B
∈
K
I
1
×
I
2
×
⋯
×
I
N
,
a
n
,
b
n
∈
K
J
×
I
n
\mathcal{A,B}\in \mathbb{K}^{I_1\times I_2 \times \cdots \times I_N},\bm{a}_n,\bm{b}_n\in \mathbb{K}^{J\times I_n}
A,B∈KI1×I2×⋯×IN,an,bn∈KJ×In,其
A
=
a
1
∘
a
2
∘
⋯
a
N
\mathcal{A}=\bm{a_1}\circ\bm{a_2}\circ\cdots \bm{a_N}
A=a1∘a2∘⋯aN和
B
=
b
1
∘
b
2
∘
⋯
b
N
\mathcal{B}=\bm{b_1}\circ\bm{b_2}\circ\cdots \bm{b_N}
B=b1∘b2∘⋯bN,则
⟨ A , B ⟩ = ∏ = 1 N ⟨ a n , b n ⟩ \left \langle \mathcal{A,B}\right\rangle=\prod_{=1}^{N}\left \langle \mathcal{\bm{a}_n,\bm{b}_n}\right\rangle ⟨A,B⟩==1∏N⟨an,bn⟩
向量的外积(output product)为一个矩阵,有 X = u v T \bf{X}=\bm{uv}^T X=uvT多个向量的外积给出一张量。使用 ∘ \circ ∘表示多个向量的外积。
- 定义 (向量外积)
n
n
n个向量
a
(
i
)
∈
K
i
×
1
,
i
=
1
,
⋯
,
n
a^{(i)}\in \mathbb{K}^{i\times 1},i=1,\cdots ,n
a(i)∈Ki×1,i=1,⋯,n的外积记为
a
(
1
)
∘
a
(
2
)
∘
⋯
×
a
(
n
)
a^{(1)}\circ a^{(2)}\circ \cdots \times a^{(n)}
a(1)∘a(2)∘⋯×a(n),其中为一个张量,有
A = a ( 1 ) ∘ a ( 2 ) ∘ ⋯ a ( n ) \mathcal{A}=\bm{a^{(1)}}\circ\bm{a^{(2)}}\circ\cdots \bm{a^{(n)}} A=a(1)∘a(2)∘⋯a(n)
使用元素形式定义为
a i 1 i 2 ⋯ i n = a i 1 ( 1 ) a i 2 ( 2 ) ⋯ a i 1 ( 1 ) a_{i_1i_2\cdots i_n}=a_{i_1}^{(1)}a_{i_2}^{(2)}\cdots a_{i_1}^{(1)} ai1i2⋯in=ai1(1)ai2(2)⋯ai1(1)
式中 a j ( i ) a_{j}^{(i)} aj(i)是模式 − n -n −n的第 j j j个元素。
向量的外积可以推广到张量的外积,有
- 定义:(张量外积)两个张量
A
∈
K
I
1
×
I
2
×
⋯
×
I
N
\mathcal{A}\in \mathbb{K}^{I_1\times I_2 \times \cdots \times I_N}
A∈KI1×I2×⋯×IN和
B
∈
K
J
1
×
J
2
×
⋯
×
J
N
\mathcal{B}\in \mathbb{K}^{J_1\times J_2 \times \cdots \times J_N}
B∈KJ1×J2×⋯×JN的外积仍为张量,记作
A
∘
B
∈
K
I
1
×
⋯
×
I
P
×
J
1
×
⋯
×
J
Q
\mathcal{A\circ B}\in \mathbb{K}^{I_1\times \cdots \times I_P\times J_1 \times \cdots\times J_Q}
A∘B∈KI1×⋯×IP×J1×⋯×JQ
( A ∘ B ) i 1 ⋯ i P j 1 ⋯ j Q = a i 1 ⋯ i P b j 1 ⋯ j Q (\mathcal{A\circ B})_{i_1\cdots i_Pj_1\cdots j_Q}=a_{i_1\cdots i_P}b_{j_1\cdots j_Q} (A∘B)i1⋯iPj1⋯jQ=ai1⋯iPbj1⋯jQ
《矩阵分析与应用(第2版)》第10章 张量分析——张贤达