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

机器学习中的隐私性知悉式修剪

文献发布时间:2024-04-18 19:59:31


机器学习中的隐私性知悉式修剪

相关申请的交叉引用

本申请要求于2021年4月6日提交的美国专利申请No.17/223,946的优先权,其全部内容通过援引纳入于此。

引言

本公开的各方面涉及机器学习,并且更具体地,涉及在联合机器学习期间改善数据隐私性。

监督式机器学习一般是产生经训练模型(例如,人工神经网络)的过程,其表示对先验已知的训练数据集的广义拟合。将经训练模型应用于新数据使得能够产生推断或预测,这可被用于获得关于新数据的洞察。例如,可以训练模型以将输入数据分类为所定义的类别。

随着机器学习的使用激增以用于实现各种机器学习(或人工智能)任务,出现了对更高效和更安全地传达和处置机器学习模型数据的需求。此机器学习模型数据可以包括例如用于训练机器学习模型和/或机器学习模型所应用于的数据。

机器学习算法已成为构建数据分析系统的核心组件。大多数机器学习算法都是基于服务器的,并且因此被设计成用于处置集中式数据收集和处理。然而,分布式设备(诸如移动电话、平板设备、移动传感器、物联网(IoT设备)和其他边缘处理设备)每天都在生成大量数据,从而实现各种现有技术的功能性。为了利用由这种分布式设备生成的数据,分布式设备和集中式服务器之间的广泛数据通信是必要的,这除了产生显著的隐私性问题之外,还引入了显著的通信成本。

因此,需要在联合机器学习模型中增强数据隐私性并降低通信带宽要求的系统和方法。

简要概述

某些方面提供了一种方法,包括:基于本地数据集来更新全局机器学习模型的参数集;基于修剪准则来修剪该参数集;部分地基于噪声值,为修剪后剩余的参数子集计算经噪声增强的梯度集;以及向全局模型服务器传送经噪声增强的梯度集。

某些方面提供了一种方法,包括:接收使用私有变分丢弃(private variationaldropout)来训练的参数集;使用该参数集来实例化机器学习模型;以及通过使用经实例化的机器学习模型处理输入数据来生成输出。

其他方面提供了:处理系统,其被配置成执行前述方法以及本文中所描述的那些方法;非瞬态计算机可读介质,其包括在由处理系统的一个或多个处理器执行时使该处理系统执行前述方法以及本文中所描述的那些方法的指令;计算机程序产品,其被实施在计算机可读存储介质上,该计算机可读存储介质包括用于执行前述方法以及本文中进一步描述的那些方法的代码;以及处理系统,其包括用于执行前述方法以及本文中进一步描述的那些方法的装置。

以下描述和相关附图详细阐述了一个或多个方面的某些解说性特征。

附图简述

附图描绘了该一个或多个方面中的某些方面,并且因此不被认为限制本公开的范围。

图1描绘了使用私有变分丢弃技术的分布式机器学习的示例系统。

图2描绘了用于使用私有变分丢弃技术来训练机器学习模型的示例工作流。

图3是解说用于在客户端系统处使用私有变分丢弃来训练机器学习模型的方法的示例流程图。

图4是解说用于在中央服务器处使用私有变分丢弃来训练机器学习模型的方法的示例流程图。

图5是解说使用利用私有变分丢弃训练的机器学习模型来进行推断的方法的示例流程图。

图6是解说用于使用私有变分丢弃来训练机器学习模型的方法的示例流程图。

图7描绘了被配置成执行本公开的各个方面的示例处理系统。

为了促成理解,在可能之处使用了相同的附图标记来指定各附图共有的相同要素。构想了一个方面的要素和特征可有益地被纳入到其他方面中而无需进一步引述。

详细描述

本公开的各方面提供了用于在模型训练期间智能地修剪机器学习模型参数的技术。在某些方面,这种修剪可以增强数据隐私性和安全性,并降低通信成本。

联合学习通常是一种使用去中心化客户端设备(例如,移动设备或其他处理节点)及其本地客户端因设备而言的数据集来训练机器学习模型(诸如深度神经网络)的过程,而无需与集中式服务器或其他客户端设备显式地交换客户端数据。有利地,这使得每个客户端设备能够在本地保留它们的数据,从而减少联合学习期间的安全风险和隐私性问题,在本地数据集上训练(分布式客户端设备上的)本地模型,然后由中央服务器聚集训练相关参数(例如,深度神经网络的权重和偏置)以生成全局模型,该全局模型然后可以在所有分布式客户端设备之间共享。值得注意的是,联合学习与传统分布式学习的不同之处在于,在联合学习中,并不假设跨分布式客户端设备上的所有本地数据集大小相同且分布相似(例如,独立且同分布)。因此,联合学习旨在基于异构数据集来训练机器学习模型。

