1.纤维(fiber)
纤维是指从张量中抽取向量的操作。在矩阵中固定其中一个维度,可以得到行或者列。类似于矩阵操作,保留一个维度变化,固定其它维度,可以得到有纤维的概念。
以三阶张量为例:
1>固定 j , k j,k j,k方向
m o d e − 1 mode-1 mode−1(列) 纤维: X : j k X_{:jk} X:jk
相当于将
i
i
i方向上的每个小方块串起来,形成一个整条(即为一个向量)
2>固定 i , k i,k i,k方向
m
o
d
e
−
2
mode-2
mode−2(行) 纤维:
X
i
:
k
X_{i:k}
Xi:k
相当于将
j
j
j方向上的每个小方块串起来,形成一个整条(即为一个向量)
3>固定 i , j i,j i,j方向
m
o
d
e
−
3
mode-3
mode−3(管) 纤维:
X
i
j
:
X_{ij:}
Xij:
相当于将
k
k
k方向上的每个小方块串起来,形成一个整条(即为一个向量)
2.切片(slice)
切片操作是指在张量中抽取矩阵的操作。在张量中如果保留两个维度变化,固定其它维度,可以得到一个矩阵,这个矩阵即为张量的切片。
1>固定 i i i方向
水平切片:
X
i
:
:
X_{i::}
Xi::
相当于在
m
o
d
e
−
2
mode-2
mode−2(行) 纤维:
X
i
:
k
X_{i:k}
Xi:k基础上将
k
k
k方向上的向量串起来(即为一个矩阵)
2>固定 j j j方向
侧面切片:
X
:
j
:
X_{:j:}
X:j:
相当于在
m
o
d
e
−
1
mode-1
mode−1(列) 纤维:
X
:
j
k
X_{:jk}
X:jk基础上将
k
k
k方向上的向量串起来(即为一个矩阵)
3>固定 k k k方向
正面切片:
X
:
:
k
X_{::k}
X::k
相当于在
m
o
d
e
−
1
mode-1
mode−1(列) 纤维:
X
:
j
k
X_{:jk}
X:jk基础上将
j
j
j方向上的向量串起来(即为一个矩阵)
一个更直观的立体图:
3.展开(matricization/unfolding/flattening)
定义:将
N
N
N阶张量
x
x
x沿
m
o
d
e
−
n
mode-n
mode−n展开成一个矩阵
X
(
n
)
X_{(n)}
X(n)。
通俗的讲:就是把这一片一片的拼凑的方式不同:
张量展开相当于就是矩阵化,矩阵化就是将一个张量变换成一个矩阵。
我们可以根据
f
i
b
e
r
fiber
fiber的方向来进行不同的矩阵化。
假设我们有一个张量:
A
=
5
6
7
8
1
2
3
4
A= \begin{matrix} & & 5& 6 \\ & & 7 & 8 \\ 1 & 2& & \\ 3 & 4 & & \end{matrix}
A=13245768
1>
m
o
d
e
−
1
M
a
t
r
i
c
i
z
a
t
i
o
n
mode-1Matricization
mode−1Matricization![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/25d573e16899e50567e16840d3ab15b8.png)
相当于:
2> m o d e − 2 M a t r i c i z a t i o n mode-2Matricization mode−2Matricization
相当于:
3>
m
o
d
e
−
3
M
a
t
r
i
c
i
z
a
t
i
o
n
mode-3Matricization
mode−3Matricization![在这里插入图片描述](https://i-blog.csdnimg.cn/blog_migrate/753416f304486cd8031e169b3ea6c8d4.png)
相当于:
4>张量展开例子
我们假设有一个
4
×
3
×
2
4×3×2
4×3×2的张量
按着第一种的展开:
按着第二种的展开:
按着第三种的展开:
个人思考:
纤维就是在张量中抽取向量,切片就是在张量中抽取矩阵,展开就是将张量展开为矩阵。