一种残膜回收机防缠绕挑膜装置的制 一种秧草收获机用电力驱动行走机构

机器学习模型验证和认证的制作方法

2021-11-10 04:36:00 来源:中国专利 TAG:


1.本文描述的各种实施例总体上涉及安全性和人工智能。更具体地,但非排他性地,本文公开的各种方法和装置涉及验证和认证对机器学习模型的使用。


背景技术:

2.诸如机器学习模型(也被称为“统计模型”)之类的人工智能(“ai”)部件能用于将复杂计算应用于复杂输入以生成各种类型的输出。然而,对于采用机器学习模型的许多复杂和/或自主任务,安全性漏洞会对数据隐私和/或安全构成严重风险。例如,机器学习模型在医疗保健领域变得越来越普遍,它们被广泛用于各种应用,例如,临床决策假设(“cds”)、控制医学设备等。《医疗保险流通和责任法案》(health insurance portability and accountability act(“hipaa”))等法规非常重视患者隐私。此外,输入数据的安全性漏洞、基于机器学习模型和/或模型本身的参数执行的数学运算完整性的变化都可能导致错误输出,这在医学领域尤其具有破坏性。
3.确定机器学习模型是否受到损害具有挑战性。攻击者有多种方法来破坏机器学习模型,从而使其以意想不到的和/或恶意的方式运行,例如修改权重,利用输入中的漏洞(这可能导致一致的恶意输出),或者通过自定义代码绕过算法。这些恶意攻击能够通过修改非易失性存储器中(例如“磁盘上”)的机器学习模型来实现,也可以在使用易失性存储器(例如,随机存取存储器或“ram”)的执行期间实时实现。


技术实现要素:

4.本公开内容涉及用于验证和认证对机器学习模型的使用的方法和装置。例如,本文描述了用于限制机器学习模型攻击和/或利用模型进行恶意使用的漏洞以及用于检测何时发生这样的攻击/利用的各种技术。另外,本文描述的各种实施例促进了对敏感和/或有价值的数据的保护,例如通过确保只允许许可使用来实现这一点。此外,还描述了用于版本跟踪、使用跟踪、权限跟踪和机器学习模型演化的技术。
5.本文描述了与医疗保健由关的各种示例。特别地,由附图描绘和/或展示的示例技术通常是在医疗保健背景中描述的。然而,这并不意味着限制。本文描述的技术广泛适用于医疗保健背景之外的背景。例如,本文描述的技术可以在安全检查点使用,在安全检查点处结合训练机器学习模型(例如,卷积神经网络)来使用图像数据以确定由个人构成的威胁/风险。它们还可以应用于通常使用机器学习的其他情况,例如,财务分析、风险分析等。
6.本文描述的示例还可以用于改变被提供给最终用户的细节和/或粒度的级别。例如,本文描述的技术可以使得基于上游输入来阻挡被配置为进行分类的经训练的机器学习的一个(例如,最后的)输出层。然而,上游输入可能仍对各种目的有用。
7.作为示例,神经网络的最后一层可以被训练为接收经分割的图像数据(例如,指示潜在癌症关注的感兴趣区域的图像数据)并将这些感兴趣区域中的一个或多个感兴趣区域分类为恶性或良性。然而,由前一层提供的经分割的图像数据即使不用于分类也可能是有
用的,例如,对于在数字图像中对潜在癌症关注的感兴趣区域进行注释是有用的。因此,如果护士或其他具有类似资格或许可的医务人员向模型提供他们的凭证,则模型会阻挡数据前向传播而通过最后一层,并且仅提供经分割的图像数据,然后经分割的图像数据可以用于例如生成示出普遍关注的区的热图,而不提供是恶性还是良性的具体分类。然而,如果放射科医师提供他或她的凭证,则最后一层可以被激活(或解锁)并且放射科医师可以接收针对每个感兴趣区域的分类。
8.总体上,在一个方面,一种方法可以使用一个或多个处理器来实施并且可以包括:提供与特定实体相关联的加密密钥,其中,所述特定实体有权访问机器学习模型,所述机器学习模型被训练为基于跨多个输入应用的数据来生成一个或多个输出;使用所述加密密钥对经训练的机器学习模型的一个或多个参数进行加密;对要作为输入而跨所述经训练的机器学习模型应用的输入数据进行加密;跨经加密的所述经训练的机器学习模型应用经加密的输入数据作为输入以生成加密输出;使用解密密钥对所述加密输出进行解密以生成解密输出;使用所述解密密钥来分析所述解密输出以确定所述经训练的机器学习模型的所述参数中的一个或多个参数已经受到损害;并且使一个或多个计算设备提供指示所述经训练的机器学习模型的所述一个或多个参数已经受到损害的输出。
9.在各种实施例中,使用同态加密来执行对所述一个或多个参数的加密。在各种版本中,使用同态加密来执行对所述输入数据的加密。
10.在各种实施例中,所述分析包括确定所述解密输出是否符合预期的输出结构。在各种实施例中,所述确定包括确定所述解密输出的一个或多个输出值是否落入特定范围内。在各种实施例中,所述确定包括确定所述解密输出的多个输出值是否共同加起来为预定值。
11.在各种实施例中,所述特定实体使用在由所述特定实体操作的计算设备上执行的软件应用程序来访问所述经训练的机器学习模型。在各种实施例中,所述方法还包括配置所述软件应用程序以响应于一个或多个事件而对所述输入数据进行加密。在各种版本中,所述一个或多个事件包括与操作所述软件应用程序以执行包括跨所述经训练的机器学习模型应用所述输入数据的任务的所述特定实体相关联的用户。
12.在各种实施例中,所述经训练的机器学习模型包括生成对抗网络、卷积神经网络或循环神经网络。在各种实施例中,数字密钥对于所述特定实体和所述经训练的机器学习模型是独特的。
13.另外,一些实施方式包括一个或多个计算设备的一个或多个处理器,其中,所述一个或多个处理器能操作用于执行在相关联的存储器中存储的指令,并且其中,所述指令被配置为使得执行上述方法中的任一种方法。一些实施方式还包括一种或多种存储计算机指令的非瞬态计算机可读存储介质,所述计算机指令能由一个或多个处理器执行以执行前述方法中的任一种方法。
14.在另一方面,可以提供至少一种非瞬态计算机可读介质,所述非瞬态计算机可读介质包括形成经训练的机器学习模型的数据,其中,所述经训练的机器学习模型包括:输入层,其接受多个输入数据点;至少一个隐藏层,其用于对所述输入数据点执行计算;输出层,其用于基于所述计算来提供至少一个输出值;以及至少一个门节点,其以所述输入数据点中的至少一个输入数据点为条件来选择性地允许或阻止从所述经训练的机器学习模型的
上游层接收到的数据未经改变地传递到所述经训练的机器学习模型的下游层。
[0015]“同态加密”是一种允许对加密数据进行计算的加密形式。同态加密生成加密结果,该加密结果在被解密时与操作的结果相匹配,就好像它们是对原始的未加密数据执行操作一样。
[0016]
应当理解,以下更加详细讨论的前述概念与额外概念的所有组合(假设这样的概念并不相互矛盾)都被认为是本文公开的发明主题的部分。特别地,出现在本公开内容的结尾的所要求保护的主题的所有组合都被认为是本文公开的发明主题的部分。还应当理解,本文明确采用的术语也可以出现在通过引用而并入的任何公开内容中,其应当被赋予与本文公开内容的特定概念最一致的含义。
附图说明
[0017]
在附图中,相同的附图标记在不同的视图中通常指代相同的部分。而且,附图不一定是按比例绘制的,而是通常将重点放在说明本文描述的实施例的各种原理上。
[0018]
图1图示了根据各种实施例的其中可以实施本公开内容的选定方面的示例环境。
[0019]
图2描绘了根据各种实施例的如何可以验证机器学习模型的完整性的示例。
[0020]
图3描绘了根据各种实施例的用于验证机器学习模型的完整性的数字密钥如何也可以用于认证对机器学习模型的使用的一个示例。
[0021]
图4描绘了根据各种实施例的如何可以验证机器学习模型的完整性以及如何可以保护模型免受攻击的另一示例。
[0022]
图5描绘了根据各种实施例的如何可以保护机器学习模型的完整性并同时还促进对模型的访问的认证的示例。
[0023]
图6描绘了根据各种实施例的如何可以保护机器学习模型的完整性并同时还促进对模型的访问的认证的另一示例。
[0024]
图7、图8和图9描绘了根据各种实施例的用于实践本公开内容的选定方面的示例方法。
[0025]
图10a和图10b展示了根据各种实施例如何可以促进图5的实施例的一个示例。
[0026]
图11a和图11b展示了根据各种实施例的如何可以促进图6的实施例的一个示例。
[0027]
图12a和图12b以概括方式示意性地展示了门控层和/或个体门节点如何可以被插入到经训练的机器学习模型中。
[0028]
图13a、图13b和图13c描绘了如何可以将技术应用于不同于前馈神经网络的各种类型的机器学习模型的示例。
[0029]
图14a和图14b展示了如何可以将门控层和/或门节点植入集成类型模型(例如,包括多个机器学习模型的处理流水线)的示例。
[0030]
图15描绘了示例计算系统架构。
具体实施方式
[0031]
诸如机器学习模型(也被称为“统计模型”)之类的人工智能(“ai”)部件可能面临各种安全风险。输入数据的安全性漏洞以及基于机器学习模型和/或模型本身的参数执行的数学运算完整性的变化都可能导致错误输出。机器学习模型通常被开发为执行复杂和/
或自主的任务,对于这些任务,安全性漏洞会对数据隐私和安全构成严重风险。例如,机器学习模型在医疗保健行业中变得越来越普遍,其中,《医疗保险流通和责任法案》(“hipaa”)等法规非常重视患者隐私。因此,除了模型存在被恶意操纵的风险之外,对模型的访问也会要求严格的安全性。鉴于前述内容,本公开内容的各种实施例和实施方式涉及验证和认证对机器学习模型的使用。
[0032]
参考图1,示意性地描绘了根据各种实施例的其中可以实施本公开内容的选定方面的示例环境。ai提供者系统100可以包括一个或多个计算设备和/或服务器(例如,刀片服务器),其由诸如企业、政府实体、个人、非营利组织等的实体运营,以为他人提供ai服务。在各种实施例中,ai提供者系统100可以通过一个或多个有线和/或无线计算网络110(例如,互联网)与一个或多个远程计算系统1021‑
n
通信性耦合。在一些实施方式中,ai提供者系统可以跨多个计算设备实施,从而形成可以被称为“云”基础设施或“云”的项目。
[0033]
在各种实施方式中,ai提供者系统100可以向一个或多个个人(“用户”)提供对一个或多个机器学习(“ml”)模型的访问。用户可以将ml模型用于各种目的,例如做出预测,分类、诊断(例如,临床决策支持或“cds”),操作仪器(例如更改医学仪器参数),执行对象和/或实体识别,手写识别等。在一些实施例中,取决于由个人和/或实体提供的凭证和/或代表个人和/或实体提供的凭证,ai提供者系统100可以向不同的个人和/或实体提供各种级别的ml模型访问。
[0034]
在图1中,第一远程计算系统1021可以采用例如医疗保健或医院计算系统/网络的形式,其包括一个或多个计算设备、服务器、仪器、智能器具、联网医学设备等。第一远程计算系统1021还可以包括例如各种与医疗保健有关的计算子系统(未描绘),例如,医院信息系统(“his”)、电子病例(“ehr”)数据库等。在各种实施方式中,由多个用户1141‑
p
(例如,医务人员)操作的多个客户端设备1121‑
m
可以连接到计算系统1021,例如通过一个或多个网络(未描绘,可能包括互联网)连接到计算系统1021。除了服务多个计算设备的系统之外或者代替服务多个计算设备的系统,ai提供者系统100还可以服务单独的计算设备,例如,1022和102
n

