张量(tensor)理论是数学的一个分支学科,在力学中有重要应用。张量这一术语起源于力学,它最初是用来表示弹性介质中各点应力状态的,后来张量理论发展成为力学和物理学的一个有力的数学工具。张量之所以重要,在于它可以满足一切物理定律必须与坐标系的选择无关的特性。张量概念是矢量概念的推广,矢量是一阶张量。张量是一个可用来表示在一些矢量、标量和其他张量之间的线性关系的多线性函数。

张量(Tensor)是一个定义在的一些向量空间和一些对偶空间笛卡儿积上的多重线性映射,其坐标是|n|维空间内,有|n|个分量的一种量, 其中每个分量都是坐标的函数, 而在坐标变换时,这些分量也依照某些规则作线性变换。r 称为该张量的(与矩阵的秩和阶均无关系)在同构的意义下,第零阶张量 (r = 0) 为标量 (Scalar),第一阶张量 (r = 1) 为向量 (Vector), 第二阶张量 (r = 2) 则成为矩阵 (Matrix)

数学里,张量是一种几何实体,或者说广义上的“数量”。张量概念包括标量、向量和线性算子。张量可以用坐标系统来表达,记作标量的数组,但它是定义为“不依赖于参照系的选择的”。张量在物理和工程学中很重要。例如在扩散张量成像中,表达器官对于水的在各个方向的微分透性的张量可以用来产生大脑的扫描图。可能最重要的工程上的例子就是应力张量和应变张量了,它们都是二阶张量,对于一般线性材料他们之间的关系由一个四阶弹性张量来决定。虽然张量可以用分量的多维数组来表示,张量理论存在的意义在于进一步说明把一个数量称为张量的涵义,而不仅仅是说它需要一定数量的有指标索引的分量。特别是,在坐标转换时,张量的分量值遵守一定的变换法则。张量的抽象理论是线性代数分支,现在叫做多重线性代数


1.求和约定


指在给定的项中凡有一上和一下两个相同的指标就表示对该指标从1到空间维数 N求和。例如,在三维空间中,

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_高光谱


2.张量指标


包括哑指标和自由指标。哑指标是指各项中一上和一下成对的相同指标。例如,上式中的指标 i就是哑指标。自由指标是指在方程的所有项中只出现一次的指标


有两种定义张量的方法:


1. 按变换规律定义


  深度学习中的张量与物理学中的张量有区别吗 张量 物理_数据_02 


 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_数据_03

  个量

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_去噪_04

  与另一坐标系

  深度学习中的张量与物理学中的张量有区别吗 张量 物理_数据_05 


 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_数据_03

  个量

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_高光谱_07

 


深度学习中的张量与物理学中的张量有区别吗 张量 物理_去噪_08


 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_去噪_04

  称为 r阶逆变和 s阶协变混合张量的分量。若 s=0,则

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_去噪_10

  称为 r阶逆变张量的分量。若 r=0,则

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_去噪_11

  称为 s阶协变张量的分量。上述这种张量记法称为分量记法。


2.按不变性定义


凡可以在任何坐标系中写成下列不变性形式的量定义为 r+ s阶张量:



深度学习中的张量与物理学中的张量有区别吗 张量 物理_去噪_12

式中

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_数据_13

  和

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_高光谱_14

  分别为坐标系

  深度学习中的张量与物理学中的张量有区别吗 张量 物理_数据_02 


  深度学习中的张量与物理学中的张量有区别吗 张量 物理_数据_05 


1. 加减法


两个或多个同阶同型张量之和(差)仍是与它们同阶同型的张量。


2. 并积


两个张量的并积是一个阶数等于原来两个张量阶数之和的新张量。


3. 缩并


使张量的一个上标和一个下标相同的运算,其结果是一个比原来张量低二阶的新张量。


4. 点积


两个张量之间并积和缩并的联合运算。例如,在极分解定理中,三个二阶张量 RUV中一次点积 R·UV·R的结果是二阶张量 F


5. 对称化和反称化


对已给张量的 n个指标进行 n1不同置换并取所得的 n1个新张量的算术平均值的运算称为对称化。把指标经过奇次置换的新张量取反符号后再求算术平均值的运算称为反称化。


6. 加法分解


  深度学习中的张量与物理学中的张量有区别吗 张量 物理_去噪_17 

可以分解为

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_数据_18

  ,其中

  深度学习中的张量与物理学中的张量有区别吗 张量 物理_高光谱_19 


  深度学习中的张量与物理学中的张量有区别吗 张量 物理_去噪_20 

分别为

  深度学习中的张量与物理学中的张量有区别吗 张量 物理_去噪_21 

的对称和反称部分,即

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_去噪_22

  和

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_高光谱_23

 

1. 商法则


肯定某些量的张量性的法则


特殊张量主要有四种:


 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_数据_24

  和

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_数据_25

  分别称为协变和逆变度量张量,而混合度量张量

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_去噪_26

  ,这里

  深度学习中的张量与物理学中的张量有区别吗 张量 物理_去噪_27 

(或写为

  深度学习中的张量与物理学中的张量有区别吗 张量 物理_高光谱_28 

)为克罗内克符号,它定义为:

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_去噪_29


 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_去噪_30

  ,这里

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_高光谱_31

  表示元素

  深度学习中的张量与物理学中的张量有区别吗 张量 物理_高光谱_32 

