掌桥专利:专业的专利平台
掌桥专利
首页

一种数据存储的方法、及其数据获取方法、装置

文献发布时间:2023-06-19 09:44:49


一种数据存储的方法、及其数据获取方法、装置

技术领域

本申请涉及数据存储领域,特别地,涉及一种降低存储空间的数据存储方法。

背景技术

数据维度是指具有不同值的对象的描述性属性或特征。例如,一张具有16×16像素的图片,每个像素具有不同像素值,则可视为具有256个维度的数据。

为了解决存储数据维度高所需存储空间大的问题,自编码器被用于为低维数据和高维数据建立一一对应的映射关系,这样,基于存储的低维数据,通过自编码器可得到对应的高维数据,从而使得存储空间能够减少。这类自编码器虽然一定程度降低了数据存储空间,但是在存储自编码器的网络模型参数的同时,仍需要大量存储压缩过的低维数据,这样,如果数据量非常大的情况下,基于自编码器的算法仍要大量存储空间。

如何进一步降低高维数据所对应的低维数据的存储量是一个亟待解决的问题。

发明内容

本发明提供了一种数据存储方法,以降低存储高维数据所需要的存储空间。

本发明提供的一种数据存储的方法是这样实现的:

为N个待存储数据分配一个N维第一参数向量;其中,V、N为自然数,V大于等于N;

对所述第一参数向量进行N维置换,获得N个分别具有N维的第二参数向量,

构建一将所述第二参数向量映射到所述待存储数据的期望样本数据的神经网络模型,

对所述神经网络模型参数、和/或第一参数向量进行调整,直至第二参数向量基于训练后的神经网络模型所获得的所述待存储数据的期望数据样本回归于所述待存储数据,存储所述当前第一参数向量。

该方法还包括,如果第二参数向量基于训练后的神经网络模型所获得的所述待存储数据的期望数据样本未回归于所述待存储数据,则对当前第一参数向量进行N维置换,返回执行神经网络模型参数、和/或第一参数向量进行调整、直至第二参数向量基于训练后的神经网络模型获得所述待存储数据的步骤。。

较佳地,该方法还包括,对所述待存储数据按照类别进行区分,和/或,对同一类别数据分别为每个待存储数据分配标识,并存储所述类别和/或标识与所述第一参数向量的对应关系;

该方法还包括,存储训练后的神经网络模型的模型参数;

所述第一参数向量中各维参数初始值按照高斯分布随机值分别从所述N个待存储数据获得。

其中,所述对所述第一参数向量进行N维置换,获得N个分别具有N维的第二参数向量,包括,通过N个仿射变换矩阵对所述第一参数向量进行N维置换,使得所述第二参数向量在每个维度上的值与所述第一参数向量对应维度上的值不同。

其中,所述通过N个仿射变换矩阵对所述第一参数向量进行N维置换,使得所述第二参数向量在每个维度上的值与所述第一参数向量对应维度上的值不同,包括,

通过N个仿射变换矩阵分别对所述第一参数向量进行置换,使得:当k等于1时,所述第二参数向量等于第一参数向量;当k不等于1时,分别把所述第一参数向量的前k-1个元素截出放到该参数向量的末端,得到k-1个分别具有N维的第二参数向量,其中,k=1,…N。

其中,所述通过N个仿射变换矩阵对所述第一参数向量进行置换包括,

将所述N个仿射变换矩阵分别与所述第一参数向量相乘,

其中,N个仿射变换矩阵分别为N×N的矩阵,且,所述仿射变换矩阵中的元素a

又,所述对所述第一参数向量进行N维置换,获得N个分别具有N维的第二参数向量,包括,

将第一参数向量中对应于所述标识的维度之值和第一参数向量中第一个维度之值互相交换,分别获得具有N维的第二参数向量。

其中,所述将第一参数向量中对应于所述标识的维度之值和第一参数向量中第一个维度之值互相交换包括,

通过N个仿射变换矩阵分别对所述第一参数向量进行置换,使得:当k等于1时,所述第二参数向量等于第一参数向量;当k不等于1时,分别把所述第一参数向量的第k个元素与第一个元素互换,其中,k=1,…N。

其中,所述通过N个仿射变换矩阵分别对所述第一参数向量进行置换包括,

将所述N个仿射变换矩阵分别与所述第一参数向量相乘,

其中,N个仿射变换矩阵分别为N×N的矩阵,且,所述仿射变换矩阵中的元素a