[0035]
在各种实施方式中,一个或多个ml模型可以由ai提供者系统100存储在ml模型数据库104中。这些ml模型可以采用各种形式,例如,深度学习神经网络、循环神经网络(“rnn”)、卷积神经网络(“cnn”)、支持向量机、决策树、强化学习模型、对抗生成网络(“gan”)等。ai提供者系统100可以以各种方式使这些ml模型可用于远程计算系统102。在一些实施方式中,远程计算系统102可以从数据库104下载ml模型的副本并且将它们存储在本地,例如存储在他们自己的数据库(例如,116)中。额外地或替代地,在一些实施方式中,ai提供者服务100可以将ml模型专门保留在数据库104中,并且可以根据需要跨ml模型应用从远程计算系统102接收的数据。在一些这样的实施方式中,ai提供者系统100和/或远程计算系统102可以对交换的数据(例如,针对ml模型的输入、从ml模型生成的输出等)进行加密。
[0036]
在一些实施方式中,ai提供者系统100可以包括许可引擎106、应用引擎107和/或完整性引擎108。这些引擎可以使用软件与硬件的任意组合来实施,并且可以在单个计算设备上实施或者跨多个计算设备(例如作为“基于云的部件”)实施。在其他实施例中,引擎106

108中的一个或多个可以被组合和/或省去,或者至少部分地在另一计算系统上(例如在远程计算系统1021上)实施。
[0037]
许可引擎106可以被配置为检查由个人用户和/或实体提供的凭证或代表个人用户和/或实体提供的凭证以确定个人用户/实体应该有权访问哪些ml模型,个人用户/实体应该具有什么级别的权限来访问每个ml模型,每个个人用户/实体应该有权访问特定ml模型的时间和/或不同使用次数等。换句话说,许可引擎106可以被配置为认证用户和/或实体以使用各种ml模型,无论是由ai提供者服务100本地存储在数据库104中的ml模型还是远程存储在一个或多个远程计算系统102中(例如在数据库116中)的ml模型都可以。
[0038]
应用引擎107可以被配置为跨在数据库104中存储的一个或多个ml模型而应用输入以生成输出。如前所述,在一些实施例中,ai提供者服务100可以在数据库104中本地保留ml模型,并且可以通过应用引擎107从远程计算系统102接收要由应用引擎107跨那些ml模型而应用的输入。例如,在一些实施方式中,远程计算系统102可以向ai提供者服务100提供输入数据(例如,数字图像、波形、文本等)。应用引擎107可以跨一个或多个ml应用模型(例如,针对这一个或多个ml应用模型,许可、选择操作远程计算系统102的实体/用户等)应用该输入数据以生成输出。指示输出的数据和/或输出本身可以返回远程计算系统102。然而,在其他实施例中,一个或多个远程计算系统102(例如,实体计算系统1021)可以下载它将要使用的ml模型并在本地存储它们,例如存储在数据库116中。在一些这样的实施例中,远程计算系统102可以具有它自己的应用引擎(未描绘),其跨本地存储的ml模型而应用数据。
[0039]
完整性引擎108可以被配置为检查被存储到ai提供者系统100本地(例如存储在数据库104中)和/或远程存储(例如存储在数据库116中)的ml模型的各个方面,以确定那些ml模型是否和/或如何可能已经受到损害。例如,恶意方可以获得对在数据库116中存储的ml模型的访问权限并且可以更改ml模型的一个或多个方面,例如更改或删除各个层中的一个或多个参数或权重。替代地,被许可实体在未获得许可对其本地存储的模型进行改变时可能会尝试这样做。在任一情况下,完整性引擎108可以被配置为应用本文描述的各种技术,或者使这些技术应用于一个或多个远程计算系统102,以便验证ml模型的完整性和/或当它确定ml模型已经受到损害时采取适当的补救措施。在一些实施例中,完整性引擎108可以通过跨ml模型应用数字密钥作为输入以生成输出来验证ml模型的完整性,然后如本文所述地由完整性引擎108进行验证。
[0040]
在一些实施方式中,从ai提供者系统100远程存储ml模型,例如将其存储在数据库116中,一个或多个客户端设备1121‑
m
和/或实体计算系统1021可以托管能由最终用户114操作以利用ml模型的软件应用程序。在一些实施方式中,该软件应用程序可以由ai提供者系统100来提供(例如,在应用商店中)和维护。在一些这样的实施例中,ai提供者系统100(例如通过完整性引擎108)可以保留使远程执行软件应用程序周期性地执行本文描述的技术(例如,完整性引擎108所采用的技术)的权利。
[0041]
例如,在一些实施例中,当特定用户114(例如,护士)操作客户端设备112以与软件应用程序交互时,护士可以利用一个或多个凭证登录客户端设备112。这些凭证可以对护士进行认证,以利用软件应用程序跨一个或多个ml模型应用数据。护士可能不会明确意识到他或她将访问ml模型,而是护士可以简单地与图形用户接口(“gui”)或其他输入部件交互以查看由响应于各种其他数据的cds算法生成的一些患者数据。cds算法本身可以跨适当的ml模型应用适当的输入数据以生成输出。然后可以经由软件应用程序将输出本身或根据输出生成的一些其他数据(例如,分类、预测等)呈现给护士。在一些实施例中,护士的凭证可
能会限制护士对某些模型的访问权限,同时拒绝护士对其他模型的访问(如果护士尝试使用依赖于受限模型的功能,则可能会提供听觉或视觉输出,例如“您无权执行此操作”)。额外地或替代地,在一些实施例中,护士的凭证可以限制最终从模型输出什么,下文将对此进行更详细的描述。
[0042]
在一些实施例中,在跨ml模型应用临床数据之前,可以检索护士的凭证或基于护士的凭证检索到的一些其他数据片段(例如,数字密钥)并且(例如紧接在将应用的“实际”临床数据之前)跨ml模型的至少部分应用它作为输入。ml模型可以基于所应用的数据来生成在本文中将被称为一个或多个“验证输出”的内容。这些验证输出可以与已知的验证输出进行比较,例如通过完整性引擎108或者在实体计算系统1021处(或者甚至在由护士正在操作的客户端设备114处)在本地进行这种比较。
[0043]
例如,可能已经基于在先跨ml模型的至少部分应用数据片段作为输入而生成了这些已知的验证输出。如果验证输出与已知的验证输出相匹配或者以其他方式相对应,则ml模型可以被视为“未受损害”。然后,可以跨ml模型应用护士考虑的临床数据作为输入以生成先前描述的输出。在各种实施方式中,护士甚至可能不会意识到ml模型的完整性已经经过测试或者ml模型已经被使用。
[0044]
除了紧接在跨ml模型应用临床数据之前以外或者代替紧接在跨ml模型应用临床数据之前,可以在其他时间点验证ml模型的完整性。例如,在一些实施方式中,完整性引擎108可以周期性地(例如,每小时一次、每天一次、夜间、周末等)请求向用户提供对ml模型的访问权限的远程执行软件应用程序执行本文描述的技术。在一些实施例中,远程执行软件本身可以被配置为周期性地验证其本地存储的ml模型的完整性。额外地或替代地,在一些实施方式中,完整性引擎108可以单独地或与应用引擎107结合的方式采用本文描述的技术(周期性地、按需地、随机地等)验证在数据库104中存储的(一个或多个)ml模型的完整性。在一些实施例中,用于验证ml模型的完整性的数字密钥或其他数据片段可以结合临床输入来跨模型应用。本文将描述其示例。
[0045]
例如,完整性引擎108可以采用各种技术来验证ml模型的完整性。例如,现在参考图2,描绘了前馈神经网络(“ffnn”)220形式的示例mf模型。如前所述,ffnn 220可以在ai提供者系统100本地被存储在数据库104中,或者被远程存储在一个或多个远程计算系统102上(例如在数据库116中)。ffnn 220包括多个层,包括输入层221、两个隐藏层2221‑2、各层之间的两组权重2231‑2以及输出层224。提供ffnn 220仅被提供用于说明目的,因此相对较小。应当理解,本文描述的技术适用于具有其他布置的网络,包括具有更多层或更少层、更多节点或更少节点等的网络。例如,许多神经网络具有比ffnn 220多得多的输入、多得多的层,并且可以包括其他部件,例如,记忆节点(例如,长短期记忆节点、门控循环单元等)。此外,本文的技术适用于任何机器学习模型,包括决策树(例如,随机森林)、支持向量机和逻辑回归等。该技术应用于有监督和无监督的模型以及回归和分类模型。
[0046]
在各种实施例中,为了验证ffnn 220的完整性,可以跨ffnn 220应用诸如独特标识符或数字密钥226之类的数据片段作为输入以生成输出。数字密钥226可以采用各种形式。在一些实施例中,数字密钥226可以采用使用例如数据加密标准(“des”)、数字签名算法(“dsa”)、三重des、高级加密标准(“aes”)、twofish、rivest

shamir

adleman(“rsa”)和/或非常好隐私(“pgp”)等生成的安全私钥的形式。然而,也可以采用其他类型的数字密钥(或
更一般地说,数据片段)和/或用于生成它们的技术。在一些实施例中,为了验证其完整性而跨ffnn 220应用的(一个或多个)数据片段(例如,数字密钥226)对于ffnn 220和使用ffnn 220的一个或多个用户或实体来说可能是独特的。如将简要讨论的,在一些实施例中,数字密钥226还可以用作对(安全)查找表的引用,该(安全)查找表提供关于ffnn 220的各种信息(例如,元数据),例如其版本、使用情况、用户权限、训练历史等。
[0047]
在各种实施方式中,可以以各种方式跨ffnn 220的全部或(一个或多个)部分应用数字密钥226作为输入。例如,可以将数字密钥226应用到输入层221作为输入,如图2所示。在一些这样的实施例中,数字密钥226的维度(例如,它包含有多少不同的字符、数字、符号和/或元素)可以与输入层221的维度相匹配,但是这不是必需的。额外地或替代地,在一些实施例中,可以在任何其他层和/或(一个或多个)个体节点处在正向方向(图2中的右侧)或者甚至在反向方向(图2中的左侧)应用数字密钥226。然后,可以将ffnn 220的各个部分基于数字密钥226生成的(一个或多个)验证输出228与已知的验证输出230进行比较,例如,如箭头232所示。如果验证输出228匹配或者以其他方式对应于已知的验证输出230,则ffnn 220可以被视为未受损害。否则,ffnn 220可以被视为受到损害,并且可以采取各种补救措施,例如在ai提供者系统100和/或远程计算系统102在本地发出警报,移除对ffnn 220的访问权限等。
[0048]
在图2中,数字密钥226应用于整个输入层221。然后,来自两个隐藏层2211‑2的输出、权重数据2231‑2以及来自输出层224的输出数据被捕获并被组合以生成验证输出228。可以使用各种专有算法或其他算法来以各种方式组合这些数据。在其他实施例中,可以捕获由ffnn 220生成的输出的其他组合以生成不同于在图2中描绘的那些验证输出。例如,可以捕获个体节点的任何组合的输出以用于验证输出,或者验证输出可以仅仅作为输出层224的输出。
[0049]
在验证ffnn 220之前,可以在例如安全环境中预先计算已知的验证输出230。例如,无论何时例如通过ai提供者系统100训练或重新训练ffnn 220,都可以跨ffnn 220的全部或(一个或多个)部分应用数字密钥226以生成输出。可以捕获各种节点和/或层的输出以生成已知的验证输出230。然后可以将该已知的验证输出230保存在例如非易失性存储器中(例如在ai提供者系统100本地被保存在数据库104中或者被远程保存在数据库116中)。在一些实施方式中,已知的验证输出230可以在被存储在非易失性存储器中时被加密,例如使得最终用户不能访问它。额外地或替代地,可以使用被分配给操作远程计算系统102的实体的公钥对已知的验证输出230进行加密。可以向同一实体提供数字私钥(例如,226),该数字私钥既能够跨ffnn 220应用以用于验证目的又能用于对已知的验证数据230进行解密。替代地,不同于数字密钥226的不同私钥可以用于对已知的验证数据230进行解密。
[0050]
只要在生成已知的验证输出230时跨ffnn 220的与在稍后生成验证输出228时相同的(一个或多个)部分应用数字密钥226并且只要来自节点/层的相同组合的相同输出被捕获,那么验证输出228和已知的验证输出230就应该是可比较的(例如相匹配)。因此,在一些实施例中,如果生成的后续验证输出228与已知的先前生成的验证输出230不匹配,则这可指示ffnn 220已经受到损害。
[0051]
ffnn 220可以采用各种形式,例如,卷积神经网络、“深度学习”网络、生成对抗网络(“gan”)等。虽然ffnn 220在图2中被描绘为前馈神经网络,但是这并不意味着限制。在其
他实施例中,其他类型的ml模型也可以与本文描述的技术一起使用,例如,循环神经网络、长短期记忆(“lstm”)网络、集成网络等。
[0052]
图3描绘了可以存储信息的查找表334的示例,该信息例如能由许可引擎106使用以确定关于在数据库104中存储的ml模型(或远程存储的ml模型,例如,在数据库116中或在远程计算系统1022、102
n
的本地易失性或非易失性存储器上存储的ml模型等)的信息。在各种实施方式中,许可引擎106可以接收数字密钥226作为输入。许可引擎106可以执行各种类型的功能以将数字密钥226映射到查找表334中的一个或多个记录。例如,在一些实施例中,许可引擎106可以执行各种散列函数以将数字密钥226映射到查找表334的一个或多个记录。
[0053]
在该示例中,许可引擎106执行计算(例如,散列函数)以将数字密钥226映射到查找表334的第一条目。该第一条目指定关于例如在数据库104中(或在ai提供者系统100的远程)存储的ml模型的各种信息。在该示例中,条目具有为“肺癌风险ai”的“描述”,这表明它是ml模型,该ml模型被训练接收与患者相关联的各种临床参数(例如,生命体征、肺的数字图像、ct扫描、磁共振成像(“mri”)数据、人口统计数据、症状、药物等)作为输入并生成指示肺癌风险的输出。该条目具有为“1.0.1”的“版本”、为2018年5月3日的“部署日期”、被许可人姓名、为“保留日期”的许可证到期日期(在本例中为n/a,因为ml模型仍处于其原始形式)、兼容的硬件以及兼容的软件(例如,被配置为跨模型应用输入数据的软件)。
[0054]
在各种实施方式中,当诸如医生或护士之类的用户操作软件以使得跨该模型应用输入数据时,用户的数字密钥(例如,226)除了跨ffnn 220进行应用之外还可以对照查找表334进行检查。如果用户具有足够的权限,许可证没有过期,并且满足条目指定的其他准则,则可以允许用户跨ml模型应用输入。在一些实施方式中,可以更新(登记)条目以反映已经使用了ml模型,例如已经由特定用户在特定时间使用了ml模型。如果许可证规定了ml模型的有限应用次数,则当前使用可以适用于该限制。
[0055]
在一些实施例中,可以在各个阶段对与ml模型的使用相关联的各种数据进行加密,以便验证模型的完整性和/或认证ml模型的使用。例如,在图4中,示意性地描述了ml模型的三个应用阶段:输入阶段438、非易失性存储器阶段440中对ml模型和权重的加密,以及输出阶段442。
[0056]
在输入阶段438中,可以从各种源444接收/获得/检索输入数据。这些源可以包括但不限于从诸如x射线、ct扫描、mri、ekg等的医学成像设备获得的图像数据4441、成像协议数据4442(例如,医学数字成像与通信或“dicom”、图片存档与通信系统或“pacs”等)、人口统计数据4443以及(例如从ehr获得的)病史数据4444。本文还预想到其他输入数据源。
[0057]
在输入阶段438之前或期间,可以例如由ai提供者系统100向一个或多个远程计算系统102(参见图1)提供加密密钥446。该加密密钥446可以由一个或多个用户(图1中的114)使用以根据由源444提供的数据来生成加密数据448。当跨一个或多个ml模型(例如,ffnn 420(其可以类似于或不同于图2中的220))应用加密的输入数据448时,可以采取各种措施。
[0058]
在一些实施例中,可以在块450处使用独特的数字私钥426(其可以类似于数字密钥226)对解密数据448进行解密,使得例如能够跨未加密版本的ffnn 420(如在451处所示)应用解密数据作为输入。然而,直到此时,输入数据仍可以保持其加密形式448。在这些实施例中,对输入数据进行加密直到其使用(例如直到它被加载到易失性存储器中)为止至少提
供了一些安全性以防止未授权方获得潜在敏感数据的访问权限。例如,一些黑客可能是机会主义者,当遇到加密的输入数据时(即,在等待跨ffnn 420应用时),这些机会主义者可能会在别处寻找要利用的数据。
[0059]
额外地或替代地,在一些实施例中,在输出阶段442(在图4的右侧)中,经加密的输入数据448可以保持加密,并且可以用作跨ffnn 420’的加密版本的输入。在各种实施例中,可以(例如使用加密密钥446或其他加密密钥)生成经加密的ffnn 220’(用阴影指示),使其只接受加密数据;未加密的输入可能会导致错误的输出。可以使用各种类型的加密,例如,rsa或前面提到的其他形式。在一些实施例中,可以使用同态加密来生成经加密的ffnn 420’,如前所述,同态加密是能够将诸如与经加密的ffnn 420’相关联的那些数学运算之类的数学运算应用于加密数据以生成加密输出453的机制。经加密的ffnn 420’即使在被加载到易失性存储器中以供使用时也仍可以保持加密状态。然后能够(例如使用数字密钥426)对加密输出453进行解密,以产生解密输出454,由于加密的同态性质,解密输出454可以构成实际的有效结果。额外地或替代地,在一些实施例中,可以采用乱码电路。
[0060]
在一些实施例中,在对非易失性存储器阶段440(在图4的中间)中的ml模型420和权重进行加密时,可以在456处使用加密密钥446对与ffnn 420相关联的参数和权重进行加密,以生成经加密的模型文件458和经加密的权重文件460。可以采用各种加密技术,例如,rsa或前面提到的其他技术。稍后,例如,当将要跨ffnn 420应用经解密或加密的输入数据时,数字密钥426(或另一数字密钥)可以在块462处用于对经加密的模型文件458和经加密的权重文件460进行解密。例如,当ffnn 420被加载到易失性存储器(例如,ai提供者系统100或远程计算系统102的易失性存储器)以供使用时,可能发生这种情况。因此,当ffnn 420被存储在非易失性存储器(例如,磁盘、固态存储器等)中时,它仍可以保持加密状态,并且因此至少在一定程度上仍受保护而免受恶意用户的侵害。只有当ffnn 420要被使用并且被加载到易失性存储器(例如,ram)中时,才对其进行加密(例如在块462处使用数字密钥426对其进行加密)。
[0061]
图4中描绘的各种加密方案的一个益处是可以防止未经授权地使用fnn 420或其加密版本420’。如前所述,在一些实施例中,只能跨ffnn 420/420’应用加密输入——未加密的数据将导致错误输出。因此,希望使用ffnn 420/420’的用户必须有权访问一个或多个数字密钥(例如,426)和/或解密密钥(例如,446)。如果没有这些密钥,未经授权的用户就可能无法使用ffnn 420/420’。
[0062]
图5描绘了根据各种实施例的如何可以保护经训练的机器学习模型的完整性并同时还促进对模型的访问的认证的示例。在图5中,ml模型再次采用ffnn 520的形式,但是这并不意味着限制。在图5中,ffnn 520仅当提供了适当的凭证或其他数据片段(例如,数字密钥526(其可以类似于226、426))(例如作为跨ffnn 520的至少部分的输入)时,才可以产生有意义的和/或相干的输出。否则,跨ffnn 520应用输入数据可能会生成错误的输出、全为零、表示未经授权地使用ffnn 520的输出和/或指示ffnn 520是否已经以某种方式受到损害的输出。
[0063]
在图5中,可以从与图4中描绘的源相同或相似的源444获得各种输入。输入加扰器560可以被配置为对从源444获得的输入数据单独地或与从数字密钥526获得的数据相组合地进行加扰,使得从输入加扰器560输出的数据包括来自数字密钥526的数据,该数据与从
源444获得的输入数据混洗或混合。例如,并且如输入加扰器560下面的虚线所指示的,来自源444的输入和来自数字密钥526的数据散布在输入层521的节点之间,使得输入层521包括加扰输入。额外地或替代地,可以通过调制输入数据的幅度对输入数据进行加扰,例如向每个个体输入流添加恒定值/从每个个体输入流减去恒定值来实现这一点。在一些这样的实施例中,可能只有算法的制造商知道经加扰的输入序列,并且可能在创建算法时已经配置了经加扰的输入序列。如果单独或与从数字密钥526获得的将用来实施加扰操作的数据相组合地向用户提供输入加扰模块,则用户将仅能够使用该算法。
[0064]
在各种实施例中,可以例如在ffnn 520的其他层之间提供一个或多个“门控”层562。这些门控层562能操作用于允许或阻挡数据通过ffnn 520的各个部分向前传播。图5中描绘了两个门控层5621和5622,但是在各种实施例中也可以部署更多或更少的门控层。这些门控层562能够在“锁定”状态与“解锁”状态之间转变,如下所述。例如,在第一门控层5621中,三个门节点5611‑3与经加扰的输入层560的六个输出中的三个输出相耦合。输入层521的其他节点不连接到门节点561,但是这并不是意味着限制。在给定的门控层562中可以包括更多或更少的门节点561。门节点5611‑3的输出与第一隐藏层5221的输入相耦合。虽然图5中描绘了两个隐藏层5221和5222,但是这并不意味着限制。可以提供更多或更少的隐藏层。在一些实施例中,可以在训练后将门控层插入到模型中并且主要在推理期间使用门控层以控制数据流动通过模型。
[0065]
可以通过第一密钥锁定例程5631来打开或关闭门控层5621的门控节点5611‑3。可以采取各种形式的第一密钥锁定例程5631(例如,包括一个或多个if/else语句、散列函数等的软件)可以与包括来自数字密钥526的数据的输入层521的输入节点相耦合。如果提供合适和/或经授权的数字密钥526,则第一密钥锁定例程5631可以解锁或打开门节点5611‑3,例如通过将它们设置为一(解锁)来实现这一点。否则,第一密钥锁定例程5631可以锁定或关闭门节点5611‑3,例如通过将它们设置为零来实现这一点。在一些实施例中,第二门控层5622可以被提供有它自己的门节点5614‑6以及可以被或者可以不被第一密钥锁定例程5631的输出激活的第二密钥锁定例程5632。
[0066]
在一些实施例中,还可以提供数据解扰器566。如下面的虚线所示,数据解扰器566可以被配置为对第二隐藏层5222的输出进行解扰(或“解混洗”)。例如,在图5中,输出o2、o0和o1在最终输出层524中被解扰为o0、o1和o2。
[0067]
门控层562提供与例如认证有关的多种益处。如果如图5所描绘的那样作为整个层进行插入,则能够容易地将门控层562插入到训练后的ml模型中,如图10a

