CN117972323A - 一种低秩张量数据压缩和缺失值恢复的方法及系统 - Google Patents

一种低秩张量数据压缩和缺失值恢复的方法及系统 Download PDF

Info

Publication number
CN117972323A
CN117972323A CN202410047337.1A CN202410047337A CN117972323A CN 117972323 A CN117972323 A CN 117972323A CN 202410047337 A CN202410047337 A CN 202410047337A CN 117972323 A CN117972323 A CN 117972323A
Authority
CN
China
Prior art keywords
tensor
matrix
value
index
vector
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
CN202410047337.1A
Other languages
English (en)
Inventor
欧阳与点
谢鲲
文吉刚
张大方
李肯立
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Hunan University
Original Assignee
Hunan University
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hunan University filed Critical Hunan University
Priority to CN202410047337.1A priority Critical patent/CN117972323A/zh
Publication of CN117972323A publication Critical patent/CN117972323A/zh
Pending legal-status Critical Current

Links

Landscapes

  • Compression, Expansion, Code Conversion, And Decoders (AREA)

Abstract

本发明公开了一种低秩张量数据的压缩和缺失值恢复方法,包括使用正交Tucker分解将一个低秩的N阶张量数据分解成一个核心张量和N个正交因子矩阵,分别用于表示原始张量的交互系数和主成分,构造两个基于奇异值的指标为Tucker分解设置合适的秩,设计非均匀量化和熵编码方法捕获核心张量的偏斜分布并以低精度损失将其压缩成一个码本和一串比特流,设计移位量化和二进制编码方法捕获正交因子矩阵的有限数值范围并以低精度损失将其压缩成比特流,将压缩后的一个码本和N+1个比特流还原成一个核心张量和N个因子矩阵,使用还原后的核心张量和因子矩阵重构原始张量数据,同时恢复原始张量中的缺失值。本发明还公开了一种电子设备,执行所述任一种方法的步骤。

Description