a

a

较佳地,所述对所述神经网络模型参数、和/或第一参数向量进行调整,直至第二参数向量基于训练后的神经网络模型所获得的所述待存储数据的期望数据样本回归于所述待存储数据,,包括,将所述N个分别具有N维的第二参数向量作为所述神经网络模型的输入变量,将神经网络模型的输出作为所述待存储数据的期望数据样本,对所述神经网络模型进行训练,和/或在训练过程中更新所述第一参数向量,直至神经网络模型输出的所述待存储数据的期望数据样本回归于所述待存储数据。

其中,所述对所述神经网络模型进行训练,和/或在训练过程中更新所述第一参数向量,直至神经网络模型输出的所述待存储数据的期望数据样本回归于所述待存储数据,包括,

对所述神经网络模型的模型参数进行初始化后,

累计当前迭代次数;

将当前第二参数向量输入至所述神经网络模型,得到待存储数据的当前期望数据样本,计算当前期望数据样本与待存储数据的损失函数,按照使得损失函数收敛来优化当前神经网络模型的模型参数和/或第一参数向量,得到该次迭代优化后的当前神经网络模型参数、和/或更新后的当前第一参数向量;

将当前第二参数向量或基于所述更新后的当前第一参数向量进行置换而得到的第二参数向量输入至所述优化后的当前神经网络模型,得到当前期望数据样本;

返回执行所述累计当前迭代次数的步骤,直至达到预定的迭代次数,或者损失函数收敛于设定的阈值,得到训练后的神经网络模型的模型参数和/或更新后的第一参数向量;

所述存储所述第一参数向量包括,存储当前更新后的第一参数向量。

较佳地,所述神经网络模型为深度学习深度网络模型;所述损失函数为回归类损失函数;所述仿射变化矩阵根据当前k值在线生成。

本发明还提供一种数据获取方法,包括,

根据待获取数据,获取存储的第一参数向量;

对所述第一参数向量进行N维置换,获得N个分别具有N维的第二参数向量,其中,N为所述第一参数向量的维数;

获取数据存储时所使用的训练后神经网络模型参数,

将第二参数向量作为该神经网络模型的输入,将该神经网络模型的输出作为所述待获取数据。

其中,所述根据待获取数据,获取存储的第一参数向量包括,

根据待获取数据的类别和/或标识,基于存储的类别和/或标识与第一参数向量的对应关系,获得第一参数向量;

所述获取数据存储时所使用的训练后神经网络模型参数,包括,获取存储的训练后的神经网络模型的模型参数;并加该模型参数加载至神经网络模型中,得到训练后的神经网络模型。

其中,所述对所述第一参数向量进行N维置换,获得N个分别具有N维的第二参数向量,包括,通过N个仿射变换矩阵对所述第一参数向量进行N维置换,使得所述第二参数向量在每个维度上的值与所述第一参数向量对应维度上的值不同。

或,将第一参数向量中对应于所述标识的维度之值和第一参数向量中第一个维度之值互相交换,分别获得具有N维的第二参数向量。

本申请实施例基于一个N维的第一参数向量,通过仿射变换实现N个N维的第二参数向量,通过训练后的神经网络模型将所述第二参数向量映射到第一参数向量所对应的数据,从而使得存储了第一参数向量,就相当于存储了待存储的数据,将高维数据降低为低维数据来存储,使得存储空间大大降低。

附图说明

图1是本申请实施例对待存储数据进行存储的一种流程图。

图2为对构建的神经网络模型进行训练的一种流程图。

图3为本申请实施例所涉及的数据映射过程的一种示意图。

图4为基于所存储的第一参数向量、以及训练后的神经网络模型的模型参数获取样本数据的一种流程示意图。

图5为本申请实施例的数据存储的一种装置示意图。

图6为本申请实施例的获取数据的一种装置示意图。

具体实施方式

为了使本申请的目的、技术手段和优点更加清楚明白,以下结合附图对本申请做进一步详细说明。

本发明提出的数据存储方法,为待存储的数据分配一个N维的第一参数向量,将第一参数向量的不同维度进行置换,得到置换后的第二参数向量,使得一个第一参数向量对应N个数据样本,将第二参数向量作为神经网络的训练样本,通过迭代优化损失函数来训练该神经网络和/或调整第一参数向量。由此,建立第一参数与待存储数据的映射,从而存储第一参数以及训练后的神经网络参数。本发明基于神经网络对第一参数向量进行确定的仿射变换来实现一个低维数据能够表示多个高维数据,从而极大地降低了存储所需的空间。

