张量分解系列:
张量分解(一):基础知识
张量分解(二):CP分解
张量分解(三):Tucker分解
张量分解(四):Tensor-train Decomposition
张量分解(五):Tensorizing Neural Network
张量分解(六):TTRNN model for video classification
在讲解Tucker分解之前,我们先看一下Tucker分解在三阶张量上的分解形式:
Tucker分解(Tucker decomposition)是高阶的主成分分析的一种形式。它将一个张量分解成一个核张量与每一维矩阵的乘积,具体如下:
这里
A
∈
R
I
×
P
,
B
∈
R
J
×
Q
,
A
∈
R
K
×
R
A\in R^{I\times P},B\in R^{J\times Q},A\in R^{K\times R}
A∈RI×P,B∈RJ×Q,A∈RK×R是因子矩阵(通常是正交的),可以当做是每一维上的主要成分。核张量表示每一维成分之间的联系:
在元素级别上,我们可以把Tucker分解表示为:
实际上,当核张量是对角化的且
P
=
Q
=
R
P=Q=R
P=Q=R 时,CP分解便是Tucker分解的一种特殊形式。
同样的,N维张量可以表示成以下形式:
至于Tucker分解的优化方法,有HOSVD和HOOI等方法。
HOSVD:
HOOI:
至于HOOI方法的推导,说实话我没太看懂,就不强行解释了。先把具体流程附上来,等有时间再仔细研究研究: