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