数据处理方法、客户端、装置及计算机可读存储介质与流程

文档序号:24335377发布日期:2021-03-19 12:15阅读:64来源:国知局
数据处理方法、客户端、装置及计算机可读存储介质与流程

本公开涉及人工智能技术领域,特别涉及一种数据处理方法、客户端、装置及计算机可读存储介质。



背景技术:

谷歌提出了在客户端做端侧训练的联邦学习框架,并通过增加参与训练的客户端设备数量和通信轮数的方式,来提升联邦学习模型的分类性能。

图1示出了联邦学习算法的流程示意图。如图1所示,联邦学习算法包括:步骤a,客户端从云端下载联邦学习模型;步骤b,客户端利用本地存储的私有数据训练联邦学习模型,将训练后的联邦学习模型的参数返回给云端;步骤c,云端对手机终端返回的参数进行平均化,得到一个新的共享联邦学习模型。

对于联邦学习框架而言,以合作的模式利用多台客户端本地的数据训练联邦学习模型,不需要客户端将本地存储的私有数据上传到云端,因此能够大幅减少敏感信息泄漏导致的安全问题。



技术实现要素:

发明人研究发现,现有的联邦学习技术存在两方面问题。一方面来讲,联邦学习框架在客户端本地采取监督学习的方法对联邦学习模型进行训练,因此需要客户端的用户耗费精力对私有数据进行人工标注,导致联邦学习模型的训练效率较低。另一方面,客户端的用户对私有数据进行恶意的错误标注,会导致联邦学习模型的分类性能较差。

本公开解决的技术问题是,如何提高联邦学习模型的训练效率和分类性能。

根据本公开实施例的一个方面,提供了一种数据处理方法,包括:从云端下载联邦学习模型和注有标签的公有数据;利用公有数据及公有数据的标签,对本地存储的私有数据进行标注;利用注有标签的私有数据训练联邦学习模型,得到联邦学习模型的参数;将参数上传至云端。

在一些实施例中,利用公有数据及公有数据的标签,对本地存储的私有数据进行标注包括:利用联邦学习模型的卷积层提取私有数据的特征向量;对私有数据的特征向量进行聚类,并根据聚类结果为私有数据标注伪标签;利用注有伪标签的私有数据训练联邦学习模型,得到联邦学习模型的卷积层参数;利用训练后的联邦学习模型重新提取私有数据的特征向量,并提取公有数据的特征向量;根据重新提取的私有数据的特征向量与公有数据的特征向量之间的距离,为私有数据标注标签。

在一些实施例中,利用注有标签的私有数据训练联邦学习模型,得到联邦学习模型的参数包括:利用注有标签的私有数据训练联邦学习模型的分类器,得到联邦学习模型的分类器参数;将卷积层参数和分类器参数作为联邦学习模型的参数。

在一些实施例中,对私有数据的特征向量进行聚类时,聚类的类别数量与公有数据的标签的类别数量相同。

在一些实施例中,根据聚类结果为私有数据标注伪标签包括:若任意的第一私有数据的特征向量与任意的第二私有数据的特征向量属于相同的聚类类别,则为第一私有数据和第二私有数据标注相同的伪标签;若第一私有数据的特征向量与第二私有数据的特征向量属于不同的聚类类别,则为第一私有数据和第二私有数据标注不同的伪标签。

在一些实施例中,根据重新提取的私有数据的特征向量与公有数据的特征向量之间的距离,为私有数据标注标签包括:确定与任意的第三私有数据的特征向量距离最近的一个公有数据的特征向量;将一个公有数据的特征向量所对应公有数据的标签,作为第三私有数据的标签;或者,确定与任意的第三私有数据的特征向量距离最近的多个公有数据的特征向量;从多个公有数据的特征向量所对应公有数据的标签中,选择出现次数最多的标签作为第三私有数据的标签。

