一种基于张量的自动编码机的构建方法与流程

    专利2022-07-08  102


    本发明涉及一种基于张量的自动编码机的构建方法,属于机器技术领域。



    背景技术:

    机器学习是一种实现人工智能的方式,是近些年主要研究的领域。通常情况下,机器学习模型的训练和预测均是基于大量的数据,其中非监督学习模型应用更为广泛。在非监督学习模型中,自动编码机的使用使得在训练过程中不需要对训练样本进行标记,极大的提高了学习的效率,从而引起了研究者的广泛关注。在非监督学习模型中采用向量描述数据,这种方式更适合描述单一类型的数据,然而随着无线设备(如智能手机和笔记本电脑)的普及,移动用户对在线应用程序(例如,视频服务、网页浏览和社交网络等)的需求日益增长,这一现象导致了网络交换数据呈指数级增长的同时存在着的大量异构数据,向量的描述方式不能很好的捕获数据之间的关系。此外,部分数据与运行时间相关,需要构造一种在时间维度上有效的方法。为了解决异构数据和时间维度的问题,将深度学习模型从向量空间扩展导张量空间的方法便被提出了。与此同时,由于网络交换数据增长造成了数据中存在部分属性丢失的问题。为了解决现有模型不能很好的对不完整数据进行学习的短板,研究基于张量的自动编码机的构建具有重要意义。

    本发明提出一种基于张量的自动编码机的构建方法,即针对数据的异构和缺失问题,将原始数据通过张量进行统一表示,进而通过构建的自动编码机对预处理后的数据进行处理,为后续机器学习做准备。针对经过初步处理后得到的异构型完整数据,进行核张量分解以及降维编码能显著的提高神经网络的学习性能。

    目前的研究工作主要存在以下问题:

    (1)大多数的神经网络模型只考虑了如何有效的学习异构数据的特征,并未考虑数据属性缺失对模型的学习性能带来的影响。

    (2)大多数的神经网络模型只考虑了对原始的完整异构数据进行编码,并未考虑完整异构数据通过核张量分解对编码技术带来的影响。

    因此,本发明研究了一种基于张量的自动编码机的构建方法。本发明考虑了以下两个方面的问题:(1)如何将不完整异构数据填充为完整异构数据,以此提高可利用数据量;(2)如何对异构数据成功分解后的核张量进行编码,以此提高学习的有效性。



    技术实现要素:

    本发明的目的是提出一种基于张量的自动编码机的构建方法,针对数据的异构型和不完整性,分别提出基于张量的数据表示法和不完整数据最近距离领域法,来处理不完整数据和异构数据处理难的问题,并通过对初步处理后的数据进行tucker分解,对分解后的核张量进行二维编码,从而构建出高阶自动编码机的方法。改进机器学习领域中对异构不完全数据的处理问题,提高了机器学习的有效性。

    一种基于张量的自动编码机的构建方法,所述构建方法包括以下步骤:

    步骤一、通过张量对异构数据和时间维度进行统一表示,从而根据是否存在属性的缺失将数据划分为两个不相交的子集,分别为完整数据集和不完整数据集;

    步骤二、从完整数据集中选取若干个随机对象,对每个不完整数据集中缺失的属性值进行训练,从而构建训练集;然后利用训练集对不完整数据集中缺失的属性值进行填充,进而完成对异构不完整数据的处理;

    步骤三、对得到的通过张量表示的完整异构数据进行tucker分解,对分解后得到的核张量依次进行对数、平均值和切片操作,从而对得到相同维度的矩阵进行二维自动编码,进而构建高阶自动编码机。

    进一步的,在步骤一中,具体包括以下步骤:

    步骤一一、建n阶张量模型:

    上述定义了一个n阶张量,其元素为n为张量的阶,in(1≤n≤n)为张量在第n阶上的维度;

    步骤一二、异构数据添加至张量空间:

    根据异构数据的不同属性转化为对应阶数的张量,然后添加至张量空间x中;

    步骤一三、实现张量的扩展:

    将不同的异构数据表示为低阶张量,利用扩展运算将低阶形式扩展成高阶形式,实现大数据的统一表示;

    步骤一四、将统一表示的数据划分为完整数据集和不完整数据集:

    判断统一表示的异构大数据根据是否存在属性的缺失,划分为两个不相交的数据子集,分别为完整数据集en和不完整数据集em,其中完整数据集en中不存在属性的缺失,不完整数据集em中每个对象都存在一个或多个属性的缺失。

    进一步的,步骤一三中运用到张量扩展运算,其定义为:

    为了实现张量的扩展,需要定义张量的扩展运算,假设分别为两个四阶张量,则张量的扩展运算定义如下:

    其中c为高阶张量,in为张量第n阶上的维度。

    进一步的,具体包括以下步骤:

    步骤二一、对不完整数据缺失属性的提取:

    想较于完整数据集en(e1,e2,…ek,…en),不完整数据集em(e1,e2,…ek-1,ek 1,…en)中的缺失属性为ek,利用现有卷积神经网络的特征提取层,可以将不完整数据集em中缺失的属性ek提取出来;

    步骤二二、对完整数据集中的ek属性值进行训练:

    从完整数据中选取若干个随机对象这些对中相对应的ek属性值采用现有的f1指数训练方法进行训练,从而构建训练模型y;

    步骤二三、对不完整数据集缺失属性进行填充:

    先根据欧式距离或现有相关分析方法来确定距离具有缺失数据样本最近的k个样本,将这k个值带入训练模型y,来估计该样本的缺失数据,其中欧式距离n维空间公式如下:

    进一步的,具体包括以下步骤:

    步骤三一、对异构完整数据进行tucker分解:

    对于一个三阶张量而言,经过tucker分解可以得到一个核张量和三个扩展矩阵,具体分解公式如下:

    其中,a,b,c是扩展矩阵,他们通常被作为tucker分解模型下的主成分,而就是核心张量,p,q,r为对应因子矩阵里列的个数,a,b,c为扩展矩阵元素,

    对于原始张量的每一个元素,tucker分解法写作:

    步骤三二、对分解后的核张量进行编码:

    步骤三二一、把得到的核张量g进行对数(log)运算和平均(mean)值运算;

    步骤三二二、通过切片操作,把核张量分解为维度相同的矩阵m;

    步骤三二三、对降维后得到的矩阵m按照现有的二维自动编码器进行数据训练。

    本发明的主要优点是:

    本专利提出一种基于张量的自动编码机的构建方法具有如下优点:

    (1)本发明优化了机器学习模型中数据的预处理方法,通过提取不完全数据缺失的属性,并对完整数据集中相应的属性值进行训练,从而对不完整数据集缺失的属性进行填充,提高了数据的学习精度。

    (2)本发明通过对张量表示的完整异构数据进行tucker分解,并构建自动编码机对分解后得到的核张量进行编码,提高了机器学习的准确率。

    附图说明

    图1是本发明的一种基于张量的自动编码机的构建方法的方法流程图。

    具体实施方式

    下面将结合本发明实施例中的附图对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。

    本发明提出了一种基于张量的自动编码机的构建方法,对异构不完整数据集进行训练填充,从而构建完整的数据集,提高数据的利用效率,并对完整的异构数据集进行tucker分解,构建自动编码机对分解后得到的核张量进行编码,提高了网络模型学习数据的效率。下面结合附图进行详细说明。

    如图1所示,体现了基于张量的自动编码机构建的整体流程,通过该流程,从而增强了数据的学习效果,提高了机器学习的准确率。

    一种基于张量的自动编码机的构建方法,所述构建方法包括以下步骤:

    步骤一、通过张量对异构数据和时间维度进行统一表示,从而根据是否存在属性的缺失将数据划分为两个不相交的子集,分别为完整数据集和不完整数据集;

    步骤二、从完整数据集中选取若干个随机对象,对每个不完整数据集中缺失的属性值进行训练,从而构建训练集;然后利用训练集对不完整数据集中缺失的属性值进行填充,进而完成对异构不完整数据的处理;

    步骤三、为了进一步的提高数据学习效率,对得到的通过张量表示的完整异构数据进行tucker分解,对分解后得到的核张量依次进行对数、平均值和切片操作,从而对得到相同维度的矩阵进行二维自动编码,进而构建高阶自动编码机,提高了对数据的良好学习效果。

    在步骤一中,具体包括以下步骤:

    步骤一一、建n阶张量模型:

    上述定义了一个n阶张量,其元素为n为张量的阶,in(1≤n≤n)为张量在第n阶上的维度;

    步骤一二、异构数据添加至张量空间:

    根据异构数据的不同属性转化为对应阶数的张量,然后添加至张量空间x中;例如一个任务x用一个三元组表示<w,d,k>来表示,其中w表示任务大小,d表示任务执行截至期限,k表示任务需要计算量,其转化为对应的三阶张量x。

    步骤一三、实现张量的扩展:

    将不同的异构数据表示为低阶张量,利用扩展运算将低阶形式扩展成高阶形式,实现大数据的统一表示;

    步骤一四、将统一表示的数据划分为完整数据集和不完整数据集:

    判断统一表示的异构大数据根据是否存在属性的缺失,划分为两个不相交的数据子集,分别为完整数据集en和不完整数据集em,其中完整数据集en中不存在属性的缺失,不完整数据集em中每个对象都存在一个或多个属性的缺失。

    步骤一三中运用到张量扩展运算,其定义为:

    为了实现张量的扩展,需要定义张量的扩展运算,假设分别为两个四阶张量,则张量的扩展运算定义如下:

    其中c为高阶张量,in为张量第n阶上的维度。

    具体包括以下步骤:

    步骤二一、对不完整数据缺失属性的提取:

    想较于完整数据集en(e1,e2,…ek,…en),不完整数据集em(e1,e2,…ek-1,ek 1,…en)中的缺失属性为ek,利用现有卷积神经网络的特征提取层,可以将不完整数据集em中缺失的属性ek提取出来;

    步骤二二、对完整数据集中的ek属性值进行训练:

    从完整数据中选取若干个随机对象这些对中相对应的ek属性值采用现有的f1指数训练方法进行训练,从而构建训练模型y;

    步骤二三、对不完整数据集缺失属性进行填充:

    先根据欧式距离或现有相关分析方法来确定距离具有缺失数据样本最近的k个样本,将这k个值带入训练模型y,来估计该样本的缺失数据,其中欧式距离n维空间公式如下:

    具体包括以下步骤:

    步骤三一、对异构完整数据进行tucker分解:

    对于一个三阶张量而言,经过tucker分解可以得到一个核张量和三个扩展矩阵,具体分解公式如下:

    其中,a,b,c是扩展矩阵,他们通常被作为tucker分解模型下的主成分,而就是核心张量,p,q,r为对应因子矩阵里列的个数,a,b,c为扩展矩阵元素,

    对于原始张量的每一个元素,tucker分解法写作:

    步骤三二、对分解后的核张量进行编码:

    步骤三二一、把得到的核张量g进行对数(log)运算和平均(mean)值运算;

    步骤三二二、通过切片操作,把核张量分解为维度相同的矩阵m;

    步骤三二三、对降维后得到的矩阵m按照现有的二维自动编码器进行数据训练。

    本发明的主要参数表如表1所示:

    表1

    本发明优化了神经网络模型中数据的预处理方法,通过提取不完全数据缺失的属性,并对完整数据集中相应的属性值进行训练,从而对不完整数据集缺失的属性进行填充,提高了数据的利用效率。

    且本发明证明通过对张量表示的完整异构数据进行tucker分解,并构建自动编码机对分解后得到的核张量进行编码,从而增强了数据的学习效果,提高了神经网络模型的学习效率。


    技术特征:

    1.一种基于张量的自动编码机的构建方法,其特征在于,所述构建方法包括以下步骤:

    步骤一、通过张量对异构数据和时间维度进行统一表示,从而根据是否存在属性的缺失将数据划分为两个不相交的子集,分别为完整数据集和不完整数据集;

    步骤二、从完整数据集中选取若干个随机对象,对每个不完整数据集中缺失的属性值进行训练,从而构建训练集;然后利用训练集对不完整数据集中缺失的属性值进行填充,进而完成对异构不完整数据的处理;

    步骤三、对得到的通过张量表示的完整异构数据进行tucker分解,对分解后得到的核张量依次进行对数、平均值和切片操作,从而对得到相同维度的矩阵进行二维自动编码,进而构建高阶自动编码机。

    2.根据权利要求1所述的一种基于张量的自动编码机的构建方法,其特征在于,在步骤一中,具体包括以下步骤:

    步骤一一、建n阶张量模型:

    上述定义了一个n阶张量,其元素为n为张量的阶,in(1≤n≤n)为张量在第n阶上的维度;

    步骤一二、异构数据添加至张量空间:

    根据异构数据的不同属性转化为对应阶数的张量,然后添加至张量空间x中;

    步骤一三、实现张量的扩展:

    将不同的异构数据表示为低阶张量,利用扩展运算将低阶形式扩展成高阶形式,实现大数据的统一表示;

    步骤一四、将统一表示的数据划分为完整数据集和不完整数据集:

    判断统一表示的异构大数据根据是否存在属性的缺失,划分为两个不相交的数据子集,分别为完整数据集en和不完整数据集em,其中完整数据集en中不存在属性的缺失,不完整数据集em中每个对象都存在一个或多个属性的缺失。

    3.根据权利要求2所述的一种基于张量的自动编码机的构建方法,其特征在于,步骤一三中运用到张量扩展运算,其定义为:

    为了实现张量的扩展,需要定义张量的扩展运算,假设分别为两个四阶张量,则张量的扩展运算定义如下:

    其中c为高阶张量,in为张量第n阶上的维度。

    4.根据权利要求1所述的一种基于张量的自动编码机的构建方法,其特征在于,在步骤二中,具体包括以下步骤:

    步骤二一、对不完整数据缺失属性的提取:

    想较于完整数据集en(e1,e2,…ek,…en),不完整数据集em(e1,e2,…ek-1,ek 1,…en)中的缺失属性为ek,利用现有卷积神经网络的特征提取层,可以将不完整数据集em中缺失的属性ek提取出来;

    步骤二二、对完整数据集中的ek属性值进行训练:

    从完整数据中选取若干个随机对象这些对中相对应的ek属性值采用现有的f1指数训练方法进行训练,从而构建训练模型y;

    步骤二三、对不完整数据集缺失属性进行填充:

    先根据欧式距离或现有相关分析方法来确定距离具有缺失数据样本最近的k个样本,将这k个值带入训练模型y,来估计该样本的缺失数据,其中欧式距离n维空间公式如下:

    5.根据权利要求1所述的一种基于张量的自动编码机的构建方法,其特征在于,在步骤三中,具体包括以下步骤:

    步骤三一、对异构完整数据进行tucker分解:

    对于一个三阶张量而言,经过tucker分解可以得到一个核张量和三个扩展矩阵,具体分解公式如下:

    其中,a,b,c是扩展矩阵,他们通常被作为tucker分解模型下的主成分,而就是核心张量,p,q,r为对应因子矩阵里列的个数,a,b,c为扩展矩阵元素,

    对于原始张量的每一个元素,tucker分解法写作:

    步骤三二、对分解后的核张量进行编码:

    步骤三二一、把得到的核张量g进行对数(log)运算和平均(mean)值运算;

    步骤三二二、通过切片操作,把核张量分解为维度相同的矩阵m;

    步骤三二三、对降维后得到的矩阵m按照现有的二维自动编码器进行数据训练。

    技术总结
    本发明公开了一种基于张量的自动编码机的构建方法,属于机器技术领域。本发明提出了一种基于张量的自动编码机的构建方法,对异构不完整数据集进行训练填充,从而构建完整的数据集,提高数据的利用效率,并对完整的异构数据集进行Tucker分解,构建自动编码机对分解后得到的核张量进行编码,提高了网络模型学习数据的效率。本发明优化了机器学习模型中数据的预处理方法,通过提取不完全数据缺失的属性,并对完整数据集中相应的属性值进行训练,从而对不完整数据集缺失的属性进行填充,提高了数据的学习精度;且通过对张量表示的完整异构数据进行Tucker分解,并构建自动编码机对分解后得到的核张量进行编码,提高了机器学习的准确率。

    技术研发人员:胡先浪;董鹤;郑杨凡;刘鹏飞;赵会良;冯光升;吕宏武;李亚飞
    受保护的技术使用者:江苏自动化研究所
    技术研发日:2020.12.07
    技术公布日:2021.03.12

    转载请注明原文地址:https://wp.8miu.com/read-18616.html

    最新回复(0)