Fork me on GitHub
  1. QTT: 一种自带并行的数组结构

    2015-08-16 14:21:00   作者:JSong

    我们知道很多算法内部都是一些基本运算的组合,比如向量加减法,矩阵加减,矩阵-向量乘积,矩阵乘法,hadamard积,kronecker张量积,元素索引等。而QTT对于这些运算都可以很简单的实现并行。

    首先我们来看一下,什么是QTT表示。给定一个多维数组A,其可以是向量,矩阵,或者更高维的数组,这都不是问题。 设A的维数为\(l\),如果它有如下的表示,则我们称其为多维数组A的QTT分解。

    $$ A= U_1 \bowtie U_2 \bowtie \cdots \bowtie U_d $$

    那读者肯定得问这里的\(U_k\)\(\bowtie\)是什么鬼,先不急,假设你已经懂了,就把它看成是一种编码。按这个编码我们来看看常见的运算是怎么实现的。

    1.加法

    $$ A+B=\left[\begin{array}{cc} U_1 & V_1 \end{array} \right] \bowtie \left[ \begin{array}{cc} U_{2} & \\ & V_{2} \end{array} \right] \bowtie \cdots \bowtie \left[ \begin{array}{c} U_d \\ V_d \end{array}\right] $$ ...
    标签: QTT
  2. QTT-Toolbox QuickStart

    2015-08-15 19:22:00   作者:JSong

    QTT分解介绍

    QTT(Quantics Tensor Train)分解是一种适用于任意分层张量(包含多维数组)的张量分解方法, 通过对数组的反复折叠该分解可以达到降维和特征提取的作用。QTT已被证明是一种基于流形学习的降维工具和多尺度的特征提取工具。

    定义:给定一个分层张量(包含向量、矩阵等多维数组)A,如果其有如下表示,

    $$ A= U_1 \bowtie U_2 \bowtie \cdots \bowtie U_d $$

    其中后面d-1个QTT核满足右正交条件, 则称之为A的QTT分解。

    工具箱介绍

    这是一个用MATLAB语言写的QTT-Toolbox,免费提供大家使用,使用后请注明引用,谢谢。工具箱将分层张量新定义成了一个类,分层张量之间的大部分运算都已实现。通过这个模块化编程,我们能更加简单的扩展编程。如果读者发现函数有bug或者实现算法能加速,请邮件告之作者,谢谢。

    =============================================

    JSong,20-Jul-2015

    Last Revision: 11-Aug-2015.

    Github:http://github.com/gasongjian/QTT/

    citition ...

消息

  • 1、更换为国内评论系统
  • 2、QTT工具箱已更新至1.0版本

访问量

Page 1 / 1