根据本公开实施例的另一个方面,提供了一种客户端,包括:数据下载模块,被配置为从云端下载联邦学习模型和注有标签的公有数据;数据标注模块,被配置为利用公有数据及公有数据的标签,对本地存储的私有数据进行标注;参数获取模块,被配置为利用注有标签的私有数据训练联邦学习模型,得到联邦学习模型的参数;数据上传模块,被配置为将参数上传至云端。

在一些实施例中,数据标注模块被配置为:利用联邦学习模型的卷积层提取私有数据的特征向量;对私有数据的特征向量进行聚类,并根据聚类结果为私有数据标注伪标签;利用注有伪标签的私有数据训练联邦学习模型,得到联邦学习模型的卷积层参数;利用训练后的联邦学习模型重新提取私有数据的特征向量,并提取公有数据的特征向量;根据重新提取的私有数据的特征向量与公有数据的特征向量之间的距离,为私有数据标注标签。

在一些实施例中,参数获取模块被配置为:利用注有标签的私有数据训练联邦学习模型的分类器,得到联邦学习模型的分类器参数;将卷积层参数和分类器参数作为联邦学习模型的参数。

在一些实施例中,数据标注模块被配置为:对私有数据的特征向量进行聚类时,聚类的类别数量与公有数据的标签的类别数量相同。

在一些实施例中,数据标注模块被配置为:若任意的第一私有数据的特征向量与任意的第二私有数据的特征向量属于相同的聚类类别,则为第一私有数据和第二私有数据标注相同的伪标签;若第一私有数据的特征向量与第二私有数据的特征向量属于不同的聚类类别,则为第一私有数据和第二私有数据标注不同的伪标签。

在一些实施例中,数据标注模块被配置为:确定与任意的第三私有数据的特征向量距离最近的一个公有数据的特征向量;将一个公有数据的特征向量所对应公有数据的标签,作为第三私有数据的标签;或者,确定与任意的第三私有数据的特征向量距离最近的多个公有数据的特征向量;从多个公有数据的特征向量所对应公有数据的标签中,选择出现次数最多的标签作为第三私有数据的标签。

根据本公开实施例的又一个方面,提供了一种数据处理装置,包括:存储器;以及耦接至存储器的处理器,处理器被配置为基于存储在存储器中的指令,执行前述的数据处理方法。

根据本公开实施例的再一个方面,提供了一种计算机可读存储介质,其中,计算机可读存储介质存储有计算机指令,指令被处理器执行时实现前述的数据处理方法。

本公开能够对本地存储的私有数据进行自动标注,提高了联邦学习模型的训练效率和分类性能。

通过以下参照附图对本公开的示例性实施例的详细描述,本公开的其它特征及其优点将会变得清楚。

附图说明

为了更清楚地说明本公开实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本公开的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动性的前提下,还可以根据这些附图获得其他的附图。

图1示出了联邦学习算法的流程示意图。

图2示出了本公开数据处理方法的一些实施例的流程示意图。

图3示出了重复数据处理方法的流程示意图。

图4示出了对本地存储的私有数据进行标注的一些实施例的流程示意图。

图5示出了获取联邦学习模型的参数一些实施例的流程示意图。

图6示出了本公开一些实施例的客户端的结构示意图。

图7示出了本公开一些实施例的数据处理装置的结构示意图。

具体实施方式

下面将结合本公开实施例中的附图,对本公开实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本公开一部分实施例,而不是全部的实施例。以下对至少一个示例性实施例的描述实际上仅仅是说明性的,决不作为对本公开及其应用或使用的任何限制。基于本公开中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其它实施例,都属于本公开保护的范围。

首先结合图2描述本公开数据处理方法的一些实施例。

图2示出了本公开数据处理方法的一些实施例的流程示意图。如图2所示,本实施例中数据处理方法包括步骤s201~步骤s204。

在步骤s201中,从云端下载联邦学习模型和注有标签的公有数据。