为行列式,而置换符号

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_数据_33

  表示

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_高光谱_34

  (

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_高光谱_35

  是(1,2,3)的偶次置换),-1(

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_高光谱_35

 

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_数据_37

  的分量指标置换的结果,记为

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_数据_38

 

④正交张量 保持映象长度不变的二阶张量。


 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_高光谱_39

  和

 

深度学习中的张量与物理学中的张量有区别吗 张量 物理_去噪_40




张量分解-CP分解 2016.06.19



CP分解(Canonical Polyadic Decomposition)

N N阶的张量∈ℝI1×I2×⋯×IN XRI1I2IN分解为R R个秩为1的张量和的形式即:


=∑r=1Rλra(1)r∘a(2)r∘⋯a(N)r Xr1Rλrar1ar2arN

通常情况下 a(n)r arn 是一个单位向量。定义 A(n)=[an1an2⋯anR] Ana1na2naRn , D=diag(λ) Ddiagλ  那么上面的公式可以写为:

=D×1A(1)×2A(2)⋯×NA(N) XD1A12A2NAN

矩阵的表达形式即为:

X(n)=AnD(A(N)⨀⋯A(n+1)⨀A(n−1)⋯⨀A1)T XnAnDANAn1An1A1T

特殊的时候当张量  X 的阶数为3的时候,它的分解的形式下图所示。


深度学习中的张量与物理学中的张量有区别吗 张量 物理_去噪_41

张量的低秩近似

R R的最小值为张量的秩,记作Rank()=R RankXR,这样的CP分解也称为张量的秩分解。值得注意的是在张量中秩的定义是不唯一的,张量秩的个数求解是一个NP问题。对于一个矩阵A A它的SVD分解定义为:


A=∑r=1Rσrur∘vr,σ1≥σ2≥⋯σR≥0 Ar1Rσrurvrσ1σ2σR0

取SVD分解得到的前 k k 个因子作为矩阵 A A 的近似可以得到矩阵 A A 的低秩近似。类似于矩阵中的定义我们取张量的前 k k 个因子作为张量  X  的低秩近似即:

=∑k=1Kλka(1)k∘a(2)k∘⋯a(N)K Xk1Kλkak1ak2aKN

,不同于矩阵的低秩近似,张量的最佳Rank-n近似并不包括在其最佳Rank-n+1近似中,即张量的秩Rank-n 近似无法渐进地得到。

CP的求解

R R从1开始遍历直到找到一个合适的解。当数据无噪声时,重构误差为0所对应的解即为CP分解的解,当数据有噪声的情况下,可以通过CORCONDIA算法估计R R。当分解的秩1张量的个数确定下来之后,可以通过交替最小二乘方法对CP分解进行进行求解。下面我们以三阶张量为例对ALS 算法进行阐述。

∈ℝI×J×K XRIJK是一个三阶张量,对它进行张量分解的目标表达式为


min̂ ‖−‖^,̂ =∑r=1Rλrar∘br∘cr=[[λ;A,B,C]] XXXXr1RλrarbrcrλABC

ALS算法首先固定 B B , C C 去求解 A A ,接着固定 A A 和 C C 去求解 B B ,然后固定 B B  和 C C 去求解 A A ,这样不断地重复迭代直到达到收敛条件。固定矩阵 B

B 和 C C ,可以得到上面的式子在mode-1矩阵展开的时候形式为

min =‖X(1)− (C⊙B)T‖F AX1ACBTF

其中  =A.diag(λ) AAdiagλ ,那么上述式子的最优解为

 =X(1)[(C⊙B)T]† AX1CBT

为了防止数值计算的病态问题,通常把   A 的每一列单位化,即  λr=|ar^|,ar=ar^/λr λrarararλr  将上述式子推广到高阶形式可以得到

A(n)=Xn(A(N)⨀⋯A(n+1)⨀A(n−1)⋯⨀A1)V† whereV=A(1)T(A(1)⨀⋯A(n−1)⨀A(n+1)⋯⨀A(N)TA(N)) AnXnANAn1An1A1V whereVA1TA1An1An1ANTAN

对于一个 N N 阶的张量 X X 它的ALS求解的步骤如下图所示。它假设分解出Rank-1 张量的个数 R R 是事先知道的,对于各个因子的初始化,可以采用随机初始化也可以通过下面的式子进行初始化。

A(n)=R leading left singular vectors ofX(n)forn=1,⋯N AnR leading left singular vectors ofXnforn1N



深度学习中的张量与物理学中的张量有区别吗 张量 物理_去噪_42

可加约束

在一些应用中,为了使得CP分解更加的鲁棒和精确,可以在分解出的因子上加上一些先验知识即约束。比如说平滑约束(smooth)、正交约束、非负约束(nonegative) 、稀疏约束(sparsity)等。

CP分解应用

高光谱图像(HSI)是上个世纪80年代以来新兴的一种新型成像技术,它包括了可见光和不可见光范围的几十到几百个连续光谱窄波段构成,形成了一种数据立方体结构的图像。高光谱图像可以看作是一个三阶张量,图像的空间域和光谱域构成了数据的三个维度。采用低秩CP分解对高光谱图像去噪认为低秩的部分是无噪声的部分,剩下的部分认为是噪声数据,它的示意图如下图所示。

深度学习中的张量与物理学中的张量有区别吗 张量 物理_高光谱_43

从图中可以看到一个高光谱图像数据 X

=+ XSN

其中  S 认为是低秩的部分即干净的图像,  N 是噪声的部分(这里的噪声包括白噪声,高斯噪声等)。可以通过对原始数据  X  进行低秩CP分解来得到  S 。在Urban数据上进行去噪得到去噪前的数据和去噪之后的数据图分别如图下面的两幅图所示。从图中可以看到采用CP分解可以对高光谱图像进行去噪。

深度学习中的张量与物理学中的张量有区别吗 张量 物理_去噪_44

深度学习中的张量与物理学中的张量有区别吗 张量 物理_高光谱_45