声明:本文参考下面的博文张量介绍整理而成。
(一)张量及其相关的定义
1、张量定义
张量是一个多维数组。更正式地说,一个 N 阶张量是 N 个向量空间元素的张量积,每个向量空间都有自己的坐标系。
张量的阶数(the order of a tensor)也称为维数(dimensions)、模态(modes)、或方式(ways)。
一阶张量是一个矢量,二阶张量是一个矩阵,三阶或更高阶的张量叫做高阶张量。
2、 纤维(Fibers)定义
纤维(Fibers) 是矩阵的行和列的高阶类似物。(纤维是指从张量中抽取的向量)
例如,矩阵 A 的列为mode-1纤维,行为mode-2纤维;
三阶张量有 列(column) 、行(row) 、管(tube) 纤维。
5
3、 切片(Slices)定义
切片 (Slices) 是一个张量的二维切片,通过固定除两个维度之外的索引来定义。(切片是指从张量中抽取的矩阵)
例如,三阶张量 X的 水平面(horizontal) 、 侧面(lateral) 和 正面(frontal) 的切片。
(一)张量运算
1、矩阵化:将张量转化为矩阵(Matricization: Transforming a Tensor into a Matrix)
矩阵化(Matricization),也就是所谓的“展开”(unfolding)或“压扁”(flattening),是将一个 n 维数组中的元素重新排列成一个矩阵的过程。
其中,
X
(
1
)
X_{(1)}
X(1),
X
(
2
)
X_{(2)}
X(2)和
X
(
3
)
X_{(3)}
X(3)分别是
X
1
X_{1}
X1和
X
2
X_{2}
X2按列合并,按行合并,按管合并。
按列合并之后的维度行保持不变,合并新维度:行
×
\times
×列管;(不变的维度变成新矩阵的行)
按行合并之后的维度列保持不变,合并新维度:列
×
\times
×行管;
按管合并之后的维度管保持不变,合并新维度:管
×
\times
×行列;
2、张量乘积:n模乘(Tensor Multiplication : The n-Mode Product)
张量可以相乘,尽管显然它的符号和符号要比矩阵复杂得多。对于张量乘法的完整处理参见:Bader, MATLAB Tensor Classes forFast Algorithm Prototyping,2006.
这里我们只考虑张量n模乘(n-mode product),即用一个张量乘以一个n维矩阵(或向量)。
2.1 n模矩阵积(n-mode matrix product)
(1)定义
(2)例题中的
×
1
\times_{1}
×1的意思是,
Y
1
=
U
X
1
\textrm{Y}_{1}=\textrm{U}\textrm{X}_{1}
Y1=UX1,
Y
2
=
U
X
2
\textrm{Y}_{2}=\textrm{U}\textrm{X}_{2}
Y2=UX2;
列是
×
1
\times_{1}
×1,行是
×
2
\times_{2}
×2,管是
×
3
\times_{3}
×3。
(2)基本运算法则
2.2 n模向量积(The n-mode vector product)
注:(2)例题中的
×
2
\times_{2}
×2的意思是,
Y
1
=
X
1
v
\textrm{Y}_{1}=\textrm{X}_{1}\textrm{v}
Y1=X1v,
Y
2
=
X
2
v
\textrm{Y}_{2}=\textrm{X}_{2}\textrm{v}
Y2=X2v;
列是
×
1
\times_{1}
×1,行是
×
2
\times_{2}
×2,管是
×
3
\times_{3}
×3。