一种低秩张量数据压缩和缺失值恢复的方法及系统
技术领域
本发明属于数据分析与处理领域,更具体地,涉及一种低秩张量数据压缩和缺失值恢复方法及系统。
背景技术
张量表示的高维数组是一种广泛使用的数据格式,可用于表示网络领域的各种数据,包括智能电网和云系统中的监测数据,自动驾驶汽车的遥测数据,深度学习中的权重参数等。几乎在每个领域,数据集的规模和复杂性都在持续增长,导致显著的空间和带宽开销。这些高成本带来了数据密集型计算,并对资源有限的应用程序构成挑战。此外,由于传输丢失和设备故障等原因,现实张量数据集通常存在噪声和缺失值。
现有数据压缩方法可分为传统无损压缩工具、语义压缩方法和变换编码压缩方法以及基于神经网络的压缩方法。传统无损压缩工具如7zip、gzip等,通过编码数值间的冗余压缩数据,具有较低的压缩率,不适用海量数据压缩的场景。语义压缩方法主要针对表格数据,通过挖掘属性列之间的关联压缩数据,只能建模列关系,无法建模高阶关系。变换编码用离散余弦变换或离散小波变换将数据从空域转换到频域,并通过量化和熵编码去除冗余性,通常要求数据具有平滑的时空模式,主要用于图片压缩和视频压缩,当数据表现维高维异构特征时,压缩后的重构精度低。基于神经网络的压缩方法通过自编码器或者超分辨模型提取数据的低维表示压缩数据,需要大量训练样本和计算资源,只能在具有一定计算能力的云端执行。
最近的研究表明许多张量数据具有低秩性,这种低秩性是由于数据的高时空相关性产生的,表明张量的行、列、纵的相关性,一些行、列、纵可以被表示为其他行、列、纵的线性组合。张量数据的低秩性给基于低秩分解的数据压缩带来可能。Tucker分解是一种典型的低秩张量分解模型,具有很强的可解释性。当一个大小为I1×I2×…×IN的N阶张量数据满足低秩性时,Tucker分解可以有效地将它压缩成一个大小为R1×R2×…×RN的N阶核心张量和N个In×Rn的因子矩阵,其中R1,R2,…,RN为Tucker秩,有Rn<In(n=1,…,N)。
尽管很有希望,基于Tucker分解的数据压缩仍然存在以下缺陷:首先,Tucker分解的秩直接影响压缩数据的大小和重构的准确性,由于噪声和缺失数据的影响,选择合适的Tucker秩具有挑战性。虽然贝叶斯优化可以搜索到合适的秩,但它需要通过多次试验Tucker分解来搜索秩,会占用大量的计算资源。其次,核心张量和因子矩阵需要进一步压缩。即使设置合适的Tucker秩,分解后的核心张量和N个因子矩阵仍然具有较大的数据量,特别是对于大型张量。因子矩阵和核心张量分别表示原始张量的主成分和交互系数,小的精度损失都会导致原始张量的大重构误差,因此有必要设计良好的压缩方案提高Tucker分解的压缩率。
发明内容
本发明旨在提供一种低秩张量数据压缩和缺失值恢复方法及系统,其目的在于,解决现有基于Tucker分解的数据压缩方法难以确定Tucker秩,导致需要耗时的参数搜索的问题,以及没有进一步研究核心张量与因子矩阵的压缩方法,导致具有较大压缩率的问题。
为了实现上述目的,本发明所采用的技术方案是:一种低秩张量数据压缩方法,其特征在于,所述方法包括:将带缺失值的原始张量经过Tucker分解和量化编码,得到所述原始张量压缩后的码本与比特流;
所述Tucker分解,是将大小为I1×I2×…×IN的N阶低秩原始张量分解成一个大小为R1×R2×…×RN的N阶核心张量和N个大小为In×Rn的正交因子矩阵;其中,In为所述原始张量第n个维度的大小,Rn为所述原始张量第n个维度的Tucker秩,其中,1≤n≤N,n为整数;所述Tucker秩通过以下步骤计算得到:
(1-1)对于所述原始张量的任意一个维度n,计算大小为的展开矩阵;其中,/>为除In以外的所述原始张量其他维度的乘积;通过奇异值分解,计算所述展开矩阵的In个奇异值和大小为In×In左奇异空间,并将奇异值按照从大到小的顺序排序;
(1-2)根据所述展开矩阵的奇异值,构造两个指标用于辅助设置第n个维度下的Tucker秩Rn;第一指标记录两个连续奇异值之间的相对误差,表示奇异值减小的速率;第二指标为最后一个奇异值与第一个奇异值的比率;
(1-3)检查所述展开矩阵的In个奇异值对应的In-1个第一指标,寻找一个转折点,使得所述第一指标小于ε,且后续的连续s个第一指标与相邻第一指标的差的绝对值均小于ε,将所述转折点的索引作为秩;ε和s的默认值分别为0.01和10,也可根据不同的数据集进行调整;
(1-4)如果在第一指标中找不到所述转折点,则选择在一定范围内使第一指标最小的索引作为秩;所述范围由所述第二指标决定,如果所述第二指标的值小于ε,则在In/2的附近处寻找使得第一指标最小的索引作为秩,否则,则说明数据中的噪声水平较高,在2In/3处寻找使得第一指标最小的索引作为秩;
所述量化编码,将所述大小为R1×R2×…×RN的N阶核心张量压缩成一个大小为的码本和一个变长比特流;其中,bitc为所述核心张量的量化码本位数;将所述N个大小为In×Rn的正交因子矩阵压缩成N个大小为(bitf+1)InRn的比特流;其中,bitf为因子矩阵的编码位数,1为符号位的位数,InRn为因子矩阵中的元素个数。
由于本发明中的Tucker分解组件提出了秩设定规则,所述Tucker分解组件对张量每个模式展开矩阵进行一次奇异值分解,挖掘展开矩阵的奇异值变化规律,即可为Tucker分解设置合适的秩,不需要复杂的参数搜索过程,能够解决现有基于Tucker分解的数据压缩方法需要大量计算资源进行秩搜索的问题。
根据本发明的实施例,还可以对本发明作进一步的优化,以下为优化后形成的技术方案:
在其中一个优选的实施例中,步骤(1-2)中所述第一指标和第二指标的计算如下:
第一指标:
第二指标:
其中,2≤i≤In,i为整数,为所述展开矩阵的In个奇异值,σi为第i大的奇异值。
在其中一个优选的实施例中,所述核心张量和所述正交因子矩阵通过以下步骤计算得到:
(1-5)截断所述展开矩阵左奇异空间的前Rn列,作为第n个维度下正交因子矩阵的初始值,大小为In×Rn
(1-6)重复步骤(1-1)至步骤(1-5),直到所有N个维度下正交因子矩阵的初始值都已确定;
(1-7)通过高阶正交迭代更新N个正交因子矩阵和核心张量。
在其中一个优选的实施例中,步骤(1-7)高阶正交迭代的过程包括如下步骤:
(B1)计算所述原始张量的Frobenius范数,将初始重构误差归零;
(B2)根据所述原始张量和所述N个正交因子矩阵计算所述大小为R1×R2×…×RN的N阶核心张量;
(B3)通过所述核心张量和所述N个正交因子矩阵计算所述原始张量的估计张量,并将所述原始张量中的缺失值替换成估计值,更新所述原始张量;
(B4)通过所述原始张量和除了第n个正交因子矩阵以外的所有正交因子矩阵计算中间变量矩阵,通过奇异值分解计算所述中间变量矩阵的左奇异矩阵;取所述左奇异矩阵的前Rn列作为第n个维度下正交因子矩阵;重复步骤(B4),直到所有N个正交因子矩阵都更新完毕;
(B5)根据所述原始张量和所述N个正交因子矩阵计算所述大小为R1×R2×…×RN的N阶核心张量,并计算所述核心张量的Frobenius范数;
(B6)计算新的重构误差,重复步骤(B3)至步骤(B5),直到新旧重构误差的差的绝对值小于第一阈值;上述过程最终能够获得一个核心张量和满足列正交约束的N个因子矩阵;第一阈值默认值为0.0001;
其中,步骤(B2)、步骤(B5)中所述核心张量的计算公式如下:
表示核心张量,/>表示原始张量,U(n)T表示第n个维度下的正交因子矩阵的转置,/>×n表示n模式积,一个大小为I1×I2×…×IN的N阶张量/>与大小为J×In的二维矩阵U的n模式积为/>其大小为I1×...In-1×J×In+1×...×IN,元素定义为
其中,步骤(B3)中的计算公式如下:
表示原始张量的估计张量,Ω、/>和/>分别表示所有观测元素的集合、所有缺失元素的集合、/>在Ω上的正交投影、/>在/>上的正交投影;
其中,步骤(B4)中的所述中间变量矩阵的计算公式如下:
表示Kronecker积,X(n)表示所述原始张量在第n个维度下的展开矩阵;
其中,步骤(B6)中的所述重构误差的计算公式如下:
norm_tensor为步骤(B1)中所述原始张量的Frobenius范数,norm_core为步骤(B5)中所述核心张量的Frobenius范数。
由于本发明中的Tucker分解组件对因子矩阵进行列正交约束,且因子矩阵的列揭示了张量的潜在特征。正交向量之间互不相关,并具有最大的差异,允许在紧凑的数据量中表示信息量最大的潜在特征。因此所述正交因子矩阵能够以最低的冗余度保留张量最主要的信息。
在其中一个优选的实施例中,所述核心张量的所述码本和所述变长比特流通过以下步骤获得:
(2-1)将所述核心张量拉平为向量,提取拉平向量的绝对值和符号,作为绝对值向量和符号向量,符号向量中,1对应于负号,0对应于正号;
(2-2)根据所述核心张量的大小计算编码位数bitc和量化区间数量M,其中为核心张量的大小,log10(·)表示求以10为底的对数,Round()表示四舍五入再取整,/>
(2-3)对所述绝对值向量进行非均匀量化,得到具有M个量化值的量化码本和量化索引向量,其中索引向量的取值范围为[0,M-1],即
(2-4)将符号向量编码到索引向量的最高位,生成带符号的索引向量;具体地,遍历符号向量的值,如果符号向量当前位置的值为1,表示负号,则索引向量中对应位置的值加上M;如果值为0,表示正号,则索引向量中对应位置的值不改变;因为索引向量的取值范围是转化成二进制数值表示则总共有bitc位,对于负号加上/>的操作相当于将第索引向量的bitc+1位编码成1。
(2-5)对带符号的索引向量进行熵编码压缩;首先使用ASCII码表中的可显示字符将所述带符号的索引向量中的整数值符号化,再使用游程编码和哈夫曼编码将带符号的索引向量压缩成比特流,得到最终的变长比特流。
在其中一个优选的实施例中,步骤(2-3)中的非均匀量化过程如下:
(C1)通过Lloyd算法和绝对值向量的概率密度函数,求解得到绝对值向量的M+1个决策边界和量化码本,其中M+1个决策边界划分M个量化区间,量化码本中包括M个量化值;
(C2)根据决策边界和量化码本,计算绝对值向量中每一个元素的量化索引和量化值,获得量化索引向量;具体地,对于绝对值向量中的任意一个元素,当它的原始值在第m个量化区间内时,该元素的量化索引为m-1,量化值为码本的第m个值,其中m为整数,1≤m≤M,用于标识量化区间和量化值的索引;
其中,步骤(C1)的量化目标为:
g为绝对值向量,f(g)表示g的概率密度函数,表示决策边界,/>表示量化码本,M为量化区间的数量。
由于本发明中的核心张量压缩组件采用非均匀量化和熵编码方案,非均匀量化利用核心张量的偏斜分布特点,使用核心张量的概率密度函数为出现频率高的值分配更高的量化误差权重,使得值分布密集的区域具有更细的量化区间,最终最小化总体误差,相比于传统均匀量化,能够以高精度对核心张量进行量化;熵编码在不损失精度的前提下能够对核心张量的量化索引进一步压缩。
在其中一个优选的实施例中,所述正交因子矩阵的N个比特流通过以下步骤获得:
(3-1)对于第n个维度下正交因子矩阵,其大小为In×Rn,提取所述正交因子矩阵的绝对值和符号,作为绝对值矩阵和符号矩阵;
(3-2)考虑绝对值矩阵中的元素是0到1之间的小数,通过移位量化将绝对值矩阵的元素左移bitf比特位,即每个元素乘以之后四舍五入小数部分,生成整数矩阵;bitf的默认值为10;
(3-3)将所述符号矩阵编码到所述整数矩阵元素的最高位,即第bitf+1位;对于所述符号矩阵的任意一个元素,如果值为1,表示负号,则整数矩阵中对应位置的值的最高位设为1;如果值为0,表示正号,则整数矩阵中对应位置的值的最高位设为0;
(3-4)将所述带符号的整数矩阵通过十进制转二进制编码成长度为(bitf+1)InRn的比特流;
(3-5)重复步骤(3-1)至步骤(3-4),直到所有N个正交因子矩阵都已被编码。
由于本发明中的因子矩阵压缩组件采用移位编码和二进制编码方案,利用因子矩阵的数值范围特征,其精度损失仅限于步骤(3-2)的四舍五入部分,又因为左移10位将元素值放大了210-1>103倍,该精度损失在10-3以内,因此移位编码可以以低精度损失压缩因子矩阵。
基于同一个构思,本发明还提供一种低秩张量缺失值恢复方法,解压上述低秩张量数据压缩方法中所述原始张量压缩后得到的所述码本和所述比特流,恢复所述原始张量中的缺失值,重构原始张量;重构原始张量通过以下步骤获得:
(4-1)依次进行哈夫曼编码、游程编码和符号化的逆过程,将所述核心张量的比特流熵解码成带符号的索引向量;
(4-2)提取所述带符号的索引向量的最高位作为符号向量,以及剩余位作为索引向量;通过码本和索引向量计算所述核心张量的量化值,乘以符号,重塑成所述核心张量的原始大小;
(4-3)将N个正交因子矩阵的比特流分别通过二进制到十进制解码成量化向量,再通过右移操作将所述向量反量化为解压值,重塑成所述正交因子矩阵的原始大小;
(4-4)通过所述核心张量和所述正交因子矩阵重构原始张量;
其中,步骤(4-2)中的计算公式如下:
s=(zs>>bitc)&1
z=!(1<<bitc)&zs
zs表示带符号的索引向量,s表示符号向量,这里1表示负数,0表示正数,z表示索引向量,表示量化码本,/>表示解压后的核心张量,Reshape表示将拉平的向量重塑成核心张量原始的形状R1×R2×…×RN,>>为左移运算符,<<为右移运算符,&表示与运算,!表示取反;
其中,步骤(4-3)中的计算公式如下:
表示解压后的正交因子矩阵;
其中,步骤(4-4)中的计算公式如下:
表示重构之后的原始张量,包含对缺失值的估计。。
基于同一个构思,本发明还提供一种电子设备,包括处理器310、通信接口320、存储器330和通信总线340,所述处理器310、所述通信接口320、所述存储器330通过所述通信总线340完成相互间的通信;其特征在于,所述处理器310调用所述存储器330中的逻辑指令,以执行如上述任一种低秩张量数据压缩方法和或缺失值的恢复方法的步骤。
与现有技术相比,本发明的有益效果是:
(1)由于本发明中的Tucker分解组件的提出了秩设定规则,其对张量每个模式展开矩阵进行一次奇异值分解,挖掘展开矩阵的奇异值变化规律,即可为Tucker分解设置合适的秩,不需要复杂的参数搜索过程,能够解决现有基于Tucker分解的数据压缩方法需要大量计算资源进行秩搜索的问题。
(2)由于本发明中的Tucker分解组件对因子矩阵进行列正交约束,且因子矩阵的列揭示了张量的潜在特征。正交向量之间互不相关的,并具有最大的差异,允许在紧凑的数据量中表示信息量最大的潜在特征。因此该因子矩阵能够以最低的冗余度保留张量最主要的信息。
(3)由于本发明中的核心张量压缩组件采用非均匀量化和熵编码方案,非均匀量化利用核心张量的偏斜分布特点,使用核心张量的概率密度函数为出现频率高的值分配更高的量化误差权重,使得值分布密集的区域具有更细的量化区间,最终最小化总体误差,相比于传统均匀量化,能够以高精度对核心张量进行量化;熵编码在不损失精度的前提下能够对核心张量的量化索引进一步压缩。
(4)由于本发明中的因子矩阵压缩组件采用移位编码和二进制编码方案,利用因子矩阵的数值范围特征,其精度损失仅限于步骤(3-2)的四舍五入部分,又因为左移10位将元素值放大了210-1>103倍,该精度损失在10-3以内,因此移位编码可以以低精度损失压缩因子矩阵。
附图说明
图1是本发明提供的低秩张量数据压缩和缺失值恢复方法的流程图;
图2是本发明提供的低秩张量数据压缩和缺失值恢复方法的示意图;
图3是本发明提供的核心张量压缩示意图;
图4是本发明提供的因子矩阵压缩示意图;
图5是本发明提供的低秩张量数据压缩和缺失值恢复系统的结构示意图;
图6是本发明提供的电子设备的结构示意图。
具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。此外,下面所描述的本发明各个实施方式中所涉及到的技术特征只要彼此之间未构成冲突就可以相互组合。
下面结合图1至6描述本发明实施例所提供的低秩张量数据压缩和缺失值恢复方法和系统。
如图1所示,本发明提供了一种低秩张量数据压缩和缺失值恢复的方法,包括以下步骤:
(1)将带缺失值的数据张量输入到搭建好的压缩模块中,得到该张量压缩后的码本与比特流。该码本和比特流可以用于传输和存储。
如图2所示,本步骤的压缩模块包括一个Tucker分解组件,一个核心张量压缩组件和一个因子矩阵压缩组件,其具体结构如下:
一个Tucker分解组件,其将大小为I1×I2×…×IN的N阶低秩张量分解成一个大小为R1×R2×…×RN的N阶核心张量和N个大小为In×Rn的正交因子矩阵,其中In(n=1,…,N)为张量第n个维度的大小,Rn(n=1,…,N)为张量第n个维度的Tucker秩;
一个核心压缩组件,其将大小为R1×R2×…×RN的N阶核心张量压缩成一个大小为的码本和一个变长比特流,其中bitc为核心张量的量化码本位数;
一个因子矩阵压缩组件,其将N个大小为In×Rn(n=1,…,N)的正交因子矩阵压缩成N个大小为(bitf+1)InRn的比特流,其中bitf为因子矩阵的编码位数,1为符号位的位数,InRn为因子矩阵中的元素个数。
优选地,Tucker分解组件中的核心张量和因子矩阵式通过以下步骤计算得到的:
(1-1)对于张量的任意一个维度n(n=1,…,N),计算大小为的展开矩阵,其中/>为除了In以外的其他张量维度的乘积。通过奇异值分解,计算该展开矩阵的In个奇异值和大小为In×In左奇异空间,并将奇异值按照从大到小的顺序排序。确定第n个模式下的Tucker秩Rn,秩确定的过程包括:
(1-2)根据展开矩阵的奇异值,构造两个指标用于辅助设置第n个模式下的Tucker秩Rn。指标1记录两个连续奇异值之间的相对误差,表示奇异值减小的速率。指标2为最后一个奇异值与第一个奇异值的比率。
(1-3)检查展开矩阵的In个奇异值对应的In-1个指标1,寻找一个转折点,使得指标1小于ε,且后续的连续s个指标1的值都没发生剧烈变动,即前后指标1的差值小于ε,则将该转折点的索引作为秩。ε和s的默认值分别为0.01和10,也可根据不同的数据集进行调整。
(1-4)如果在指标1中找不到转折点,则选择在一定范围内使指标1最小的索引作为秩。该范围由指标2决定,如果该值小于0.01,则在In/2的附近处寻找使得指标1最小的索引作为秩;否则,则说明数据中的噪声水平较高,在2In/3处寻找使得指标1最小的索引作为秩。
优选地,步骤(1-2)中两个指标的计算如下:
指标1:
指标2:
其中为展开矩阵的In个奇异值,σi为第i大的奇异值。
(1-5)截断展开矩阵左奇异空间的前Rn列,作为第n个模式下因子矩阵的初始值,大小为In×Rn
(1-6)重复步骤(1-1)至步骤(1-5),直到所有N个模式下因子矩阵的初始值都已确定。
(1-7)通过高阶正交迭代更新N个因子矩阵和核心张量。
优选地,高阶正交迭代的过程包括如下步骤:
(B1)计算原始张量的Frobenius范数,将初始重构误差归零。
(B2)根据原始张量和N个因子矩阵计算大小为R1×R2×…×RN的N阶核心张量。
(B3)通过核心张量和N个因子矩阵计算原始张量的估计张量,并将原始张量中的缺失值替换成估计值,更新原始张量。
(B4)通过原始张量和除了第n个因子矩阵以外的所有因子矩阵计算中间变量矩阵,通过奇异值分解计算中间变量矩阵的左奇异矩阵。取左奇异矩阵的前Rn列作为第n个模式下因子矩阵。重复该步骤,直到所有N个因子矩阵都更新完毕。
(B5)根据原始张量和N个因子矩阵计算大小为R1×R2×…×RN的N阶核心张量,并计算核心张量的Frobenius范数。
(B6)计算新的重构误差,重复步骤(B3)至步骤(B5),直到新旧重构误差的差的绝对值小于0.0001。上述过程最终能够获得一个核心张量和满足列正交约束的N个因子矩阵。
优选地,步骤(B2)、步骤(B5)中核心张量的计算公式如下:
其中,表示核心张量,/>表示原始张量,U(n)T(n=1,…,N)表示第n个模式下的因子矩阵的转置,由于U(n)为正交矩阵,有/>×n表示n模式积,一个大小为I1×I2×…×IN的N阶张量/>与大小为J×In的二维矩阵U的n模式积为/>其大小为I1×...In-1×J×In+1×...×IN,元素定义为/>
优选地,步骤(B3)中的计算公式如下:
表示原始张量的估计张量,Ω、/>和/>分别表示所有观测元素的集合、所有缺失元素的集合、/>在Ω上的正交投影、/>在/>上的正交投影。
优选地,步骤(B4)中的中间变量矩阵的计算公式如下:
其中,表示Kronecker积,X(n)表示原始张量在第n个模式下的展开矩阵。
优选地,步骤(B6)中的重构误差的计算公式如下:
其中,norm_tensor为步骤(B1)中原始张量的Frobenius范数,norm_core为步骤(B5)中核心张量的Frobenius范数。
优选地,核心压缩组件的码本和一个变长比特流是通过以下步骤获得的:
(2-1)将核心张量拉平为向量,提取拉平向量的绝对值和符号,作为绝对值向量和符号向量,符号向量中,1对应于负号,0对应于正号。
(2-2)根据核心张量的大小计算编码位数bitc和量化区间数量M,其中为核心张量的大小,log10(·)表示求以10为底的对数,Round()表示四舍五入再取整,/>
(2-3)对绝对值向量进行非均匀量化,得到具有M个量化值的量化码本和量化索引向量,其中索引向量的取值范围为[0,M-1],即
优选地,步骤(2-3)中的非均匀量化过程如下:
(C1)通过Lloyd算法和绝对值向量的概率密度函数,求解得到绝对值向量的M+1个决策边界和量化码本,其中M+1个决策边界划分M个量化区间,量化码本中包括M个量化值;
(C2)根据决策边界和量化码本,计算绝对值向量中每一个元素的量化索引和量化值,获得量化索引向量。具体地,对于绝对值向量中的任意一个元素,当它的原始值在第m个量化区间内时,该元素的量化索引为m-1,量化值为码本的第m个值,其中m为整数,1≤m≤M,用于标识量化区间和量化值的索引。
(2-4)将符号向量编码到索引向量的最高位,生成带符号的索引向量。具体地,遍历符号向量的值,如果符号向量当前位置的值为1,表示负号,则索引向量中对应位置的值加上M;如果值为0,表示正号,则索引向量中对应位置的值不改变。因为索引向量的取值范围是转化成二进制数值表示则总共有bitc位,对于负号加上/>的操作相当于将第索引向量的bitc+1位编码成1。
(2-5)对带符号的索引向量进行熵编码压缩。首先使用ASCII码表中的可显示字符将带符号的索引向量中的整数值符号化,再使用游程编码和哈夫曼编码将带符号的索引向量压缩成比特流,得到最终的变长比特流。
优选地,步骤(C1)的量化目标为:
其中g为绝对值向量,f(g)表示g的概率密度函数,表示决策边界,/>表示量化码本,M为量化区间的数量。
优选地,因子压缩组件的N个比特流通过以下步骤获得:
(3-1)对于第n个模式下因子矩阵,其大小为In×Rn,提取其绝对值和符号,作为绝对值矩阵和符号矩阵。
(3-2)考虑绝对值矩阵中的元素是0到1之间的小数,通过移位量化将绝对值矩阵的元素左移bitf比特位,即每个元素乘以之后四舍五入小数部分,生成整数矩阵,bitf的默认值为10。
(3-3)将符号矩阵编码到整数矩阵元素的最高位(第bitf+1位)。对于符号矩阵的任意一个元素,如果值为1,表示负号,则整数矩阵中对应位置的值的最高位设为1;如果值为0,表示正号,则整数矩阵中对应位置的值的最高位设为0。
(3-4)将带符号的整数矩阵通过十进制转二进制编码成长度为(bitf+1)InRn的比特流。
(3-5)重复步骤(3-1)至步骤(3-4),直到所有N个因子矩阵都已被编码。
优选地,步骤(3-2)至步骤(3-3)的过程可以公式化为如下:
其中,为带符号的整数矩阵,bitf=10为因子矩阵的编码位数。
(2)将压缩后的码本和比特流通过解压模块重构原始张量,并恢复原始张量中的缺失值。本步骤中,解压模块的重构张量是通过以下步骤获得的:
(4-1)将核心张量的比特流熵解码成带符号的索引向量,即依次进行哈夫曼编码、游程编码和符号化的逆过程。
(4-2)提取带符号的索引向量的最高位作为符号向量,以及剩余位作为索引向量。通过码本和索引向量计算核心张量的量化值,乘以符号,重塑成原始核心张量的大小。
(4-3)将N个因子矩阵的比特流分别通过二进制到十进制解码成量化向量,再通过右移操作将其反量化为解压值,重塑成原始因子矩阵的大小。
(4-4)通过核心张量和因子矩阵重构元素张量。
优选地,步骤(4-2)中的计算公式如下:
s=(zs>>bitc)&1
z=!(1<<bitc)&zs
其中,zs表示带符号的索引向量,s表示符号向量(1表示负数,0表示正数),z表示索引向量,表示量化码本,/>表示解压后的核心张量,Reshape表示将拉平的向量重塑成核心张量原始的形状R1×R2×…×RN,>>为左移运算符,<<为右移运算符,&表示与运算,!表示取反。
优选地,步骤(4-3)中的计算公式如下:
其中表示解压后的因子矩阵,>>为左移运算符,<<为右移运算符,&表示与运算,!表示取反。
优选地,步骤(4-4)中的计算公式如下:
表示重构之后的原始张量,包含对缺失值的估计。
按照本发明的另一方面,提供了一种低秩张量数据压缩和缺失值恢复的系统,如图5所示,其包括:
第一模块,用于将带缺失值的数据张量输入到搭建好的压缩模块中,得到该张量压缩后的码本与比特流。该码本和比特流可以用于传输和存储。
第二模块,用于将压缩后的码本和比特流通过解压模块重构原始张量,并恢复原始张量中的缺失值。
需要说明的是,本发明实施例提供的低秩张量数据压缩和缺失值恢复系统,在具体执行时,可以基于上述任一实施例所述的低秩张量数据中压缩和缺失值的恢复方法来实现,对此本实施例不作赘述。
图6是本发明提供的电子设备的结构示意图,如图6所示,该电子设备可以包括:处理器(processor)310、通信接口(Communications Interface)320、存储器(memory)330和通信总线340,其中,处理器310,通信接口320,存储器330通过通信总线340完成相互间的通信。处理器310可以调用存储器330中的逻辑指令,以执行低秩张量数据压缩和缺失值恢复方法,该方法包括:
(1)将带缺失值的数据张量输入到搭建好的压缩模块中,得到该张量压缩后的码本与比特流。该码本和比特流可以用于传输和存储。
(2)将压缩后的码本和比特流通过解压模块重构原始张量,并恢复原始张量中的缺失值。
此外,上述的存储器330中的逻辑指令可以通过软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、磁碟或者光盘等各种可以存储程序代码的介质。
另一方面,本发明还提供一种计算机程序产品,所述计算机程序产品包括存储在非暂态计算机可读存储介质上的计算机程序,所述计算机程序包括程序指令,当所述程序指令被计算机执行时,计算机能够执行上述各方法所提供的低秩张量数据压缩和缺失值恢复方法,该方法包括:
(1)将带缺失值的数据张量输入到搭建好的压缩模块中,得到该张量压缩后的码本与比特流。该码本和比特流可以用于传输和存储;
(2)将压缩后的码本和比特流通过解压模块重构原始张量,并恢复原始张量中的缺失值。
又一方面,本发明还提供一种非暂态计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器执行时实现以执行上述各实施例提供的低秩张量数据压缩和缺失值恢复方法,该方法包括:
(1)将带缺失值的数据张量输入到搭建好的压缩模块中,得到该张量压缩后的码本与比特流。该码本和比特流可以用于传输和存储。
(2)将压缩后的码本和比特流通过解压模块重构原始张量,并恢复原始张量中的缺失值。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到各实施方式可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件。基于这样的理解,上述技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品可以存储在计算机可读存储介质中,如ROM/RAM、磁碟、光盘等,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行各个实施例或者实施例的某些部分所述的方法。
实验结果
本发明使用Python以及tensorly工具包实现。在4个低秩张量数据集PSD、MBD、PlanetLab和Harvard上评估压缩和恢复性能,采用的评估指标包括归一化的平均绝对误差(Normalized Mean Absolute Error,简称NMAE)、归一化的均方根误差(Normalized RootMean Squared Error,简称NRMSE),和压缩率(Compression Ratio,简称CR)其计算方法如下:
CR=原始数据的大小/压缩后数据的大小其中表示张量元素绝对值的和,/>表示张量元素绝对值的平方和再开平方,NMAE和NRMSE分别在张量的观测元素、缺失元素和全部元素上评估。
表1是本发明提供的低秩张量数据压缩和缺失值恢复方法和15种其他压缩算法在四个不同数据集下的CR压缩率表;
表2是本发明提供的低秩张量数据压缩和缺失值恢复方法和11种其他数据恢复算法在PSD数据集下的恢复误差表;
表3是本发明提供的低秩张量数据压缩和缺失值恢复方法和11种其他数据恢复算法在MBD数据集下的恢复误差表;
表4是本发明提供的低秩张量数据压缩和缺失值恢复方法和11种其他数据恢复算法在PlanetLab数据集下的恢复误差表;
表5是本发明提供的低秩张量数据压缩和缺失值恢复方法和11种其他数据恢复算法在Harvard数据集下的恢复误差表;
表1不同压缩算法在不同数据集下的CR
表2不同恢复算法在PSD数据集下的恢复误差
表3不同恢复算法在MBD数据集下的恢复误差
/>
表4不同恢复算法在PlanetLab数据集下的恢复误差
表5不同恢复算法在Harvard数据集下的恢复误差
/>
根据表1在四个数据集下的实验结果,可以看到本发明提供的低秩张量数据压缩和缺失值恢复方法,在所有数据集上都优于现有压缩算法,包括无损压缩方法和有损压缩方法。根据表2至表5在四个数据集下的实验结果,可以看到本发明提供的低秩张量数据压缩和缺失值恢复方法,其缺失值恢复性能比所有压缩方法方法都更好,并且能够到达与单纯恢复算法近似的恢复性能。
本领域的技术人员容易理解,以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内所作的任何修改、等同替换和改进等,均应包含在本发明的保护范围之内。