联邦学习模型可以采用谷歌开源的tensorflowfederated框架,通过该框架提供的应用程序编程接口的组合使用,来自动标注客户端本地的私有数据,并实现客户端侧的训练。联邦学习模型还可以采用java语言编写的dl4j框架或者自己编写的联邦学习框架。相比较而言,tensorflowfederated框架运行效率较高且能够节省开发时间。

从云端下发的注有标签的公有数据,来源于联邦学习框架开发者所收集到的具有代表性的少量数据。公有数据的标签可以是数据提供商提供的,也可以是开发者自身进行标注的。公有数据的数据类型可以包括图片、语音、文字等。以图片为例,云端具有100张不同类别的图片,即云端的公有数据是有限的,仅靠云端的公有数据无法训练出较好的联邦学习模型。而诸如手机终端的客户端具有大量图片,但这些图片是私有数据且没有标注标签。

在步骤s202中,利用公有数据及公有数据的标签,对本地存储的私有数据进行标注。

对联邦学习模型进行训练的数据源,来源于用户客户端本地存储的私有数据。这些私有数据在初始情况下没有标签,因此需要对本地存储的私有数据进行标注。例如,标注时,可以将私有数据按照公有数据的分类方式进行分类,得到类别m1~m100。具体的分类方法可以借助提取特征向量并计算向量距离等方式,在此不作展开描述。然后,寻找与各类公有数据相似的私有数据。例如在第m1类数据中,按照公有数据的标签对第m1类的私有数据进行标注。

在步骤s203中,利用注有标签的私有数据训练联邦学习模型,得到联邦学习模型的参数。

从具有大量私有数据的客户端的角度来看,可以利用用户的私有数据来提升客户端对用户行为习惯的预测、系统调度的优化等方面的体验。从具有少量公有数据的云端的角度来看,可以在保证用户隐私的前提下,使用用户的私有数据对联邦学习模型进行分布式训练,得到性能较好的联邦学习模型。此外,将注有标签的公有数据和注有标签的私有数据相结合,可以在保证用户隐私的情况下,可以为用户训练得到个性化的联邦学习模型,提升用户的个性化体验。

在步骤s204中,将参数上传至云端。

云端通过网络把联邦学习模型和注有标签的公有数据下发到客户端后,客户端可以结合聚类算法以及最近邻算法对私有数据进行标注,用于联邦学习模型的训练。然后,可以将训练得到的参数(即联邦学习模型的权重)上传到云端,对参数进行加权平均。为了进一步提升联邦学习模型的性能,可以不断重复该数据处理方法。多个客户端不断利用数据聚类和最邻近算法为私有数据标注标签,反复训练联邦学习模型并上传联邦学习模型的权重,以便云端对联邦学习模型的权重进行汇总处理,直到联邦学习模型收敛。图3示出了重复数据处理方法的流程示意图。

本实施例通过客户端对本地存储的私有数据进行自动标注,从而利用初始情况下未标注标签的私有数据来训练联邦学习模型。由于不需要用户参与人工标注,提高了标注私有数据的效率和客户端本地数据的利用率,因此提高了联邦学习模型的训练效率。同时,由于避免了用户进行恶意错误标注的情形,从而提高了标注训练数据的准确度,从而提高了联邦学习模型的分类性能和联邦学习框架的稳定性。

本实施例可以应用于终端网络规划、终端人工智能应用以及云端分布式训练模型领域,适用于云端数据有限而终端数据很多的情况。本领域技术人员应理解,本实施例不仅可以应用于云端与客户端之间的交互,也可以应用在云端的多个服务器之间的交互。

下面结合图4描述如何利用公有数据及公有数据的标签对本地存储的私有数据进行标注。

图4示出了对本地存储的私有数据进行标注的一些实施例的流程示意图。如图4所示,本实施例包括步骤s4021~步骤s4025。

在步骤s4021中,利用联邦学习模型的卷积层提取私有数据的特征向量。