参见图1,图1为本申请实施例对待存储数据进行存储的一种流程图。该存储方法包括,

步骤101,对于具有V维的待存储数据,为方便存储和查询,可以按照类别对数据进行区分,并进行编号以获得类别标签,进一步地,对同一类别数据中由特征值集合所构成的特征数据分别分配一个标识ID,作为该类别数据的样本标识,即,一特征数据视为一样本数据。例如,图像数据按照类别可以包括人物类、风景类等等,其中,人物类数据中可以包括若干个样本数据,譬如,若干张图片数据。

如果不区分类别,也可以直接对每个样本数据分配样本标识。

步骤102,对N个不同ID的样本数据x

该参数向量的初始值b

步骤103,通过对所述第一参数向量的N个不同维度进行置换,得到N个分别具有N维的第二参数向量h

h

其中,仿射变换矩阵A

上述仿射变换矩阵中,

当k=1时,仿射变换矩阵为单位矩阵;

当k≠1时,通过上述仿射变换后,相当于把h

通过上述仿射变换,除了k=1之外,其它第二参数向量在每个维度上的值与所述第一参数向量对应维度上的值不同,例如图3所示,这种变换建立了从一个低维参数向量h

上述仿射变换矩阵可以根据k或标识在线生成,这样,仿射变换矩阵不必占用存储空间。此外,仿射变换矩阵还可以是其他形式,只要根据预先设定的规则所生成的仿射变换矩阵都是可以的。例如,仿射变换矩阵A

a

a

通过上述仿射变换后,相当于把h

步骤104,构建一神经网络模型,并对该神经网络模型进行训练,和/或在训练过程中对第一参数向量进行更新,使得通过训练后的神经网络模型f将第二参数向量h

x

其中,f表示训练后的神经网络模型,h

步骤105,存储标识ID与第一参数向量的对应关系、第一参数向量、以及训练后的神经网络模型的模型参数。

参见图2所示,图2为对构建的神经网络模型进行训练的一种流程图。

设置神经网络模型中的各初始模型参数,通过该神经网络模型f

其中,f

对构建的神经网络模型进行训练的一种实施方式包括如下步骤:

步骤201,累计当前迭代次数,

步骤202,计算当前神经网络模型的损失函数,按照使得损失函数收敛来优化当前神经网络模型的模型参数和/或第一参数向量,得到该次优化后的当前神经网络模型f

其中,L表示损失函数,本实施例中,损失函数为两个向量(期望数据样本向量和真实数据样本向量)欧式距离平方和,x

上述损失函数还可以是,回归类损失函数的一种,例如,均方误差损失函数、平均绝对误差损失函数、平滑平均绝对误差损失函数、Log-Cosh损失函数分位数损失(QuantileLoss)函数等的。具体可根据样本数据的特点、所采用的神经网络模型、迭代的效率、每次迭代时所得到期望数据样本等因素确定。

步骤203,基于优化后的当前神经网络模型f

返回步骤201,直至达到预定的迭代次数,或者损失函数收敛于设定的阈值,然后保存当前第一参数向量、以及当前模型参数。

当神经网络模型训练结束后,对于N个数据样本,只需存储学习后的最终第一参数向量、以及训练后的神经网络模型的模型参数,实现了一个低维参数表征多个高维数据,从而极大地降低了存储所需要的空间。

参见图3所示,图3为本申请实施例所涉及的数据映射过程的一种示意图。其中,一个N维的第一参数向量通过仿射变换矩阵置换,得到N个分别为N维的第二参数向量,该N个第二参数向量输入至训练后的神经网络模型,则得到映射后的N个数据样本x

参见图4所示,图4为基于所存储的第一参数向量、以及训练后的神经网络模型的模型参数获取样本数据的一种流程示意图。

当需要获取样本数据时,根据所需获取样本数据的标识,得到该标识对应的第一参数向量;

根据所存储的第一参数向量,通过仿射变换矩阵进行N维度的置换,得到第二参数向量;具体计算公式与步骤103相同。

将神经网络模型算法用所存储的模型参数加载,即,调用存储时所使用的神经网络模型算法,并使用所存储的模型参数赋值,将第二参数向量作为神经网络模型算法的输入变量,神经网络模型算法的输出结果即为所需获取的样本数据。