Claims (9)

1.一种低秩张量数据压缩方法,其特征在于,所述方法包括:将带缺失值的原始张量经过Tucker分解和量化编码,得到所述原始张量压缩后的码本与比特流;
所述Tucker分解,是将大小为I1×I2×…×IN的N阶低秩原始张量分解成一个大小为R1×R2×…×RN的N阶核心张量和N个大小为In×Rn的正交因子矩阵;其中,In为所述原始张量第n个维度的大小,Rn为所述原始张量第n个维度的Tucker秩,其中,1≤n≤N,n为整数;所述Tucker秩通过以下步骤计算得到:
(1-1)对于所述原始张量的任意一个维度n,计算大小为的展开矩阵;其中,/>为除In以外的所述原始张量其他维度的乘积;通过奇异值分解,计算所述展开矩阵的In个奇异值和大小为In×In左奇异空间,并将奇异值按照从大到小的顺序排序;
(1-2)根据所述展开矩阵的奇异值,构造两个指标用于辅助设置第n个维度下的Tucker秩Rn;第一指标记录两个连续奇异值之间的相对误差,表示奇异值减小的速率;第二指标为最后一个奇异值与第一个奇异值的比率;
(1-3)检查所述展开矩阵的In个奇异值对应的In-1个第一指标,寻找一个转折点,使得所述第一指标小于ε,且后续的连续s个第一指标与相邻第一指标的差的绝对值均小于ε,将所述转折点的索引作为秩;
(1-4)如果在第一指标中找不到所述转折点,则选择在一定范围内使第一指标最小的索引作为秩;所述范围由所述第二指标决定,如果所述第二指标的值小于ε,则在In/2的附近处寻找使得第一指标最小的索引作为秩,否则,在2In/3处寻找使得第一指标最小的索引作为秩;
所述量化编码,将所述大小为R1×R2×…×RN的N阶核心张量压缩成一个大小为的码本和一个变长比特流;其中,bitc为所述核心张量的量化码本位数;将所述N个大小为In×Rn的正交因子矩阵压缩成N个大小为(bitf+1)InRn的比特流;其中,bitf为因子矩阵的编码位数,1为符号位的位数,InRn为因子矩阵中的元素个数。
2.根据权利要求1所述的低秩张量数据压缩方法,其特征在于,步骤(1-2)中所述第一指标和第二指标的计算如下:
第一指标:
第二指标:
其中,2≤i≤In,i为整数,σ12,...,σIn为所述展开矩阵的In个奇异值,σi为第i大的奇异值。
3.根据权利要求1所述的低秩张量数据压缩方法,其特征在于,所述核心张量和所述正交因子矩阵通过以下步骤计算得到:
(1-5)截断所述展开矩阵左奇异空间的前Rn列,作为第n个维度下正交因子矩阵的初始值,大小为In×Rn
(1-6)重复步骤(1-1)至步骤(1-5),直到所有N个维度下正交因子矩阵的初始值都已确定;
(1-7)通过高阶正交迭代更新N个正交因子矩阵和核心张量。
4.根据权利要求3所述的低秩张量数据压缩方法,其特征在于,步骤(1-7)高阶正交迭代的过程包括如下步骤:
(B1)计算所述原始张量的Frobenius范数,将初始重构误差归零;
(B2)根据所述原始张量和所述N个正交因子矩阵计算所述大小为R1×R2×…×RN的N阶核心张量;
(B3)通过所述核心张量和所述N个正交因子矩阵计算所述原始张量的估计张量,并将所述原始张量中的缺失值替换成估计值,更新所述原始张量;
(B4)通过所述原始张量和除了第n个正交因子矩阵以外的所有正交因子矩阵计算中间变量矩阵,通过奇异值分解计算所述中间变量矩阵的左奇异矩阵;取所述左奇异矩阵的前Rn列作为第n个维度下正交因子矩阵;重复步骤(B4),直到所有N个正交因子矩阵都更新完毕;
(B5)根据所述原始张量和所述N个正交因子矩阵计算所述大小为R1×R2×…×RN的N阶核心张量,并计算所述核心张量的Frobenius范数;
(B6)计算新的重构误差,重复步骤(B3)至步骤(B5),直到新旧重构误差的差的绝对值小于第一阈值;
其中,步骤(B2)、步骤(B5)中所述核心张量的计算公式如下:
表示核心张量,/>表示原始张量,U(n)T表示第n个维度下的正交因子矩阵的转置,U(n)T=U(n)-1;×n表示n模式积,一个大小为I1×I2×…×IN的N阶张量/>与大小为J×In的二维矩阵U的n模式积为/>其大小为I1×...In-1×J×In+1×...×IN,元素定义为
其中,步骤(B3)中的计算公式如下:
表示原始张量的估计张量,Ω、/>和/>分别表示所有观测元素的集合、所有缺失元素的集合、/>在Ω上的正交投影、/>在/>上的正交投影;
其中,步骤(B4)中的所述中间变量矩阵的计算公式如下:
表示Kronecker积,X(n)表示所述原始张量在第n个维度下的展开矩阵;
其中,步骤(B6)中的所述重构误差的计算公式如下:
norm_tensor为步骤(B1)中所述原始张量的Frobenius范数,norm_core为步骤(B5)中所述核心张量的Frobenius范数。
5.根据权利要求1所述的低秩张量数据压缩方法,其特征在于,所述核心张量的所述码本和所述变长比特流通过以下步骤获得:
(2-1)将所述核心张量拉平为向量,提取拉平向量的绝对值和符号,作为绝对值向量和符号向量,符号向量中,1对应于负号,0对应于正号;
(2-2)根据所述核心张量的大小计算编码位数bitc和量化区间数量M,其中为核心张量的大小,log10(·)表示求以10为底的对数,Round()表示四舍五入再取整,/>
(2-3)对所述绝对值向量进行非均匀量化,得到具有M个量化值的量化码本和量化索引向量,其中索引向量的取值范围为[0,M-1],即
(2-4)遍历符号向量的值,如果符号向量当前位置的值为1,表示负号,则索引向量中对应位置的值加上M;如果值为0,表示正号,则索引向量中对应位置的值不改变;
(2-5)使用ASCII码表中的可显示字符将所述带符号的索引向量中的整数值符号化,再使用游程编码和哈夫曼编码将带符号的索引向量压缩成比特流,得到最终的变长比特流。
6.根据权利要求5所述的低秩张量数据压缩方法,其特征在于,步骤(2-3)中的非均匀量化过程如下:
(C1)通过Lloyd算法和所述绝对值向量的概率密度函数,求解得到绝对值向量的M+1个决策边界和量化码本,其中M+1个决策边界划分M个量化区间,量化码本中包括M个量化值;
(C2)对于所述绝对值向量中的任意一个元素,当它的原始值在第m个量化区间内时,所述元素的量化索引为m-1,量化值为码本的第m个值,
其中m为整数,1≤m≤M,用于标识量化区间和量化值的索引;
其中,步骤(C1)的量化目标为:
g为绝对值向量,f(g)表示g的概率密度函数,表示决策边界,/>表示量化码本,M为量化区间的数量。
7.根据权利要求1所述的低秩张量数据压缩方法,其特征在于,所述正交因子矩阵的N个比特流通过以下步骤获得:
(3-1)对于第n个维度下正交因子矩阵,其大小为In×Rn,提取所述正交因子矩阵的绝对值和符号,作为绝对值矩阵和符号矩阵;
(3-2)通过移位量化将绝对值矩阵的元素左移bitf比特位,即每个元素乘以之后四舍五入小数部分,生成整数矩阵;
(3-3)将所述符号矩阵编码到所述整数矩阵元素的最高位,即第bitf+1位;对于所述符号矩阵的任意一个元素,如果值为1,表示负号,则整数矩阵中对应位置的值的最高位设为1;如果值为0,表示正号,则整数矩阵中对应位置的值的最高位设为0;
(3-4)将所述带符号的整数矩阵通过十进制转二进制编码成长度为(bitf+1)InRn的比特流;
(3-5)重复步骤(3-1)至步骤(3-4),直到所有N个正交因子矩阵都已被编码。
8.一种低秩张量缺失值恢复方法,其特征在于,解压权利要求1中所述原始张量压缩后得到的所述码本和所述比特流,恢复所述原始张量中的缺失值,重构原始张量;重构原始张量通过以下步骤获得:
(4-1)依次进行哈夫曼编码、游程编码和符号化的逆过程,将所述核心张量的比特流熵解码成带符号的索引向量;
(4-2)提取所述带符号的索引向量的最高位作为符号向量,以及剩余位作为索引向量;通过码本和索引向量计算所述核心张量的量化值,乘以符号,重塑成所述核心张量的大小;
(4-3)将N个正交因子矩阵的比特流分别通过二进制到十进制解码成量化向量,再通过右移操作将所述向量反量化为解压值,重塑成所述正交因子矩阵的大小;
(4-4)通过所述核心张量和所述正交因子矩阵重构原始张量;
其中,步骤(4-2)中的计算公式如下:
s=(zs>>bitc)&1
z=!(1<<bitc)&zs
zs表示带符号的索引向量,s表示符号向量,这里1表示负数,0表示正数,z表示索引向量,表示量化码本,/>表示解压后的核心张量,Reshape表示将拉平的向量重塑成核心张量原始的形状R1×R2×…×RN,>>为左移运算符,<<为右移运算符,&表示与运算,!表示取反;
其中,步骤(4-3)中的计算公式如下:
表示解压后的正交因子矩阵;
其中,步骤(4-4)中的计算公式如下:
表示重构之后的原始张量,包含对缺失值的估计。
9.一种电子设备,包括处理器(310)、通信接口(320)、存储器(330)和通信总线(340),所述处理器(310)、所述通信接口(320)、所述存储器(330)通过所述通信总线(340)完成相互间的通信;其特征在于,所述处理器(310)调用所述存储器(330)中的逻辑指令,以执行如权利要求1-8所述的任一种低秩张量数据压缩方法和或缺失值的恢复方法的步骤。
CN202410047337.1A 2024-01-12 2024-01-12 一种低秩张量数据压缩和缺失值恢复的方法及系统 Pending CN117972323A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410047337.1A CN117972323A (zh) 2024-01-12 2024-01-12 一种低秩张量数据压缩和缺失值恢复的方法及系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410047337.1A CN117972323A (zh) 2024-01-12 2024-01-12 一种低秩张量数据压缩和缺失值恢复的方法及系统