联邦学习模型与传统的深度学习神经网络相似,包括用于提取特征向量的深度卷积层和用于分类的多层感知分类器。将私有数据输入联邦学习模型的卷积层进行处理,可以得到私有数据的多维特征向量。

在步骤s4022中,对私有数据的特征向量进行聚类,并根据聚类结果为私有数据标注伪标签。

对私有数据的特征向量进行聚类时,聚类的类别数量与公有数据的标签的类别数量相同。例如,公有数据的标签一共有100类,则可以利用k-means算法将私有数据的特征向量聚为100类,k值设置为100。若任意的第一私有数据的特征向量与任意的第二私有数据的特征向量属于相同的聚类类别,则为第一私有数据和第二私有数据标注相同的伪标签。若第一私有数据的特征向量与第二私有数据的特征向量属于不同的聚类类别,则为第一私有数据和第二私有数据标注不同的伪标签。

在步骤s4023中,利用注有伪标签的私有数据训练联邦学习模型,得到联邦学习模型的卷积层参数。

本领域技术人员应理解,通过步骤s4021~步骤s4023的循环迭代,可以获得对数据特征具有较好提取效果的卷积层。

在步骤s4024中,利用训练后的联邦学习模型重新提取私有数据的特征向量,并提取公有数据的特征向量。

在步骤s4025中,根据重新提取的私有数据的特征向量与公有数据的特征向量之间的距离,为私有数据标注标签。

为私有数据标注标签时可以采用最近邻算法,具体举例如下。

例如,首先确定与任意的第三私有数据的特征向量距离最近的一个公有数据的特征向量。然后,将一个公有数据的特征向量所对应公有数据的标签,作为第三私有数据的标签。再比如,首先确定与任意的第三私有数据的特征向量距离最近的多个公有数据的特征向量。然后,从多个公有数据的特征向量所对应公有数据的标签中,选择出现次数最多的标签作为第三私有数据的标签。

本实施例能够实现客户端对本地存储的私有数据进行自动标注,从而利用初始情况下未标注标签的私有数据来训练联邦学习模型,因此提高了用户数据的利用率,并降低了联邦学习模型被恶意攻击的潜在风险。本领域技术人员应理解,本实施可以应用在使用无标签数据训练神经网络模型的场景当中。

下面结合图5描述如何利用注有标签的私有数据训练联邦学习模型,得到联邦学习模型的参数。

图5示出了获取联邦学习模型的参数一些实施例的流程示意图。如图5所示,本实施例包括步骤s5031~步骤s5032。

在步骤s5031中,利用注有标签的私有数据训练联邦学习模型的分类器,得到联邦学习模型的分类器参数。

固定联邦学习模型的卷基层参数不变,利用标注后的私有数据对联邦学习模型的分类器进行迁移学习,可以得到分类效果更好的联邦学习模型的分类器参数。

在步骤s5032中,将卷积层参数和分类器参数作为联邦学习模型的参数。

在联邦学习模型的卷积层参数发生变化后,可以利用联邦学习模型的卷积层重新提取私有数据的特征向量,并重新标注标签。然后,利用重新标注的标签迭代训练联邦学习模型的分类器。经过多次迭代循环后,将最终得到的卷积层参数和分类器参数作为联邦学习模型的完整参数。通过循环迭代的方法得到的联邦学习模型的完整参数,能够使联邦学习模型具有较好的分类性能。

下面结合图6描述本公开客户端的一些实施例。

图6示出了本公开一些实施例的客户端的结构示意图。如图6所示,本实施例中的客户端包括:

数据下载模块602,被配置为从云端下载联邦学习模型和注有标签的公有数据;

数据标注模块604,被配置为利用公有数据及公有数据的标签,对本地存储的私有数据进行标注;

参数获取模块606,被配置为利用注有标签的私有数据训练联邦学习模型,得到联邦学习模型的参数;

数据上传模块608,被配置为将参数上传至云端。

