矩阵填充学习(二)
前言
上一篇文章学习了一些关于矩阵以及张量的基础知识,但是并不完全,后续学习中会继续补充。这篇文章将对张量分解的内容进行介绍学习。
张量的Tucker分解
张量分解的概念源自Hitchcock于1927发表的论文,他提出一个张量可以表现为有限个秩1张量的和,并称为典范多元分解。到20世纪60年代,Tucker相继发表了三篇关于张量因子分解的论文,后续Carroll与Harshman在1970年提出典范因子分解和平行因子分解,从而奠定了张量分解的两类方法:
(1)Tucker分解,又称高阶奇异值分解
(2)典范/平行因子分解,常简称CP分解
下面介绍Tucker分解的相关内容。
Tucker分解(高阶奇异值分解)
Tucker分解与Tucker算子密切相关。
Tucker算子
Tucker算子是张量与矩阵的多模式乘法的一种有效表示。
定义
令 G ∈ K J 1 × J 2 × ⋯ × J N \mathcal{G} \in \mathbb{K}^{J_1\times J_2\times \cdots \times J_N} G∈KJ1×J2×⋯×JN,矩阵 U ( n ) ∈ K I n × J n U^{(n)}\in \mathbb{K}^{I_n\times J_n} U(n)∈KIn×Jn,其中 n ∈ { 1 , ⋯ , N } n\in \{ 1,\cdots,N \} n∈{ 1,⋯,N},则Tucker算子定义为: [ [ G ; U ( 1 ) , U ( 2 ) , ⋯ , U ( N ) ] ] = d e f G × 1 U ( 1 ) × 2 U ( 2 ) ⋯ × N U ( N ) [[\mathcal{G};U^{(1)},U^{(2)},\cdots ,U^{(N)}]]\overset{\underset{\mathrm{def}}{}}{=} \mathcal{G} \times_1U^{(1)}\times_2U^{(2)}\cdots \times_N U^{(N)} [[G;U(1),U(2),⋯,U(N)]]=defG×1U(1)×2U(2)⋯×NU(N)其结果是一个N阶 I 1 × I 2 × ⋯ I N I_1\times I_2\times \cdots I_N I1×I2×⋯IN张量。
Tucker算子性质
给定N阶张量 G ∈ K J 1 × J 2 × ⋯ × J N \mathcal{G} \in \mathbb{K}^{J_1\times J_2\times \cdots \times J_N} G∈KJ1×J2×⋯×JN和标号集合 N = { 1 , ⋯ , N } \mathcal{N}=\{ 1,\cdots,N\} N={ 1,⋯,N},则Tucker算子具有以下性质:
(1)若 U ( n ) ∈ K I n × J n , n ∈ N U^{(n)}\in \mathbb{K}^{I_n\times J_n},n\in \mathcal{N} U(n)∈KIn×Jn,n∈N,则 [ [ [ [ G ; U ( 1 ) , U ( 2 ) , ⋯ , U ( N ) ] ] ; V ( 1 ) , ⋯ , V ( N ) ] ] = [ [ G ; V ( 1 ) U ( 1 ) , ⋯ , V ( N ) U ( N ) ] ] [[\; [[\mathcal{G};U^{(1)},U^{(2)},\cdots ,U^{(N)}]]\; ;V^{(1)},\cdots,V^{(N)}]]=[[\mathcal{G};V^{(1)}U^{(1)},\cdots ,V^{(N)}U^{(N)}]] [[[[G;U(1),U(2),⋯,U(N)]];V(1),⋯,V(N)]]=[[G;V(1)U(1),⋯,V(N)U(N)]]
(2)若 U ( n ) ∈ K I n × J n , n ∈ N U^{(n)}\in \mathbb{K}^{I_n\times J_n},n\in \mathcal{N} U(n)∈KIn×Jn,n∈N具有满列秩,则 X = [ [ G ; U ( 1 ) , U ( 2 ) , ⋯ , U ( N ) ] ] ⟺ G = [ [ X ; U ( 1 ) † , U ( 2 ) † , ⋯ , U ( N ) † ] ] \mathcal{X}=[[\mathcal{G};U^{(1)},U^{(2)},\cdots ,U^{(N)}]]\iff \mathcal{G}=[[\mathcal{X};U^{(1)\dagger},U^{(2)\dagger},\cdots ,U^{(N)\dagger}]] X=[[G;U(1),U(2),⋯,U(N)]]⟺G=[[X;U(1)†,U(2)†,⋯,U(N)†]]
(3)若 U ( n ) ∈ K I n × J n U^{(n)}\in \mathbb{K}^{I_n\times J_n} U(n)∈KIn×Jn(其中 J n ⩽ I n J_n\leqslant I_n