Publications (1)

Publication Number Publication Date
CN117972323A true CN117972323A (zh) 2024-05-03

Family

ID=90854231

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202410047337.1A Pending CN117972323A (zh) 2024-01-12 2024-01-12 一种低秩张量数据压缩和缺失值恢复的方法及系统

Country Status (1)

Country Link
CN (1) CN117972323A (zh)

Similar Documents

Publication Publication Date Title
CN107832837B (zh) 一种基于压缩感知原理的卷积神经网络压缩方法及解压缩方法
US8990217B2 (en) Lossless compression of high nominal-range data
Lindstrom Error distributions of lossy floating-point compressors
CN110248190B (zh) 一种基于压缩感知的多层残差系数图像编码方法
Sonal A study of various image compression techniques
JP7006966B2 (ja) ベクトル量子化の混合に基づく符号化方法及びこれを用いた最近傍探索(nns)方法
Boopathi et al. An image compression approach using wavelet transform and modified self organizing map
CN102084594B (zh) 用于处理数字数据的方法
CN116939226A (zh) 一种面向低码率图像压缩的生成式残差修复方法及装置
Chen Context modeling based on context quantization with application in wavelet image coding
CN117354523A (zh) 一种频域特征感知学习的图像编码、解码、压缩方法
Xu et al. Singular vector sparse reconstruction for image compression
CN113467949B (zh) 边缘计算环境下用于分布式dnn训练的梯度压缩方法
CN112702600B (zh) 一种图像编解码神经网络分层定点化方法
CN117972323A (zh) 一种低秩张量数据压缩和缺失值恢复的方法及系统
JP5580295B2 (ja) 規則的点ネットワークにおけるベクトルをカウントする方法
CN115361559A (zh) 图像编码方法、图像解码方法、装置以及存储介质
CN110830044B (zh) 基于稀疏最小二乘优化的数据压缩方法
Amin et al. Vector quantization based lossy image compression using wavelets–a review
Navaneethakrishnan Study of image compression techniques
Yan et al. Digital Image Compression
Annalakshmi Lossy image compression techniques
Kekre et al. Vector quantized codebook optimization using modified genetic algorithm
Lindstrom MultiPosits: Universal Coding of R n
Taheri et al. Facial image compression using adaptive multiple dictionaries

Legal Events

Date Code Title Description
PB01 Publication
PB01 Publication
SE01 Entry into force of request for substantive examination