赞
踩
最近看的一篇paper需要的背景知识(可能略有删改)
目录
2.5 矩阵展开(Unfolding-Matricization)
2.7 Kronecker乘积(Kronecker Product)
2.8 Hadamard乘积(Hadamard Product)
2.9 Khatri-Rao乘积(Khatri-Rao Product)
张量(tensor)是一个多维的数据存储形式,数据的的维度被称为张量的阶,可以看成是向量和矩阵在多维空间中的推广。
向量可以看成是一维张量,矩阵可以看成是两维张量。
下面是一个三阶张量的例子,它有三维即3个mode。
值得注意的是这里说的张量是一个具有某种排列形式的数据的集合,它和物理中的张量场是不同的。
传统的方法(例如ICA,PCA、SVD和NMF)对于维数比较高的数据,一般将数据展成二维的数据形式(矩阵)进行处理,这种处理方式使得数据的结构信息丢失(比如说图像的邻域信息丢失),使得求解往往病态。而采用张量对数据进行存储,能够保留数据的结构信息,因此近些年在图像处理以及计算机视觉等领域得到了一些广泛的应用。张量分解中常见的两种分解是CP分解(Canonical Polyadic Decomposition (CPD)和Tucker分解(Tucker Decomposition)。下面将重点介绍这两种分解,并且将他们在图像处理中的一些应用进行阐述。
一个N阶维的张量可以表示为张量中的每一个元素可以由
纤维是指从张量中抽取向量的操作。在矩阵中固定其中一个维度,可以得到行或者列。类似于矩阵操作,固定其它维度,只保留一个维度变化,可以得到有纤维的概念。比如说我们对上图中的三阶张量分别按照I,J,K 三个mode进行Fiber操作可以得到如图所示的,
切片操作是指在张量中抽取矩阵的操作。在张量中如果保留两个维度变化,其它的维度变化可以得到一个矩阵,这个矩阵即为张量的切片。对图中的张量分别按照I,J,K三个方向进行操作可以得到如下图所示的,,三个维度的切片。
两个大小相同的张量
定义为张量中相对应的元素的乘积之和形式,即:
相应张量
的范数定义为:
即所有元素的平方和的平方根。
张量的矩阵展开是将一个张量的元素重新排列(即对张量的mode-n的纤维进行重新排列),得到一个矩阵的过程,张量
在第n维度上展开矩阵表示为
。对一个三阶张量按照I,J,K三个方向进行矩阵展开得到的矩阵如下图
定义张量
和张量
其中:即张量Z 是张量X和张量Y 中的每一个元素的乘积构成的。特别地如果X 和Y 分别是一个向量那么他们的外积是一个秩为1的矩阵,如果X 和Y和Z
分别是一个向量,那么他们的外积是一个秩为1三阶张量。
Kronecker乘积定义在两个矩阵上的运算:
Hadamard 乘积定义在两个相同大小的矩阵
上的运算:
Khatri-Rao乘积定义了两个相同列数的矩阵
上的操作,它的过程如下图所示。
张量与矩阵的模积定义了一个张量
和一个矩阵
这个定义可以写成沿mode-n展开的形式为: 如果
那么张量和矩阵的乘积可以看作是一个降维的过程,它把一个高维度的张量映射到一个低维度的张量空间。图???演示了一个张量和一个矩阵的乘积最终得到张量
,张量的第一个维度由7变成了4。
张量与向量的模积定义了一个张量
与向量
的运算为:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。