CN111985649A - 基于联邦学习的数据处理方法和装置 - Google Patents

基于联邦学习的数据处理方法和装置 Download PDF

Info

Publication number
CN111985649A
CN111985649A CN202010571175.3A CN202010571175A CN111985649A CN 111985649 A CN111985649 A CN 111985649A CN 202010571175 A CN202010571175 A CN 202010571175A CN 111985649 A CN111985649 A CN 111985649A
Authority
CN
China
Prior art keywords
data
local
user equipment
user
local model
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
CN202010571175.3A
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.)
Huawei Technologies Co Ltd
Original Assignee
Huawei Technologies Co Ltd
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 Huawei Technologies Co Ltd filed Critical Huawei Technologies Co Ltd
Priority to CN202010571175.3A priority Critical patent/CN111985649A/zh
Publication of CN111985649A publication Critical patent/CN111985649A/zh
Pending legal-status Critical Current

Links

Images

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N20/00Machine learning
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/045Combinations of networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/08Learning methods
    • G06N3/084Backpropagation, e.g. using gradient descent

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Software Systems (AREA)
  • Computing Systems (AREA)
  • Artificial Intelligence (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Engineering & Computer Science (AREA)
  • Biomedical Technology (AREA)
  • Molecular Biology (AREA)
  • General Health & Medical Sciences (AREA)
  • Computational Linguistics (AREA)
  • Biophysics (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Health & Medical Sciences (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Medical Informatics (AREA)
  • Management, Administration, Business Operations System, And Electronic Commerce (AREA)

Abstract

本申请涉及人工智能领域,提供了一种基于联邦学习的数据处理方法和装置,该方法包括:获取第一用户设备的第一本地模型和来自于第二用户设备的第二本地模型和第二数据生成器;利用第二数据生成器生成第二虚拟数据;从第二虚拟数据中选取第二目标虚拟数据,第二目标虚拟数据用于更新第一本地模型。该方法利用数据生成器,在保证了数据隐私和安全的前提下实现了数据知识的交换,对于本地模型的结构没有要求,能够适用于更多的应用场景。

Description

基于联邦学习的数据处理方法和装置
技术领域
本申请涉及人工智能领域,并且更具体地,涉及一种基于联邦学习的数据处理方法和 装置。
背景技术
随着人工智能(artificial intelligence,AI)技术和互联网产业的发展,数据隐私和安全 越来越受到重视。联邦学习(federated learning)正是在满足数据隐私和安全的前提下, 进行数据使用和训练模型的方法。目前通常的联邦学习架构和方法需要假设所有的用户在 包含了不同数据的同时拥有相同的模型结构,并设置了一个中央服务器通过不断收集、整 合、分发这些模型,使参与学习的各个用户最终能够获得一个效果最好的联邦模型,我们 称这一类方法为参数服务器架构下的联邦学习方法。参数服务器架构能够较好地解决一部 分比较理想的联邦学习场景,同时由于用户和中央服务器间传输的是模型参数而非数据本 身,能够满足数据隐私要求。但是,参数服务器架构对于模型结构和数据都有很多的限制, 需要数据能够完全对齐、需要模型结构完全一致,使得能够应用的场景非常局限;而且即 使能够应用的时候,由于用户之间的模型参数差异和数据差异,导致需要很多次的训练才 能得到一个满足需求的联邦模型,这无疑带来大量的运算资源的消耗,且需要很长的训练 时间;同时由于每一轮次的训练过程都需要多次传输模型,因此该架构需要更多次数的数 据传输,这会带来很高的传输带宽成本。上述各种可能原因都会使得现有的联邦学习方法 的学习质量较低。
因此,如何提高联邦学习的质量是亟待解决的技术问题。
发明内容
本申请提供一种基于联邦学习的数据处理方法和装置,能够提高联邦学习的质量。
第一方面,提供一种基于联邦学习的数据处理方法,该方法包括:获取第一用户设备 的第一本地模型和来自于第二用户设备的第二本地模型和第二数据生成器;利用第二数据 生成器生成第二虚拟数据;从第二虚拟数据中选取第二目标虚拟数据,第二目标虚拟数据 用于更新第一本地模型。
在本申请技术方案中,针对用户设备之间的差异性所带来的联邦学习的困难,利用虚 拟数据作为传输载体,既保证了数据隐私和安全,又实现了数据知识的共享,利用虚拟数 据在本地模型上的表现来确定对于本地模型有效的虚拟数据,以及利用目标虚拟数据来更 新本地模型。该方法对于本地模型的结构不存在要求,而是通过选择出能够对本地模型有 效的虚拟数据,来实现数据知识的共享。本地模型没有结构和采用的建模方法的限制,所 以用户设备可以根据自身的需求和性能限制来训练得到本地模型,尤其对于性能较好的用 户设备不需要为了迁就性能较差的用户设备而使用低质量的模型,充分利用了资源和保证 了本地模型的高质量。此外,与传统的参数服务器架构相比,本申请实施例的方案能够有 效降低通信开销,无论是在用户设备侧更新模型,还是在云端设备侧更新模型,都能够有 效降低通信开销。在本申请实施例中,不需要频繁发送本地模型和/或数据生成器,所以 用户设备和云端设备之间的数据交互(或者可以理解为通信、数据传输)的次数明显减少, 从而有效地节省了通信开销。经实验测试表明,在其他条件一致的情况下,当每个模型被 更新相同轮次的时候,第一种实现方式的通信开销可以降低到参数服务器架构情况下的一 半以下,而第二种实现方式是用户设备广播本地模型和数据生成器,所以需要的通信开销 更低。
需要说明的是,在本申请实施例中,有两种实现方式,一种是用户设备和云端设备配 合实现,一种是只有用户设备的情况,二者的差异主要在于中途的数据交互,以及没有云 端设备的时候不需要评判每个用户设备的贡献度。当为第一种实现方式时,上述获取第一 用户设备的本地模型、第二设备的第二用户设备的第二本地模型,以及后续生成虚拟数据 等操作均由云端设备来执行;当为第二种实现方式时,上述各步骤由第一用户设备来执行。
以获取第一用户设备的第一本地模型为例,当为第一种实现方式时,相当于云端设备 利用通信模块等来接收到第一本地模型;当为第二种实现方式时,相当于第一用户设备利 用自身的模块来获取第一本地模型,例如可以从存储模块中读取,还可以利用第一本地数 据训练得到。
在第一方面中,主要针对第一种实现方式,从云端设备的角度来对本申请实施例的方 案进行介绍。
可选地,在利用第二目标虚拟数据更新第一本地模型时,可以将第二目标虚拟数据发 送给第一用户设备,以使得所述第一用户设备根据第二目标虚拟数据更新第一本地模型; 或者,可以利用第二目标虚拟数据更新第一本地模型,以及将更新后的第一本地模型发送 给第一用户设备。
需要说明的是,虚拟数据可以理解为人造数据或人工数据,虚拟数据能够保留有本地 数据的知识,但不能够从虚拟数据中反推出本地数据,或者可以理解为该虚拟数据能够替 代真实的本地数据进行模型训练,达到相同或相似的效果,但自身并不是真实的数据。
可选地,可以采用采用支持向量机、线性回归方法、决策树分类等各类传统机器学习 方法获得本地模型,也可以采用深度学习方法来获得本地模型,且不同本地设备之间采用 的方法可以相同也可以不同,在此不存在限定。
需要说明的是,用户设备可以利用自己的资源来训练获得本地模型和数据生成器,对 于模型的结构、数据是否能够对齐都不存在限制。也就是说,用户设备可以根据自身需求 和性能限制来选择建立本地模型的方法。
为了便于描述,在本申请实施例中,与第i用户设备相关的本地模型、数据生成器、本地数据、虚拟数据、目标虚拟数据等均用i编号,也就是说,分别称之为第i本地模型、 第i数据生成器、第i本地数据、第i目标虚拟数据等,例如与第一用户设备对应的为第 一本地模型、第一数据生成器、第一本地数据、第一虚拟数据、第一目标虚拟数据等。
需要说明的是,数据生成器所生成的虚拟数据(人造数据)能够替代真实数据参与训 练,且可以达到相同或相似的训练效果,但由于其不是真实的数据,所以即使获得了这些 虚拟数据也不能够反推出真实数据,这有效解决“数据孤岛”的问题,能够使得既不需要将 真实数据传输出去,又可以给其他用户或设备提供与真实数据效果相当的数据。可选地, 数据生成器可以通过输入正态分布的随机噪声的形式,产生满足用户本地数据分布情况的 人造数据。此外,数据生成器生成的数据还需要能够有效保护用户的个人隐私,即如果有 恶意攻击方获得了数据生成器,其虽然能够获得相应的人造数据,但无法根据人造数据反 推出任何用户的隐私信息。
可选地,可以采用生成式对抗网络、变分自动编码器或数据蒸馏等方法来获得数据生 成器。
可选地,在确定目标虚拟数据时,可以确定所有生成的虚拟数据中对某一用户设备的 本地模型(例如第一本地模型、第二本地模型)有效的虚拟数据,也可以是确定某一虚拟 数据分别对哪些本地模型有效。也就是说,目标虚拟数据是指对于本地模型的部分或全部 有效就可以,但具体对哪个本地模型有效可以考虑也可以不考虑。
可以理解为,目标虚拟数据是指可以用于训练或更新本地模型的虚拟数据,所谓有效 的虚拟数据可以理解为对于本地模型的训练或更新有正面的影响,例如可以是巩固已经学 习到的知识,也可以是提供新知识。
例如,可以从第二数据生成器生成的第二虚拟数据中确定出对部分或全部其他本地模 型(例如第一本地模型)有效的虚拟数据,作为第二目标虚拟数据。又例如,可以从第一 数据生成器生成的第一虚拟数据中确定出对部分或全部其他本地模型(例如第二本地模 型)有效的虚拟数据,作为第一目标虚拟数据。
可选地,可以将虚拟数据输入到所有的本地模型中,根据获得的结果判断是否有效。 为了便于描述,以第一数据生成器生成的第一虚拟数据为例进行介绍,第一虚拟数据所对 应第一本地模型、第一数据生成器和第一用户设备。
当将第一虚拟数据输入到第一本地模型的时候,可以获得一个结果,这个结果可以看 作是正确的结果,这是因为第一本地模型和第一数据生成器都是同一个用户设备利用相同 的数据获得的,而且第一数据生成器所能够生成的虚拟数据是能够代替真实的数据参与训 练的。所以可以将第一虚拟数据在输入到第一本地模型后获得的结果作为一个正确参照。
当将第一虚拟数据输入到其他本地模型中,也就是输入到除了第一本地模型之外的其 他本地模型(例如第二本地模型)之后,同样会获得一些结果,下面对可能的情况分别解 释。
情况一、假设获得的结果与第一本地模型所获得的结果一致,且置信度很高,相当于 用很高的置信度获得正确结果,这时候可以认为该其他本地模型已经学习到与第一用户设 备相同或相似的知识,或者可以理解为该其他本地模型不需要再学习第一用户设备的知 识,则此时可以认为该第一虚拟数据对该其他本地模型是无效的。但是应理解,在这种情 况下,即使利用第一虚拟数据更新该其他本地模型也不会为其带来负面影响,相当于巩固 了该其他本地模型的正确知识。
情况二、假设获得的结果与第一本地模型所获得的结果一致,但置信度较低,相当于 用较低的置信度获得了一个正确的结果,这时候可以认为第一虚拟数据对该其他本地模型 是有效的,可以理解为可以用于增强该其他本地模型对于正确结果的信心,或者可以理解 为该其他本地模型对于正确知识的巩固。
情况三、假设获得的结果与第一本地模型所获得的结果不同,但置信度较高,相当于 用较高的置信度获得了一个错误的结果,这时候可以认为第一虚拟数据对该其他本地模型 是有效的,可以理解为该其他本地模型学习到的知识比较少,缺乏第一用户设备的知识, 才会很高的信心得到了一个错误的结果,这时候该第一虚拟数据可以使得该其他模型学习 到第一虚拟数据的正确的知识。为了便于理解,用一个结合实际的例子来说明,假设第一 本地模型和第二本地模型都是用来分类动物的,但第二本地模型只能识别出猫,不能识别 出狗,因为缺少对于狗的知识。所以当第一虚拟数据是包括有狗的图像的特征数据(但应 理解第一虚拟数据不是真实的数据,而是与真实数据相当的虚拟数据)时,当将第一虚拟 数据输入到第二本地模型中,第二本地模型将狗认为成了猫。则利用第一虚拟数据对第二 本地模型记性更新就能够为第二本地模型建立新的分类面(即新的类别),以及提供该新 类别的正确知识,还能够为已有的猫的类别提供更多的参考知识。
情况四、假设获得的结果与第一本地模型所获得的结果不同,且置信度较低,相当于 用较低的置信度获得了一个错误的结果,这时候可以认为第一虚拟数据对该其他本地模型 是无效的,可以理解为,该其他本地模型可以很难从该第一虚拟数据学习到正确知识。
也就是说,上述过程相当于以第一虚拟数据为例,介绍了确定虚拟数据对于某个本地 模型是否有效的方法,例如,可以利用第一虚拟数据输入到第一本地模型中的处理结果和 第一虚拟数据输入到第二本地模型中的处理结果之间的一致性和置信度的差异来确定出 第一虚拟数据中对第二本地模型有效的虚拟数据(目标虚拟数据)。
又例如,可以利用第一本地模型、第二本地模型、第二虚拟数据来确定第二目标虚拟 数据,也就是说,从第二虚拟数据中确定出对第一本地模型有效的第二目标虚拟数据。
结合第一方面,在第一方面的某些实现方式中,在确定第二目标虚拟数据时,可以根 据第一处理结果和第二处理结果,从第二虚拟数据中确定出第二目标虚拟数据,第一处理 结果是将第二虚拟数据输入到第一本地模型得到处理结果,第二处理结果是将第二虚拟数 据输入到第二本地模型得到处理结果。
结合第一方面,在第一方面的某些实现方式中,可以采用上述确定第一虚拟数据中的 目标虚拟数据的方法,来确定第二目标虚拟数据,即可以根据上述第一处理结果和上述第 二处理结果的一致性和/或第一处理结果的置信度与第二处理结果的置信度之间的差值来 确定第二目标虚拟数据。
上面提供的是利用虚拟数据在单个模型上的表现来确定是否有效的例子,在这个例子 中,上述根据结果是否一致和/或置信度差值来综合判断是否有效的四种情况可以只考虑 其中一种或多种情况,也可以四种情况都考虑,不存在限定。
可选地,还可以根据其他方法来选取虚拟数据,以及推算虚拟数据对于其他本地模型 的有效性,例如可以根据虚拟数据的占比来确定选取概率,又例如根据多变多类边界判据 来确定有效性等。
结合第一方面,在第一方面的某些实现方式中,还可以加入加密、解密的过程,来保 证数据传输过程中的安全,例如第一本地模型、第二本地模型、第二数据生成器是加密过 的,则云端设备可以对接收到的上述第一本地模型、第二本地模型、第二数据生成器进行 解密。
可选地,为了提高用户参与学习的积极性,用户设备可以发起请求,自主请求想要加 入的联邦学习系统。而为了提高参与学习的用户设备的质量,还可以要求用户设备在请求 加入的时候上报自身的一些参数,从而判断是否同意该用户设备加入,也就是说,对希望 加入的用户设备进行一定的筛选。
可选地,用户设备可以向云端设备发送请求信息,请求加入联邦学习,该请求信息可 以包括请求加入的指示信息和本地数据的数据类型,该请求信息还可以包括以下至少一 种:本地数据的数据量、数据生成器采用的方法、数据生成器的结构、数据生成器的准确性、本地模型的准确性等。
本地数据的数据量是指用户设备本身能够获取的真实数据的量。可以理解为,当本地 真实数据越充足的时候,能够训练出的模型和/或数据生成器越准确。
数据类型如上文所述可以是指数据的类别形式,例如图像、语音等,不再重复介绍。 可以理解为,当联邦学习涉及的是对于某一种或多种数据类型的处理的时候,不需要收集 其他数据类型的数据,例如,当进行图像处理的时候,语音数据可能就不需要,又例如当 执行合成语音的联邦学习的时候,语音数据和文本数据可能需要,但图像数据可能就不需 要。
需要说明的是,在请求信息中加入数据生成器采用的方法、数据生成器的结构均是为 了使得不同用户设备之间能够共用数据,也就是说,参与学习的数据生成器所生成的虚拟 数据能够具有一定的结构一致性。
数据生成器的准确性的是指数据生成器所生成的虚拟数据的衡量,例如可以根据虚拟 数据对本地模型上的表现进行确定,相当于对于数据生成器能够生成的虚拟数据的质量的 评价。
本地模型的准确性是指本地模型在本地用户设备上使用时的表现,可以理解为,优先 选择质量较高的本地模型。如果本地模型在本地用户设备上都表现较差,例如分类错误率 高、置信度低等,那假设让其加入学习,很难带来正面的学习效果,反而可能降低联邦学 习的质量。
需要说明的是,对于获取其他用户知识(即从其他用户设备获取目标虚拟数据)的一 方(例如第一用户设备)来说,只需要提供本地模型即可,所以数据生成器采用的方法、数据生成器的结构都可以不提供,但对于为其他用户设备提供虚拟数据的一方(例如第二用户设备)来说,数据生成器采用的方法、数据生成器的结构都需要提供。
应理解,在本申请实施例中,本地模型的结构可以不一致,所以请求信息中也不需要 考虑本地模型的结构,当然,如果强行引入该参数信息也不会影响本申请实施例的技术效 果。
可选地,云端设备可以根据接收到的来自于用户设备的请求信息确定是否准许用户设 备加入。可选地,可以根据请求信息中的一种或多种参数来确定,例如可以设置某一项参 数的预设范围,当用户设备的该参数在预设范围内时允许加入,或者也可以设置成当用户 设备的该参数在预设范围内时不允许加入,还可以将上述预设范围替换为阈值,根据用户 设备的某个参数与该参数的阈值进行比较,从而确定允许加入或不允许加入,也就是说, 允许加入条件可以根据实际情况进行不同的设置,在此不再重复介绍。举例说明,可以设 置对于本地数据的数据量的阈值,当根据用户设备的请求信息确定该用户设备的本地数据 的数据量大于或等于该阈值时,允许该用户设备加入。
需要说明的是,上述是以根据单个参数的设置允许加入条件,也可以根据多个参数设 置允许加入条件。例如可以综合判断数据类型、本地数据的数据量、本地模型的准确性, 只有当数据类型符合、且数据数量足够、且本地模型的准确性好的时候才允许加入。
简而言之,可以在当请求信息满足预设条件的时候,允许发送请求信息的用户设备加 入。
可选地,云端设备可以在确定允许加入之后向用户设备发送允许加入的指示信息。
可选地云端设备在确定不允许加入之后,也可以通知用户设备。
结合第一方面在第一方面的某些实现方式中,为了提供参与学习的用户设备的质量, 还可以经过一定的筛选,例如,可以接收至少一个用户设备的请求信息,请求信息可以包 括请求加入的指示信息和以下参数信息:本地数据的数据类型、数据生成器采用的方法和 数据生成器的结构;根据该请求信息,从上述至少一个用户设备(即请求加入的用户设备) 中确定出允许加入的用户设备,允许加入的用户设备中可以包括上述第一用户设备和/或 上述第二用户设备。
也就是说,根据请求信息判断用户设备能不能够提供有用的数据,如果不能够提供则 不许需加入。该方法是对希望参与学习的所有用户设备的宏观筛选,但并不是立刻确定第 一用户设备和第二用户设备。从上面描述可以看出,第一用户设备是可以不共享自己的数 据生成器的。相当于在请求加入的时候只允许能够贡献数据的加入,但当加入之后,这些 参与学习的用户设备中在一段时间内可以只作为贡献知识的一方,例如只提供本地模型和 数据生成器但不更新自己模型,也可以只作为获得其他用户设备的知识的一方,例如只提 供本地模型和利用其他用户设备的虚拟数据来更新自己的本地模型。
可选地,该请求信息还可以包括以下至少一种参数信息:本地数据的数据量、数据生 成器的准确性、本地模型的准确性。
需要说明的是,上述过程中第一用户设备可以只提供第一本地模型,也可以提供第一 本地模型和第一数据生成器。
结合第一方面,在第一方面的某些实现方式中,将上述至少一个用户设备中参数信息 满足第一预设条件的用户设备确定为上述允许加入的用户设备。
可选地,第一预设条件可以是上述参数信息与第一目标参数信息一致,例如假设该联 邦学习涉及的是对图像的处理,则对于希望参与学习的用户能够提供的虚拟数据是能够适 用与该联邦学习的,可以设置一些目标参数信息,例如该例子中希望是图像数据,所以设 置目标参数类型为图像,那么对于不能提供图像的用户就可以不允许它加入,只允许能提 供图像的加入。而进一步还可以设置对于生成的虚拟数据的要求,由于虚拟数据取决于数 据生成器的方法和结构,所以可以通过设置数据生成器的方法和结构来使得参加学习的用 户设备所能提供的虚拟数据是可用的,例如目标参数信息可以设置几个允许的数据生成器 的方法和结构,那么对于数据生成器的方法和结果不再目标参数范围内的就可以不允许它 加入。
又例如,目标参数信息还可以是数据量阈值,只有本地数据的数据量足够的用户才允 许加入。又例如,目标参数信息还可以是本地模型的准确性,只有本地模型在自己设备上 表现良好的才允许加入,等等,在此不再一一列举。
结合第一方面,在第一方面的某些实现方式中,获取来自于第一用户设备的第一数据 生成器,第一数据生成器是利用第一本地数据训练得到的;利用第一数据生成器生成第一 虚拟数据;从第一虚拟数据中选取第一目标虚拟数据,第一目标虚拟数据用于更新第二本 地模型。
结合第一方面,在第一方面的某些实现方式中,还可以对用户设备的贡献度进行评价, 从而能够衡量不同用户设备对于联邦学习的贡献。
可选地,可以增加对于每个用户设备对整体学习训练过程的贡献的衡量,例如,可以 通过统计某个用户设备提供的目标虚拟数据的数量在所有目标虚拟数据的总量中的占比, 来衡量每个用户设备的贡献度,占比越高,贡献度越大。又例如,可以通过统计某个用户 设备提供的目标虚拟数据在所有该用户设备的所有虚拟数据中的占比来衡量该用户设备 的贡献度。又例如,可以综合考虑上述两种因素确定用户设备的贡献度。又例如,还可以通过对于用户设备提供的本地模型的质量的衡量和/或对于用户设备提供的数据生成器的质量的衡量来评价用户设备的贡献度。
例如,可以根据第一目标虚拟数据的数据量和第二目标虚拟数据的数据量来确定第一 用户设备的贡献度和/或确定第二用户设备的贡献度。
又例如,可以根据第一目标虚拟数据的数据量和第一虚拟数据的数据量来确定第一用 户设备的贡献度,可以根据第二目标虚拟数据的数据量和第二虚拟数据的数据量来确定第 二用户设备的贡献度,等等,在此不再一一列举。
可选地,可以根据第一目标虚拟数据的数据量和第一虚拟数据的数据量,确定第一用 户设备的贡献度。
可选地,可以根据第二目标虚拟数据的数据量和第二虚拟数据的数据量,确定第二用 户设备的贡献度。
可选地,可以根据第一目标虚拟数据的数据量和第二目标虚拟数据的数据量,确定第 一用户设备的贡献度和/或确定第二用户设备的贡献度。
结合第一方面,在第一方面的某些实现方式中,第二本地数据与第一本地数据的数据 类型一致。可选地,第一本地数据的数据类型包括以下至少一种:图像、图形、文字、语音、序列。例如第一本地数据为图像时,第二本地数据也为图像,第一本地数据为文字和 语音时,第二本地数据也为文字和语音。
结合第一方面,在第一方面的某些实现方式中,第一用户设备为第一基站,第二用户 设备为第二基站;第一本地数据为第一用户的真实用户数据,第一用户为第一基站提供服 务的用户;第二本地数据为第二用户的真实用户数据,第二用户为第二基站提供服务的用 户;第一本地模型用于预测第一用户即将访问的数据,以便于第一基站为第一用户预加载 或预存储第一用户即将访问的数据;第二本地模型用于预测第二用户即将访问的数据,以 便于第二基站为第二用户预加载或预存储第二用户即将访问的数据。
第二方面,提供一种基于联邦学习的数据处理方法,该方法包括:利用第一本地数据 训练获得第一本地模型,第一本地数据是第一用户设备获取的真实数据;向云端设备发送 第一本地模型;接收来自于云端设备的第二目标虚拟数据或更新后的第一本地模型,第二 目标虚拟数据是从第二虚拟数据中选取的用于第一本地模型的虚拟数据,第二虚拟数据是 利用第二用户设备的第二数据生成器生成的,更新后的第一本地模型则是指云端设备利用 目标虚拟数据对第一本地模型进行更新得到的。
在第二方面中,主要针对第一种实现方式(云端设备和用户设备配合),从用户设备 的角度来对本申请实施例的方案进行介绍。
结合第二方面,在第二方面的某些实现方式中,第二用户设备是根据第二请求信息确 定的,第二请求信息包括第二用户设备请求加入的指示信息、第二用户设备的第二本地数 据的数据类型、第二数据生成器采用的方法、第二数据生成器的结构。
结合第二方面,在第二方面的某些实现方式中,第二请求信息还包括以下至少一种参 数信息:第二本地数据的数据量、第二用户设备的第二本地模型的准确性。
结合第二方面,在第二方面的某些实现方式中,利用第一本地数据训练得到第一数据 生成器;向云端设备发送第一数据生成器。
结合第二方面,在第二方面的某些实现方式中,在向云端设备发送第一数据生成器之 前,对第一数据生成器进行加密。
结合第二方面,在第二方面的某些实现方式中,向云端设备发送第一请求信息,第一 请求信息包括第一用户设备请求加入的指示信息、第一本地数据的数据类型、第一用户设 备的第一数据生成器采用的方法、第一数据生成器的结构;接收来自于云端设备的允许加 入的指示信息,允许加入的指示信息是云端设备根据第一请求信息确定的,第一请求信息 包括第一用户设备请求加入的指示信息、第一本地数据的数据类型;根据允许加入的指示 信息,向云端设备发送第一本地模型和/或第一数据生成器。在该方法中,相当于只有云端设备允许第一用户设备加入了,才发送第一本地模型和/或第一数据生成器。
可选地,第一请求信息还可以包括以下至少一种参数信息:第一本地数据的数据量、 第一本地模型的准确性。
结合第二方面,在第二方面的某些实现方式中,在向云端设备发送第一本地模型之前, 对第一本地模型进行加密。
结合第二方面,在第二方面的某些实现方式中,第二虚拟数据与第一本地数据的数据 类型一致。
可选地,第一本地数据的数据类型可以包括以下至少一种:图像、图形、文字、语音、 序列。
结合第二方面,在第二方面的某些实现方式中,第一用户设备为第一基站,第二用户 设备为第二基站;第一本地数据为第一用户的真实用户数据,第一用户为第一基站提供服 务的用户;第二虚拟数据为第二用户的虚拟用户数据,第二用户为第二基站提供服务的用 户;第一本地模型用于预测第一用户即将访问的数据,以便于第一基站为第一用户预加载 或预存储第一用户即将访问的数据。
第三方面,提供一种基于联邦学习的数据处理方法,该方法包括:获得第一本地模型, 第一本地模型是利用第一本地数据训练获得的,第一本地数据是第一用户设备获取的真实 数据;接收来自于第二用户设备的第二本地模型和第二数据生成器,第二本地模型和第二 数据生成器是利用第二本地数据训练得到的,第二本地数据是指第二用户设备获取的真实 数据;利用第二数据生成器生成第二虚拟数据;从第二虚拟数据中选取第二目标虚拟数据, 第二目标虚拟数据用于更新第一本地模型。
需要说明的是,在第三方面中,主要针对第二种实现方式(没有云端设备的情况)对 本申请实施例的方案进行介绍。所以可以看出,上述方法的描述与第一方面的描述几乎一 致,在这种情况下,同样是获取第一本地模型,第一方面的云端设备是利用通信模块等接 收来自于第一用户设备的第一本地模型,而在第三方面则可以是第一用户设备从存储装置 中读取第一本地模型,或者利用获取的第一本地数据在第一用户设备中训练得到第一本地 模型。
在第一方面、第二方面的任意实现方式中,均为用户设备和云端设备配合实现本申请 实施例所提供的联邦学习的方法,但应理解,也可以不存在云端设备,也就是说可以理解 为不存在一个所有用户都信任的云端设备,或者云端设备的运算能力有限等,联邦学习由 用户设备之间来实现,第三方面所提供的方法即为不需要云端设备的方案。
在这种情况下,可以把每个用户设备都当作是云端设备,因此,上文中用户设备到云 端设备的数据传输(上传本地模型和数据生成器)就可以替换为向其他所有用户设备广播 数据。以及在用户设备上执行生成虚拟数据、确定目标虚拟数据、更新模型等操作。
在本申请技术方案中,能够通过接受来自于其他用户设备的数据生成器生成虚拟数 据,以扩充第一用户设备的训练数据,相当于从其他用户设备(例如杉树第二用户设备)中获取数据知识。与第一方面、第二方面所述的方法不同的是,虽然都能够实现在保证隐私和安全的情况下的数据知识的交换,但上文所述实施例处理能力取决于用户设备和云端设备的综合,而第三方面所述的方法的处理能力取决于用户设备本身的配置和性能。
需要说明的是,在第三方面中,第一用户设备可以理解为作为云端服务器功能的设备, 也可以理解为获取其他用户设备的虚拟数据的设备。第一用户设备只需要生成本地模型即 可,而数据生成器可以不生成。还应理解,第一用户设备可以只接收其他用户设备的本地 模型和/或数据生成器,但不发送自己的。第二用户设备可以理解为作为提供虚拟数据的 设备,也就是说为第一用户设备和/或其他用户设备提供虚拟数据的设备,所以第二用户 设备需要提供第二数据生成器用于生成第二虚拟数据,还需要提供第二本地模型,用于验 证第二虚拟数据的有效性。
还需要说明的是,由于在本实施例中不需要有中心(云端设备)来集中生成虚拟数据 等操作,所以只需要利用接收到的数据生成器(例如第二数据生成器)生成虚拟数据,以及验证虚拟数据(例如第二虚拟数据)是否有效即可。
可选地,可以利用上文所提供的方法,从所生成的虚拟数据中选取目标虚拟数据。例 如,可以从第二虚拟数据中确定出对第一本地模型有效的虚拟数据。
需要说明的是,在第三方面的方法中,只需要验证虚拟数据是否对当前的用户设备有 效,而不需要确定是否对所有用户设备有效。当采用多方多类边界判据的时候,即相当于 用户设备的编号i有两个取值。而当采用逐条验证的方式的时候,即相当于选取单条虚拟 数据输入到当前的本地模型(例如第一本地模型)和虚拟数据自身的本地模型(例如第二 本地模型),根据得到的结果推断是否有效。举例说明,假设当前的本地模型对应的用户 设备为第一用户设备,第一用户设备包括第一本地模型,待验证的某条虚拟数据是来自于 第二用户设备的数据生成器的虚拟数据,第二用户设备包括第二本地模型和第二数据生成 器,也就是说,该条虚拟数据是第二数据生成器生成的,将该条虚拟数据分别输入到第一 本地模型和第二本地模型,根据得到结果的差异性来确定该条虚拟数据对第一本地模型是 否有效,当认定为有效时,将该条虚拟数据归为目标虚拟数据。
可选地,可以利用上文所述方法,利用部分或全部的目标虚拟数据进行本地模型更新, 还可以利用部分或全部的目标虚拟数据以及部分或全部本地数据(真实数据)进行本地模 型的更新,过程可参考上文描述。例如可以利用第二用户设备所对应的目标虚拟数据来更 新第一本地模型。
需要说明的是,在第三方面所述方法中,生成第二虚拟数据、更新第一本地模型都是 在第一用户设备上完成的。
可选地,可以向参与学习的所有用户设备广播更新后的本地模型。
在第三方面的方法中,难以保证训练过程中每个用户设备对于训练的贡献的真实度, 所以不需要对贡献度进行量化,也不需要进行排名等操作。
需要说明的是,在第三方面的方法中,相当于能够在保证隐私的情况下,更好地实现 数据知识的共享。假设当前用户设备为第一用户设备,则对于第一用户设备来说,只需要 有本地模型即可,这样就已经能够利用本地模型来验证来自于其他用户设备的虚拟数据的 有效性,也就是说,第一用户设备可以只接收其他用户设备广播的本地模型和数据生成器 而自己不广播自己的本地模型和数据生成器,也不需要训练数据生成器。但是,对于联邦 学习来说,这明显会降低用户加入到联邦学习的积极性,相当于存在一些用户只从参加联 邦学习的其他设备索取新的知识,却不贡献自己的数据知识,如果大量存在这样的只获取 他人知识却不贡献自己知识的用户设备,会导致没有用户设备再愿意加入到学习中,所以 通常情况下,还是希望所有用户设备能够公平地参与到联邦学习中,贡献自己的知识的同 时从其他参与者处获得额外的知识。
结合第三方面,在第三方面的某些实现方式中,利用第一本地数据训练得到第一数据 生成器,并向参加学习的所有用户设备广播第一数据生成器和第一本地模型。
结合第三方面,在第三方面的某些实现方式中,在广播第一数据生成器和第一本地模 型之前,对第一数据生成器进行加密。
结合第三方面,在第三方面的某些实现方式中,同样增加对于用户设备的筛选,也就 是说,通过由其他用户设备广播出参数信息,第一用户设备根据参数信息来选择合适的第 二用户设备。
可选地,可以接收来自于第二用户设备的参数信息,参数信息包括:第二本地数据的 数据类型、第二数据生成器采用的方法和第二数据生成器的结构;当参数信息满足预设条 件时,才利用第二数据生成器生成第二虚拟数据。
可选地,参数信息还可以包括以下至少一种:第二本地数据的数据量、第二数据生成 器的准确性、第二本地模型的准确性。
可选地,第一本地数据的数据类型可以包括以下至少一种:图像、图形、文字、语音、 序列;而第二虚拟数据与第一本地数据的数据类型一致。
结合第三方面,在第三方面的某些实现方式中,第一用户设备为第一基站,第二用户 设备为第二基站;第一本地数据为第一用户的真实用户数据,第一用户为第一基站提供服 务的用户;第二虚拟数据为第二用户的虚拟用户数据,第二用户为第二基站提供服务的用 户;第一本地模型用于预测第一用户即将访问的数据,以便于第一基站为第一用户预加载 或预存储第一用户即将访问的数据。
第四方面,提供一种基于联邦学习的数据处理装置,该装置包括用于执行上述第一方 面或第二方面的任意一种实现方式的方法的单元。该装置包括收发单元和处理单元。
第五方面,提供一种基于联邦学习的数据处理装置,该装置包括用于执行上述第三方 面的任意一种实现方式的方法的单元。该装置包括收发单元和处理单元。
第六方面,提供一种基于联邦学习的数据处理装置,该装置包括:存储器,用于存储 程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第一方面或第二方面的任意一种实现方式中的方法。
第七方面,提供一种基于联邦学习的数据处理装置,该装置包括:存储器,用于存储 程序;处理器,用于执行所述存储器存储的程序,当所述存储器存储的程序被执行时,所述处理器用于执行第三方面的任意一种实现方式中的方法。
第八方面,提供一种计算机可读介质,该计算机可读介质存储用于设备执行的程序代 码,该程序代码包括用于执行第一方面、第二方面或第三方面中的任意一种实现方式中的 方法。
第九方面,提供一种包含指令的计算机程序产品,当该计算机程序产品在计算机上运 行时,使得计算机执行上述第一方面、第二方面或第三方面中的任意一种实现方式中的方 法。
第十方面,提供一种芯片,所述芯片包括处理器与数据接口,所述处理器通过所述数 据接口读取存储器上存储的指令,执行上述第一方面、第二方面或第三方面中的任意一种 实现方式中的方法。
可选地,作为一种实现方式,所述芯片还可以包括存储器,所述存储器中存储有指令, 所述处理器用于执行所述存储器上存储的指令,当所述指令被执行时,所述处理器用于执 行第一方面、第二方面或第三方面中的任意一种实现方式中的方法。
附图说明
图1是一种人工智能主体框架示意图。
图2是现有技术中常见的联邦学习的系统架构的示意图。
图3是本申请实施例的联邦学习的系统架构示意图。
图4本申请实施例的一种训练模型的系统架构的示意图。
图5是本申请实施例的一种芯片的硬件结构的示意图。
图6是本申请实施例的联邦学习的系统架构的示意图。
图7是本申请实施例的基于联邦学习的数据处理方法的示意性流程图。
图8是本申请实施例的基于联邦学习的数据处理方法的示意性流程图。
图9是本申请实施例的数据传输的示意性框图。
图10是本申请实施例的基于联邦学习的数据处理方法的示意性流程图。
图11是本申请实施例的基于联邦学习的数据处理装置的示意性框图。
图12是本申请实施例的基于联邦学习的数据处理装置的硬件结构示意图。
图13是本申请实施例的基于联邦学习的数据处理装置的示意性框图。
图14是本申请实施例的基于联邦学习的数据处理装置的硬件结构示意图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行描述,显然, 所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施 例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于 本申请保护的范围。
图1是一种人工智能主体框架示意图,该主体框架描述了人工智能系统总体工作流 程,适用于通用的人工智能领域需求。
下面从“智能信息链”(水平轴)和“信息技术(information technology,IT)价值链” (垂直轴)两个维度对上述人工智能主题框架进行详细的阐述。
“智能信息链”反映从数据的获取到处理的一列过程。举例来说,可以是智能信息感知、 智能信息表示与形成、智能推理、智能决策、智能执行与输出的一般过程。在这个过程中, 数据经历了“数据—信息—知识—智慧”的凝练过程。
“IT价值链”从人智能的底层基础设施、信息(提供和处理技术实现)到系统的产业生态过程,反映人工智能为信息技术产业带来的价值。
(1)基础设施:
基础设施为人工智能系统提供计算能力支持,实现与外部世界的沟通,并通过基础平 台实现支撑。
基础设施可以通过传感器与外部沟通,基础设施的计算能力可以由智能芯片提供。
这里的智能芯片可以是中央处理器(central processing unit,CPU)、神经网络处理器 (neural-network processing unit,NPU)、图形处理器(graphics processingunit,GPU)、 专门应用的集成电路(application specific integrated circuit,ASIC)以及现场可编程门阵列 (field programmable gate array,FPGA)等硬件加速芯片。
基础设施的基础平台可以包括分布式计算框架及网络等相关的平台保障和支持,可以 包括云存储和计算、互联互通网络等。
例如,对于基础设施来说,可以通过传感器和外部沟通获取数据,然后将这些数据提 供给基础平台提供的分布式计算系统中的智能芯片进行计算。
(2)数据:
基础设施的上一层的数据用于表示人工智能领域的数据来源。该数据涉及到图形、图 像、语音、文本、序列,还涉及到传统设备的物联网数据,包括已有系统的业务数据以及 力、位移、液位、温度、湿度等感知数据。
应理解,序列可以理解为数据序列,最常见的有时序序列数据,即时序数据,例如一 段时间内的天气预报数据(温度、风向等),又例如股市数据、人体血糖变化数据等生理数据的序列等等。
(3)数据处理:
上述数据处理通常包括数据训练,机器学习,深度学习,搜索,推理,决策等处理方式。
其中,机器学习和深度学习可以对数据进行符号化和形式化的智能信息建模、抽取、 预处理、训练等。
推理是指在计算机或智能系统中,模拟人类的智能推理方式,依据推理控制策略,利 用形式化的信息进行机器思维和求解问题的过程,典型的功能是搜索与匹配。
决策是指智能信息经过推理后进行决策的过程,通常提供分类、排序、预测等功能。
(4)通用能力:
对数据经过上面提到的数据处理后,进一步基于数据处理的结果可以形成一些通用 的能力,比如可以是算法或者一个通用系统,例如,翻译,文本的分析,计算机视觉的处理,语音识别,图像的识别等等。
(5)智能产品及行业应用:
智能产品及行业应用指人工智能系统在各领域的产品和应用,是对人工智能整体解决 方案的封装,将智能信息决策产品化、实现落地应用,其应用领域主要包括:智能制造、 智能交通、智能家居、智能医疗、智能安防、自动驾驶,平安城市,智能终端等。
本申请实施例可以应用在人工智能中的很多领域,例如,智能制造、智能交通、智能 家居、智能医疗、智能安防、自动驾驶,平安城市等领域。
具体地,本申请实施例可以具体应用在各类数据处理的领域,例如图像分类、图像检 索、图像语义分割、图像超分辨率等图像类数据相关的处理任务,又例如语音合成、语音识别、语音搜索等语音类数据相关的处理任务,又例如智能翻译、语义提取等文字类数据相关的处理任务,又例如草图绘制、手势控制等涉及图形数据的相关处理任务。图像类数据相关的处理任务还可以是视频类图像数据,例如可以应用于视频搜索、视频分类、关键人物追踪等任务。此外,本申请实施例还可以应用于数据序列的处理任务,例如时序数据。还应理解上述各任务只是按照涉及的处理数据的数据类型来举例说明,但有些任务可以涉及多种数据类型,例如可以是利用语音搜索图像的任务,也就是说,输入一段语音,根据 这段语音从图像库中找到相应的图像,该任务就是既涉及图像数据有又涉及语音数据。。
为了便于理解,下面先对本申请实施例可能涉及的人工智能的相关术语和概念进行介 绍。
(1)神经网络
神经网络可以是由神经单元组成的,神经单元可以是指以xs和截距1为输入的运算单 元,该运算单元的输出可以为:
Figure BDA0002549631890000131
其中,s=1、2、……n,n为大于1的自然数,Ws为xs的权重,b为神经单元的偏置。 f为神经单元的激活函数(activation functions),用于将非线性特性引入神经网络中,来 将神经单元中的输入信号转换为输出信号。该激活函数的输出信号可以作为下一层卷积层的输入,激活函数可以是sigmoid函数。神经网络是将多个上述单一的神经单元联结在一起形成的网络,即一个神经单元的输出可以是另一个神经单元的输入。每个神经单元的输入可以与前一层的局部接受域相连,来提取局部接受域的特征,局部接受域可以是由若干个神经单元组成的区域。
(2)深度神经网络
深度神经网络(deep neural network,DNN),也称多层神经网络,可以理解为具有多层隐含层的神经网络。按照不同层的位置对DNN进行划分,DNN内部的神经网络可以 分为三类:输入层,隐含层,输出层。一般来说第一层是输入层,最后一层是输出层,中 间的层数都是隐含层。层与层之间是全连接的,也就是说,第i层的任意一个神经元一定 与第i+1层的任意一个神经元相连。
虽然DNN看起来很复杂,但是就每一层的工作来说,其实并不复杂,简单来说就是如下线性关系表达式:
Figure BDA0002549631890000132
其中,
Figure BDA0002549631890000133
是输入向量,
Figure BDA0002549631890000134
是输出向量,
Figure BDA0002549631890000135
是偏移 向量,W是权重矩阵(也称系数),α()是激活函数。每一层仅仅是对输入向量
Figure BDA0002549631890000136
经过如 此简单的操作得到输出向量
Figure BDA0002549631890000137
由于DNN层数多,系数W和偏移向量
Figure BDA0002549631890000138
的数量也比较多。 这些参数在DNN中的定义如下所述:以系数W为例:假设在一个三层的DNN中,第二 层的第4个神经元到第三层的第2个神经元的线性系数定义为
Figure BDA0002549631890000139
上标3代表系数W所 在的层数,而下标对应的是输出的第三层索引2和输入的第二层索引4。
综上,第L-1层的第k个神经元到第L层的第j个神经元的系数定义为
Figure BDA00025496318900001310
需要注意的是,输入层是没有W参数的。在深度神经网络中,更多的隐含层让网络更 能够刻画现实世界中的复杂情形。理论上而言,参数越多的模型复杂度越高,“容量”也就 越大,也就意味着它能完成更复杂的学习任务。训练深度神经网络的也就是学习权重矩阵 的过程,其最终目的是得到训练好的深度神经网络的所有层的权重矩阵(由很多层的向量 W形成的权重矩阵)。
(3)卷积神经网络
卷积神经网络(convolutional neuron network,CNN)是一种带有卷积结构的深度神经 网络。卷积神经网络包含了一个由卷积层和子采样层构成的特征抽取器,该特征抽取器可 以看作是滤波器。卷积层是指卷积神经网络中对输入信号进行卷积处理的神经元层。在卷 积神经网络的卷积层中,一个神经元可以只与部分邻层神经元连接。一个卷积层中,通常 包含若干个特征平面,每个特征平面可以由一些矩形排列的神经单元组成。同一特征平面 的神经单元共享权重,这里共享的权重就是卷积核。共享权重可以理解为提取图像信息的 方式与位置无关。卷积核可以以随机大小的矩阵的形式初始化,在卷积神经网络的训练过 程中卷积核可以通过学习得到合理的权重。另外,共享权重带来的直接好处是减少卷积神 经网络各层之间的连接,同时又降低了过拟合的风险。
(4)循环神经网络
循环神经网络(recurrent neural networks,RNN)是用来处理序列数据的。在传统的 神经网络模型中,是从输入层到隐含层再到输出层,层与层之间是全连接的,而对于每一 层层内之间的各个节点是无连接的。这种普通的神经网络虽然解决了很多难题,但是却仍 然对很多问题无能无力。例如,你要预测句子的下一个单词是什么,一般需要用到前面的 单词,因为一个句子中前后单词并不是独立的。RNN之所以称为循环神经网路,即一个序 列当前的输出与前面的输出也有关。具体的表现形式为网络会对前面的信息进行记忆并应 用于当前输出的计算中,即隐含层本层之间的节点不再无连接而是有连接的,并且隐含层 的输入不仅包括输入层的输出还包括上一时刻隐含层的输出。理论上,RNN能够对任何长 度的序列数据进行处理。对于RNN的训练和对传统的CNN或DNN的训练一样。
既然已经有了卷积神经网络,为什么还要循环神经网络?原因很简单,在卷积神经网 络中,有一个前提假设是:元素之间是相互独立的,输入与输出也是独立的,比如猫和狗。 但现实世界中,很多元素都是相互连接的,比如股票随时间的变化,再比如一个人说了: 我喜欢旅游,其中最喜欢的地方是云南,以后有机会一定要去。这里填空,人类应该都知 道是填“云南”。因为人类会根据上下文的内容进行推断,但如何让机器做到这一步?RNN就应运而生了。RNN旨在让机器像人一样拥有记忆的能力。因此,RNN的输出就需要依赖 当前的输入信息和历史的记忆信息。
(5)损失函数
在训练深度神经网络的过程中,因为希望深度神经网络的输出尽可能的接近真正想要 预测的值,所以可以通过比较当前网络的预测值和真正想要的目标值,再根据两者之间的 差异情况来更新每一层神经网络的权重向量(当然,在第一次更新之前通常会有初始化的 过程,即为深度神经网络中的各层预先配置参数),比如,如果网络的预测值高了,就调 整权重向量让它预测低一些,不断地调整,直到深度神经网络能够预测出真正想要的目标 值或与真正想要的目标值非常接近的值。因此,就需要预先定义“如何比较预测值和目标 值之间的差异”,这便是损失函数(loss function)或目标函数(objective function),它们 是用于衡量预测值和目标值的差异的重要方程。其中,以损失函数举例,损失函数的输出 值(loss)越高表示差异越大,那么深度神经网络的训练就变成了尽可能缩小这个loss的 过程。
(6)反向传播算法
神经网络可以采用误差反向传播(back propagation,BP)算法在训练过程中修正初始 的神经网络模型中参数的大小,使得神经网络模型的重建误差损失越来越小。具体地,前 向传递输入信号直至输出会产生误差损失,通过反向传播误差损失信息来更新初始的神经 网络模型中参数,从而使误差损失收敛。反向传播算法是以误差损失为主导的反向传播运 动,旨在得到最优的神经网络模型的参数,例如权重矩阵。
(7)联邦学习
联邦学习(federated learning)又可以称之为联合学习或联盟学习。联邦学习能有效 帮助多个机构在满足用户隐私保护、数据安全和政府法规的要求下,进行数据使用和学习 建模。联邦学习包括横向联邦学习(horizontal federated learning)、纵向联邦学习(vertical federated learning)。可以说,联邦学习就是为了能够使得既能够共享知识和参数,又不 需要交换任何自身数据。
数据矩阵的横向的一行表示一条训练样本,纵向的一列表示一个数据特征。横向联邦 学习是联合多个参与者的具有相同特征的多行样本进行联邦学习,即各个参与者的训练数 据是横向划分的。横向联邦学习也称为特征对齐的联邦学习(feature-alignedfederated learning),即参与者的数据特征是对齐的,横向联邦学习可以增加训练样本总量。纵向 联邦学习是联合多个参与者的共同样本的不同数据特征进行联邦学习,即各个参与者的训 练数据是纵向划分的。纵向联邦学习也称为样本对齐的联邦学习(sample-aligned federated learning),即参与者的训练样本是对齐的,纵向联邦学习可以增加训练数据特征维度。
联邦学习在工业界已经得到应用,例如谷歌将其应用于自身的GBoard项目,又例如 微众银行提出的FATE联邦学习框架等等,均是上述参数服务器架构的联邦学习方法的实 际应用的典型例子,它们都需要参与学习的不同设备之间具有非常高的一致性,模型结构 一致,数据能够对齐。这就使得,对于一些不满足上述一致性要求的场景,现有的联邦学习方法并不适用。
图2是现有技术中常见的联邦学习的系统架构的示意图,也就是说基于参数服务器架 构的联邦学习的示意图。
如图2所示,在该场景中包括用户设备#1和用户设备#2以及云端设备#1,为了确保用户数据隐私和安全,用户设备之间不能进行数据交互。需要说明的是,图2中也可能存 在3个或3个以上的用户设备,原理是相同的,对此进行了省略。
本地数据#1和本地数据#2分别表示用户设备#1和用户设备#2所能提供的数据,或者 可以理解为本地数据#1和本地数据#2分别是是用户设备#1和用户设备#2各自的本地真实 数据,在联邦学习中,这些数据不希望被其他用户设备获取。这些数据例如可以是图像数 据、语音数据、文本数据、序列数据等等。用户设备#1利用本地数据#1进行模型训练, 得到本地模型#1;用户设备#2利用本地数据#2进行模型训练得到本地模型#2。之后,用 户设备#1将本地模型#1或本地模型#1的参数发送给云端设备#1,用户设备#2将本地模型 #2或本地模型#2的参数发送给云端设备#1。
云端设备#1在获得所有本地模型(包括本地模型#1和本地模型#2)后,将所有获得的本地模型汇聚成一个联邦模型,联邦模型也可以理解为统一模型,也就是说所有用户设备能够通用的模型。
之后云端设备#1将得到的联邦模型发送给所有用户设备,用户设备在接收到联邦模 型后,将本地模型替换成联邦模型,再重复下一轮的训练:在联邦学习模型的基础上训练 得到新的本地模型、上传新的本地模型、模型汇聚出新的联邦模型,如此循环,直到达到一定的预设要求。在图2所示场景中,整个的训练过程可以看作是对联邦模型的模型参数的不断调整,使得联邦模型的参数能够同时适用于所有用户设备,想要获得满足需求的参数,就需要很多次的训练,也就是说,需要循环执行上述过程:训练得到本地模型、上传 本地模型、模型汇聚、下发联邦模型、更新本地模型,直到达到能够适用于所有用户设备 的要求,从图2中可以看出,需要用户设备与云端设备之间分别多次的数据交互,即多次 本地模型和联邦模型的传输。
应注意,由于云端设备#1需要将所有的本地模型进行模型汇聚,所以所有本地模型 的结构必须是完全一致的,不然无法进行模型汇聚,在图2中为了便于理解,将本地模型#1和本地模型#2的结构都用了三角形进行表示,相当于表示两个本地模型的结构完全一致。如果还存在更多的用户设备,则所有参与学习的用户设备所产生的本地模型也必须结构完全一致,即也必须用完全相同的三角形表示。
下面以图像分类任务为例进行介绍。假设该联邦学习系统是用于图像分类的,具体而 言可以假设用于识别动物,也就是说能够区分不同的动物类别,用户设备#1和用户设备 #2均能够提供包括有动物的图像。本地数据#1为用户设备#1的图像样本数据(带有动物类别的标签的图像),本地数据#2为用户设备#2的图像样本数据(带有动物类别的标签 的图像),也就是说,本地数据#1和本地数据#2的样本维度是可以对齐的,但本地数据 #1和本地数据#2的特征维度是不同的。则在训练过程中,用户设备#1利用本地数据#1训 练获得本地模型#1,用户设备#2利用本地数据#2训练获得本地模型#2。之后用户设备#1 将本地模型#1的模型参数上传到云端设备#1,用户设备#2将本地模型#2的模型参数上传 到云端设备#1,云端设备#1将本地模型#1和本地模型#2汇聚成了一个联邦模型,云端设 备将该联邦模型分发给用户设备#1和用户设备#2,用户设备#1和用户设备#2在联邦模型 的基础上利用本地数据继续训练得到本地模型,重复上述过程直到联邦模型的参数既能够 适用于用户设备#1,又能够适用于用户设备#2,云端设备#1将该联邦模型分发给用户设 备#1和用户设备#2,用户设备#1和用户设备#2接收该联邦模型以及将其取代原本的本地 模型。
在图2所示的系统中,主要存在以下问题。
首先,所有用户设备的本地模型必须拥有完全一致的结构,否则上传的模型参数无法 匹配,也就不能汇聚得到一个通用的联邦模型,这就使得用户设备只能采用相同的模型结 构和能够对齐的训练数据来训练模型,这会使得训练得到的模型在本地数据的表现上不是 非常好。可以理解为,假设在计算能力足够的情况下,用户设备利用本地数据进行训练获 得的本地模型的准确性非常高,而在进行汇聚时,为了使得联邦模型能适用于所有用户设 备,调整后的参数可能会使得该本地模型和的准确性反而降低了。
其次,如果希望得到一个准确性相对较高的联邦模型,通常需要多次训练,也就是说, 需要多次重复上述过程:用户设备在初始模型或接收到的联邦模型的基础上训练得到本地 模型,用户设备将本地模型的参数上传,云端设备汇聚出联邦模型,云端设备将联邦模型 下发给各用户设备。这就使得总的通信开销非常大,且随着训练轮次的增加,联邦模型传 输所需要占用的资源也会增多,同时也容易出现因为通信不畅而导致训练效果下降或者训 练周期过长的情况。
针对上述现有的联邦学习方法所存在的问题,本申请实施例提供一种能够有效提高联 邦学习的质量的方法,整个过程不需要得到一个联邦模型(即不需要进行模型汇聚),所 以对于数据和/或模型之间的一致性的要求降低,使得该方法能够适用的应用场景更为广 泛,且由于省去了模型汇聚得到联邦模型的过程,因此需要的数据交互和训练轮次降低, 能够降低通信开销。
简而言之,本申请实施例所提供的联邦学习方法可以应用于各个领域,例如工业生产、 化工、商业运营等,而且由于本申请实施例对于参与联邦学习的设备之间的一致性要求不 高,所以具有更为广泛的应用场景。下面以应用于无线通信和网络安全为例进行介绍。
在无线通信领域,会拥有很多的基站,为了提高基站在某些业务上的性能,可以利用 这些基站来收集一些信息进行联邦学习,但由于这些基站往往来源于不同的厂商、属于不 同批次的产品,因此收集的信息可能存在很多差异,而且这些基站自身的配置和性能也存 在较大的差异,此外由于对于用户隐私的保护要求或者厂商要求的限制,收集到的信息不 能离开基站。如果依然希望采用图2所示的联邦学习架构,就得要求基站之间能够产生结 构完全一致的任务模型,对于不同基站所获取的数据之间也存在一致性的要求,而事实上 这些要求很难全部满足。很可能需要所有的基站都出自同一家厂商的同一批次产品,或者 这些基站结构和性能非常相似才可以。所以现有的参数读取器架构的联邦学习方法不能够 适用于实际的无线通信领域。
应用场景一、预测访问数据
在无线通信领域,通信运营商会利用基站提供服务,随着基站性能提高,目前一个广 泛推广的应用是在基站侧预测服务区域内用户经常访问的一些数据,由基站进行预下载和 存储,从而用户侧能在需要时快速提供给用户。由于单个基站所服务的用户数目比较有限, 我们希望能将基站获取的用户知识综合起来从而提高整体的预测水平。而由于基站部署的 批次不同,不同基站所拥有的型号和计算能力不同,同时由于基站生产商或是通信部门的 安全要求,基站也不可以将用户的访问信息传出,故该实施例可以解决该问题。
在该场景中,基站即为本申请实施例所述用户设备的一个例子,该基站主要是为了能 够为用户提供更快的数据访问的服务,而对用户即将进行的访问进行预测,以及根据预测 结果进行预下载和/或预存储,以便于用户访问这些数据时,能够更快地提供给用户。第 一基站为第一用户提供服务,第二基站为第二用户提供服务,第一用户和第二用户无交集, 也就是说,第一基站和第二基站分别服务于不同的用户,第一用户和第二用户之间不能进 行真实数据的交互,此处第一用户和第二用户都可以为一个或多个。第一基站利用第一用 户的真实数据训练得到第一本地模型,该第一本地模型用于预测第一用户即将访问的数 据,第二基站利用第二用户的真实数据训练得到第二本地模型,该第二本地模型用于预测 第二用户即将访问的数据。则可以利用本申请实施例所提供的方案,使得第一基站也能够 利用第二基站的知识对第一本地模型进行更新,第二基站也能够利用第一基站的知识对第 二本地模型进行更新,且不需要二者之间真实数据的交互,保证了数据隐私。
可选地,第一基站可以利用第二基站的第二数据生成器所生成的第二虚拟数据来更新 第一本地模型,具体而言,可以从第二虚拟数据中确定出对第一本地模型有效的虚拟数据, 作为目标虚拟数据,以及利用目标虚拟数据来更新第一基站,相当于扩充了第一基站的训 练数据,获得更多的知识。而且在该场景中,不需要第一本地模型和第二本地模型的结构 一致,只需要第二虚拟数据能够被第一本地模型利用即可。
应用场景二、模型保持
不同的用户设备产品性能不同,例如上述基站可以存在性能差异,又例如手机终端之 间也存在非常大的差异性,比如有些终端采用的是具有高运算能力的处理器,能够处理复 杂的深度学习模型;而有些终端采用的是具有较低运算能力的处理器,只能够处理一些简 单的非深度学习的模型。如果采用基于参数服务器架构的联邦学习,即需要进行模型汇聚 来得到联邦模型,从而完成图像识别、图像美化、语音翻译等功能,根据木桶效应,该联 邦学习的场景中所支持的模型复杂度由参与学习的所有设备中性能最低者决定,也就是 说,智能采用与低配置低运算能力的设备的模型结构,这会使得联邦模型的效果很差。而 采用本申请实施例的方案,用户设备的模型之间是独立进行训练和更新的,能够充分适应 不同用户设备的性能上限,得到更好的效果。
根据上文描述,可以看出本申请实施例的方案的适用场景还可以根据任务类型分类, 例如可以适用于图像分类、图像识别、视频搜素、手势识别、语音合成、语音唤醒、智能翻译等等,不再一一列举。
本申请实施例的联邦学习方法对于模型结构没有要求,且数据的一致性的要求也比较 低,只需要数据维度一致即可,不需要数据对齐。数据维度可以理解为数据类型、数据类 别,也就是说,多个用户设备所设计的数据类别是一致的,例如都只涉及了图像、图形、文字、语音、序列中的一种数据类型,又例如都涉及了多种数据类型,且所种数据类型是 对应的。进一步举例说明,例如某个用户设备是关于图像搜索的任务,且涉及的是图像和 文字,而其他用户设备只要也同时涉及图像和文字就可以看作是数据维度一致。又例如, 某个用户设备是关于翻译的任务,则可能只涉及的是文字,而其他用户设备只要也只涉及 文字就可以看作是数据维度一致。
图3是本申请实施例的联邦学习的系统架构示意图。如图3所示,该场景中包括用户 设备#1、用户设备#2和云端设备#1,该应用场景还可以包括其他用户设备,例如用户设备#3、用户设备#4等等,在图中未示出。
本地数据#1和本地数据#2分别表示用户设备#1和用户设备#2所能提供的数据,或者 可以理解为本地数据#1和本地数据#2分别是用户设备#1和用户设备#2各自的本地真实数 据,在联邦学习中,这些数据不希望被其他用户设备获取。也就是说,用户设备之间不进行真实数据的交互。这些数据例如可以是图像数据、语音数据、文本数据、时序序列数据 等等。用户设备#1利用本地数据#1进行模型训练,得到本地模型#1;此外,用户设备#1 还利用本地数据#1进行数据生成器的训练,得到数据生成器#1。用户设备#2利用本地数 据#2进行模型训练,得到本地模型#2;此外,用户设备#2还利用本地数据#2进行数据生 成器的训练,得到数据生成器#2。
需要说明的是,在该场景中,本地模型的训练采用的方法可以不同,结构也可以不同, 为了便于理解,在图中用三角形表示了本地模型#1,圆形表示了本地模型#2,此外,还可 以存在其他本地模型,例如云端设备所示的本地模型中还有正方形、五角星形等,都可以 表示不同结构的本地模型和/或不同方法生成的本地模型。本地模型主要是用于执行某项 任务的模型,例如语音识别、行人检测、视频处理等各类任务。
还应理解,在该场景中,数据生成器能够生成虚拟数据,该虚拟数据可以理解为人造 数据或人工数据,虚拟数据能够保留有本地数据的知识,但不能够从虚拟数据中反推出本 地数据,或者可以理解为该虚拟数据能够替代真实的本地数据进行模型训练,达到相同或 相似的效果,但自身并不是真实的数据。获取数据生成器的方法会在下文中详细给出,在 此暂不展开描述。
需要说明的是,参与学习的数据生成器所能够生成的数据需要数据类别一致,例如当 该联邦学习系统所对应的是人体识别任务的时候,假设有某个用户设备的本地模型是用于 语义推断的任务,该用户设备的数据生成器是用于生成文字的虚拟数据的,则该本地模型 和数据生成器的加入都是没有意义的,生成的虚拟数据不能够与其他人体识别任务所对应 的本地模型产生作用。或者可以理解为,数据生成器能够生成的虚拟数据的数据类别一致 的时候才有可能互相为对方扩充训练数据,为了便于理解,在图2中不同的数据生成器君 采用的多边形表示,只是边数不同。
用户设备将本地模型发送给云端设备,如图2所示,用户设备#1将本地模型#1或本地模型#1的参数发送给云端设备#1,用户设备#2将本地模型#2或本地模型#2的参数发送给云端设备#1。
云端设备#1在获得多个本地模型(例如图2所示本地模型#1、本地模型#2)和多个数据生成器(例如图2所示本地模型#1、本地模型#2)后,利用数据生成器和本地模型来 得到目标虚拟数据,该目标虚拟数据可以理解为对于部分或全部本地模型有效的虚拟数 据。
可选地,云端设备#1可以利用数据生成器生成虚拟数据,再将虚拟数据输入到各本 地模型,推断对于各本地模型是否有效,以及将判定为目标虚拟数据进行汇总。应理解还 可以存在其他的确定方法,具体获得目标虚拟数据的方法会在下文中详细介绍,在此不进 行展开。
当获得目标虚拟数据后,云端设备#1可以将虚拟数据发送给各用户设备,使得用户 设备可以利用目标虚拟数据在用户设备出进行模型更新;云端设备#1还可以在自身利用 目标虚拟数据更新本地模型,获得更新后的本地模型,以及将更新后的本地模型发送给相 应的用户设备。
在该场景中,由于不需要将所有的本地模型进行模型汇聚,所以对各本地模型的结构 和模型的训练方法等都没有限制。
下面以图像分类为例进行介绍。假设该联邦学习系统是用于图像分类的,也就是说能 够区分不同的图像类别,用户设备#1和用户设备#2均能够提供图像。本地数据#1为用户 设备#1的图像样本数据(带有类别的标签的图像),本地数据#2为用户设备#2的图像样本数据(带有类别的标签的图像),也就是说,本地数据#1和本地数据#2都是图像数据, 但用户何种图像分类不存在限定。则在训练过程中,用户设备#1利用本地数据#1训练获 得本地模型#1和数据生成器#1,用户设备#2利用数据#2训练获得本地模型#2和数据生成 器#2。之后用户设备#1将本地模型#1和数据生成器#1上传到云端设备#1,用户设备#2将 本地模型#2和数据生成器#2上传到云端设备#1。接下来,云端设备#1利用数据生成器#1 和数据生成器#2分别获得虚拟数据。
之后,云端设备#1从虚拟数据中确定出对本地模型有效的目标虚拟数据。例如,可以将数据生成器#1生成的虚拟数据输入到本地模型#1和本地模型#2,发现本地模型#2以很高的置信度得到不同于本地模型#1的分类结果,就可以将相应的虚拟数据作为目标虚拟数据。举例说明,假设本地模型#1能识别苹果、香蕉、梨,而本地模型#2能识别苹果、 西瓜,当数据生成器#1生成的虚拟数据中有一组数据是对应于梨的图像数据,将该梨的 图像数据输入到本地模型#2后,本地模型#2将其分类为了苹果。相当于本地模型#2缺少 对于梨的知识,所以此时就可以利用梨的图像数据来扩充本地模型#2的训练数据。
应理解,上述梨的图像数据是虚拟数据中的数据,所以即使获得了该组数据也不能够 将该组数据还原成真实的关于梨的图像。而之所以能够判断出虚拟数据是否有效,是因为 虚拟数据对于自身所对应的本地模型是能够获得一个正确的结果的,这个正确的分类结果 就可以看作是虚拟数据的标签,所以相当于为本地模型#2提供了带标签的虚拟数据。
在图3所示场景中,用户设备之间不能够进行真实数据的交互,但通过数据生成器实 现了数据知识的交换,从提供虚拟数据的用户设备的角度来看,相当于利用数据生成器所 生成的虚拟数据为其他本地模型提供可用于训练的虚拟数据,即目标虚拟数据,或者可以 理解为,为其他本地模型扩充训练数据;从获得目标虚拟数据的用户设备的角度来看,相 当于利用其他数据生成器(其他用户设备的数据生成器)生成的虚拟数据来扩充了自身本 地模型的训练数据。
应理解,更新本地模型也相当于对本地模型进行训练,在图3所示场景中,可以利用 本地数据(真实数据)训练本地模型,也可以利用目标虚拟数据更新本地模型,训练本地模型的执行主体可以是用户设备,例如上文所述用户设备利用本地数据训练得到本地模型;更新本地模型的执行主体既可以是用户设备也可以是云端设备,也就是说,利用目标虚拟数据来更新本地模型。
在本申请实施例中,训练本地模型的方法可以是基于神经网络的方法,也可以不是基 于神经网络的方法,不存在限定。
图4本申请实施例的一种训练模型的系统架构的示意图,下面对图4所示各模块或设 备进行介绍。
在图4中,数据采集设备160用于采集训练数据。针对本申请实施例的方法来说,训练数据可以为图像数据、图形数据、文本数据、语音数据、序列数据等任意一种数据,当 训练数据为图像数据时,训练数据可以包括训练图像以及训练图像对应的分类结果,其中,训练图像的结果可以是人工预先标注的结果;当训练数据为语音数据时,训练数据可以包括训练语音以及训练语音对应的目标语音。
在采集到训练数据之后,数据采集设备160将这些训练数据存入数据库130,训练设 备120基于数据库130中维护的训练数据训练得到目标模型/规则101。
下面对训练设备120基于训练数据得到目标模型/规则101进行描述,当用于图像分 类时,训练设备120对输入的原始图像进行处理,将输出的图像标签与真实的图像标签进 行对比,直到训练设备120输出的图像标签与真实的图像标签一致,从而完成目标模型/规则101的训练。当用于语音合成时,训练设备120对输入的待被合成语音的文字内容进 行处理,将输出的合成语音与目标语音进行对比,直到训练设备120输出的合成语音与目 标语音的差值小于一定的阈值,从而完成目标模型/规则101的训练。
本申请实施例中的目标模型/规则101具体可以为神经网络。需要说明的是,在实际 的应用中,所述数据库130中维护的训练数据不一定都来自于数据采集设备160的采集,也有可能是从其他设备接收得到的。另外需要说明的是,训练设备120也不一定完全基于数据库130维护的训练数据进行目标模型/规则101的训练,也有可能从云端或其他地方 获取训练数据进行模型训练,上述描述不应该作为对本申请实施例的限定。
根据训练设备120训练得到的目标模型/规则101可以应用于不同的系统或设备中, 如应用于图4所示的执行设备110,所述执行设备110可以是终端,如手机终端,平板电脑,笔记本电脑,增强现实(augmented reality,AR)/虚拟现实(virtual reality,VR), 车载终端等,还可以是服务器或者云端等。在图2中,执行设备110配置输入/输出(input/output,I/O)接口112,用于与外部设备进行数据交互,用户可以通过客户设备140 向I/O接口112输入数据,所述输入数据在本申请实施例中可以包括:客户设备输入的待 处理数据,例如待处理图像、待处理语音。
预处理模块113和预处理模块114用于根据I/O接口112接收到的输入数据(如待处理图像)进行预处理,在本申请实施例中,也可以没有预处理模块113和预处理模块114 (也可以只有其中的一个预处理模块),而直接采用计算模块111对输入数据进行处理。
在执行设备110对输入数据进行预处理,或者在执行设备110的计算模块111执行计 算等相关的处理过程中,执行设备110可以调用数据存储系统150中的数据、代码等以用于相应的处理,也可以将相应处理得到的数据、指令等存入数据存储系统150中。
最后,I/O接口112将处理结果返回给客户设备140,从而提供给用户。
值得说明的是,训练设备120可以针对不同的目标或称不同的任务,基于不同的训练 数据生成相应的目标模型/规则101,该相应的目标模型/规则101即可以用于实现上述目 标或完成上述任务,从而为用户提供所需的结果。
在图4中所示情况下,用户可以手动给定输入数据,该手动给定可以通过I/O接口112 提供的界面进行操作。另一种情况下,客户设备140可以自动地向I/O接口112发送输入数据,如果要求客户设备140自动发送输入数据需要获得用户的授权,则用户可以在客户设备140中设置相应权限。用户可以在客户设备140查看执行设备110输出的结果,具体 的呈现形式可以是显示、声音、动作等具体方式。客户设备140也可以作为数据采集端, 采集如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果作为新的样本 数据,并存入数据库130。当然,也可以不经过客户设备140进行采集,而是由I/O接口 112直接将如图所示输入I/O接口112的输入数据及输出I/O接口112的输出结果,作为 新的样本数据存入数据库130。
值得注意的是,图4仅是本申请实施例提供的一种训练模型的系统架构的示意图,图 中所示设备、器件、模块等之间的位置关系不构成任何限制,例如,在图4中,数据存储系统150相对执行设备110是外部存储器,在其它情况下,也可以将数据存储系统150置 于执行设备110中。
如图4所示,根据训练设备120训练得到目标模型/规则101,该目标模型/规则101在本申请实施例中可以是本申请中的神经网络,具体的,本申请实施例提供的神经网络可以为深度卷积神经网络(deep convolutional neural networks,DCNN),循环神经网络等等。
图4所示训练模型的架构可以用来实现图3所示获得本地模型的过程,也就是说,图 3所示各用户设备可以利用图4所示系统架构的部分或全部模块训练获得本地模型,图3所示用户设备还可以利用图4所示系统架构的部分或全部模块以及利用目标虚拟数据更新本地模型,图3所示云端设备也可以利用图4所示系统架构的部分或全部模块以及利用目标虚拟数据更新本地模型。
图5是本申请实施例提供的一种芯片的硬件结构示意图,该芯片包括神经网络处理器 50。该芯片可以被设置在如图3所示的执行设备110中,用以完成计算模块111的计算工 作。该芯片也可以被设置在如图3所示的训练设备120中,用以完成训练设备120的训练工作并输出目标模型/规则101。
神经网络处理器500(即图示NPU500)作为协处理器挂载到主中央处理器(centralprocessing unit,CPU)(host CPU)上,由主CPU分配任务。NPU的核心部分为运算电 路503,控制器504控制运算电路503提取存储器(权重存储器或输入存储器)中的数据 并进行运算。
在一些实现中,运算电路503内部包括多个处理单元(process engine,PE)。在一些 实现中,运算电路503是二维脉动阵列。运算电路503还可以是一维脉动阵列或者能够执行例如乘法和加法这样的数学运算的其它电子线路。在一些实现中,运算电路503是通用的矩阵处理器。
举例来说,假设有输入矩阵A,权重矩阵B,输出矩阵C。运算电路从权重存储器502中取矩阵B相应的数据,并缓存在运算电路中每一个PE上。运算电路从输入存储器501 中取矩阵A数据与矩阵B进行矩阵运算,得到的矩阵的部分结果或最终结果,保存在累 加器(accumulator)508中。
向量计算单元507可以对运算电路的输出做进一步处理,如向量乘,向量加,指数运算,对数运算,大小比较等等。例如,向量计算单元507可以用于神经网络中非卷积/ 非FC层的网络计算,如池化(pooling),批归一化(batch normalization),局部响应归 一化(local response normalization)等。
在一些实现种,向量计算单元能507将经处理的输出的向量存储到统一缓存器506。 例如,向量计算单元507可以将非线性函数应用到运算电路503的输出,例如累加值的向 量,用以生成激活值。在一些实现中,向量计算单元507生成归一化的值、合并值,或二者均有。在一些实现中,处理过的输出的向量能够用作到运算电路503的激活输入,例如 用于在神经网络中的后续层中的使用。
统一存储器506用于存放输入数据以及输出数据。
权重数据直接通过存储单元访问控制器(direct memory access controller,DMAC)505 将外部存储器中的输入数据搬运到输入存储器501和/或统一存储器506、将外部存储器中 的权重数据存入权重存储器502,以及将统一存储器506中的数据存入外部存储器。
总线接口单元(bus interface unit,BIU)510,用于通过总线实现主CPU、DMAC和取指存储器509之间进行交互。
与控制器504连接的取指存储器(instruction fetch buffer)509,用于存储控制器504 使用的指令;
控制器504,用于调用指存储器509中缓存的指令,实现控制该运算加速器的工作过 程。
入口:可以根据实际发明说明这里的数据是说明数据,比如探测到车辆速度、障碍物 距离等。
一般地,统一存储器506,输入存储器501,权重存储器502以及取指存储器509均为片上(On-Chip)存储器,外部存储器为该NPU外部的存储器,该外部存储器可以为 双倍数据率同步动态随机存储器(double data rate synchronous dynamic random accessmemory,DDR SDRAM)、高带宽存储器(high bandwidth memory,HBM)或其他可读 可写的存储器。
其中,神经网络中各层的运算可以由运算电路503或向量计算单元507执行。
图6是本申请实施例的联邦学习的系统架构的示意图,如图6所示,该系统包括至少 一个本地设备,如图6所示本地设备610和/或本地设备620。该系统还包括至少一个执行设备,如图6所示执行设备630。该系统还包括至少一个数据存储系统640。
可选地,本地设备610和本地设备620可以通过通信网络与执行设备630连接。
可选地,执行设备630可以由一个或多个服务器实现。可选的,执行设备630可以与其它计算设备配合使用,例如:数据存储器、路由器、负载均衡器等设备。执行设备630 可以布置在一个物理站点上,或者分布在多个物理站点上。执行设备630可以使用数据存 储系统640中的数据,或者调用数据存储系统640中的程序代码来实现本申请实施例的搜 索神经网络结构的方法。
用户可以操作各自的用户设备(例如本地设备610和本地设备620)与执行设备630进行交互。每个本地设备可以表示任何计算设备,例如个人计算机、计算机工作站、智能 手机、平板电脑、智能摄像头、智能汽车或其他类型蜂窝电话、媒体消费设备、可穿戴设 备、机顶盒、游戏机等。
应理解,在本申请实施例中用户设备、本地设备可以是上述计算设备,还可以是网络 设备,例如上文所列举的基站。而在本申请实施例中,云端设备可以理解为用于集中获取 多个用户设备的本地模型和/或虚拟数据的,或者可以理解为集中处理设备,云端设备可 以是主机、服务器等。
每个用户的本地设备可以通过任何通信机制/通信标准的通信网络与执行设备630进 行交互,通信网络可以是广域网、局域网、点对点连接等方式,或它们的任意组合。
可选地,每个用户可以在本地设备上获取待处理数据,以及利用待处理数据训练得到 本地模型和数据生成器。其中,待处理数据是本地设备能够获取的真实的数据,可以包括 任意一种或多种类型的数据,例如图像、图形、语音、文本、序列等。
需要说明的是,每个本地设备可以利用自己的资源来训练获得本地模型和数据生成 器,对于模型的结构、数据是否能够对齐都不存在限制,也就是说,不需要像图2所示系统中那样要求不同设备所训练的模型结构完全一致、数据需要对齐等限制。换而言之,本地设备只需要根据自身需求和能力限制来训练好自己的本地模型和数据生成器即可。
可选地,本地设备可以采用支持向量机、线性回归方法、决策树分类等各类传统机器 学习方法获得本地模型,也可以采用深度学习方法来获得本地模型,且不同本地设备之间 采用的方法可以相同也可以不同,在此不存在限定。
还需说明的是,数据生成器能够产生可以替代本地数据的人造数据,也可以称之为虚 拟数据。具体而言,数据生成器所生成的数据要能够有效反映用户本地数据的分布情况并 保有相应的数据知识信息,即使用这些数据进行训练获得的分类模型在分类效果上应尽可 能接近原始的本地模型。可选地,数据生成器可以通过输入正态分布的随机噪声的形式, 产生满足用户本地数据分布情况的人造数据。此外,数据生成器生成的数据还需要能够有 效保护用户的个人隐私,即如果有恶意攻击方获得了数据生成器,其虽然能够获得相应的 人造数据,但无法根据人造数据反推出任何用户的隐私信息。
可选地,可以采用生成式对抗网络(generative adversarial nets,GAN)、变分自动编 码器(variational auto-encoder,VAE)或数据蒸馏(dataset distillation,DD)的方法来获 得数据生成器。下面对上述几种方法进行介绍。
GAN类的方法通过生成器和判别器对抗产生高质量生成数据的方法,也就是说,使得生成器生成的虚拟数据特征与真实数据的特征越来越一致,并且使得判别器尽可能地区分真实数据和虚拟数据。换而言之,生成器的目标是使得虚拟数据和真实数据区别越来越小,判别不出来到底是真实数据还是虚拟数据,而判别器的目标则是尽可能区分出虚拟数据和真实数据。应理解,GAN只是这类方法的一种示例,只要是采用相同原理的方法都 可以用于获得数据生成器,也就是说,只要是能够使得虚拟数据和真实数据越来越一致的 同时又能够区分出两种数据即可。
VAE类的方法则是通过学习真实数据的数据分布并进行还原,来生成虚拟数据。对于传统的自动编码器智能用于编码数据,但不能生成数据。而VAE则是使得生成数据(即 虚拟数据、虚拟数据)和原数据(即真实数据、本地数据)具有尽可能相同的数据分布, 从而能够使得生成数据也能代替原数据。应理解,VAE只是这类方法的一种示例,只要 是采用相同原理的方法都可以用于获得数据生成器,也就是说,只要是通过学习数据分布 来生成数据的方式即可。
数据蒸馏类的方法则是通过数据合成来整合数据知识,从而生成虚拟数据。数据蒸馏 处理后获得的数据能够达到与原始数据相似的训练效果,数据蒸馏相当于是减少数据,所 以蒸馏后的数据虽然尽可能包含了足够多的数据知识,但会受到模型初始化的方式的影 响。
需要说明的是,数据生成器所生成的虚拟数据(人造数据)能够替代真实数据参与训 练,且可以达到相同或相似的训练效果,但由于其不是真实的数据,所以即使获得了这些 虚拟数据也不能够反推出真实数据,这有效解决“数据孤岛”的问题,能够使得既不需要将 真实数据传输出去,又可以给其他用户或设备提供与真实数据效果相当的数据。
可选地,本地设备可以将本地模型和数据生成器发送给执行设备630。
可选地,本地设备还可以将本地数据的数据量、数据类型、数据生成器采用的方法、 数据生成器的结构等一种或多种参数信息发送给执行设备630。
可选地,执行设备630可以用于获取来自于本地设备的本地模型和数据生成器,利用 这些数据生成器生成对应于不同用户的虚拟数据,这些虚拟数据具有与用户的真实数据相 似或相同的特征,完全能够替代本地数据参与训练,但并不是真实的本地数据。
可选地,执行设备630可以将这些虚拟数据进行效果推算,也就是说,获得虚拟数据 对每个本地模型的作用,并将对本地模型有作用的虚拟数据发送给相应的本地设备。举例 说明,假设执行设备630生成的虚拟数据用Kij表示,其中,i表示本地设备的编号,j表 示虚拟数据的编号,i、j均为整数,K表示虚拟数据。也就是说,Kij表示编号为i的本地 设备的编号为j的虚拟数据。则可以利用执行设备630推算虚拟数据Kij对于所有本地模 型的效果,假设对某本地模型有效,就可以将该虚拟数据发送给该本地模型对应的本地设 备。进一步举例说明,假设本地设备610的某个虚拟数据对本地设备620的本地模型有效, 就可以将该虚拟数据用于更新本地模型。例如可以将该虚拟数据发送给本地设备620,由 本地设备620来利用该虚拟数据更新本地模型;又例如还可以由执行设备630利用该虚拟 数据更新本地模型后,将更新后的本地模型发送给本地设备620。
需要说明的是,在推算对模型的效果时,可以推算对所有模型的效果,也可以只推算 对其他模型的效果,但由于虚拟数据对于自身所对应的本地模型是必然能够用于训练的, 所以只需要决定是否采用即可,不再推算对该本地模型的效果能够节省占用的资源。举例 说明,假设是本地设备610的数据生成器所生成的虚拟数据,就不需要再推断是否对本地 设备610的本地模型是否有效,只需要看对其他本地模型是否有效即可。
应理解,某个本地模型所对应的虚拟数据必然能够用于训练该本地模型,但在联邦学 习中,相当于该本地模型已经充分学习到了自身所对应的虚拟数据中的知识,所以反而更 希望能够获得新的知识,也就是说,更希望能够从其他本地模型所对应的虚拟数据中获取 知识,所以自身的虚拟数据反而相对不是很重要,可以不将其划归为目标虚拟数据。
对于推断效果的方法会在下文方法介绍的相应步骤中给出,在此不再展开介绍。
可选地,本地设备可以获取来自于执行设备630的虚拟数据,以及利用虚拟数据和自 身的本地数据对本地模型进行训练。这种方式相当于执行设备630只需要利用数据生成器 生成虚拟数据,以及对虚拟数据进行选择和发送,而不需要对本地模型进行训练或更新, 本地模型的更新由本地设备完成。
可选地,执行设备630还可以利用虚拟数据对虚拟数据能够产生效果的本地模型进行 更新,以及将更新后的本地模型发送给相应的本地设备。在这种方式中,相当于执行设备 630既能够生成虚拟数据、对虚拟数据进行选择,又能够利用虚拟数据更新本地模型,而 本地设备只需要接收来自于执行设备630的更新后的本地模型即可。
上述执行设备630也可以称为云端设备,此时执行设备630一般部署在云端。
图7是本申请实施例的基于联邦学习的数据处理方法的示意性流程图,下面对图7所 示各个步骤进行介绍。
701、获取第一用户设备的第一本地模型。
第一本地模型是利用第一本地设备的第一本地数据训练得到的,第一本地数据是第一 本地设备的真实数据。
需要说明的是,在本申请实施例中,有两种实现方式,一种是用户设备和云端设备配 合实现,一种是只有用户设备的情况,二者的差异主要在于中途的数据交互,以及没有云 端设备的时候不需要评判每个用户设备的贡献度。当为第一种实现方式时,上述获取第一 用户设备的本地模型、第二设备的第二用户设备的第二本地模型,以及后续生成虚拟数据 等操作均由云端设备来执行;当为第二种实现方式时,上述各步骤由第一用户设备来执行。
当为第一种实现方式时,步骤701相当于云端设备利用通信模块等来接收到第一本地 模型;当为第二种实现方式时,步骤701相当于第一用户设备利用自身的模块来获取第一 本地模型,例如可以从存储模块中读取,还可以利用第一本地数据训练得到。
702、获取来自于第二用户设备的第二本地模型和第二数据生成器。
需要说明的是,第二本地模型和第二数据生成器是利用第二本地数据训练得到的,第 二本地数据是第二用户设备的真实数据。
当为第一种实现方式时,步骤702相当于云端设备从第二用户设备处获取第二本地模 型和第二数据生成器,步骤701和步骤702可以采用相同或不同的方法或模块获得,且步 骤701和步骤702的执行顺序不存在限定,可以用同时也可以不同时执行。
703、利用所述第二数据生成器生成第二虚拟数据。
需要说明的是,当为第一种实现方式时,步骤703是由云端设备执行的,当为第二种 实现方式时,步骤703是由第一用户设备执行的。
704、从第二虚拟数据中选取第二目标虚拟数据,第二目标虚拟数据能够用于更新第 一本地模型。
需要说明的是,当为第一种实现方式时,步骤704是由云端设备执行的,当为第二种 实现方式时,步骤704是由第一用户设备执行的。
对于各个步骤具体采用的方法,对于第一种实现方式和第二种实现方式有所差异,会 在下面内容中分别进行详细介绍,其中,图8、图9是第一种实现方式中用户设备和云端 设备各自执行的操作示意图,图10是第二种实现方式中用户设备执行的操作示意图,在此不再展开。
通过图7所示方法,利用虚拟数据作为传输载体,既保证了数据隐私和安全,又实现 了数据知识的共享,利用虚拟数据在本地模型上的表现来确定对于本地模型有效的虚拟数 据,以及利用目标虚拟数据来更新本地模型。该方法对于本地模型的结构不存在要求,而 是通过选择出能够对本地模型有效的虚拟数据,来实现数据知识的共享。本地模型没有结 构和采用的建模方法的限制,所以用户设备可以根据自身的需求和性能限制来训练得到本 地模型,尤其对于性能较好的用户设备不需要为了迁就性能较差的用户设备而使用低质量 的模型,充分利用了资源和保证了本地模型的高质量。此外,与传统的参数服务器架构相 比,本申请实施例的方案能够有效降低通信开销,无论是在用户设备侧更新模型,还是在 云端设备侧更新模型,都能够有效降低通信开销。在本申请实施例中,不需要频繁发送本 地模型和/或数据生成器,所以用户设备和云端设备之间的数据交互(或者可以理解为通 信、数据传输)的次数明显减少,从而有效地节省了通信开销。经实验测试表明,在其他 条件一致的情况下,当每个模型被更新相同轮次的时候,第一种实现方式的通信开销可以 降低到参数服务器架构情况下的一半以下,而第二种实现方式是用户设备广播本地模型和 数据生成器,所以需要的通信开销更低。
图8是本申请实施例的基于联邦学习的数据处理方法的示意性流程图,下面对图8所 示各个步骤进行介绍。图8是第一种实现方式即用户设备和云端设备配合的方式,所以需 要用户设备和云端设备之间进行一些数据交互才能够实现整个方案。
801、用户设备获得本地模型和数据生成器。
可选地,用户设备可以利用本地数据训练获得本地模型和数据生成器,也可以是从存 储装置中读取本地模型和数据生成器。
可选地,用户设备可以是第一用户设备或第二用户设备,也就是说,所有参与学习的 用户设备都可以利用自身的本地数据训练得到自身的本地模型和数据生成器。例如,第一 用户设备可以利用第一本地数据训练得到第一本地模型和/或第一数据处理器,第二用户 设备可以利用第二本地数据训练得到第二本地模型和/或第二数据生成器。
应理解,第一本地数据是指第一用户设备能够获取的真实数据,第二本地数据是指第 二用户设备能够获取的真实数据,第一本地模型和第一数据生成器均与第一用户设备对 应,第二本地模型和第二数据生成器均与第二用户设备对应,为了便于描述,在本申请实 施例中,与第i用户设备相关的本地模型、数据生成器、本地数据、虚拟数据、目标虚拟数据等均用i编号,也就是说,分别称之为第i本地模型、第i数据生成器、第i本地数据、 第i目标虚拟数据等,在图8所示例子中,在不产生歧义的情况下,用户设备采用的是统 称的方式,也就是说,该用户设备可以是任意用户设备,例如上述第一用户设备或第二用 户设备。
需要说明的是,本地数据是指用户设备自身的真实的数据,该本地数据可能会因为考 虑到隐私或安全等因素,不会发送到用户设备之外。该本地数据的数据类型可以是图像、 图形、文本、语音等任意一种类型。该用户设备可以是上文所示任意一种用户设备、本地 设备。
可选地,用户设备可以根据本地的实际需求、自身设备的性能,利用本地数据训练得 到本地模型。对于获得本地模型的方法不存在限定,例如可以采用上文所述任意一种传统 机器学习的方法或深度学习的方法获得该本地模型。
可选地,可以利用利用上文所述GAN、VAE、数据蒸馏等各类方法获得数据生成器。如上文所述,数据生成器所生成的虚拟数据(人造数据)能够替代真实数据(此处为步骤801所述本地数据)参与训练,且可以达到相同或相似的训练效果,但由于其不是真实的 数据,所以即使获得了这些虚拟数据也不能够反推出真实数据,这有效解决“数据孤岛”的 问题,能够使得既不需要将真实数据传输出去,又可以给其他用户或设备提供与真实数据 效果相当的数据。
802、用户设备向云端设备发送本地模型和数据生成器。
需要说明的是,该云端设备是上文所述任意一种云端设备,例如可以是服务器、远程 主机、云端服务器等。还应理解,在本申请实施例中,至少一个用户设备对应一个云端设备,也就是说,一个云端设备可以同时为至少一个用户设备提供协助,用于收集至少一个用户设备中所有用户设备的本地模型和数据生成器,以及执行后续相应操作。
可选地,用户设备可以利用通信接口、通信单元或通信模块等向云端设备发送本地模 型和数据生成器。
还需要说明的是,在本申请实施例中,本地模型和数据生成器不需要频繁发送,例如 可以只在一开始训练好本地模型和/或数据生成器的时候发送一次,后面不再发送;还可 以在更新本地模型和/或更新数据生成器之后再发送;还可以设置更新次数阈值,当更新 次数大于或等于更新次数阈值的时候才发送给云端设备;还可以设置其他条件,例如设置 时间间隔,每隔一段时间向云端设备发送一次本地模型和数据生成器,等等,在此不再一 一列举。应理解,虽然在现有技术(基于参数服务器架构的联邦学习)中也存在用户设备与云端设备之间的数据交互(本地模型、联邦模型的发送和接收),但步骤802与现有技 术是不同的,步骤802不需要频繁执行,也就是说在本申请实施例中,不需要频繁发送本 地模型和/或数据生成器,所以用户设备和云端设备之间的数据交互(或者可以理解为通 信、数据传输)的次数明显减少,从而有效地节省了通信开销。
可选地,可以对本地模型和数据生成器进行加密。通过加密的方式,使得本地模型和 数据生成器的具体内容只能在所对应的用户设备和云端设备能够读取出来,其他设备不能 够读取。该方案能够有效提高隐私和/或安全保护的能力。
可选地,还可以对本地模型和数据生成器进行混淆处理。例如可以通过加入噪声、混 淆成分的方式,使得其他设备或用户即使获得了本地模型和数据生成器,也不能够从中获 得正确的本地模型和数据生成器。该方案同样能够有效提高隐私和/或安全保护的能力。
803、云端设备利用数据生成器生成虚拟数据。
当云端设备获取到来自于至少一个用户设备的本地模型和数据生成器,可以利用所获 取的至少一个数据生成器生成虚拟数据。
例如,可以利用第一数据生成器生成第一虚拟数据,可以利用第二数据生成器生成第 二虚拟数据等。
需要说明的是,该虚拟数据是指利用数据生成器生成的数据,因此每个数据生成器所 生成的数据是与每个用户对应的,也就是说,利用用户设备#1的数据生成器生成的虚拟 数据可以看作是用户设备#1的虚拟数据。
可选地,可以对生成的虚拟数据进行编号,例如可以用Ki,j表示虚拟数据,其中,i表示用户设备的编号,j表示虚拟数据的编号,i,j均为整数,K为虚拟数据。也就是说,Kij表示编号为i的用户设备的编号为j的虚拟数据。例如,假设利用用户设备1的数据生 成器共产生了10个虚拟数据,则可以分别用K1,1,K1,2,K1,3,……,K1,10表示,假设还 利用用户设备3的数据生成器共产生了5个虚拟数据,则可以分别用K3,1,K3,2,K3,3,K3,4, K3,5表示。需要说明的是,上述虚拟数据数量、用户设备的编号等均为举例说明,不存在 限定,只要编号的方式能够区分开不同的用户设备和不同的虚拟数据即可。
804、确定目标虚拟数据。
可选地,在确定目标虚拟数据时,可以确定所有生成的虚拟数据中对某一用户设备的 本地模型(例如第一本地模型、第二本地模型)有效的虚拟数据,也可以是确定某一虚拟 数据分别对哪些本地模型有效。也就是说,目标虚拟数据是指对于本地模型的部分或全部 有效就可以,但具体对哪个本地模型有效可以考虑也考可以不考虑。
例如,可以从第二数据生成器生成的第二虚拟数据中确定出对部分或全部其他本地模 型(例如第一本地模型)有效的虚拟数据,作为第二目标虚拟数据。又例如,可以从第一 数据生成器生成的第一虚拟数据中确定出对部分或全部其他本地模型(例如第二本地模 型)有效的虚拟数据,作为第一目标虚拟数据。
可选地,可以将虚拟数据输入到所有的本地模型中,根据获得的结果判断是否有效。 为了便于描述,以第一数据生成器生成的第一虚拟数据为例进行介绍,第一虚拟数据所对 应第一本地模型、第一数据生成器和第一用户设备。
当将第一虚拟数据输入到第一本地模型的时候,可以获得一个结果,这个结果可以看 作是正确的结果,这是因为第一本地模型和第一数据生成器都是同一个用户设备利用相同 的数据获得的,而且第一数据生成器所能够生成的虚拟数据是能够代替真实的数据参与训 练的。所以可以将第一虚拟数据在输入到第一本地模型后获得的结果作为一个正确参照。
当将第一虚拟数据输入到其他本地模型中,也就是输入到除了第一本地模型之外的其 他本地模型(例如第二本地模型)之后,同样会获得一些结果,下面对可能的情况分别解 释。
情况一、假设获得的结果与第一本地模型所获得的结果一致,且置信度很高,相当于 用很高的置信度获得正确结果,这时候可以认为该其他本地模型已经学习到与第一用户设 备相同或相似的知识,或者可以理解为该其他本地模型不需要再学习第一用户设备的知 识,则此时可以认为该第一虚拟数据对该其他本地模型是无效的。但是应理解,在这种情 况下,即使利用第一虚拟数据更新该其他本地模型也不会为其带来负面影响,相当于巩固 了该其他本地模型的正确知识。
情况二、假设获得的结果与第一本地模型所获得的结果一致,但置信度较低,相当于 用较低的置信度获得了一个正确的结果,这时候可以认为第一虚拟数据对该其他本地模型 是有效的,可以理解为可以用于增强该其他本地模型对于正确结果的信心,或者可以理解 为该其他本地模型对于正确知识的巩固。
情况三、假设获得的结果与第一本地模型所获得的结果不同,但置信度较高,相当于 用较高的置信度获得了一个错误的结果,这时候可以认为第一虚拟数据对该其他本地模型 是有效的,可以理解为该其他本地模型学习到的知识比较少,缺乏第一用户设备的知识, 才会很高的信心得到了一个错误的结果,这时候该第一虚拟数据可以使得该其他模型学习 到第一虚拟数据的正确的知识。为了便于理解,用一个结合实际的例子来说明,假设第一 本地模型和第二本地模型都是用来分类动物的,但第二本地模型只能识别出猫,不能识别 出狗,因为缺少对于狗的知识。所以当第一虚拟数据是包括有狗的图像的特征数据(但应 理解第一虚拟数据不是真实的数据,而是与真实数据相当的虚拟数据)时,当将第一虚拟 数据输入到第二本地模型中,第二本地模型将狗认为成了猫。则利用第一虚拟数据对第二 本地模型记性更新就能够为第二本地模型建立新的分类面(即新的类别),以及提供该新 类别的正确知识,还能够为已有的猫的类别提供更多的参考知识。
情况四、假设获得的结果与第一本地模型所获得的结果不同,且置信度较低,相当于 用较低的置信度获得了一个错误的结果,这时候可以认为第一虚拟数据对该其他本地模型 是无效的,可以理解为,该其他本地模型可以很难从该第一虚拟数据学习到正确知识。
也就是说,上述过程相当于以第一虚拟数据为例,介绍了确定虚拟数据对于某个本地 模型是否有效的方法,例如,可以利用第一虚拟数据输入到第一本地模型中的处理结果和 第一虚拟数据输入到第二本地模型中的处理结果之间的一致性和/或置信度的差值来确定 出第一虚拟数据中对第二本地模型有效的虚拟数据(目标虚拟数据)。
又例如,可以利用第一本地模型、第二本地模型、第二虚拟数据来确定第二目标虚拟 数据,也就是说,从第二虚拟数据中确定出对第一本地模型有效的第二目标虚拟数据。
可选地,可以根据第一处理结果和第二处理结果,从第二虚拟数据中确定出第二目标 虚拟数据,第一处理结果是将第二虚拟数据输入到第一本地模型得到处理结果,第二处理 结果是将第二虚拟数据输入到第二本地模型得到处理结果。
可选地,可以采用上述确定第一虚拟数据中的目标虚拟数据的方法,即可以根据上述 第一处理结果和上述第二处理结果的一致性和/或第一处理结果的置信度与第二处理结果 的置信度之间的差值来确定第二目标虚拟数据,具体过程不再赘述。
上面提供的是利用虚拟数据在单个模型上的表现来确定是否有效的例子,在这个例子 中,上述根据结果是否一致和/或置信度差值来综合判断是否有效的四种情况可以只考虑 其中一种或多种情况,也可以四种情况都考虑,不存在限定。
应理解,还可以采用其他方法来确定虚拟数据的有效性,或者可以理解为确定目标虚 拟数据,下面是另外一种确定目标虚拟数据的方法。
首先,云端设备选取其中一个用户的生成数据,也就是说,选取其中一个用户设备的 数据生成器所生成的虚拟数据。
可选地,可以根据某个用户设备所对应的虚拟数据的数量在所有虚拟数据数量的占 比,来确定选取该用户设备所对应的虚拟数据的概率。举例说明,假设有10个用户设备的数据生成器分别生成了不同数量的虚拟数据,则可以根据每个用户设备所对应的虚拟数据的生成数量在这10个用户设备所生成的虚拟数据总量中所占的比例来确定选取每个用户设备所对应的虚拟数据的概率。
可选地,还可以根据某个用户设备所拥有的真实数据(本地数据)的数量与所有参加 学习的用户设备所拥有的真实数据(本地数据)的数量来确定选取该用户设备的虚拟数据 的概率。也就是说,相当于考虑到每个用户设备能够获取的真实数据(本地数据)的数量是不同的,可以认为真实数据越多,训练得到的数据生成器能够生成的虚拟数据的质量相对越高,所以希望能够优先选取真实数据充足的用户的虚拟数据。因此根据用户设备所拥有的真实数据的数量来确定选中的概率,能够提高选中较高质量的虚拟数据的概率,从而对于更新模型和/或数据生成器的时候也能够提高更好的训练数据。
可选地,可以使得选取概率的操作满足下面的公式:
Figure BDA0002549631890000301
其中Pi为第i个用户设备所对应的虚拟数据被选中的概率,Ni代表第i个用户设备所 拥有的真实数据的数据量,M为参加学习的所有用户设备的个数,i和j均为整数,用于表示用户设备的编号。
需要说明的是,上述公式只是对于确定选取概率的方式的一个示例,还可以采用其他 确定选取概率的方式,例如可以根据每个用户设备被选中的概率相同来确定概率,例如有 8个用户设备参加学习,每个用户设备被选中概率均为1/8,而确定了选择哪个用户设备 之后,再从该用户设备的虚拟数据中选择虚拟数据。又例如可以使得所有虚拟数据被选中 的概率是相同的,也就是说,无论是哪个用户设备所对应的虚拟数据,其被选中的概率都 是相同的。还有其他一些选取方式,例如逐个遍历的方式等,在此不再一一列举。
选取了虚拟数据之后,云端设备可以推算、推断该虚拟数据对其他用户设备的训练所 能起到的效用。需要说明的是,可以只判断对其他用户设备的作用,而不需要判断对该虚 拟数据所对应的用户设备的效用,从而减少运算,但即使增加了对于该虚拟数据所对应的 用户设备的效用判断也不会影响整体的技术效果。
可选地,可以采用多方多类边界判据来判断是否对各用户设备的本地模型有效。该多 方多类边界判据可以满足下面的公式。
ρH(x,y)=maxihi(x,y)-maxj,y'hi(x,y),y∈γi,y'∈γi\{y}, (3)
其中ρ为边界值,x代表输入数据,y为类别标签,h(x,y)表示利用模型将输入数据x分类到类别y的置信度或概率值,γi表示由类别标签y构成的类别标签集合,而y'表示类别集合中不同于类别y的类别,也可以理解为y'表示的是类别标签集合中除了类别y以外的其他标签,max表示最大值,i为整数,对应于用户设备的编号(也可以理解为对应于 本地模型的编号),因此,maxihi(x,y)表示编号为i的用户设备,将x分类到类别y的置 信度或概率值的最大值,maxj,y'hi(x,y)表示编号为i的用户设备,将x分类到类别y'的置 信度或概率值的最大值。因此,该边界值ρH(x,y)表示所有分类正确的h值中的最大值与 所有分类错误的h值中最大值之差。当该值小于或等于预设阈值时(一般为0),可以认 为存在本地模型将该虚拟数据以很高的置信度分类错误,此时该虚拟数据可以同时用于为 分类正确的本地模型巩固已有分类面同时为分类错误的本地模型建立正确的新分类面。
需要说明的是,上述预设阈值是指边界值的阈值,在判断边界值与阈值的关系时,可 以是利用小于或等于该预设阈值来判断,也可以是利用小于该预设阈值来判断。上述分类 面可以理解为类别集合。
上述过程相当于当上述边界值小于或等于某个阈值的时候,认为存在有本地模型以很 高的置信度判断错误的情况,在这种情况下,将该虚拟数据认为是有效的,也就是说,不 会特别区分每个虚拟数据到底分别对每个本地模型的结果影响。
805、根据所确定出的目标虚拟数据更新本地模型。
可选地,可以是在云端设备更新本地模型,然后再将更新后的本地模型发送给用户设 备,如图8所示用实线标注的步骤805和步骤806的操作,也就是说,云端设备执行步骤805、根据所确定的目标虚拟数据更新本地模型,再执行步骤806、向用户设备发送更新 后的本地模型。而用户设备可以接收到更新后的本地模型,之后还可以以更新后的本地模 型为基础,继续训练得到新的本地模型,以及将新的本地模型再发送到云端设备等等。
需要说明的是,根据上文的描述,目标虚拟数据通常是指其他数据生成器产生的但对 自己的本地模型有效的数据,所以当在云端设备更新本地模型的时候,这些被选中的虚拟 数据与自身数据生成器所产生的虚拟数据一起用来更新本地模型。举例说明,假设是利用 目标虚拟数据更新用户设备#1所对应的本地模型,则该目标虚拟数据通常是指从除了用 户设备#1以外的其他用户设备的数据生成器所产生的虚拟数据中确定出来的对用户设备 #1的本地模型有效的虚拟数据。所以可以利用这些目标虚拟数据和用户设备#1的数据生 成器自身所产生的部分或全部虚拟数据一起来更新用户设备#1的本地模型。在更新时, 可以是单步更新,也可以是多步迭代更新,可以理解为可以是只训练一次,也可以是训练 多次。
806、向用户设备发送更新后的本地模型或目标虚拟数据。
可选地,还可以是将目标虚拟数据发送给用户设备,由用户设备利用接收到的目标虚 拟数据来更新本地模型,如图8所示用虚线标注的步骤805和步骤806的操作。也就是说, 执行上述步骤805的是用户设备,或者可以理解为先由云端设备执行步骤806,再由用户 设备执行步骤805。云端设备执行步骤806、向用户设备发送所确定出的目标虚拟数据,用户设备接收到该目标虚拟数据后执行步骤805、根据该目标虚拟数据在用户设备处更新本地模型。
需要说明的是,根据上文的描述,目标虚拟数据通常是指其他数据生成器产生的但对 自己的本地模型有效的虚拟数据,所以当在用户设备更新本地模型的时候,这些被选中的 虚拟数据与真实数据(用户设备自身的本地数据)一起用来更新本地模型。举例说明,假 设是利用目标虚拟数据更新用户设备#1所对应的本地模型,则该目标虚拟数据通常是指 从除了用户设备#1以外的其他用户设备的数据生成器所产生的虚拟数据中确定出来的对 用户设备#1的本地模型有效的虚拟数据。所以可以利用这些目标虚拟数据和用户设备#1 的部分或全部真实数据(本地数据)一起来更新用户设备#1的本地模型。在更新时,可 以是单步更新,也可以是多步迭代更新,可以理解为可以是只训练一次,也可以是训练多 次。
可选地,可以循环执行上述步骤804至步骤806或重复执行上述步骤803至步骤806, 也就是说,重复上述生成、确定目标虚拟数据和利用目标虚拟数据来更新本地模型的步骤。 可选地,可以设置停止循环执行的条件,例如可以设置为达到迭代次数阈值、达到学习时 间阈值或在公有数据集上测试精度达到要求等条件的时候停止。
可选地,可以增加对于每个用户设备对整体学习训练过程的贡献的衡量,例如,可以 通过统计某个用户设备提供的目标虚拟数据的数量在所有目标虚拟数据的总量中的占比, 来衡量每个用户设备的贡献度,占比越高,贡献度越大。又例如,可以通过统计某个用户 设备提供的目标虚拟数据在所有该用户设备的所有虚拟数据中的占比来衡量该用户设备 的贡献度。又例如,可以综合考虑上述两种因素确定用户设备的贡献度。又例如,还可以通过对于用户设备提供的本地模型的质量的衡量和/或对于用户设备提供的数据生成器的质量的衡量来评价用户设备的贡献度。
例如,可以根据第一目标虚拟数据的数据量和第二目标虚拟数据的数据量来确定第一 用户设备的贡献度和/或确定第二用户设备的贡献度。
又例如,可以根据第一目标虚拟数据的数据量和第一虚拟数据的数据量来确定第一用 户设备的贡献度,可以根据第二目标虚拟数据的数据量和第二虚拟数据的数据量来确定第 二用户设备的贡献度,等等,在此不再一一列举。
可选地,可以使得用户设备的贡献度满足下面的公式。
Figure BDA0002549631890000321
上述式子可以用于表示编号为i的用户设备的贡献度,其中,i和j均为用户设备的编 号;N表示参与学习的用户设备的总量;Ci表示用户设备i的贡献度的量化值;“·”表示乘法运算符;W表示归一化系数,用于控制Ci的量级范围;Ti表示用户设备i的虚拟数据 中,被选择用于更新其它本地模型的数据数量,也可以理解为,Ti表示上文所述目标虚拟 数据中对应于用户设备i的有效的虚拟数据,因此,Tj表示上文所述目标虚拟数据中对应 于用户设备j的有效的虚拟数据;Mi表示用户设备i的数据生成器所生成的虚拟数据的总 量,Mj表示用户设备j的数据生成器所生成的虚拟数据的总量;Ui表示用户设备i的所 接收的对应于其他用户设备的虚拟数据的数据量,Uj表示用户设备j的所接收的对应于其 他用户设备的虚拟数据的数据量。下面对上述三个分式进行解释,为了方便描述将三个分 数从左到右分别编号为分式1、分式2和分式3,也就是说,分式1为
Figure BDA0002549631890000322
分式2为
Figure BDA0002549631890000323
分式3为
Figure BDA0002549631890000324
分式1用于表示用户设备i的有效的虚拟数据在所有目标虚拟数据(即所有用户设备 所产生的所有目标虚拟数据)所占的比例,也可以理解为,用户设备i的数据生成器所生成的虚拟数据中被选中并参与了更新其他本地模型的虚拟数据在所有参与了更新本地模型的虚拟数据中所占的比例。应理解,分式1也可以存在其他方式,例如在前面增加一个 固定系数等等,只要能够表示出某个用户设备的有效的虚拟数据在所有的目标虚拟数据中的比重(占比、比例)即可。
分式2用于表示用户设备i的有效的虚拟数据在其所产生的所有虚拟数据中所占的比 例,也可以理解为,用户设备i的数据生成器产生的虚拟数据的有效率。
分式3用于表示用户设备i所接收的来自于其他用户设备的目标虚拟数据的数据量在 用户设备i的本地模型被更新的时候所采用的所有数据量中的占比的倒数,也就是说,衡 量用户设备i从其他用户设备那所获得“贡献”,相当于用户设备i从其他用户设备获得的 “贡献”作为一个负影响值出现。
从上面的解释可以看出,分式1和分式2的目的是为了衡量用户设备i对于其他用户 设备或所有用户设备的贡献,而分式3的目的则是为了衡量用户设备i从其他用户设备那 得到的“贡献”,通过综合自身对整个学习的贡献和自身从整个学习中获得的“收益”来评价 用户设备的贡献度。
需要说明的是,上述式子只是一种示例,本领域技术人员不经过创造性劳动就可以对 该式子进行一些改造,依然能够达到相同或相似的技术效果,例如,上述式子中,j可以 是取1至N的所有值,还可以是设置为取1至N中不同于i的值;又例如,上述式子可以 是几个分式相乘,但也可以采用其他的运算方式,例如加法;又例如,上述式子也可以不 进行和归一化处理,等等,在此不再一一列举。
可选地,在对用户设备的贡献度进行量化后,还可以对用户设备的贡献度进行排名, 还可以使得用户设备知晓自身的模型和数据的质量和/或在所有参与学习的用户设备中的 贡献度排名。可选地,还可以设置贡献度阈值,对贡献度较大的用户设备进行奖励,或者 对贡献度较小的用户设备进行“劝退”或“禁入”或收费等。劝退可以理解为通知已经加入的 用户设备退出该联邦学习;禁入可以理解为包括:禁止还未加入的用户设备加入、禁止已 经加入的用户设备后续继续加入;收费可以理解为,根据不同的贡献度设置不同用户设备 加入联邦学习时要交的费用,例如可以使得贡献度较高的收费额度低或不收费或给与奖 励,而对于贡献度较低的用户设备收取较高额度的费用或不给与奖励。
通过上面对于用户设备贡献度的评价,能够利于确定出贡献度较高的用户,还能用于 提高参与学习的用户设备的质量。
可选地,为了提高用户参与学习的积极性,用户设备可以发起请求,自主请求想要加 入的联邦学习系统。而为了提高参与学习的用户设备的质量,还可以要求用户设备在请求 加入的时候上报自身的一些参数,从而判断是否同意该用户设备加入,也就是说,对希望 加入的用户设备进行一定的筛选。
可选地,用户设备可以向云端设备发送请求信息,请求加入联邦学习,该请求信息可 以包括请求加入的指示信息和本地数据的数据类型,该请求信息还可以包括以下至少一 种:本地数据的数据量、数据生成器采用的方法、数据生成器的结构、数据生成器的准确性、本地模型的准确性等。
本地数据的数据量是指用户设备本身能够获取的真实数据的量。可以理解为,当本地 真实数据越充足的时候,能够训练出的模型和/或数据生成器越准确。
数据类型如上文所述可以是指数据的类别形式,例如图像、语音等,不再重复介绍。 可以理解为,当联邦学习涉及的是对于某一种或多种数据类型的处理的时候,不需要收集 其他数据类型的数据,例如,当进行图像处理的时候,语音数据可能就不需要,又例如当 执行合成语音的联邦学习的时候,语音数据和文本数据可能需要,但图像数据可能就不需 要。
需要说明的是,在请求信息中加入数据生成器采用的方法、数据生成器的结构均是为 了使得不同用户设备之间能够共用数据,也就是说,参与学习的数据生成器所生成的虚拟 数据能够具有一定的结构一致性。
数据生成器的准确性的是指数据生成器所生成的虚拟数据的衡量,例如可以根据虚拟 数据对本地模型上的表现进行确定,相当于对于数据生成器能够生成的虚拟数据的质量的 评价。
本地模型的准确性是指本地模型在本地用户设备上使用时的表现,可以理解为,优先 选择质量较高的本地模型。如果本地模型在本地用户设备上都表现较差,例如分类错误率 高、置信度低等,那假设让其加入学习,很难带来正面的学习效果,反而可能降低联邦学 习的质量。
需要说明的是,对于获取其他用户知识(即从其他用户设备获取目标虚拟数据)的一 方(例如第一用户设备)来说,只需要提供本地模型即可,所以数据生成器采用的方法、数据生成器的结构都可以不提供,但对于为其他用户设备提供虚拟数据的一方(例如第二用户设备)来说,数据生成器采用的方法、数据生成器的结构都需要提供。
应理解,在本申请实施例中,本地模型的结构可以不一致,所以请求信息中也不需要 考虑本地模型的结构,当然,如果强行引入该参数信息也不会影响本申请实施例的技术效 果。
可选地,云端设备可以根据接收到的来自于用户设备的请求信息确定是否准许用户设 备加入。例如,可以接收至少一个用户设备的请求信息,请求信息可以包括请求加入的指 示信息和以下参数信息:本地数据的数据类型、数据生成器采用的方法和数据生成器的结 构;根据该请求信息,从上述至少一个用户设备(即请求加入的用户设备)中确定出允许 加入的用户设备,允许加入的用户设备中可以包括上述第一用户设备和/或上述第二用户 设备。
也就是说,根据请求信息判断用户设备能不能够提供有用的数据,如果不能够提供则 不许需加入。该方法是对希望参与学习的所有用户设备的宏观筛选,但并不是立刻确定第 一用户设备和第二用户设备。从上面描述可以看出,第一用户设备是可以不共享自己的数 据生成器的。相当于在请求加入的时候只允许能够贡献数据的加入,但当加入之后,这些 参与学习的用户设备中在一段时间内可以只作为贡献知识的一方,例如只提供本地模型和 数据生成器但不更新自己模型,也可以只作为获得其他用户设备的知识的一方,例如只提 供本地模型和利用其他用户设备的虚拟数据来更新自己的本地模型。
可选地,该请求信息还可以包括以下至少一种参数信息:本地数据的数据量、数据生 成器的准确性、本地模型的准确性。
可选地,可以根据请求信息中的一种或多种参数来确定,例如可以设置某一项参数的 预设范围,当用户设备的该参数在预设范围内时允许加入,或者也可以设置成当用户设备 的该参数在预设范围内时不允许加入,还可以将上述预设范围替换为阈值,根据用户设备 的某个参数与该参数的阈值进行比较,从而确定允许加入或不允许加入,也就是说,允许 加入条件可以根据实际情况进行不同的设置,在此不再重复介绍。举例说明,可以设置对 于本地数据的数据量的阈值,当根据用户设备的请求信息确定该用户设备的本地数据的数 据量大于或等于该阈值时,允许该用户设备加入。
需要说明的是,上述是以根据单个参数的设置允许加入条件(预设条件),也可以根 据多个参数设置允许加入条件。例如可以综合判断数据类型、本地数据的数据量、本地模 型的准确性,只有当数据类型符合、且数据数量足够、且本地模型的准确性好的时候才允 许加入。
简而言之,可以在当请求信息满足预设条件的时候,允许发送请求信息的用户设备加 入。可选地,云端设备可以在确定允许加入之后向用户设备发送允许加入的指示信息。
可选地云端设备在确定不允许加入之后,也可以通知用户设备。
可选地,用户设备在接收到允许加入的指示信息之后可以向云端设备发送本地模型和 /或数据生成器。
上述实施例中,针对用户设备之间的差异性所带来的联邦学习的困难,利用虚拟数据 作为传输载体,既保证了数据隐私和安全,又实现了数据知识的共享,利用虚拟数据在本 地模型上的表现来确定对于本地模型有效的虚拟数据,以及利用目标虚拟数据来更新本地 模型。该方法对于本地模型的结构不存在要求,而是通过选择出能够对本地模型有效的虚 拟数据,来实现数据知识的共享。本地模型没有结构和采用的建模方法的限制,所以用户 设备可以根据自身的需求和性能限制来训练得到本地模型,尤其对于性能较好的用户设备 不需要为了迁就性能较差的用户设备而使用低质量的模型,充分利用了资源和保证了本地 模型的高质量。此外,与传统的参数服务器架构相比,本申请实施例的方案能够有效降低 通信开销,无论是在用户设备侧更新模型,还是在云端设备侧更新模型,都能够有效降低 通信开销。经实验测试表明,在其他条件一致的情况下,当每个模型被更新相同轮次的时 候,本申请实施例的方案的通信开销可以降低到参数服务器架构情况下的一半以下。
应理解,图8所示各步骤的执行顺序和每个步骤具体采用所提供的哪种方法均不存在 限定,只要是利用上述所提供的任意实现方法,符合逻辑地组合在一起,使得模型结构不 同的用户设备之间也能够实现联邦学习即可。
图9是本申请实施例的数据传输的示意性框图。如图9所示,用户设备可以将得到的 本地模型和数据生成器进行差分隐私的处理,之后可以对处理后的二者数据与请求信息一 起进行加密,加密之后发送给云端设备,云端设备在接收到加密了的上述数据之后,进行 解密,得到本地模型、数据生成器、请求信息。
需要说明的是,在一次传输中可以包括传输本地模型、数据生成器、请求信息这三项 中的一项或多项。与之对应,云端设备在将接收到的数据进行解密后,可能会得到传输本 地模型、数据生成器、请求信息这三项中的一项或多项数据。
可选地,图9所示各步骤可以对应于图8所示步骤802、步骤803,还可以对应于图 8所述加密处理等过程。
上述实施例中,是用户设备和云端设备配合实现本申请实施例所提供的联邦学习的方 法,但应理解,也可以不存在云端设备,也就是说可以理解为不存在一个所有用户都信任 的云端设备,或者云端设备的运算能力有限等,联邦学习由用户设备之间来实现,下面对 该种方式进行介绍。
在这种情况下,可以把每个用户设备都当作是云端设备,因此,上文中用户设备到云 端设备的数据传输(上传本地模型和数据生成器)就可以替换为向其他所有用户设备广播。 以及在用户设备上执行生成虚拟数据、确定目标虚拟数据、更新模型等操作,下面结合图 10进行介绍,图10是本申请实施例的基于联邦学习的数据处理方法的示意性流程图,下面对图10各个步骤进行介绍。
图10是第二种实现方式即没有云端设备的情况,在这个过程中只有用户设备之间进 行本地模型和数据生成器的交互,但应理解一些步骤的实现上与第一种实现方式的相同或 相似,所以对于部分内容进行了适当省略,可以参考上文内容,例如图8、图9的内容。
1001、广播第一用户设备的本地模型和/或数据生成器。
该本地模型是根据第一用户设备的真实数据(本地数据)训练得到的,该数据生成器 所生成的虚拟数据能够用于替代真实数据对本地模型进行训练。第一用户设备是指参与学 习的某个用户设备。
在图10中,为了便于理解,第一用户设备可以理解为作为云端服务器功能的设备,也可以理解为获取其他用户设备的虚拟数据的设备。第一用户设备只需要生成本地模型即可,而数据生成器可以不生成。还用理解,在图10中步骤1001可以不执行,也就是说, 第一用户设备只接收其他用户设备的本地模型和/或数据生成器,但不发送自己的。
可选地,可以采用上文所述任意一种方法获得本地模型、数据生成器。
应理解,所有参与学习的用户设备某个用户设备都可以向参与学习的用户设备广播自 己的本地模型和数据生成器。
1002、接收来自于其他用户设备的至少一个本地模型和至少一个数据生成器。
应理解,其他用户设备是指第一用户设备之外的其他参与学习的用户设备。其他用户 设备例如可以是第二用户设备,接收来自于第二用户设备的第二本地模型和第二数据生成 器。
在图10中,为了便于理解,第二用户设备可以理解为作为提供虚拟数据的设备,也就是说为第一用户设备和/或其他用户设备提供虚拟数据的设备,所以第二用户设备需要提供第二数据生成器用于生成第二虚拟数据,还需要提供第二本地模型,用于验证第二虚拟数据的有效性。
1003、选取接收到的至少一个数据生成器中的某个数据生成器,用于生成虚拟数据。
例如可以选取第二用户设备的第二数据生成器,用于生成第二虚拟数据。
需要说明的是,由于在本实施例中不需要有中心(云端设备)来集中生成虚拟数据等 操作,所以只需要利用接受到的数据生成器生成虚拟数据,以及验证虚拟数据是否有效即 可。
1004、确定目标虚拟数据。
可选地,可以利用上文所提供的方法,从步骤1003所生成的虚拟数据中确定出目标 虚拟数据。例如,可以从第二虚拟数据中确定出对第一本地模型有效的虚拟数据。
需要说明的是,在图10所示方法中,只需要验证虚拟数据是否对当前的用户设备有 效,而不需要确定是否对所有用户设备有效。当采用多方多类边界判据的时候,即利用上 面的式子(3)进行判断,相当于用户设备的编号i有两个取值。而当采用逐条验证的方式的时候,即相当于选取单条虚拟数据输入到当前的本地模型和虚拟数据自身的本地模型,根据得到的结果推断是否有效。举例说明,假设当前的本地模型对应的用户设备为第一用户设备,第一用户设备包括第一本地模型,待验证的某条虚拟数据是来自于第二用户设备的数据生成器的虚拟数据,第二用户设备包括第二本地模型和第二数据生成器,也就是说,该条虚拟数据是第二数据生成器生成的,将该条虚拟数据分别输入到第一本地模型和第二本地模型,根据得到结果的差异性来确定该条虚拟数据对第一本地模型是否有效,当认定为有效时,将该条虚拟数据归为目标虚拟数据。
1005、将目标虚拟数据用于更新本地模型。
可选地,可以利用上文所述方法,利用部分或全部的目标虚拟数据进行本地模型更新, 还可以利用部分或全部的目标虚拟数据以及部分或全部本地数据(真实数据)进行本地模 型的更新,过程可参考上文描述。
例如可以利用第二用户设备所对应的目标虚拟数据来更新第一本地模型。
1006、广播更新后的本地模型。
可选地,可以向参与学习的所有用户设备广播更新后的本地模型。
在图10所示实施例中,难以保证训练过程中每个用户设备对于训练的贡献的真实度, 所以不需要对贡献度进行量化,也不需要进行排名等操作。该实施例可以理解为扩充第一 用户设备的训练数据,从其他用户设备中获取数据知识,并且把自己的数据知识贡献给其 他用户设备使用。与上文所述实施例的方法不同的是,虽然都能够实现在保证隐私和安全 的情况下的数据知识的交换,但上文所述实施例处理能力取决于用户设备和云端设备的综 合,而图10所述实施例处理能力取决于用户设备本身的配置和性能。
需要说明的是,在本申请实施例所述方法中,相当于能够在保证隐私的情况下,更好 地实现数据知识的共享。假设当前用户设备为第一用户设备,则对于第一用户设备来说, 只需要有本地模型即可,这样就已经能够利用本地模型来验证来自于其他用户设备的虚拟 数据的有效性,也就是说,第一用户设备可以只接收其他用户设备广播的本地模型和数据 生成器而自己不广播自己的本地模型和数据生成器(即不需要执行步骤1001),也不需 要训练数据生成器。但是,对于联邦学习来说,这明显会降低用户加入到联邦学习的积极 性,相当于存在一些用户只从参加联邦学习的其他设备索取新的知识,却不贡献自己的数 据知识,如果大量存在这样的只获取他人知识却不贡献自己知识的用户设备,会导致没有 用户设备再愿意加入到学习中,所以通常情况下,还是希望所有用户设备能够公平地参与 到联邦学习中,贡献自己的知识的同时从其他参与者处获得额外的知识。
上文结合附图对本申请实施例的联邦学习方法进行了详细的介绍,本申请实施例的联 邦学习方法可以用于图像处理(例如图像分类)、语音处理(例如语音合成)、文字处理(例如语义提取)、序列数据处理(例如时序通信数据处理)等,下面结合附图对本申请 是市里的联邦学习的装置进行介绍。
图11是本申请实施例的基于联邦学习的数据处理装置的示意性框图。图11所示的装 置2000包括收发单元2001和处理单元2002。
收发单元2001和处理单元2002可以用于执行本申请实施例的方法中用户设备执行的 步骤。
例如,处理单元2002可以执行图8中的步骤802,收发单元2001可以用于执行图8中的步骤802和步骤805。收发单元2001和处理单元2002可以用于执行图10所示各步 骤。
可选地,收发单元2001可以分为获取单元和发送单元。
在第一种实现方式中,获取单元可以用于获取来自于云端设备的数据,也可以用于获 取本地模型、数据生成器等。发送单元可以用于发送本地模型和/或数据生成器给云端设 备,还可以用于发送请求信息。
在第二种实现方式中,获取单元不需要向云端设备发送数据,也不需要从云端设备接 收数据,获取单元可以获取本地数据,可以利用本地数据训练得到本地模型和/或数据生 成器,还可以从存储装置中读取数据或模型。发送单元可以向其他用户设备广播本地模型 和数据生成器。
上述收发单元2001也可以集成在处理单元2002中,获取单元可以是收发单元中的部 分,也可以看作是处理单元中的部分,不会影响本申请方案的效果。
对于第一种实现方式,图11所示装置2000可以用于执行图8所示方法中用户设备需 要做的操作,但对于第二种实现方式,则图11所示装置2000可以用于执行图10所示方法中的所有操作。
图12是本申请实施例提供的基于联邦学习的数据处理装置的硬件结构示意图。图12 所示的装置3000包括存储器3001、处理器3002、通信接口3003以及总线3004。其中, 存储器3001、处理器3002、通信接口3003通过总线3004实现彼此之间的通信连接。
存储器3001可以是只读存储器(read only memory,ROM),静态存储设备,动态存储设备或者随机存取存储器(random access memory,RAM)。存储器3001可以存储程序, 当存储器3001中存储的程序被处理器3002执行时,处理器3002用于执行本申请实施例 的方法中用户设备执行的步骤。
处理器3002可以采用通用的中央处理器(central processing unit,CPU),微处理器, 应用专用集成电路(application specific integrated circuit,ASIC),图形处理器(graphics processing unit,GPU)或者一个或多个集成电路,用于执行相关程序,以实现本申请实施 例的方法中用户设备执行的步骤。
处理器3002还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的神经网络的构建方法的各个步骤可以通过处理器3002中的硬件的集成逻辑电路或者软件形式的指令完成。
上述处理器3002还可以是通用处理器、数字信号处理器(digital signalprocessing, DSP)、专用集成电路(ASIC)、现成可编程门阵列(field programmable gatearray,FPGA) 或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执 行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该 处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体 现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可 以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、 寄存器等本领域成熟的存储介质中。该存储介质位于存储器3001,处理器3002读取存储 器3001中的信息,结合其硬件完成本数据处理装置中包括的单元所需执行的功能,或者 执行本申请方法实施例的方法中用户设备执行的步骤。
通信接口3003使用例如但不限于收发器一类的收发装置,来实现装置3000与其他设 备或通信网络之间的通信。例如,可以通过通信接口3003获取目标虚拟数据或更新后的本地模型。
总线3004可包括在装置3000各个部件(例如,存储器3001、处理器3002、通信接 口3003)之间传送信息的通路。
图13是本申请实施例的基于联邦学习的数据处理装置的示意性框图。图13所示的装 置4000包括收发单元4001和处理单元4002。
收发单元4001和处理单元4002可以用于执行本申请实施例的方法中云端设备执行的 步骤。
例如,处理单元4002可以执行图8中的步骤803至805,收发单元4001可以用于执行图8中的步骤806。
可选地,收发单元4001还可以分为获取单元和发送单元,获取单元用于执行从用户 设备处获取数据或信息的操作,发送单元用于执行向用户设备发送数据或信息的操作。
图14是本申请实施例的基于联邦学习的数据处理装置的硬件结构示意图。图14所示 的装置5000包括存储器5001、处理器5002、通信接口5003以及总线5004。其中,存储 器5001、处理器5002、通信接口5003通过总线5004实现彼此之间的通信连接。
存储器5001可以是ROM、静态存储设备,动态存储设备或者RAM。存储器5001可 以存储程序,当存储器5001中存储的程序被处理器5002执行时,处理器5002用于执行 本申请实施例的方法中云端设备执行的步骤。
处理器5002可以采用通用的CPU、微处理器、ASIC、GPU或者一个或多个集成电路,用于执行相关程序,以实现本申请实施例的方法中云端设备执行的步骤。
处理器5002还可以是一种集成电路芯片,具有信号的处理能力。在实现过程中,本申请的神经网络的构建方法的各个步骤可以通过处理器5002中的硬件的集成逻辑电路或者软件形式的指令完成。
上述处理器5002还可以是通用处理器、DSP、ASIC、FPGA或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。可以实现或者执行本申请实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者该处理器也可以是任何常规的处理器等。结合本申请实施例所公开的方法的步骤可以直接体现为硬件处理器执行完成,或者用处理器中的硬件及软件模块组合执行完成。软件模块可以位于随机存储器,闪存、只读存储器,可编程只读存储器或者电可擦写可编程存储器、寄存器等本领域成熟的存储介质中。该存储介质位于存储器5001,处理器5002读取存储器5001中的信息,结 合其硬件完成本数据处理装置中包括的单元所需执行的功能,或者执行本申请方法实施例 的方法中云端设备执行的步骤。
通信接口5003使用例如但不限于收发器一类的收发装置,来实现装置5000与其他设 备或通信网络之间的通信。例如,可以通过通信接口5003获取本地模型和数据生成器。
总线5004可包括在装置5000各个部件(例如,存储器5001、处理器5002、通信接 口5003)之间传送信息的通路。
应注意,尽管上述装置3000、装置5000仅仅示出了存储器、处理器、通信接口,但是在具体实现过程中,本领域的技术人员应当理解,装置3000、装置5000还可以包括实 现正常运行所必须的其他器件。同时,根据具体需要,本领域的技术人员应当理解,装置3000、装置5000还可包括实现其他附加功能的硬件器件。此外,本领域的技术人员应当 理解,装置3000、装置5000也可仅仅包括实现本申请实施例所必须的器件,而不必包括 图12、图14中所示的全部器件。
本领域普通技术人员可以意识到,结合本文中所公开的实施例描述的各示例的单元及 算法步骤,能够以电子硬件、或者计算机软件和电子硬件的结合来实现。这些功能究竟以 硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可 以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本 申请的范围。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的系统、装 置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本申请所提供的几个实施例中,应该理解到,所揭露的系统、装置和方法,可以通 过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显 示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的 部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络 单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各 个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。
所述功能如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储 在一个计算机可读取存储介质中。基于这样的理解,本申请的技术方案本质上或者说对现 有技术做出贡献的部分或者该技术方案的部分可以以软件产品的形式体现出来,该计算机 软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计 算机,服务器,或者网络设备等)执行本申请各个实施例所述方法的全部或部分步骤。而 前述的存储介质包括:U盘、移动硬盘、ROM、RAM、磁碟或者光盘等各种可以存储程 序代码的介质。
以上所述,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何熟 悉本技术领域的技术人员在本申请揭露的技术范围内,可轻易想到变化或替换,都应涵盖 在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。

Claims (58)

1.一种基于联邦学习的数据处理方法,其特征在于,包括:
获取第一用户设备的第一本地模型,所述第一本地模型是利用第一本地数据训练得到的,所述第一本地数据是所述第一用户设备的真实数据;
获取来自于第二用户设备的第二本地模型和第二数据生成器,所述第二本地模型和第二数据生成器是利用第二本地数据训练得到的,所述第二本地数据是所述第二用户设备的真实数据;
利用所述第二数据生成器生成第二虚拟数据;
从所述第二虚拟数据中选取第二目标虚拟数据,所述第二目标虚拟数据用于更新所述第一本地模型。
2.如权利要求1所述的方法,其特征在于,所述方法还包括:
将所述第二目标虚拟数据发送给所述第一用户设备,以使得所述第一用户设备根据所述第二目标虚拟数据更新所述第一本地模型。
3.如权利要求1所述的方法,其特征在于,所述方法还包括:
利用所述第二目标虚拟数据更新所述第一本地模型;
将更新后的所述第一本地模型发送给所述第一用户设备。
4.如权利要求1至3中任一项所述的方法,其特征在于,所述方法还包括:
接收来自于至少一个用户设备的请求信息,所述请求信息包括请求加入的指示信息和以下参数信息:本地数据的数据类型、数据生成器采用的方法和数据生成器的结构;
根据所述请求信息,从所述至少一个用户设备中选取出允许加入的用户设备,所述允许加入的用户设备包括所述第一用户设备和/或所述第二用户设备。
5.如权利要求4所述的方法,其特征在于,所述请求信息还包括以下至少一种参数信息:本地数据的数据量、数据生成器的准确性、本地模型的准确性。
6.如权利要求4或5所述的方法,其特征在于,所述根据所述请求信息,从所述至少一个用户设备中选取出允许加入的用户设备,包括:
将所述至少一个用户设备中所述参数信息与第一目标参数信息一致的用户设备确定为所述允许加入的用户设备。
7.如权利要求1至6中任一项所述的方法,其特征在于,所述方法还包括:
获取来自于所述第一用户设备的第一数据生成器,所述第一数据生成器是利用所述第一本地数据训练得到的;
利用所述第一数据生成器生成第一虚拟数据;
从所述第一虚拟数据中选取第一目标虚拟数据,所述第一目标虚拟数据用于更新所述第二本地模型。
8.如权利要求7所述的方法,其特征在于,所述方法还包括:
根据所述第一目标虚拟数据的数据量和所述第一虚拟数据的数据量,得到所述第一用户设备的贡献度。
9.如权利要求1至8中任一项所述的方法,其特征在于,所述方法还包括:
根据所述第二目标虚拟数据的数据量和所述第二虚拟数据的数据量,得到所述第二用户设备的贡献度。
10.如权利要求7至9中任一项所述的方法,其特征在于,所述方法还包括:
根据所述第一目标虚拟数据的数据量和所述第二目标虚拟数据的数据量,确定所述第一用户设备的贡献度。
11.如权利要求7至10中任一项所述的方法,其特征在于,所述方法还包括:
根据所述第一目标虚拟数据的数据量和所述第二目标虚拟数据的数据量,确定所述第二用户设备的贡献度。
12.如权利要求1所述的方法,其特征在于,所述第一用户设备根据所述第二目标虚拟数据更新所述第一本地模型。
13.如权利要求1或12所述的方法,其特征在于,所述利用所述第二数据生成器生成第二虚拟数据,包括:
接收来自于所述第二用户设备的参数信息,所述参数信息包括:所述第二本地数据的数据类型、所述第二数据生成器采用的方法和所述第二数据生成器的结构;
当所述参数信息与第二目标参数信息一致时,生成所述第二虚拟数据。
14.如权利要求13所述的方法,其特征在于,所述参数信息还包括以下至少一种:所述第二本地数据的数据量、所述第二数据生成器的准确性、所述第二本地模型的准确性。
15.如权利要求1、12至14中任一项所述的方法,其特征在于,所述方法还包括:
所述第一用户设备利用所述第一本地数据训练得到第一数据生成器;
广播所述第一数据生成器和所述第一本地模型。
16.如权利要求1至15中任一项所述的方法,其特征在于,所述从所述第二虚拟数据中选取第二目标虚拟数据,包括:
获取第一处理结果和第二处理结果,所述第一处理结果是将所述第二虚拟数据输入到所述第一本地模型得到的处理结果,所述第二处理结果是将所述第二虚拟数据输入到所述第二本地模型得到的处理结果;
根据所述第一处理结果和所述第二处理结果,从所述第二虚拟数据中选取出所述第二目标虚拟数据。
17.如权利要求16所述的方法,其特征在于,所述根据第一处理结果和第二处理结果,从所述第二虚拟数据中选取出所述第二目标虚拟数据,包括:
根据所述第一处理结果和所述第二处理结果的一致性来确定所述第二目标虚拟数据。
18.如权利要求16或17所述的方法,其特征在于,所述根据第一处理结果和第二处理结果,从所述第二虚拟数据中选取出所述第二目标虚拟数据,包括:
根据所述第一处理结果的置信度与所述第二处理结果的置信度之间的差值来确定所述第二目标虚拟数据。
19.如权利要求1至18中任一项所述的方法,其特征在于,所述第二本地数据与所述第一本地数据的数据类型一致。
20.如权利要求1至19中任一项所述的方法,其特征在于,所述第一用户设备为第一基站,所述第二用户设备为第二基站;
所述第一本地数据为第一用户的真实用户数据,所述第一用户为所述第一基站提供服务的用户,所述第二本地数据为第二用户的真实用户数据,所述第二用户为所述第二基站提供服务的用户;
所述第一本地模型用于预测所述第一用户即将访问的数据,以便于所述第一基站为所述第一用户预加载或预存储所述第一用户即将访问的数据,所述第二本地模型用于预测所述第二用户即将访问的数据,以便于所述第二基站为所述第二用户预加载或预存储所述第二用户即将访问的数据。
21.一种基于联邦学习的数据处理方法,其特征在于,包括:
利用第一本地数据训练获得第一本地模型,所述第一本地数据是第一用户设备获取的真实数据;
向云端设备发送所述第一本地模型;
接收来自于所述云端设备的第二目标虚拟数据或更新后的所述第一本地模型,所述第二目标虚拟数据是从第二虚拟数据中选取的用于更新所述第一本地模型的虚拟数据,所述第二虚拟数据是利用第二用户设备的第二数据生成器生成的,所述更新后的第一本地模型是所述云端设备利用所述第二目标虚拟数据对所述第一本地模型进行更新得到的。
22.如权利要求21所述的方法,其特征在于,所述第二用户设备是根据第二请求信息确定的,所述第二请求信息包括所述第二用户设备请求加入的指示信息、所述第二用户设备的第二本地数据的数据类型、所述第二数据生成器采用的方法、所述第二数据生成器的结构。
23.如权利要求22所述的方法,其特征在于,所述第二请求信息还包括以下至少一种参数信息:所述第二本地数据的数据量、所述第二用户设备的第二本地模型的准确性。
24.如权利要求21至23中任一项所述的方法,其特征在于,所述方法还包括:
利用所述第一本地数据训练得到第一数据生成器;
向所述云端设备发送所述第一数据生成器。
25.如权利要求24所述的方法,其特征在于,所述方法还包括:
向所述云端设备发送第一请求信息,所述第一请求信息包括所述第一用户设备请求加入的指示信息、所述第一本地数据的数据类型、所述第一用户设备的第一数据生成器采用的方法、所述第一数据生成器的结构;
接收来自于所述云端设备的允许加入的指示信息,所述允许加入的指示信息是所述云端设备根据第一请求信息确定的,所述第一请求信息包括所述第一用户设备请求加入的指示信息、所述第一本地数据的数据类型;
根据所述允许加入的指示信息,向所述云端设备发送所述第一本地模型或所述第一数据生成器。
26.如权利要求25所述的方法,其特征在于,所述第一请求信息还包括以下至少一种参数信息:所述第一本地数据的数据量、所述第一本地模型的准确性。
27.如权利要求21至26中任一项所述的方法,其特征在于,所述第二虚拟数据与所述第一本地数据的数据类型一致。
28.如权利要求21至27中任一项所述的方法,其特征在于,所述第一用户设备为第一基站,所述第二用户设备为第二基站;
所述第一本地数据为第一用户的真实用户数据,所述第一用户为所述第一基站提供服务的用户,所述第二虚拟数据为第二用户的虚拟用户数据,所述第二用户为所述第二基站提供服务的用户;
所述第一本地模型用于预测所述第一用户即将访问的数据,以便于所述第一基站为所述第一用户预加载或预存储所述第一用户即将访问的数据。
29.一种基于联邦学习的数据处理装置,其特征在于,包括:
获取单元,用于获取第一用户设备的第一本地模型,所述第一本地模型是利用第一本地数据训练得到的,所述第一本地数据是所述第一用户设备的真实数据;
所述获取单元,还用于获取来自于第二用户设备的第二本地模型和第二数据生成器,所述第二本地模型和第二数据生成器是利用第二本地数据训练得到的,所述第二本地数据是所述第二用户设备的真实数据;
处理单元,用于利用所述第二数据生成器生成第二虚拟数据;
所述处理单元,还用于从所述第二虚拟数据中选取第二目标虚拟数据,所述第二目标虚拟数据用于更新所述第一本地模型。
30.如权利要求29所述的装置,其特征在于,所述装置还包括:
发送单元,用于将所述第二目标虚拟数据发送给所述第一用户设备,以使得所述第一用户设备根据所述第二目标虚拟数据更新所述第一本地模型。
31.如权利要求29所述的装置,其特征在于,所述处理单元还用于:
利用所述第二目标虚拟数据更新所述第一本地模型;
所述装置还包括:
发送单元,用于将更新后的所述第一本地模型发送给所述第一用户设备。
32.如权利要求29至31中任一项所述的装置,其特征在于,所述获取单元还用于接收来自于至少一个用户设备的请求信息,所述请求信息包括请求加入的指示信息和以下参数信息:本地数据的数据类型、数据生成器采用的方法和数据生成器的结构;
所述处理单元还用于根据所述请求信息从所述至少一个用户设备中选取出允许加入的用户设备,所述允许加入的用户设备包括所述第一用户设备和/或所述第二用户设备。
33.如权利要求32所述的装置,其特征在于,所述请求信息还包括以下至少一种参数信息:本地数据的数据量、数据生成器的准确性、本地模型的准确性。
34.如权利要求32或33所述的装置,其特征在于,所述处理单元具体用于:将所述至少一个用户设备中所述参数信息与第一目标参数信息一致的用户设备确定为所述允许加入的用户设备。
35.如权利要求29至34中任一项所述的装置,其特征在于,所述获取单元还用于获取来自于所述第一用户设备的第一数据生成器,所述第一数据生成器是利用所述第一本地数据训练得到的;
所述处理单元还用于:
利用所述第一数据生成器生成第一虚拟数据;
从所述第一虚拟数据中选取第一目标虚拟数据,所述第一目标虚拟数据用于更新所述第二本地模型。
36.如权利要求35所述的装置,其特征在于,所述处理单元还用于:
根据所述第一目标虚拟数据的数据量和所述第一虚拟数据的数据量,得到所述第一用户设备的贡献度。
37.如权利要求29至36中任一项所述的装置,其特征在于,所述处理单元还用于:
根据所述第二目标虚拟数据的数据量和所述第二虚拟数据的数据量,得到所述第二用户设备的贡献度。
38.如权利要求35至37中任一项所述的装置,其特征在于,所述处理单元还用于:
根据所述第一目标虚拟数据的数据量和所述第二目标虚拟数据的数据量,确定所述第一用户设备的贡献度。
39.如权利要求35至38中任一项所述的装置,其特征在于,所述处理单元还用于:
根据所述第一目标虚拟数据的数据量和所述第二目标虚拟数据的数据量,确定所述第二用户设备的贡献度。
40.如权利要求29所述的装置,其特征在于,所述处理单元还用于:
所述第一用户设备根据所述第二目标虚拟数据更新所述第一本地模型。
41.如权利要求29或40所述的装置,其特征在于,所述获取单元还用于接收来自于所述第二用户设备的参数信息,所述参数信息包括:所述第二本地数据的数据类型、所述第二数据生成器采用的方法和所述第二数据生成器的结构;
所述处理单元还用于:当所述参数信息与第二目标参数信息一致时,生成所述第二虚拟数据。
42.如权利要求41所述的装置,其特征在于,所述参数信息还包括以下至少一种:所述第二本地数据的数据量、所述第二数据生成器的准确性、所述第二本地模型的准确性。
43.如权利要求29、40至41中任一项所述的装置,其特征在于,所述处理单元还用于:
利用所述第一本地数据训练得到第一数据生成器;
广播所述第一数据生成器和所述第一本地模型。
44.如权利要求29、40至43中任一项所述的装置,其特征在于,所述处理单元具体用于:
获取第一处理结果和第二处理结果,所述第一处理结果是将所述第二虚拟数据输入到所述第一本地模型得到的处理结果,所述第二处理结果是将所述第二虚拟数据输入到所述第二本地模型得到的处理结果;
根据所述第一处理结果和所述第二处理结果,从所述第二虚拟数据中选取出所述第二目标虚拟数据。
45.如权利要求44所述的装置,其特征在于,所述处理单元具体用于:
根据所述第一处理结果和所述第二处理结果的一致性来确定所述第二目标虚拟数据。
46.如权利要求44或45所述的装置,其特征在于,所述处理单元具体用于:根据所述第一处理结果的置信度与所述第二处理结果的置信度之间的差值来确定所述第二目标虚拟数据。
47.如权利要求29至46中任一项所述的装置,其特征在于,所述第二本地数据与所述第一本地数据的数据类型一致。
48.如权利要求29至47中任一项所述的装置,其特征在于,所述第一用户设备为第一基站,所述第二用户设备为第二基站;
所述第一本地数据为第一用户的真实用户数据,所述第一用户为所述第一基站提供服务的用户,所述第二本地数据为第二用户的真实用户数据,所述第二用户为所述第二基站提供服务的用户;
所述第一本地模型用于预测所述第一用户即将访问的数据,以便于所述第一基站为所述第一用户预加载或预存储所述第一用户即将访问的数据,所述第二本地模型用于预测所述第二用户即将访问的数据,以便于所述第二基站为所述第二用户预加载或预存储所述第二用户即将访问的数据。
49.一种基于联邦学习的数据处理装置,其特征在于,包括:
处理单元,用于利用第一本地数据训练获得第一本地模型,所述第一本地数据是第一用户设备获取的真实数据;
收发单元,用于向云端设备发送所述第一本地模型;
所述收发单元还用于,接收来自于所述云端设备的第二目标虚拟数据或更新后的所述第一本地模型,所述第二目标虚拟数据是从第二虚拟数据中选取的用于更新所述第一本地模型的虚拟数据,所述第二虚拟数据是利用第二用户设备的第二数据生成器生成的,所述更新后的第一本地模型是所述云端设备利用所述第二目标虚拟数据对所述第一本地模型进行更新得到的。
50.如权利要求49所述的装置,其特征在于,所述第二用户设备是根据第二请求信息确定的,所述第二请求信息包括所述第二用户设备请求加入的指示信息、所述第二用户设备的第二本地数据的数据类型、所述第二数据生成器采用的装置、所述第二数据生成器的结构。
51.如权利要求50所述的装置,其特征在于,所述第二请求信息还包括以下至少一种参数信息:所述第二本地数据的数据量、所述第二用户设备的第二本地模型的准确性。
52.如权利要求49至51中任一项所述的装置,其特征在于,所述处理单元还用于,利用所述第一本地数据训练得到第一数据生成器;
所述收发单元还用于,向所述云端设备发送所述第一数据生成器。
53.如权利要求52所述的装置,其特征在于,所述收发单元还用于:
向所述云端设备发送第一请求信息,所述第一请求信息包括所述第一用户设备请求加入的指示信息、所述第一本地数据的数据类型、所述第一用户设备的第一数据生成器采用的装置、所述第一数据生成器的结构;
接收来自于所述云端设备的允许加入的指示信息,所述允许加入的指示信息是所述云端设备根据第一请求信息确定的,所述第一请求信息包括所述第一用户设备请求加入的指示信息、所述第一本地数据的数据类型;
根据所述允许加入的指示信息,向所述云端设备发送所述第一本地模型或所述第一数据生成器。
54.如权利要求53所述的装置,其特征在于,所述第一请求信息还包括以下至少一种参数信息:所述第一本地数据的数据量、所述第一本地模型的准确性。
55.如权利要求49至54中任一项所述的装置,其特征在于,所述第二虚拟数据与所述第一本地数据的数据类型一致。
56.如权利要求49至55中任一项所述的装置,其特征在于,所述第一用户设备为第一基站,所述第二用户设备为第二基站;
所述第一本地数据为第一用户的真实用户数据,所述第一用户为所述第一基站提供服务的用户,所述第二虚拟数据为第二用户的虚拟用户数据,所述第二用户为所述第二基站提供服务的用户;
所述第一本地模型用于预测所述第一用户即将访问的数据,以便于所述第一基站为所述第一用户预加载或预存储所述第一用户即将访问的数据。
57.一种计算机可读存储介质,其特征在于,所述计算机可读介质存储用于设备执行的程序代码,该程序代码包括用于执行如权利要求1至20或21至28中任一项所述的方法。
58.一种芯片,其特征在于,所述芯片包括处理器与数据接口,所述处理器通过所述数据接口读取存储器上存储的指令,以执行如权利要求1至20或21至28中任一项所述的方法。
CN202010571175.3A 2020-06-22 2020-06-22 基于联邦学习的数据处理方法和装置 Pending CN111985649A (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202010571175.3A CN111985649A (zh) 2020-06-22 2020-06-22 基于联邦学习的数据处理方法和装置

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202010571175.3A CN111985649A (zh) 2020-06-22 2020-06-22 基于联邦学习的数据处理方法和装置

Publications (1)

Publication Number Publication Date
CN111985649A true CN111985649A (zh) 2020-11-24

Family

ID=73441664

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202010571175.3A Pending CN111985649A (zh) 2020-06-22 2020-06-22 基于联邦学习的数据处理方法和装置

Country Status (1)

Country Link
CN (1) CN111985649A (zh)

Cited By (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN112700003A (zh) * 2020-12-25 2021-04-23 深圳前海微众银行股份有限公司 网络结构搜索方法、装置、设备、存储介质及程序产品
CN112819180A (zh) * 2021-01-26 2021-05-18 华中科技大学 一种基于联邦生成模型的多业务数据生成方法和装置
CN113205863A (zh) * 2021-06-04 2021-08-03 广西师范大学 基于蒸馏的半监督联邦学习的个性化模型的训练方法
CN113571169A (zh) * 2021-09-23 2021-10-29 杭州医康慧联科技股份有限公司 医疗数据管理方法、装置、电子设备和存储介质
CN113987255A (zh) * 2021-12-30 2022-01-28 南湖实验室 基于联邦学习与秘密分享的多源密文图像检索方法
CN114186694A (zh) * 2021-11-16 2022-03-15 浙江大学 一种高效安全,低通信的纵向联邦学习方法
CN114492846A (zh) * 2022-04-06 2022-05-13 天聚地合(苏州)科技股份有限公司 基于可信执行环境的跨域联邦学习方法及系统
CN114629821A (zh) * 2020-12-10 2022-06-14 新智云数据服务有限公司 物联网用量数据生成方法、装置、设备和介质
WO2022156594A1 (zh) * 2021-01-21 2022-07-28 腾讯科技(深圳)有限公司 联邦模型训练方法、装置、电子设备、计算机程序产品及计算机可读存储介质
CN114844653A (zh) * 2022-07-04 2022-08-02 湖南密码工程研究中心有限公司 基于联盟链的可信联邦学习方法
CN115442036A (zh) * 2022-09-02 2022-12-06 华南理工大学 基于拆分混洗的联邦学习方法、装置、设备和介质
JP2023011145A (ja) * 2021-07-12 2023-01-24 ヤフー株式会社 端末装置、情報処理方法及び情報処理プログラム
CN118250042A (zh) * 2024-03-21 2024-06-25 上海计算机软件技术开发中心 一种物联网入侵检测方法、系统及设备
WO2024212418A1 (zh) * 2023-04-13 2024-10-17 中电科大数据研究院有限公司 联邦学习系统、联邦学习方法和装置

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110598870A (zh) * 2019-09-02 2019-12-20 深圳前海微众银行股份有限公司 一种联邦学习方法及装置
CN110874648A (zh) * 2020-01-16 2020-03-10 支付宝(杭州)信息技术有限公司 联邦模型的训练方法、系统和电子设备
CN110942154A (zh) * 2019-11-22 2020-03-31 深圳前海微众银行股份有限公司 基于联邦学习的数据处理方法、装置、设备及存储介质
CN111178538A (zh) * 2019-12-17 2020-05-19 杭州睿信数据科技有限公司 垂直数据的联邦学习方法及装置

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110598870A (zh) * 2019-09-02 2019-12-20 深圳前海微众银行股份有限公司 一种联邦学习方法及装置
CN110942154A (zh) * 2019-11-22 2020-03-31 深圳前海微众银行股份有限公司 基于联邦学习的数据处理方法、装置、设备及存储介质
CN111178538A (zh) * 2019-12-17 2020-05-19 杭州睿信数据科技有限公司 垂直数据的联邦学习方法及装置
CN110874648A (zh) * 2020-01-16 2020-03-10 支付宝(杭州)信息技术有限公司 联邦模型的训练方法、系统和电子设备

Cited By (20)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN114629821B (zh) * 2020-12-10 2023-11-10 新智云数据服务有限公司 物联网用量数据生成方法、装置、设备和介质
CN114629821A (zh) * 2020-12-10 2022-06-14 新智云数据服务有限公司 物联网用量数据生成方法、装置、设备和介质
CN112700003A (zh) * 2020-12-25 2021-04-23 深圳前海微众银行股份有限公司 网络结构搜索方法、装置、设备、存储介质及程序产品
WO2022156594A1 (zh) * 2021-01-21 2022-07-28 腾讯科技(深圳)有限公司 联邦模型训练方法、装置、电子设备、计算机程序产品及计算机可读存储介质
CN112819180A (zh) * 2021-01-26 2021-05-18 华中科技大学 一种基于联邦生成模型的多业务数据生成方法和装置
CN113205863A (zh) * 2021-06-04 2021-08-03 广西师范大学 基于蒸馏的半监督联邦学习的个性化模型的训练方法
CN113205863B (zh) * 2021-06-04 2022-03-25 广西师范大学 基于蒸馏的半监督联邦学习的个性化模型的训练方法
JP2023011145A (ja) * 2021-07-12 2023-01-24 ヤフー株式会社 端末装置、情報処理方法及び情報処理プログラム
JP7353328B2 (ja) 2021-07-12 2023-09-29 ヤフー株式会社 端末装置、情報処理方法及び情報処理プログラム
CN113571169A (zh) * 2021-09-23 2021-10-29 杭州医康慧联科技股份有限公司 医疗数据管理方法、装置、电子设备和存储介质
CN114186694A (zh) * 2021-11-16 2022-03-15 浙江大学 一种高效安全,低通信的纵向联邦学习方法
WO2023087549A1 (zh) * 2021-11-16 2023-05-25 浙江大学 一种高效安全,低通信的纵向联邦学习方法
CN114186694B (zh) * 2021-11-16 2024-06-11 浙江大学 一种高效安全,低通信的纵向联邦学习方法
CN113987255A (zh) * 2021-12-30 2022-01-28 南湖实验室 基于联邦学习与秘密分享的多源密文图像检索方法
CN114492846A (zh) * 2022-04-06 2022-05-13 天聚地合(苏州)科技股份有限公司 基于可信执行环境的跨域联邦学习方法及系统
CN114844653A (zh) * 2022-07-04 2022-08-02 湖南密码工程研究中心有限公司 基于联盟链的可信联邦学习方法
CN115442036A (zh) * 2022-09-02 2022-12-06 华南理工大学 基于拆分混洗的联邦学习方法、装置、设备和介质
CN115442036B (zh) * 2022-09-02 2024-11-01 华南理工大学 基于拆分混洗的联邦学习方法、装置、设备和介质
WO2024212418A1 (zh) * 2023-04-13 2024-10-17 中电科大数据研究院有限公司 联邦学习系统、联邦学习方法和装置
CN118250042A (zh) * 2024-03-21 2024-06-25 上海计算机软件技术开发中心 一种物联网入侵检测方法、系统及设备

Similar Documents

Publication Publication Date Title
CN111985649A (zh) 基于联邦学习的数据处理方法和装置
EP4064130A1 (en) Neural network model update method, and image processing method and device
CN113688855B (zh) 数据处理方法、联邦学习的训练方法及相关装置、设备
WO2022083536A1 (zh) 一种神经网络构建方法以及装置
EP4145353A1 (en) Neural network construction method and apparatus
WO2020192736A1 (zh) 物体识别方法及装置
CN112990211B (zh) 一种神经网络的训练方法、图像处理方法以及装置
CN110222717B (zh) 图像处理方法和装置
WO2021155792A1 (zh) 一种处理装置、方法及存储介质
WO2021164750A1 (zh) 一种卷积层量化方法及其装置
TW202001693A (zh) 將人工神經網路中之活動特徵化之方法及包含一或多個可執行該方法之計算機之系統
CN113807399A (zh) 一种神经网络训练方法、检测方法以及装置
CN113516227B (zh) 一种基于联邦学习的神经网络训练方法及设备
WO2021136058A1 (zh) 一种处理视频的方法及装置
CN113191479B (zh) 联合学习的方法、系统、节点及存储介质
US20240135174A1 (en) Data processing method, and neural network model training method and apparatus
WO2024001806A1 (zh) 一种基于联邦学习的数据价值评估方法及其相关设备
CN111797992A (zh) 一种机器学习优化方法以及装置
CN113536970A (zh) 一种视频分类模型的训练方法及相关装置
WO2023125628A1 (zh) 神经网络模型优化方法、装置及计算设备
CN114861859A (zh) 神经网络模型的训练方法、数据处理方法及装置
US20220222934A1 (en) Neural network construction method and apparatus, and image processing method and apparatus
Sun et al. Semantic-aware 3D-voxel CenterNet for point cloud object detection
CN112446462A (zh) 目标神经网络模型的生成方法和装置
Gu et al. Mobility-aware federated self-supervised learning in vehicular network

Legal Events

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