联合学习的客户端设备本地训练过程方面通常涉及基于训练数据来计算梯度集,其中梯度指示一个或多个模型参数的变化方向和幅度。这些梯度可以被传送到中央服务器。由于每个客户端使用其自己的训练数据,因此每个客户端返回的梯度当然可能是不同的。中央存储库可以随后聚集这些梯度,以便精化中央/全局模型。然后可以重复该过程(始于每个客户端下载经精化的模型参数以开始另一轮训练)。

参数和模型更新的这种重复传输会给客户端设备和中央服务器之间的通信带来很大负担。例如,模型训练可能需要传输数GB的数据,这非常耗时、耗电,而且可能成本高昂。

此外,大量的数据传输增加了对手方尝试获取参数和/或模型更新数据以对底层训练数据进行逆向工程的可能性。

为了解决上述问题,本文描述的各方面采用本文中称为私有变分丢弃的技术。这种私有变分丢弃可以包括选择性模型或梯度修剪,以增强数据安全性,同时减少通信开销,这进而可以提高电池供电的移动设备的处理效率,延长电池寿命,减少网络话务等。值得注意的是,尽管进行了选择性修剪,但本文所描述的技术有益地不牺牲模型准确性。

如本文所使用的,私有变分丢弃可以包括使用本地数据来学习模型参数和噪声方差,基于所学习的噪声方差来修剪模型梯度的子集,以及剪切噪声并将噪声添加到模型梯度。这些经修剪、经剪切和经噪声增强的梯度然后作为来自客户端系统的模型更新而返回。此过程增强了数据安全性,降低了通信成本,同时保持了模型准确性。

本地训练噪声方差允许每个客户端系统标识要修剪的模型梯度子集,如下面更详细地讨论的。这种噪声方差也可以在运行时使用(例如,当使用模型来处理新的输入数据以生成推断时)。例如,可以基于在训练期间为权重学习的相应噪声方差,将噪声添加到参数(例如,权重)或添加到使用参数计算出的值(例如,添加到将权重乘以输入元素的结果,这可以被称为预激活)。

除了噪声方差的这种训练(其可以用于修剪参数)之外,私有变分丢弃还可以包括在每一轮训练期间对梯度进行剪切和添加噪声。有利地,添加到梯度的噪声可以小于现有系统中添加的噪声,因为上述修剪本身可以帮助增加隐私性。也就是说,由于修剪增强了隐私性,因此与现有系统相比,可以在确保数据隐私性和安全性的同时使用较少量的噪声。

示例联合学习机器架构

图1描绘了使用私有变分丢弃的用于联合机器学习的示例系统100。

如图所示,系统100包括中央服务器105和一组客户端设备110A-C(统称为客户端设备110)。尽管描绘了三个客户端设备110,但是通常可以有任意数量的客户端设备参与联合学习。

如图所示,每个客户端设备110从服务器105接收机器学习模型。该传输由箭头115A-C指示。在各方面中,例如,接收模型可以包括接收可以用于实例化机器学习模型的本地副本的一个或多个参数。例如,如果模型是神经网络,那么模型参数可以包括该模型的一组权重和偏置。在一些方面中,每个客户端设备110还接收相关的超参数或其他架构信息,例如层数、每个层的大小等。

每个参与方客户端设备110然后可以使用所接收到的信息来实例化模型的本地副本。在一些方面中,客户端设备110可以使用此模型来对新数据执行推断。也就是说,除了(或代替)参与模型的训练,客户端设备110可以简单地检索模型并在运行时使用它来进行推理。

在所示的方面中,客户端设备110A-C各自使用本地训练数据来计算模型的更新。通常,在监督式学习系统中,计算更新包括处理输入训练数据以使用模型来生成输出推断或预测。然后可以将该输出与训练数据的(已知)标签进行比较,以生成数据的损失。基于该损失,可以计算指示一个或多个模型参数的变化方向和幅度的梯度(例如,使用后向传播)。

变分丢弃通常可以包括向模型的权重添加一定水平的高斯噪声,以便正则化模型。可以部分地基于噪声方差值来定义噪声。在一些方面中,除了生成模型参数的更新之外,客户端设备110还可以训练用于模型的一个或多个噪声方差,其中这些噪声方差在运行时间期间使用(例如,当处理新数据以生成推断时)。也就是说,在训练期间,可以基于训练数据来学习和精化参数w(例如,权重)以及每个这样的参数的噪声方差α。在至少一个方面中,每个模型参数与对应的噪声方差相关联。在推断过程中,所学习的噪声方差可用于将噪声添加到参数或预激活中。

在各方面中,噪声方差对于每个个体客户端设备110是特定的,并且不与服务器105共享。也就是说,所接收到的全局模型可以包括诸如权重之类的参数,但不包括噪声方差。类似地,从每个客户端110返回到服务器105的更新不包括所学习的噪声方差。相反,这些噪声方差可以用于在每个客户端110处私下执行变分丢弃,如下所讨论的,从而充当本地训练的正则化器。