b所展示的那样。此外,门控层562能够针对个体被许可人进行定制。
[0068]
图10a

b展示了如何可以相对容易地将门控层562插入到训练后的ffnn 1020中。ffnn 1020可以在许多方面类似于ffnn 520。一旦插入门控层562,就可以在推理期间主要使用门控层562来控制数据流动通过模型。在一些实施方式中,当门控层562被插入到ffnn 1020中时,可以采用诸如图10b中所描绘的例程(类似于python的伪代码)。
[0069]
在图10b中,k表示数字密钥,例如,526。h
i
指定特定的隐藏层1022
i
。在图10a中有三组权重w1‑3。第一组权重w1在输入层1021与第一隐藏层10221之间。第二组权重w2在门控层562与第二隐藏层10222之间。第三组权重w3在第二隐藏层10221与输出层1024之间。回到图10b,顶部的激活函数例如可以是将非线性引入ffnn 1020的sigmoid函数。如图10b中的注
释(以符号“#”开头)中所解释的,如果应用了有效的数字密钥k,则g(k)将等于1,这意味着来自第一隐藏层10221的输出未经改变地传播到第二隐藏层10222。另一方面,如果应用了无效(或者没有应用)数字密钥k,则g(k)将等于0,这意味着来自第一隐藏层10221的输出实质上被替换为零,而零被传播到第二隐藏层10222。因此,由输出层1024提供的输出将是无意义的或简单地为零。在一些实施例中,这可以通过向矩阵添加零列和/或通过用零替换矩阵的列来完成。
[0070]
图5和图10展示了如何可以将门控层插入到预训练的前馈神经网络中。并且如下文将要描述的,图6和图11展示了如何可以将个体门控节点插入到预训练的前馈神经网络中。然而,插入门控层或个体门节点的技术不受此限制。例如,本文描述的门控层技术可以用于通过在模型的输入层和/或输出层之前或之后插入门控层来包装任何类型的机器学习模型。此外,门控层(或个体门节点)可以被嵌入在多种类型的机器学习模型中,这些机器学习模型包括多步计算或过程,如将在图12

14中所描述的那样。例如,可以在决策树中的任何给定级别处插入门控层,或者在朴素贝叶斯计算中在联合概率与条件概率之间插入门控层。这两种方法都特别适合用于“集成”机器学习模型,并且能够用于限制或引导信息流动通过这些类型的建模方法,例如如图13所示。该技术适用于有监督和无监督的模型以及回归和分类模型。
[0071]
图6描绘了在许多方面类似于图5的实施例,但是引入了额外的优点。在图6中,经训练的ml模型再次采用ffnn 620的形式,ffnn 620包括输入层621、两个或更多个隐藏层6221‑
6222,以及输出层624。如前所述,可以提供更多或更少的层,包括隐藏层,并且经训练的ml模型可以采用其他形式。再一次出现的还有加扰器660和解扰器666,它们可以与图5中的部件560和566类似地操作。
[0072]
在该示例中,不是包括整个门控层(图5中的562),个体门节点6631‑4散布在ffnn 620内的各个点处。例如,第一门节点6611将来自输入节点(“i
1”)的输出与第一隐藏层6221的节点的输入相耦合,并且由第一密钥锁定例程6631来控制。第一门节点6611由第一门锁例程6631来控制,第一门锁例程6631本身与输入层621的包括来自数字密钥626的数据的部分相耦合。类似地,第二门节点6612将来自另一输入节点(“i
2”)的输出与第一隐藏层6221的另一输入节点相耦合。第二门节点6612由第二门锁例程6632来控制,第二门锁例程6632本身与第一门锁例程6631一样,与输入层621的包括来自数字密钥626的数据的部分相耦合。
[0073]
第三门节点6613被耦合在第一隐藏层6221中的一个节点的输出与第二隐藏层6222的节点的输入之间。与第一门节点6611和第二门节点6612一样,第三门节点6613由第三门锁例程6633来控制。第三门锁例程6633再一次与输入层621的包括来自数字密钥626的数据的部分相耦合并因此受其控制。
[0074]
第四门节点6614和第五门节点6615在一侧被耦合在第二隐藏层6222的两个节点之间,在另一侧被耦合在经加扰的输出层664的节点之间。这两个门节点6614‑5都被单个第四门锁例程6634控制。与前面的门锁例程6631‑3一样,第四门锁例程6634被耦合到输入层621的包括来自数字密钥626的数据的部分并因此受其控制。
[0075]
在门锁例程663和门节点661散布在整个ffnn 620的各个位置处的情况下,能够促进根据作为输入而提供的数字密钥626进行的多级认证。例如,在图6中,将来自源444的输入与来自数字密钥626的数据一起提供给数据加扰器660。数据加扰器660如前所述地对这
些数据进行加扰以生成经加扰的输入层621。即使利用加扰,来自数字密钥626的数据也被作为输入而提供给门锁例程6631‑4。这些门锁例程663可以被配置(例如被训练)为解锁和/或锁定门节点6611‑5,使得实际输入数据的选定部分(在经加扰的输入层621中的“i
0”、“i
1”和“i
2”)从源444被准确地提供或不准确地提供给ffnn 620的下游部件。因此,由具有相对有限的访问权限的用户提供的第一数字密钥626可能仅解锁一个或两个选定的门节点661。相比之下,由另一用户提供的具有相对无限制访问权限的第二数字密钥可以解锁所有门节点6611‑5或者解锁所有门节点6611‑5中的大部分门节点。
[0076]
作为非限制性示例,假设ffnn 620是接收患者的数字图像作为输入的卷积神经网络。如上所述,隐私对于许多医疗保健应用来说并无差异。因此,可以根据用户的相对访问级别将不同的数字密钥提供给不同的用户,使得卷积神经网络仅处理相应用户被赋予权限访问的那些图像的部分。例如,诸如使用ffnn 620以匿名方式分析图像数据的护士或研究人员等权限有限的用户可以提供数字密钥626,该数字密钥626仅解锁卷积神经网络的那些没有描绘患者的面部的部分(有时被称为“图像拼片”)。更高级别的用户(例如,照顾在输入数据中描绘的患者的医生)可以提供解锁输入图像的其他部分(例如,描绘患者的面部的部分)的数字密钥626。
[0077]
在一些实施例中,还可以在输出级别处执行类似的过程,其中,例如,数字密钥626可以解锁期望级别的输出。例如,使用ffnn 620对图像进行分类的护士、研究人员或医生可能会接收到提供适合其专业水平的决策支持的输出。护士或研究人员可能具有全局输出,例如,表明患者有可疑肺结节的迹象。相比之下,处置患者的医生可能会接收到个体结节的恶性状况的(一个或多个)位置和(一个或多个)风险,即,更细粒度的输出。
[0078]
在另一类似的应用中,假设卷积神经网络被设计成分析在机场的安全检查站捕获的乘客的图像。由低级安全代理提供的数字密钥只能解锁ffnn 620的以下部分:这些部分对应于与乘客的身体的某些区相对应的图像拼片。相比之下,由高级安全代理或调查人员提供的数字密钥(例如作为安全漏洞后调查的部分)可能会解锁ffnn 620的大部分(如果不是全部的话),使得他们能够执行低级安全代理无法使用的额外功能,例如,面部识别。
[0079]
可以各种方式选择ffnn 620中插入门节点661的位置。在一些实施例中,可以随机或准随机地选择这些位置。在其他实施例中,可以基于那些位置处或附近的其他节点可能对最终输出产生的相对影响来选择这些位置。例如,隐藏层622的特定节点和/或隐藏层之间的相应节点对可能比其他节点对最终输出的影响更大。在一些实施例中,这些高影响节点对可以与门节点相耦合,使得锁定门节点将使模型的输出变得无意义、无用等。额外地或替代地,并且如上所述,在一些实施例中,门节点(或门控层)可以被插入在卷积神经网络内的位置,这些位置控制输入数字图像的哪些区域被处理、分类等。因此,能够通过指示用户应具有什么访问级别的数字密钥来操作这些插入的门节点(或门控层)。
[0080]
图11a

b展示了门节点661如何可以被相对容易地插入到ffnn 1120训练后中。ffnn 1120在许多方面类似于ffnn 620。一旦插入门节点661,就可以在推理期间主要使用门节点661来控制数据流动通过模型。在一些实施方式中,当门节点661被插入到ffnn 1120中时,可以采用例如在图11b中所描绘的例程(类似于python的伪代码)。
[0081]
在图11b(类似于图10b)中,k再一次表示数字密钥,例如,626。h
i
指定特定的隐藏层1122
i
。在图11a中,再一次存在三组权重w1‑3。第一组权重w1在输入层1121与第一隐藏层
11221之间。第二组权重w2在两个门节点5611‑2与第二隐藏层11222之间。第一隐藏层11221的两个节点x
11
和x
13
不与门节点相耦合。第三组权重w3在第二隐藏层11221与输出层1124之间。
[0082]
回到图11b,顶部的激活函数可以是例如将非线性引入ffnn 1120的sigmoid函数。如图11b中的注释(以符号“#”开头)中所解释的,如果应用了有效的数字密钥k,则对于所有门节点(即,x
12
和x
14
),g(k)将等于1,这意味着来自第一隐藏层11221中的节点x
12
和x
14
的输出未经改变地传播到第二隐藏层11222。对于第一隐藏层11221的非门节点x
11
和x
13
,g(k)总是一。另一方面,如果应用了无效(或者没有应用)数字密钥k,则针对门节点(x
12
和x
14
)的g(k)将等于0,这意味着来自第一隐藏层11221的输出中的至少一些输出实质上被传播到第二隐藏层11222的零所替换。因此,由输出层1124提供的输出将是无意义的。
[0083]
图7图示了用于实践本公开内容的选定方面(包括图2中展示的方面)的示例方法700的流程图。图7的操作能够由一个或多个处理器(例如,ai提供者系统100和/或一个或多个远程计算系统102的一个或多个处理器)来执行。为了方便起见,图7的操作将被描述为由系统执行。其他实施方式可以包括除了图7中图示的那些步骤之外的额外步骤,可以以不同顺序和/或并行地执行图7的(一个或多个)步骤,并且/或者可以省去图7的步骤中的一个或多个步骤。
[0084]
在块702处,系统可以提供与特定实体相关联的数字密钥(例如,226、426、526、626)。例如,ai提供者系统100可以向其客户(例如,远程计算系统102的用户)提供一个或多个数字密钥,这一个或多个数字密钥对每个客户/员工和/或客户有权访问的一个或多个ml模型都是独特的。
[0085]
在块704处,系统可以跨经训练的机器学习模型的至少部分应用数字密钥作为输入以生成一个或多个验证输出。在各种实施例中,可以跨ml模型的至少部分应用数字密钥本身作为输入,并且/或者可以将数字密钥与其他输入(例如,客户希望对其进行推理的数据)结合应用。在前一种情况下,在一些实施例中,可以在对ml模型的任何其他使用之前立即应用数字密钥,或者根据需要(例如在怀疑ml模型受损害时)在其他时间(例如周期性地)应用数字密钥,在随机选择的时间应用数字密钥等。在各种实施方式中,可以在模型的输入层(例如,221)和/或模型的其他潜在入口点处(例如在一个或多个隐藏层、输出层、softmax/sigmoid层等处)应用数字密钥。
[0086]
在块706处,系统可以将验证输出中的一个或多个验证输出与一个或多个已知的验证输出进行比较。在各种实施例中,可能已经基于先前跨经训练的机器学习模型的至少同一部分应用数字密钥作为输入而生成了一个或多个已知的验证输出。直观地说,如果ml模型保持不变,那么在不同时间跨ml模型的同一部分应用相同的数据应该会产生相同的输出。因此,在一些实施例中,块706的比较寻求在块704处生成的(一个或多个)验证输出与已知的(一个或多个)验证输出之间的精确匹配。然而,这并不意味着限制。在其他实施例中,也可以执行其他类型的比较。例如,在块704处生成的验证输出可以应用于散列函数作为输入,并且可以将结果与用作针对已知的(一个或多个)验证输出的代理的或根据已知的(一个或多个)验证输出生成的另一散列或值进行比较。
[0087]
在块708处,系统可以确定在块706处的比较结果。如果在块708处的答案是存在匹配,则在块710处,系统可以确定经训练的机器学习模型的一个或多个参数已经受到损害。例如,在块704处生成的验证输出可能与已知的验证输出并不精确匹配。一种可能的原因是
ml模型的一个或多个参数被篡改,从而导致在块704处生成的验证输出与已知的验证输出之间存在差异。
[0088]
在块712处,系统可以使一个或多个计算设备提供指示经训练的机器学习模型的一个或多个参数已经受到损害的输出。例如,ai提供者系统100可以例如向作为提供ai提供者系统100的实体的雇员的本地用户发出一个或多个听觉或视觉警报。额外地或替代地,在一些实施例中,可以在一个或多个远程计算系统102处发出一个或多个警报,以例如通知最终用户(例如,114)他们有权访问的模型可能不再可靠或可信。在一些实施例中,对ml模型的访问权限可以被限制为消除,直到能够(例如通过重新训练模型和/或通过提供替换模型)重新建立模型的完整性为止。
[0089]
回到块708,如果答案为否,则在块714处,系统可以确定经训练的ml模型保持未受损害。在一些实施例中,可以不采取进一步措施。在其他实施例中,可以登记成功的完整性检查,使得例如未来的调查者能够确定至少在一个时间点ml模型没有受到损害。这可以帮助他们确定ml模型以后何时会受到损害(如果发生这种情况的话)。
[0090]
图8示出了用于实践本公开内容的选定方面(包括图4中展示的方面)的示例方法800的流程图。图8的操作能够由一个或多个处理器(例如,ai提供者系统100和/或一个或多个远程计算系统102的一个或多个处理器)来执行。为了方便起见,图8的操作将被描述为由系统执行。其他实施方式可以包括除了图8中图示的那些步骤之外的额外步骤,可以以不同的顺序和/或并行地执行图8的(一个或多个)步骤,并且/或者可以省去图8的步骤中的一个或多个步骤。
[0091]
在块802处,系统(例如,远程计算设备102或在将模型发送到远程计算设备102之前的ai提供者系统100)可以使用加密密钥(例如,446)对经训练的机器学习模型(例如,420)的一个或多个参数进行加密,以生成至少部分(如果不完全的话)加密的模型(例如,420’)。这可以类似于图4中的操作456。可以在块802处采用各种类型的加密,例如,同态加密等。
[0092]
在块804处,系统可以(例如使用相同的加密密钥(446))对要作为输入而跨经训练的机器学习模型(例如,420’)应用的输入数据进行加密,以生成类似于图4的448的加密输入数据。在块806处,系统可以跨经加密的经训练的机器学习模型的至少部分应用经加密的输入数据(例如,448)作为输入以生成加密输出(例如,453)。
[0093]
在块808处,系统可以使用解密密钥(例如,426)对加密输出进行解密以生成经解密的输出数据(例如,454)。在块810处,系统可以分析经解密的输出数据以确定经训练的机器学习模型的参数中的一个或多个参数是否已经受到损害。这种分析可以采取多种形式。在一些实施例中,分析可以包括确定经解密的输出数据(例如,454)是否符合预期的输出结构。例如,一个或多个输出值可以被预期在特定范围内,或者可以被预期为共同加起来为一。如果解密数据454不满足这些约束,则可以表明模型已经受到损害。基于在块810处的分析,在块812处,系统可以使一个或多个计算设备(例如,102)提供指示经训练的机器学习模型的一个或多个参数已经受到损害的输出,这类似于块图7的710。
[0094]
图9图示了用于实践本公开内容的选定方面(包括图5和/或图6中展示的方面)的示例方法900的流程图。图9的操作能够由一个或多个处理器(例如,ai提供者系统100和/或一个或多个远程计算系统102的一个或多个处理器)来执行。为了方便起见,图9的操作将被
描述为由系统执行。其他实施方式可以包括除了图9中图示的那些步骤之外的额外步骤,可以以不同的顺序和/或并行地执行图9的(一个或多个)步骤,并且/或者可以省去图9的步骤中的一个或多个步骤。
[0095]
在块902处,系统可以提供与特定实体相关联的数字密钥。在各种实施例中,特定实体可以有权访问机器学习模型,例如,ffnn 220、420、520或620,该机器学习模型被训练为基于跨多个输入应用的数据来生成一个或多个输出。
[0096]
在块904处,系统可以跨经训练的机器学习模型的至少第一部分应用数字密钥作为输入,以将散布在经训练的机器学习模型中的一个或多个门节点(例如,561、661)在锁定状态与解锁状态之间转变。例如,在图5中,在输入层521的第二输入、第四输入和第五输入处(在加扰之后)应用数字密钥526。图6也是如此。在图5中,数字密钥526的数据用于控制第一密钥锁定例程5631(其控制门节点56l1‑3)以及第二密钥锁定例程5632(其控制门节点5614‑6)。在图6中,数字密钥626的数据用于控制第一密钥锁定例程6631(其控制第一门节点66l1)、第二密钥锁定例程6632(其控制第二门节点6612)、第三密钥锁定例程6633(其控制第三门节点6613)和第四密钥锁定例程6634(其控制密钥节点6614‑5)。
[0097]
在块906处,系统可以使得跨经训练的机器学习模型的至少第二部分应用其他输入数据(例如,图5和图6中的输入i1‑3)作为输入,以生成一个或多个输出。例如,在图5中,分别在输入层521的第一输入、第三输入和第六输入处(在加扰之后)应用输入数据点i1‑3。图6也是如此。
[0098]
如关于图5

6所描述的,在各种实施例中,当门节点处于解锁状态时,它可以允许从经训练的机器学习模型的上游层接收的数据未经改变地传递到经训练的机器学习模型的下游层。例如,在解锁状态下,门节点可以将从经训练的机器学习模型的上游层接收到的数据乘以1。相比之下,在锁定状态下,门节点可以不允许(或阻止)从经训练的机器学习模型的上游层接收到的数据未经改变地传递到经训练的机器学习模型的下游层。例如,在锁定状态下,门节点可以将从经训练的机器学习模型的上游层接收到的数据乘以零。
[0099]
如先前关于图5所描述的,在一些实施例中,一个或多个门节点可以形成门节点的门控层,该门控层被插入在经训练的机器学习模型的两层之间。在一些这样的实施例中,门控层的门节点可以通过接收数字密钥(例如,526、626)的全部或部分作为输入的单个密钥锁定例程在解锁状态与锁定状态之间转变。并且整个数字密钥可以不用于锁定/解锁所有门节点。例如,在一些实施例中,第一门节点可以通过数字密钥的第一部分在锁定状态与解锁状态之间转变。第二门节点可以通过与数字密钥的第一部分不同(或仅部分相交)的数字密钥的第二部分在锁定状态与解锁状态之间转变,以此类推。
[0100]
图12a

b以概括方式示意性地展示了门控层和/或个体门节点如何可以被插入到经训练的机器学习模型中,该机器学习模型包括除了神经网络之外的模型(例如,决策树、支持向量机、随机森林、k最近邻邻居(“knn”)、朴素贝叶斯、逻辑回归等)。图12a展示了“封装”方法,其中,一个门控层12621被插入在输入层1221与模型1220之间,并且第二门控层12622被插入在模型1220与输出层1264之间,类似于图5中所描绘的布置。虽然在图12a中描绘了门控层12621‑2,但是这并不意味着限制;可以改为插入个体门节点。
[0101]
图12b描绘了不同的“植入”方法,它更类似于图6的方法,其中,门控层1262(或个体门节点)被植入在模型1220的各层之间,使得模型1220分成两个部分:12201和12202,它们
分别在门控层1262之前和之后。在一些情况下,植入方法可能并不适用于某些类型的机器学习模型,例如,支持向量机或逻辑回归模型。基于集成的方法(例如,ada boost、堆叠、装袋等)也可以利用图12b的植入方法。
[0102]
图13a

c描绘了如何可以将技术应用于不同于先前描述的前馈神经网络的各种类型的机器学习模型的示例。图13a展示了如何可以将门控层g1‑4或个体门节点插入在决策树1320a的层l1‑2与l3‑8之间的一个示例。底层包括输出o1‑6,并且顶层包括输入。
[0103]
图13b展示了门控层g1‑4和g5‑8如何可以被插入或植入在knn分类器1320b的输入t1‑3与距质心距离层d1‑4之间以及在距质心距离层d1‑4与排序/多数投票层之间的一个示例。图13c展示了门控层g1‑4和g5‑8如何可以被插入或植入在支持向量机1320c的输入i1‑3与偏置减法层b1‑4之间以及在偏置减法层b1‑4与最终激活层(sign(w*i

b))之间的一个示例。
[0104]
虽然本文描述的示例聚焦于门控层和/或门节点的模型内插入,但是这并不意味着限制。可以在作为更大集合模型的部分而采用的不同的组成模型之间采用类似的机制,以便控制生成哪些输出数据以及不生成哪些输出数据(或者至少不会生成相干的结果)。例如,第一训练模型的输出可以用作第一cds算法的部分来进行一个诊断,也可以用作针对第二模型的输入来进行第二cds诊断。如果客户只为第一cds算法的许可付费,而没有为第二cds算法的许可付费,则可以在模型之间插入一个或多个门控层和/或门节点,以确保被许可人仅收到他们已支付版税的内容。
[0105]
图14a

b展示了如何可以将门控层和/或门节点植入集成类型模型(例如,包括多个机器学习模型的处理流水线)的示例。在图14a中,集成模型1499a包括“装袋”集成模型或“堆叠”集成模型,其包括彼此并行布置的多个组成模型14201‑
n
。装袋集成模型包括相同模型类型的多个组成模型。堆叠集成模型包括不同类型的多个组成模型。在这个非限制性示例中,第一模型14201被分成两个部分:14201’
和1420
1”,其中,它们之间插有门控层14621。一个或多个额外模型(包括模型1420
n
)以类似的方式拆分。这些模型的输出被提供为针对另一门控层1462
n 1
的输入,其馈入共识函数并最终馈入输出1464。本文中预期到堆叠集成模型或装袋集成模型的其他布置。
[0106]
图14b展示了本文描述的技术如何可以与诸如adaboost之类的“提升(boosting)”类型的集成模型一起应用。在图14b中,集成模型1499b包括相对于彼此串联布置的多个组成模型14201‑
n
。在这些模型的中间植入门控层14621‑
n
,类似于图14a的情况。再一次,在最后的模型1420n与输出层1464之间植入最终的门控层1462
n 1
。本文预想到具有门控层和/或个体门节点的提升模型的其他布置。
[0107]
图15是示例计算机系统1510的框图。计算机系统1510通常包括至少一个处理器1514,该至少一个处理器1514经由总线子系统1512与多个外围设备通信。这些外围设备可以包括存储子系统1524,包括例如存储器子系统1525和文件存储子系统1526、用户接口输出设备1520、用户接口输入设备1522以及网络接口子系统1516。输入设备和输出设备允许用户与计算机系统1510交互。网络接口子系统1516提供与外部网络的接口,并且被耦合到其他计算机系统中的对应的接口设备。
[0108]
用户接口输入设备1522可以包括键盘、定点设备(例如,鼠标、轨迹球、触摸板或图形输入板)、扫描仪、并入显示器中的触摸屏、音频输入设备(例如,语音识别系统、麦克风)和/或其他类型的输入设备。一般而言,术语“输入设备”的使用旨在包括将信息输入到计算
机系统1510或通信网络上的所有可能类型的设备和方式。
[0109]
用户接口输出设备1520可以包括显示子系统、打印机、传真机或非视觉显示器(例如,音频输出设备)。显示子系统可以包括阴极射线管(crt)、平板设备(例如,液晶显示器(lcd))、投影设备或用于创建可见图像的一些其他机构。显示子系统还可以(例如经由音频输出设备)提供非视觉显示。一般而言,术语“输出设备”的使用旨在包括将信息从计算机系统1510输出到用户或另一机器或计算机系统的所有可能类型的设备和方式。
[0110]
存储子系统1524存储编程和数据构造,这些编程和数据构造提供本文描述的一些或所有模块的功能。例如,存储子系统1524可以包括用于执行本文描述的方法的选定方面和/或实施在各个附图中描绘的一个或多个部件的逻辑单元。
[0111]
这些软件模块通常由处理器1514单独地或与其他处理器组合地执行。存储子系统1524中使用的存储器1525能够包括多个存储器,包括用于在程序执行期间存储指令和数据的主随机存取存储器(ram)1530和其中存储固定指令的只读存储器(rom)1532。文件存储子系统1526能够为程序和数据文件提供持久存储,并且可以包括硬盘驱动器、软盘驱动器以及相关联的可移动介质、cd

rom驱动器、光驱或可移动介质盒。实施某些实施方式的功能的模块可以由文件存储子系统1526存储在存储子系统1524中,或者存储在能(一个或多个)处理器1514访问的其他机器中。
[0112]
总线子系统1512提供了用于让计算机系统1510的各种部件和子系统按预期相互通信的机制。虽然总线子系统1512被示意性地示为单条总线,但是总线子系统的替代实施方式可以使用多条总线。
[0113]
计算机系统1510能够是各种类型的,包括工作站、服务器、计算集群、刀片服务器、服务器群或任何其他数据处理系统或计算设备。由于计算机和网络的不断变化的性质,图15中描绘的计算机系统1510的描述仅旨在作为用于说明一些实施方式的目的的特定示例。计算机系统1510的许多其他配置可能具有比图15中描绘的计算机系统更多或更少的部件。
[0114]
虽然本文已经描述和说明了若干发明实施例,但是本领域普通技术人员将容易想到用于执行功能和/或获得结果和/或本文描述的优点中的一个或多个优点的各种其他单元和/或结构。这样的变化和/或修改中的每个变化和/或修改都被认为是在本文描述的发明实施例的范围内。更一般地,本领域技术人员将容易理解,本文描述的所有参数、尺寸、材料和配置均旨在是示例性的,并且实际参数、尺寸、材料和/或配置将取决于一个或多个使用本发明教导的具体应用。本领域技术人员将认识到或者能够使用不超过常规的实验手段来确定本文描述的具体发明实施例的许多等同物。因此,应当理解,前述实施例仅作为示例呈现,并且在权利要求及其等同物的范围内,本发明的实施例可以以不同于具体描述和要求保护的方式来实践。本公开内容的发明实施例涉及本文描述的每个单独的特征、系统、物品、材料、套件和/或方法。另外,如果这样的特征、系统、物品、材料、套件和/或方法并不相互矛盾,则两个或更多个这样的特征、系统、物品、材料、套件和/或方法的任何组合能够被包括在本公开内容的发明范围内。
[0115]
本文定义和使用的所有定义应当被理解为控制字典定义、通过引用并入的文献中的定义和/或定义术语的普通含义。
[0116]
除非明确指出相反情况,否则本说明书和权利要求书中使用的词语“一”和“一个”应当被理解为表示“至少一个”。
[0117]
本说明书和权利要求书中使用的短语“和/或”应当被理解为表示如此结合的元件中的“任一个或两个”,即,在某些情况下结合存在而在其他情况下分离存在的元件。用“和/或”列出的多个元件应当以相同的方式进行解释,即,如此结合的元件中的“一个或多个”元件。除了用“和/或”分句具体标识的元件之外,还可能任选地存在其他元件,无论是与具体标识的那些元件相关还是不相关都可以。因此,作为非限制性示例,在与诸如“包括”的开放式语言结合使用时,对“a和/或b”的引用能够在一个实施例中仅指代a(任选地包括除了b之外的元件);而在另一实施例中仅指代b(任选地包括除了a之外的元件);而在又一实施例中指代a和b两者(任选地包括其他元件)等。
[0118]
本文在说明书和权利要求书中使用的“或”应当被理解为具有与上文所定义的“和/或”相同的含义。例如,在分隔列表中的项目时,“或”或“和/或”应当被解读为包含性的,即,包含至少一个,但也包含多个元件或元件列表的多于一个的元件以及(任选的)额外的未列出的项目。只有明确指示相反情况的术语(例如,“中的仅一个”或“中的恰好一个”或者在权利要求中使用的“由
……
组成”)将指代包括多个元件或元件列表中的恰好一个元件。一般而言,当在本文使用的术语“或”前面有排他性术语(例如,“任一个”、“中的一个”、“中的任一个”或“中的恰好一个”)时,术语“或”应当仅被解读为表示排他性替代方案(即,“一个或另一个但不是两者”)。当在权利要求中使用“基本上由
……
组成”时,术语“基本上由
……
组成”应当具有其在专利法领域中使用的普通含义。
[0119]
本文在说明书和权利要求书中使用的引用一个或多个元件的列表的短语“至少一个”应当被理解为表示选自元件列表中的元件中的任何一个或多个元件中的至少一个元件,但不一定包括元件列表中具体列出的每个元件中的至少一个元件,并且不排除元件列表中元件的任何组合。该定义还允许除了在短语“至少一个”所指的元件列表中具体标识的元件之外的任选存在的元件,无论是与具体标识的那些元件相关还是不相关都可以。因此,作为非限制性示例,“a和b中的至少一个”(或等效地,“a或b中的至少一个”,或等效地,“a和/或b中的至少一个”)能够在一个实施例中指代至少一个a,任选地包括多于一个a,且不存在b(并且任选地包括除了b之外的元件);而在另一实施例中指代至少一个b,任选地包括多于一个b,且不存在a(并且任选地包括除了a之外的元件);而在又一实施例中指代至少一个a,任选地包括多于一个a以及至少一个b,任选地包括多于一个b(并且任选地包括其他元件)等。
[0120]
还应当理解,除非明确指出相反情况,否则在本文要求保护的包括多于一个步骤或动作的任何方法中,该方法的步骤或动作的顺序不一定限于记载该方法的步骤或动作的顺序。
[0121]
在权利要求以及上面的说明书中,所有过渡短语(例如,“包括”、“包含”、“携带”、“具有”、“含有”、“涉及”、“持有”、“带有”等)应当被理解为开放式的,即,意指包括但不限于。只有过渡短语“由
……
组成”和“基本上由
……
组成”应当分别为闭合或半闭合过渡短语,如美国专利局专利审查程序手册第2111.03节所述。应当理解,根据专利合作条约(“pct”)的规则6.2(b)在权利要求中使用的某些表达内容和附图标记并不限制范围。
再多了解一些

本文用于企业家、创业者技术爱好者查询,结果仅供参考。

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表

相关文献