本实施例通过上述步骤,能够快速地查询到所需要的数据,效率高,使用方便。

为进一步说明本申请实施例,以下以一具体的图像数据的存储为实施例来说明。

图像数据包括了大量的像素点及各个像素点的像素值,是典型高维数据中的一种;例如,在增量学习场景中,需要用到大量图像经过卷积神经网络中间层输出的特征图,这时特征图的特征数据具有很高的维度,在如果直接存储,将非常耗费存储空间。

假设待存储的图像数据为10张图片数据,每个图片包括有16×16个像素点的像素值。按照本申请实施例,即,包括有10个不同ID的样本数据。

为该10个样本数据分配一个10维的第一参数向量h

通过对所述第一参数向量的10个不同维度进行置换,得到10个分别具有10维的第二参数向量h

构建深度学习神经网络模型,并对该深度学习神经网络模型进行训练,使得通过训练后的深度学习神经网络模型f将10个10维的第二参数向量h

其中,对构建的神经网络模型进行训练的一种实施方式是,设置神经网络模型中的各初始模型参数,通过该神经网络模型f

其中,f

累计当前迭代次数,

计算当前神经网络模型的损失函数,按照使得损失函数收敛来优化当前神经网络模型的模型参数,得到该次优化后的当前神经网络模型f

其中,L表示损失函数,x

基于优化后的当前神经网络模型f

返回累计当前迭代次数步骤,直至达到预定的迭代次数,或者损失函数收敛于设定的阈值。

当神经网络模型训练结束后,对于10张图片数据,只需存储学习后的最终第一参数向量的10个元素值、以及训练后的神经网络模型的模型参数。而待存储的10张图片数据实际有2560个像素值需要存储。由此可将,采用本申请实施例,能够极大地压缩数据的存储空间。

参见图5所示,图5为本申请实施例的数据存储的一种装置示意图。该装置包括,

分配模块,对N个具有至少V维的待存储数据分配一个N维第一参数向量;其中,各维参数向量初始值按照高斯分布随机值分别从所述N个待存储数据获得,V、N为自然数,V大于等于N,较佳地,V远大于N;

置换模块,对所述第一参数向量进行N维置换,获得N个分别具有N维的第二参数向量,

神经网络模块,构建一将当前第二参数向量映射到所述待存储数据的期望数据样本的神经网络模型,

对所述神经网络模型的模型参数、和/或第一参数向量进行调整,直至当前第二参数向量基于训练后的神经网络模型所获得的所述待存储数据的期望数据样本回归于所述待存储数据,。

存储模块,存储所述当前第一参数向量,存储训练后的神经网络模型的模型参数。

针对带存储的样本数据,由于图片包含的数据较大,将存储数据量大的待存储的样本数据,替换为存储维度较低的第一参数向量,因此可以大量节省存储空间,降低运算量。

所述神经网络模块还包括,如果当前第二参数向量基于训练后的神经网络模型所获得的所述待存储数据的期望数据样本未回归于所述待存储数据,则对当前第一参数向量进行N维置换,返回执行所述对所述神经网络模型的模型参数和/或第一参数向量进行调整的步骤。

较佳地,该装置还包括,

数据标识模块,对所述待存储数据按照类别进行区分,和/或,对同一类别数据分别为每个待存储数据分配标识,并将所述类别和/或标识与所述第一参数向量的对应关系存储到所述存储模块中。

所述置换模块包括,通过N个仿射变换矩阵对所述第一参数向量进行N维置换,使得所述第二参数向量在每个维度上的值与所述第一参数向量对应维度上的值不同,例如,当k等于1时,所述第二参数向量等于第一参数向量;当k不等于1时,分别把所述第一参数向量的前k-1个元素截出放到该参数向量的末端,得到k-1个分别具有N维的第二参数向量,其中,k=1,…N。

或者,将第一参数向量中对应于所述标识的维度之值和第一参数向量中第一个维度之值互相交换,分别获得具有N维的第二参数向量,例如,当k等于1时,所述第二参数向量等于第一参数向量;当k不等于1时,分别把所述第一参数向量的第k个元素与第一个元素互换,其中,k=1,…N。

所述置换模块还包括仿射变换矩阵在线生成模块,根据预先设置的变换规则在线生成各个仿射变换矩阵。

所述神经网络模块包括,将所述N个分别具有N维的第二参数向量作为所述神经网络模型的输入变量,将神经网络模型的输出作为所述待存储数据的期望数据样本。