在一些方面中,在训练过程期间,客户端设备110可以至少部分地基于对应的噪声方差来修剪参数和/或梯度的某个子集。对于每一轮训练,每个参数都有相应的梯度,其指示参数的变化方向和幅度,以及相应的噪声方差(其在这一轮训练期间也被学习或精化)。在一个方面,客户端设备110可以基于所定义的修剪标准来标识和修剪与最高噪声方差相关联的一个或多个梯度或权重。在某些方面,这可以称为私有变分丢弃。

通常,此修剪标准的较高值导致密度较小的模型(具有较少的权重),以使得需要向服务器105传送的模型更新较少(例如,较少的梯度)。但是,较大的值也可能由于更积极的修剪而降低结果得到的模型的准确性。因此,在一些方面中,该修剪准则是可由每个客户端设备110和/或由中央服务器105指定的超参数。

在一些方面中,客户端设备110还可以各自在将计算出的梯度返回到中央服务器105之前剪切计算出的梯度和/或向计算出的梯度应用噪声。例如,客户端设备110分别基于剪切值和/或噪声值来对其各自的梯度集进行剪切并添加噪声。剪切值和噪声值可以是可配置的超参数。通常,剪切值的值越低且噪声值的值越高就导致模型准确性越低但数据安全性越高(因为原始值更模糊或被改变)。在一个方面中,客户端设备110可以使用差分私有随机梯度下降(DP-SGD)来基于剪切值和噪声值生成经修改的梯度集,如下面更详细地讨论的。

在图1中,这些经修改的梯度随后由每个客户端设备110返回到服务器105。服务器105随后可聚集梯度并基于聚集梯度来更新全局机器学习模型。在各方面中,聚集梯度可包括平均每个客户端设备110提供的梯度、基于与每个客户端设备110相关联的权重来计算加权平均值等。

如果训练仍在进行中,则服务器105随后可以将经更新的模型参数传送到参与方客户端设备110,并且可以开始另一轮训练。替换地,如果训练完成,则服务器105可以向客户端提供经训练的模型,以用于在运行时期间处理新的输入数据。

私有变分丢弃的示例工作流

图2描绘了用于使用私有变分丢弃技术来训练机器学习模型的示例工作流200。在所示的工作流200中,服务器202将模型参数205传送到一个或多个客户端设备203。模型参数205对应于全局模型227。

如以上所讨论的,这些模型参数205通常可用于实例化机器学习模型。也就是说,可以基于模型参数205来创建机器学习模型(例如,全局模型的副本)。例如,如果模型是神经网络,则模型参数205可以包括一组权重。客户端设备203使用模型参数205来初始化或实例化机器学习模型。这样,服务器202可以维护全局模型227,并且每个客户端设备203可以在本地发起模型的副本。

如图所示,客户端设备203随后执行模型训练过程。在框210,客户端设备203使用本地数据集212来训练模型的参数和噪声方差。如以上所讨论的,在一些方面中,每个可训练参数(例如,每个权重)与相应的可训练噪声方差相关联。参数和噪声方差的训练通常基于使用本地数据集212中的经标记训练数据所计算出的损失来执行。

在一些方面中,在运行时期间,客户端设备203(或另一设备)可以使用噪声方差来向参数添加噪声。例如,当使用该模型处理新输入时,客户端设备203可以将高斯噪声π~N(1,α)添加到每个参数(例如,每个权重),其中N(1,α)是均值为1且方差为α的正态分布。在一些方面中,使用乘性噪声来向每个参数添加噪声。在其它方面,该噪声可以是加性的。

在训练噪声方差和参数之后,过程继续到框215,其中客户端设备203基于经更新的噪声方差来从模型修剪一个或多个参数。例如,客户端设备203可以修剪具有最高噪声方差的参数中的r%(其中r是可配置的超参数)。也就是说,客户端设备203可以标识第r个百分位中的噪声方差,并修剪相应的参数。在相关方面中,客户端设备203可以修剪具有最高噪声方差的k个参数,其中k也是可配置超参数。在某些方面,具有高噪声方差的参数是很好的修剪候选,因为它们在整个模型中可能不太有用或重要。也就是说,如果参数与高噪声方差相关联,则参数对模型的影响可能相对随机或不可预测,这表明该参数本身并不重要。

如果参数(例如,神经网络中的权重)被修剪,则在推断期间将不使用该参数(例如,神经网络中的对应边),并且客户端设备203不需要将该参数的任何更新值(或任何梯度)传送到服务器202。因此,减少了从客户端设备203传送到服务器202的更新或梯度集,这有益地减少了通信成本、等待时间、功率使用等。

