什么是张量
张量是多维数组的泛概念。一维数组我们通常称之为向量,二维数组我们通常称之为矩阵,但其实这些都是张量的一种。以此类推,我们也会有三维张量、四维张量以及五维张量。那么零维张量是什么呢?其实零维张量就是一个数。
张量的基本操作
两个张量的内积
< χ , y > = ∑ i 1 = 1 I 1 ∑ i 2 = 1 I 2 . . . ∑ i N = 1 I N x i 1 i 2 . . . i N y i 1 i 2 . . . i N <\chi,y>=\sum_{i_1=1}^{I_1} \sum_{i_2=1}^{I_2} ... \sum_{i_N=1}^{I_N} x_{i_1 i_2 ... i_N} y_{i_1 i_2 ... i_N} <χ,y>=i1=1∑I1i2=1∑I2...iN=1∑INxi1i2...iNyi1i2...iN
介绍
o b s e r v a t i o n [ I ] = i m a g e [ I c l e a n ] + n o i s e [ η ] observation[I] = image[I_{clean}]+noise[\eta] observation[I]=image[Iclean]+noise[η]
算法描述
张量简介
高阶奇异值分解(HOSVD)
什么是奇异值分解
奇异值分解最早是Beltrami与1873年对实正方矩阵提出来的。Beltrami从双线性函数:
f ( x , y ) = x T A y , A ∈ R n × n f(x,y)=x^TAy,A\in \R^{n \times n} f(x,y)=xTAy,A∈Rn×n
出发,通过引入线性变换 x = U ξ x=U \xi x=Uξ, y = V η y=V \eta y=Vη,将双线性函数变为 f ( x , y ) = ξ T S η f(x,y)=\xi^TS\eta f(x,y)=ξTSη,其中:
S = U T A V S=U^T A V S=UTAV
矩阵的奇异值分解
令 A ∈ R m × n A \in \R^{m \times n} A∈Rm×n,则存在正交矩阵 U ∈ R m × m U \in \R^{m \times m} U∈Rm×m和 V ∈ R n × n V \in \R^{n \times n} V∈Rn×n使得:
A = U Σ V T A=U \Sigma V^T A=UΣVT
式中 Σ = [ Σ 1 o o o ] \Sigma=\left[ \begin{array}{cc} \Sigma_1&o\\ o&o \end{array} \right] Σ=[Σ1ooo],且 Σ 1 = d i a g ( σ 1 , σ 2 , ⋅ ⋅ ⋅ , σ r ) \Sigma_1=diag(\sigma_1,\sigma_2,\cdot \cdot \cdot,\sigma_r) Σ1=diag(σ1,σ2,⋅⋅⋅,σr),其对角元素按照顺序
σ 1 ⩾ σ 2 ⩾ ⋅ ⋅ ⋅ σ r > 0 , r = r a n k ( A ) \sigma_1 \geqslant \sigma_2 \geqslant \cdot \cdot \cdot \sigma_r >0,~~~r=rank(A) σ1⩾σ2⩾⋅⋅⋅σr>0, r=rank(A)
排序。
酉矩阵 设 A ∈ C n × n A \in C^{n \times n} A∈Cn×n,若A满足 A H A = I A^HA=I AHA=I,则称A为酉矩阵。
奇异值分解的理论证明
设 A ∈ C r m × n ( r > 0 ) A \in C_r^{m \times n}(r>0) A∈Crm×n(r>0),则存在m阶酉矩阵U和n阶酉矩阵V使得:
U H A V = ( Σ o o o ) U^HAV=\begin{pmatrix}\Sigma&o\\o&o\end{pmatrix} UHAV=(Σooo)
式中: Σ = d i a g ( σ 1 , σ 2 , ⋅ ⋅ ⋅ , σ r ) , σ i \Sigma=diag(\sigma_1,\sigma_2,\cdot \cdot \cdot,\sigma_r),\sigma_i Σ=diag(σ1,σ2,⋅⋅⋅,σr),σi为A的非零奇异值。而:
A = U ( Σ o o o ) V H A=U\begin{pmatrix}\Sigma&o\\o&o\end{pmatrix}V^H A=U(Σooo)VH
称为A的奇异值分解。
证明:由于 A H A A^HA AHA为Hermite阵,则存在n阶酉矩阵V使得:
V H A H A V = d i a g ( λ 1 , λ 2 , ⋅ ⋅ ⋅ , λ n ) = ( Σ 2 o o o ) V^HA^HAV=diag(\lambda_1,\lambda_2,\cdot \cdot \cdot,\lambda_n)=\begin{pmatrix}\Sigma^2&o\\o&o\end{pmatrix} VHAHAV=diag(λ1,λ2,⋅⋅⋅,λn)=(Σ2ooo)
将V分块为:
V = ( V 1 , V 2 ) ( V 1 ∈ C n × r , V 2 ∈ C n × ( n − r ) ) V=(V_1,V_2)~~~~(V_1 \in C^{n \times r},V_2 \in C^{n \times (n-r)}) V=(V1,V2) (V1∈Cn×r,V2∈Cn×(n−r))
得:
V 1 H A H A V 1 = Σ 2 , V 2 H A H A V 2 = 0 V_1^HA^HAV_1=\Sigma^2,V_2^HA^HAV_2=0 V1HAHAV1=Σ2,V2HAHAV2=0
于是:
Σ − 1 V 1 H A H A V 1 Σ − 1 = I r , ( A V 2 ) H A V 2 = 0 \Sigma^{-1} V_1^HA^HAV_1 \Sigma^{-1}=I_r,(AV_2)^HAV_2=0 Σ−1V1HAHAV1Σ−1=Ir,(AV2)HAV2=0
从而 A V 2 = 0 AV_2=0 AV2=0。又记 U 1 = A V 1 Σ − 1 U_1=AV_1 \Sigma^{-1} U1=AV1Σ−1,则 U 1 H U 1 = I U_1^HU_1=I U1HU1=I,即 U 1 U_1 U1的r个列是两两正交的单位向量。取 U 2 ∈ C m × ( m − r ) U_2 \in C^{m \times (m-r)} U2∈Cm×(m−r)使 U = ( U 1 , U 2 ) U=(U_1,U_2) U=(U1,U2)为m阶酉矩阵,即 U 2 H U 1 = 0 , U 2 H U 2 = I m − r U_2^HU_1=0,U_2^HU_2=I_{m-r} U2HU1=0,U2HU2=Im−r。则有:
U H A V = ( U 1 H U 2 H ) A ( V 1 , V 2 ) = ( U 1 H A V 1 U 1 H A V 2 U 2 H A V 1 U 2 H A V 2 ) = ( U 1 H ( U 1 Σ ) 0 U 2 H ( U 1 Σ ) 0 ) = ( Σ 0 0 0 ) U^HAV=\begin{pmatrix}U_1^H\\ \\U_2^H\end{pmatrix}A\begin{pmatrix}V_1,V_2\end{pmatrix}= \begin{pmatrix}U_1^HAV_1&U_1^HAV_2\\ \\U_2^HAV_1&U_2^HAV_2\end{pmatrix}= \begin{pmatrix}U_1^H(U_1 \Sigma)&0\\ \\U_2^H(U_1 \Sigma)&0\end{pmatrix}= \begin{pmatrix}\Sigma&0\\ \\0&0\end{pmatrix} UHAV=⎝⎛U1HU2H⎠⎞A(V1,V2)=