The Tensor Train Rank-1 singular value decomposition (TTr1SVD) decomposes an arbitrary tensor A into a unique linear combination of orthonormal rank-1 terms. The Tensor Train Rank-1 symmetric eigenvalue decomposition (TTr1SED) does the same for a tensor that is symmetric in the last 2 modes of equal dimension. This allows for a very straightforward determination of a low-rank approximation as well as an easy quantification of the approximation error.
- Functions
- [U,S,V,sigmas]=ttr1svd(A) or [U,S,V,sigmas]=ttr1sed(A)
Use this function to compute the TTr1SVD(/SED) decomposition.
- Atilde=getAtilde(U,sigmas,V,sigmaI,n)
Use this function to compute a rank-R approximation Atilde of A from the TTr1SVD(/SED) decomposition.
- demo.m
Small demo that illustrates the use of most functions in this pacakge.
- [S,Q]=ttr12tucker(U,sigmas,V,n)
Converts a tensor A of size n in the TTr1SVD format to the Tucker (HOSVD) format. Usually results in a more sparse core S compared to traditional methods (e.g. Alternating Least Squares).
- O=orthc(A) or O=orthc(A,tol)
This function computes all outer vector products that form tensors orthogonal to A.
- ocv=verifyOrtc(A,O)
Use this function to verify that all tensors that can be formed with vectors in O are orthogonal to A.
- Reference
"A Constructive Algorithm for Decomposing a Tensor into a Finite Sum of Orthonormal Rank-1 Terms"
http://arxiv.org/abs/1407.1593
Authors: Kim Batselier, Haotian Liu, Ngai Wong