所述装置还包括训练模块,

对所述神经网络模型的模型参数进行初始化后,

累计当前迭代次数;

将当前第二参数向量输入至所述神经网络模型,得到待存储数据的当前期望数据样本,计算当前期望数据样本与待存储数据的损失函数,按照使得损失函数收敛来优化当前神经网络模型的模型参数和/或第一参数向量,得到该次迭代优化后的当前神经网络模型的模型参数和/或更新后的当前第一参数向量;

将当前第二参数向量或基于所述更新后的当前第一参数向量进行置换而得到的第二参数向量输入至所述优化后的当前神经网络模型,得到当前期望数据样本;

返回执行所述累计当前迭代次数的步骤,直至达到预定的迭代次数,或者损失函数收敛于设定的阈值,得到训练后的神经网络模型的模型参数和/或第一参数向量。

所述神经网络模块为深度学习神经网络模块。

参见图6所示,图6为本申请实施例的获取数据的一种装置示意图。该装置包括,

第一参数向量获取模块,根据待获取数据,获取存储的第一参数向量;

置换模块,对所述第一参数向量进行N维置换,获得N个分别具有N维的第二参数向量,其中,N为所述第一参数向量的维数;

神经网络模型模块,获取数据存储时所使用的训练后神经网络模型;将第二参数向量作为当前神经网络模型的输入,将当前神经网络模型的输出作为所述待获取数据。

所述第一参数向量获取模块还包括,根据待获取数据的类别和/或标识,基于存储的类别和/或标识与第一参数向量的对应关系,获得第一参数向量。

所述置换模块包括,通过N个仿射变换矩阵对所述第一参数向量进行N维置换,使得所述第二参数向量在每个维度上的值与所述第一参数向量对应维度上的值不同,例如,当k等于1时,所述第二参数向量等于第一参数向量;当k不等于1时,分别把所述第一参数向量的前k-1个元素截出放到该参数向量的末端,得到k-1个分别具有N维的第二参数向量,其中,k=1,…N。

或者,将第一参数向量中对应于所述标识的维度之值和第一参数向量中第一个维度之值互相交换,分别获得具有N维的第二参数向量,例如,当k等于1时,所述第二参数向量等于第一参数向量;当k不等于1时,分别把所述第一参数向量的第k个元素与第一个元素互换,其中,k=1,…N。

所述置换模块还包括仿射变换矩阵在线生成模块,根据预先设置的变换规则在线生成各个仿射变换矩阵。

本发明还提供了一种数据存储装置,其特征在于,该装置包括,存储器以及处理器,其中,

存储器用于存储指令,该指令在由处理器执行时使得处理器执行所述数据存储方法的步骤。

本发明还提供了一种数据获取装置,其特征在于,该装置包括,存储器以及处理器,其中,

存储器用于存储指令,该指令在由处理器执行时使得处理器执行如权利要求12至19任一所述数据获取方法的步骤。

存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。

上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。

本申请实施例还提供了一种计算机可读存储介质,所述存储介质内存储有计算机程序,所述计算机程序被处理器执行时实现如下步骤:

为N个具有至少V维的待存储数据分配一个N维第一参数向量;其中,各维参数向量按照高斯分布随机值分别从所述N个待存储数据获得,N为自然数;

对所述第一参数向量进行N维置换,获得N个分别具有N维的第二参数向量,

构建一将当前第二参数向量映射到所述待存储数据的期望数据样本的神经网络模型,

对所述神经网络模型的模型参数、和/或第一参数向量进行调整,直至当前第二参数向量基于训练后的神经网络模型所获得的所述待存储数据的期望数据样本回归于所述待存储数据,存储所述当前第一参数向量。

对于装置/存储介质实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。

需要说明的是,本申请尽管是以数据存储、和获取为实施例进行的说明,所应理解的是,本发明不仅仅用于数据的存储,还可应用于数据表征,例如,将复杂数据信息用简化的数据信息来表征,也可用于数据维度的降低,例如,将高维数据降低为低维数据。

在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。

以上所述仅为本发明的较佳实施例而已,并不用以限制本发明,凡在本发明的精神和原则之内,所做的任何修改、等同替换、改进等,均应包含在本发明保护的范围之内。

相关技术
  • 数据存储控制方法、数据存储方法、数据获取方法及装置
  • 一种数据存储方法、装置及一种数据获取方法、装置
技术分类

06120112285925