本实施例通过客户端对本地存储的私有数据进行自动标注,从而利用初始情况下未标注标签的私有数据来训练联邦学习模型。由于不需要用户参与人工标注,提高了标注私有数据的效率和客户端本地数据的利用率,因此提高了联邦学习模型的训练效率。同时,由于避免了用户进行恶意错误标注的情形,从而提高了标注训练数据的准确度,从而提高了联邦学习模型的分类性能和联邦学习框架的稳定性。

本实施例可以应用于终端网络规划、终端人工智能应用以及云端分布式训练模型领域,适用于云端数据有限而终端数据很多的情况。本领域技术人员应理解,本实施例不仅可以应用于云端与客户端之间的交互,也可以应用在云端的多个服务器之间的交互。

在一些实施例中,数据标注模块604被配置为:利用联邦学习模型的卷积层提取私有数据的特征向量;对私有数据的特征向量进行聚类,并根据聚类结果为私有数据标注伪标签;利用注有伪标签的私有数据训练联邦学习模型,得到联邦学习模型的卷积层参数;利用训练后的联邦学习模型重新提取私有数据的特征向量,并提取公有数据的特征向量;根据重新提取的私有数据的特征向量与公有数据的特征向量之间的距离,为私有数据标注标签。

在一些实施例中,参数获取模块606被配置为:利用注有标签的私有数据训练联邦学习模型的分类器,得到联邦学习模型的分类器参数;将卷积层参数和分类器参数作为联邦学习模型的参数。

在一些实施例中,数据标注模块604被配置为:对私有数据的特征向量进行聚类时,聚类的类别数量与公有数据的标签的类别数量相同。

在一些实施例中,数据标注模块604被配置为:若任意的第一私有数据的特征向量与任意的第二私有数据的特征向量属于相同的聚类类别,则为第一私有数据和第二私有数据标注相同的伪标签;若第一私有数据的特征向量与第二私有数据的特征向量属于不同的聚类类别,则为第一私有数据和第二私有数据标注不同的伪标签。

在一些实施例中,数据标注模块604被配置为:确定与任意的第三私有数据的特征向量距离最近的一个公有数据的特征向量;将一个公有数据的特征向量所对应公有数据的标签,作为第三私有数据的标签;或者,确定与任意的第三私有数据的特征向量距离最近的多个公有数据的特征向量;从多个公有数据的特征向量所对应公有数据的标签中,选择出现次数最多的标签作为第三私有数据的标签。

上述实施例能够实现客户端对本地存储的私有数据进行自动标注,从而利用初始情况下未标注标签的私有数据来训练联邦学习模型,因此提高了用户数据的利用率,并降低了联邦学习模型被恶意攻击的潜在风险。本领域技术人员应理解,本实施可以应用在使用无标签数据训练神经网络模型的场景当中。

下面结合图7描述本公开数据处理装置的一些实施例。

图7示出了本公开一些实施例的数据处理装置的结构示意图。如图7所示,该实施例的数据处理装置70包括:存储器710以及耦接至该存储器710的处理器720,处理器720被配置为基于存储在存储器710中的指令,执行前述任意一些实施例中的数据处理方法。

其中,存储器710例如可以包括系统存储器、固定非易失性存储介质等。系统存储器例如存储有操作系统、应用程序、引导装载程序(bootloader)以及其他程序等。

数据处理装置70还可以包括输入输出接口730、网络接口740、存储接口750等。这些接口730、740、750以及存储器710和处理器720之间例如可以通过总线760连接。其中,输入输出接口730为显示器、鼠标、键盘、触摸屏等输入输出设备提供连接接口。网络接口740为各种联网设备提供连接接口。存储接口750为sd卡、u盘等外置存储设备提供连接接口。

本公开还包括一种计算机可读存储介质,其上存储有计算机指令,该指令被处理器执行时实现前述任意一些实施例中的数据处理方法。

本公开是参照根据本公开实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。

这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。

这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。

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

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1