一旦修剪参数,则过程继续到框220,其中客户端设备203剪切剩余梯度并添加噪声,如以下所讨论的。在方面中,该噪声不是基于上述关于经学习的噪声方差的噪声方差。相反,它可以使用单独的噪声值来定义,如以下所讨论的。在至少一个方面中,客户端设备203使用差分私有随机梯度下降(DP-SGD)来实现这一点。

客户端设备203可以基于所有权重的梯度的范数(或能量)来剪切所设置的梯度,而不是剪切个体梯度。换句话说,剪切寻求限制模型梯度的总体能量,而不是单独限制每个梯度。向量x的范数(例如,梯度集)可被定义为

如果梯度张量的范数大于剪切值,则缩放梯度张量,以使得范数等于剪切值。如果范数等于或小于剪切值,则不修改它。以此方式,客户端设备203可以使用所定义的剪切值(其可以是可配置的超参数)来剪切梯度张量。通过执行这种剪切,将限制梯度的幅度,从而允许梯度下降执行得更好(特别是在损失情况不规则时)。

在一些方面中,生成经修改的梯度集进一步包括向梯度添加噪声。例如,噪声可以被定义为N(0,Cσ

在一个方面中,框220由客户端设备203使用下面的等式2来执行,其中

在图2中,经更新的梯度

如工作流200中所指示的,可以重复该过程(始于传送到每个参与方客户端设备203的一组新的模型参数205)。训练可以重复任意次数的训练轮次。一旦训练完成,服务器202和客户端设备203就可以使用该模型来生成推断。使用本公开中描述的技术,该模型在保护数据安全和隐私性以及减少通信开销的同时有益地保持高准确性。

在客户端系统处使用私有变分来进行机器学习丢弃的示例方法

图3是解说用于在客户端系统处使用私有变分丢弃和联合学习来训练机器学习模型的方法300的示例流程图。

方法300开始于框305,其中客户端系统确定用于训练过程的一组超参数和模型结构。在一些方面,客户端系统从管理分布式学习的中央服务器接收这些超参数和结构。在其他方面,每个客户端系统可以单独确定超参数。在至少一个方面中,一些超参数可由中央服务器指定,而其他超参数可由每个客户端系统配置。

通常,超参数可以包括影响模型结构和学习过程的任意数量和种类的可配置元素。例如,对于神经网络模型,超参数可以包括诸如学习率、丢弃率等变量。模型结构通常包括模型中的层的数量、每个层中的元素的数量、要使用的激活函数等。在一些方面中,模型结构或架构由中央服务器指定,而可允许每个客户端单独选择其自己的训练超参数(诸如学习率、丢弃率等),或可选择使用中央服务器推荐的值。

方法300继续到框310,其中客户端系统接收模型参数。例如,客户端系统可以从中央服务器请求和/或接收参数,如图1和图2所描绘的。通常,模型参数对应于由服务器(或用于联合学习的任何其他协调实体)维护的机器学习模型的最新版本。例如,在每一轮联合训练之后,中央服务器可以在步骤310向客户端系统发送经更新的全局模型,然后客户端系统开始下一轮联合训练。

模型参数通常包括模型的可训练元素。例如,在神经网络的情形中,模型参数可以包括模型中的一个或多个权重和偏置的值。在一些方面中,所接收到的模型参数还可以包括一个或多个噪声方差。例如,如以上所讨论的,客户端系统不仅可以训练神经网络的权重,而且还可以训练每个权重的相应噪声方差。该噪声方差表征运行时期间使用或添加的随机高斯噪声的分布。

通过使用模型参数和/或超参数,客户端系统可以实例化当前全局模型的副本。在一些方面中,实例化模型可包括使用新接收到的模型参数来更新模型的本地副本(例如,从先前训练轮保留的本地副本)。

在框315,客户端系统使用本地训练数据来计算经更新的模型参数。在一些方面,这包括使用变分丢弃技术来更新模型参数(例如,权重和偏置)和噪声方差。

通常,计算经更新的参数包括通过在客户端系统处使用全局模型的副本处理本地训练数据来生成输出。可将该输出与和本地数据相关联的标签进行比较,以便可以计算损失。该损失随后可用于生成一组梯度(例如,经由后向传播),该组梯度中的每个梯度对应于模型参数集中的相应参数。

每个梯度各自指示每个模型参数的变化方向和幅度以精化模型。可针对每个训练样本单独地(例如,使用随机梯度下降)和/或分批地(例如,使用批量梯度下降)执行该训练过程。

方法300接着继续到框320,其中客户端系统修剪经更新的模型参数和/或梯度中的一者或多者。在一些方面,客户端系统基于相应的噪声方差来确定要修剪哪些参数和/或梯度。

在一个这样的方面中,客户端系统可以修剪具有高噪声方差的一个或多个模型参数。例如,客户端系统可以修剪与噪声方差的最高r%相关联的参数,其中r是可以由中央服务器或本地客户端系统指定的可配置的超参数。在其他方面中,客户端系统可修剪与高于所定义阈值的噪声方差相关联的所有参数。

通过修剪给定的权重,客户端系统有效地移除模型中相应的边(例如,神经元之间的连接)。因此,客户端系统不需要传送该边的任何更新,从而有效地修剪相应的梯度。这可以减少将模型更新传送到中央系统所需的带宽和其他计算资源。

不同的客户端系统可能修剪不同的参数,因为每个客户端系统使用本地(私有)数据来训练噪声方差。通常,为了更新全局模型,服务器系统可以聚集它为每个参数接收到的更新(需要理解的是,并非所有参数都有来自所有客户端的更新)。

注意,在下一轮训练中由客户端设备接收的模型可以包括在上一轮训练中由客户端系统修剪的边。在一些方面,客户端系统可能会在继续进行训练轮次之前再次修剪边和参数。在其它方面中,客户端系统可以如上继续更新所接收到的模型(例如,为先前修剪的参数计算新的更新,并且可能再次修剪它)。

在客户端系统修剪了模型参数的某个部分之后,方法300继续到框325,其中客户端系统向剩余梯度添加噪声。在某些方面,如以上所讨论的,客户端系统使用DP-SGD来剪切和添加噪声。例如,客户端系统可以使用上面的等式2来生成经修改的梯度集(这里也称为经噪声增强的梯度集)。

通过剪切梯度和添加此类噪声,客户端系统可以进一步保护其本地训练数据的隐私性和安全性。在某些方面,梯度修改过程可由每个客户端系统配置。也就是说,可以本地配置剪切值和/或噪声值。在另一方面,中央服务器可以为所有客户端系统指定这些值。

有利地,由于客户端系统首先使用上述修剪方法,因此与现有方法相比,客户端系统可以在每一轮修剪时向梯度添加较小量的噪声。也就是说,因为修剪有助于增强数据安全性,所以可以减少噪声添加。

然后,方法300行进到框330,其中客户端系统将经修改的梯度集传送到中央服务器。也就是说,客户端系统将经修剪的梯度子集(经剪切和/或添加了噪声)传送到中央服务器。如以上所讨论的,中央服务器可以聚集从客户端系统集合接收到的梯度,以便生成经聚集更新的整体集合。然后,可以使用这些经聚集梯度来精化全局模型。随后,可以分发经更新的全局模型(例如,用于下一轮训练或用于运行时)。

在框335,客户端系统确定训练是否完成。这可以包括,例如,确定是否有一个或多个附加的训练轮要执行(例如,如中央服务器指示或指定的)。如果训练尚未完成,则方法300返回框310。如果训练已经完成,则方法300在框340终止。

在某些方面,如果训练完成,那么客户端系统可以请求全局模型的最终副本。然后,客户端系统可以部署此模型以供运行时使用。此外,在某些方面,最终模型可由未参与训练的其他系统接收和使用。类似地,中央服务器可以部署模型以供使用。

在中央系统处使用私有变分丢弃来进行机器学习的示例方法

图4是解说根据本文公开的一些方面的用于在中央服务器处使用私有变分丢弃来执行机器学习模型的联合学习的方法400的流程图。

方法400开始于框405,其中中央服务器将全局模型的一组模型参数传送到一个或多个参与方客户端系统。如以上所讨论的,这可包括传送一个或多个权重值、噪声方差或模型的其他可训练参数。尽管未包括在所示方法400中,但在一些方面,如上文所讨论的,中央服务器还可以传送相关的超参数。

在框410,中央服务器从每个参与方客户端系统接收经更新的梯度。在某些情况下,这些梯度使用私有变分丢弃来计算。如以上所讨论的,这可以包括基于所学习的噪声方差来修剪参数,以及通过每个单独的客户端系统剪切和向梯度添加噪声。这允许训练数据对客户端设备保持私有,并且进一步减少在中央服务器和客户端设备之间传送和接收更新时的通信负担。

方法400然后继续到框415,其中中央服务器聚集所接收到的梯度。在一些方面中,如以上所讨论的,每个客户端系统可以在将梯度集传送到中央服务器之前修剪它们。因此,在这些方面中,对于任何给定的模型参数,中央服务器可以从少于所有参与方客户端接收更新(例如梯度)。

在一些方面中,为了聚集梯度,中央服务器可以针对每个模型参数计算对应于相应参数的每个收到梯度的平均值。

在框420,中央服务器基于经聚集梯度来计算经更新的模型参数。这将产生基于最近一轮训练的经更新机器学习模型。方法400随后继续至框425。

在框425,中央服务器确定训练是否完成。这可以包括对任何数量和类型的终止准则的评估,包括完成的轮数、训练所花费的时间、基于测试数据的性能度量、收敛等等。

如果训练未完成,则方法400返回框405,其中中央服务器将经更新的模型参数传送给每个参与者。如果训练完成,则方法400在框430终止。然后可以部署经更新的模型以供任何数量和种类的系统使用,包括中央服务器、客户端系统和未参与训练过程的系统。

使用利用私有变分丢弃来训练的机器学习模型进行推断的示例方法

图5是解说使用利用私有变分丢弃来训练的机器学习模型进行推断的方法500的示例流程图。

方法500可以使用用于机器学习模型的参数集来执行,其中,如上文所讨论的,这些参数是使用私有变分丢弃来生成的。在某些方面,这些参数是从联合学习系统中的中央服务器接收的。此外,在一些方面中,还部分基于实例化模型所需的相关超参数和模型结构(例如,与模型的架构和学习相关的变量)来执行方法500,该超参数和模型结构也可从服务器接收。

在框510,计算系统基于所接收到的参数来实例化机器学习模型。有利地,由于使用本文讨论的私有变分丢弃技术来训练模型参数,因此所使用的训练数据是安全的并且不容易被计算系统破译。此外,使用本文描述的技术,该模型保持显著的准确性。

可选地,计算系统随后可以标识一组输入数据。在各方面中,标识输入数据可包括多种操作,这至少部分地取决于模型的性质。例如,如果机器学习模型被训练用于分类图像数据,则标识输入数据将包括捕获、接收、检索或以其他方式标识要被分类的一个或多个图像。

在框520,计算系统使用所发起的机器学习模型处理所标识的输入数据以生成适当的输出。在一些方面中,处理输入数据包括基于网络的架构使用模型参数值来修改输入数据(或一些中间数据,诸如特征向量或张量)。在一些方面,如以上所讨论的,计算系统还可以使用经训练的噪声方差来将噪声注入到模型中。例如,在一个方面中,当使用给定连接(具有经学习的权重)来处理新数据时,系统可以生成并添加均值为1且方差等于针对权重学习的相应噪声方差的高斯噪声。在一些方面,在使用私有变分丢弃的训练过程中,可以将高斯噪声添加到权重,其中高斯噪声的方差(例如噪声方差)与权重一起被学习。在训练结束时,对方差较大的权值进行修剪,结果得到的稀疏模型可被用于推断。

如以上所讨论的,通过使用本文描述的私有变分丢弃技术,机器学习模型可以在保持数据安全性和隐私性的同时保持高准确性。

使用私有变分丢弃来训练机器学习模型的示例方法

图6是解说根据本文公开的一些方面的用于使用私有变分丢弃来训练机器学习模型的方法600的流程图。

方法600开始于框605,其中计算系统基于本地数据集来更新全局机器学习模型的参数集。

在一些方面中,更新参数集包括使用变分丢弃来更新机器学习模型的一个或多个权重和一个或多个相应的噪声方差。

在框610,计算系统基于修剪准则来从参数集中修剪参数子集。

在一些方面中,基于修剪准则来修剪参数集包括基于一个或多个相应的噪声方差来从参数集修剪一个或多个权重。

在一些方面中,基于指定要被修剪的权重集的百分比(例如,如上所述的r%)的可配置超参数来标识经修剪的一个或多个权重。

此外,在框615,计算系统部分地基于噪声值,为修剪后剩余的参数子集计算经噪声增强的梯度集。在一些方面中,此噪声值是超参数(可在本地或由中央服务器指定)。

在一些方面中,为参数子集计算经噪声增强的梯度集包括:基于该参数子集来计算梯度集;基于剪切值来剪切该梯度集;以及基于该噪声值来将噪声添加到该梯度集中的每个经剪切的相应梯度。

在一些方面中,剪切值和噪声值是机器学习模型的可配置超参数。

在一些方面中,剪切梯度集包括:如果梯度集的范数超过剪切值,则基于剪切值来缩放梯度集;以及如果梯度集的范数未超过剪切值,则抑制改变梯度集。

在一些方面,经噪声增强的梯度集被定义为

其中

附加地,在框620,计算系统将经噪声增强的梯度集传送到全局模型服务器。

在一些方面中,该方法进一步包括,在更新全局机器学习模型的参数集之前从全局模型服务器接收参数集。在一些方面中,经噪声增强的梯度集被配置成由全局模型服务器用于更新全局机器学习模型。

在一些方面,该方法进一步包括:从全局模型服务器接收经更新的全局机器学习模型;以及使用本地数据来更新机器学习模型的经更新的中央副本的参数集。

用于私有变分丢弃的示例处理系统

在一些方面,关于图2-6描述的方法和工作流可以在一个或多个设备上执行。

图7描绘了示例处理系统700,该处理系统700可被配置成执行本文所描述的各种方法的各方面,包括例如关于图2-3和5-6所描述的方法。

处理系统700包括中央处理单元(CPU)702,其在一些示例中可以是多核CPU。在CPU702处执行的指令可例如从与CPU 702相关联的程序存储器加载,或者可从存储器714加载。

处理系统700还包括为特定功能定制的附加处理组件,诸如图形处理单元(GPU)704、数字信号处理器(DSP)706、以及神经处理单元(NPU)708。

尽管在图7中未描绘,但是NPU 708可被实现为CPU 702、GPU 704和/或DSP 706中的一者或多者的一部分。

处理系统700还包括输入/输出710。在一些方面,输入/输出710可以包括一个或多个网络接口,从而允许处理系统700经由网络(诸如,因特网)耦合到一个或多个其他设备或系统。

尽管未被包括在所解说的方面中,处理系统700还可包括一个或多个附加输入和/或输出设备,诸如屏幕、物理按钮、扬声器、话筒等等。

处理系统700还包括存储器714,该存储器624代表一个或多个静态和/或动态存储器,诸如动态随机存取存储器、基于闪存的静态存储器等。在该示例中,存储器714包括计算机可执行组件,其可由处理系统700的前述处理器中的一个或多个处理器执行。

在该示例中,存储器714包括训练组件720、修剪组件722和噪声组件724。训练组件720通常可以被配置成使用本地数据来计算模型的梯度和经更新的模型参数,如以上所讨论的。修剪组件722通常被配置成基于相应的噪声方差来修剪经更新的模型参数和/或梯度的某个部分,如上面所讨论的。此外,噪声组件724通常可以被配置成诸如通过使用DP-SGD来剪切并向结果得到的梯度集添加噪声。

存储器714还包括模型参数集730、修剪准则735、剪切值740和噪声值745。如以上所讨论的,模型参数730可以对应于神经网络中的权重和/或噪声方差。修剪准则735一般指示如何修剪参数(例如,指定应修剪具有最高r%的噪声方差的参数)。一般而言,如以上所讨论的,剪切值740和噪声值745控制噪声组件724如何剪切并向梯度添加噪声。

所描绘的组件以及其他未描绘的组件可被配置成执行本文所描述的方法的各个方面。

示例条款

条款1:一种方法,包括:基于本地数据集来更新全局机器学习模型的参数集;基于修剪准则来修剪所述参数集;部分地基于噪声值,为修剪后剩余的参数子集计算经噪声增强的梯度集;以及向全局模型服务器传送所述经噪声增强的梯度集。

条款2:根据条款1的方法,进一步包括:在更新所述全局机器学习模型的所述参数集之前从所述全局模型服务器接收所述参数集,其中所述经噪声增强的梯度集被配置成由所述全局模型服务器用于更新所述全局机器学习模型。

条款3:根据条款1-2中任一项的方法,进一步包括:从所述全局模型服务器接收经更新的全局机器学习模型;以及使用本地数据来更新所述经更新的全局机器学习模型的参数集。

条款4:根据条款1-3中任一项的方法,其中:更新所述参数集包括使用变分丢弃来更新所述全局机器学习模型的一个或多个权重和一个或多个相应的噪声方差。

条款5:根据条款1-4中任一项的方法,其中:基于修剪准则来修剪所述参数集包括基于所述一个或多个相应的噪声方差来修剪来自所述参数集的一个或多个权重。

条款6:根据条款1-5中任一项的方法,其中:经修剪的一个或多个权重是基于指定所述参数集中要被修剪的权重的百分比的可配置超参数来标识的。

条款7:根据条款1-6中任一项的方法,其中:为所述参数子集计算所述经噪声增强的梯度集包括:基于所述参数子集来计算梯度集;基于剪切值来剪切所述梯度集;以及基于所述噪声值来将噪声添加到所述梯度集中的每个经剪切的相应梯度。

条款8:根据条款1-7中任一项的方法,其中:所述剪切值和所述噪声值是所述全局机器学习模型的可配置超参数。

条款9:根据条款1-8中任一项的方法,其中:剪切所述梯度集包括:如果所述梯度集的范数超过所述剪切值,则基于所述剪切值来缩放所述梯度集;以及如果所述梯度集的所述范数未超过所述剪切值,则抑制改变所述梯度集。

条款10:根据条款1-9中任一项的方法,其中:所述经噪声增强的梯度集被定义为

条款11:一种方法,包括:接收使用私有变分丢弃来训练的参数集,其中所述私有变分丢弃包括:训练所述参数集和噪声方差集,基于所述噪声方差来修剪所述参数集;基于剪切值来剪切所述参数集的梯度集,以及基于所述噪声值来将噪声添加到所述梯度集中的每个经剪切的相应梯度;使用所述参数集来实例化机器学习模型;以及通过使用经实例化的机器学习模型处理输入数据来生成输出。

条款12:一种系统,包括:包括计算机可执行指令的存储器;以及一个或多个处理器,该一个或多个处理器被配置成执行计算机可执行指令并使该处理系统执行根据条款1-11中任一者的方法。

条款13:一种系统,包括用于执行根据条款1-11中任一者的方法的装置。

条款14:一种包括计算机可执行指令的非瞬态计算机可读介质,这些计算机可执行指令在由处理系统的一个或多个处理器执行时使该处理系统执行根据条款1-11中任一者的方法。

条款15:一种实施在计算机可读存储介质上的计算机程序产品,包括用于执行根据条款1-11中任一者的方法的代码。

附加考虑

提供先前描述是为了使本领域任何技术人员均能够实践本文中所描述的各个方面。本文中所讨论的示例并非是对权利要求中阐述的范围、适用性或者方面的限定。对这些方面的各种修改将容易为本领域技术人员所明白,并且在本文中所定义的普适原理可被应用于其他方面。例如,可以对所讨论的要素的功能和布置作出改变而不会脱离本公开的范围。各种示例可恰适地省略、替代、或添加各种规程或组件。例如,可以按与所描述的次序不同的次序来执行所描述的方法,并且可以添加、省略、或组合各种步骤。而且,参照一些示例所描述的特征可在一些其他示例中被组合。例如,可使用本文中所阐述的任何数目的方面来实现装置或实践方法。另外,本公开的范围旨在覆盖使用作为本文中所阐述的本公开的各个方面的补充或者不同于本文中所阐述的本公开的各个方面的其他结构、功能性、或者结构及功能性来实践的此类装置或方法。应当理解,本文中所披露的本公开的任何方面可由权利要求的一个或多个元素来实施。

如本文所使用的,术语“示例性”意指“用作示例、实例或解说”。本文中描述为“示例性”的任何方面不必被解释为优于或胜过其他方面。

如本文中所使用的,引述一列项目“中的至少一者”的短语是指这些项目的任何组合,包括单个成员。作为示例,“a、b或c中的至少一者”旨在涵盖:a、b、c、a-b、a-c、b-c、和a-b-c,以及具有多重相同元素的任何组合(例如,a-a、a-a-a、a-a-b、a-a-c、a-b-b、a-c-c、b-b、b-b-b、b-b-c、c-c、和c-c-c,或者a、b和c的任何其他排序)。

如本文所使用的,术语“确定”涵盖各种各样的动作。例如,“确定”可包括演算、计算、处理、推导、研究、查找(例如,在表、数据库或另一数据结构中查找)、查明及类似动作。而且,“确定”可以包括接收(例如,接收信息)、访问(例如,访问存储器中的数据)及诸如此类。而且,“确定”可包括解析、选择、选取、建立及诸如此类。

如本文所使用的,在本文中描述的各元件之间共享电子信号和数据的上下文中,术语“连接到”一般可以指处于在彼此连接的相应元件之间的数据通信。在一些情形中,元件可以彼此直接连接,诸如经由一条或多条导电迹线、线路或能够在彼此直接连接的相应元件之间承载信号和/或数据的其他导电载体。在其他情形中,元件可以彼此间接连接,诸如经由用于在彼此间接连接的相应元件之间传达信号和数据的一条或多条数据总线或类似的共享电路系统和/或集成电路元件。

本文中所公开的各方法包括用于实现方法的一个或多个步骤或动作。这些方法步骤和/或动作可以彼此互换而不会脱离权利要求的范围。换言之,除非指定了步骤或动作的特定次序,否则具体步骤和/或动作的次序和/或使用可以改动而不会脱离权利要求的范围。此外,上述方法的各种操作可由能够执行相应功能的任何合适的装置来执行。这些装置可包括各种硬件和/或软件组件和/或模块,包括但不限于电路、专用集成电路(ASIC)、或处理器。一般地,在存在附图中解说的操作的场合,这些操作可具有带相似编号的相应配对装置加功能组件。

以下权利要求并非旨在被限定于本文中示出的各方面,而是应被授予与权利要求的语言相一致的全部范围。在权利要求内,对单数元素的引用不旨在意指“有且只有一个”(除非专门如此声明),而是“一个或多个”。除非特别另外声明,否则术语“一些/某个”指的是一个或多个。权利要求的任何要素都不应当在35U.S.C.§112(f)的规定下来解释,除非该要素是使用短语“用于……的装置”来明确叙述的或者在方法权利要求情形中该要素是使用短语“用于……的步骤”来叙述的。本公开通篇描述的各个方面的要素为本领域普通技术人员当前或今后所知的所有结构上和功能上的等效方案通过引述被明确纳入于此,且旨在被权利要求所涵盖。此外,本文所公开的任何内容都不旨在捐献于公众,无论此类公开内容是否明确记载在权利要求书中。

技术分类

06120116525773