百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术文章 > 正文

探索主动学习之间的联系和模型提取

ccwgpt 2024-11-26 01:08 42 浏览 0 评论

摘要

机器学习正越来越多地被个人、研究机构和企业所使用。这导致了“机器学习作为服务(MLaaS)”——云服务的激增。这些云服务提供两方面服务:1.工具和资源来学习模型,2.用户友好的查询界面来访问模型。然而,这样的 MLaaS 系统会引起诸如模型提取等隐私问题。即在模型提取攻击中,对手恶意利用查询接口窃取模型。我们认为,更好地理解模型提取攻击的有效性对于设计安全的 MLaaS 系统是至关重要的。为此,我们采取的第一步是形式化模型提取和讨论可能的防御策略,第二步在模型提取之间画出相似之处。

1 介绍

机器学习在各个方面的进步使其成为我们日常生活中不可分割的一部分。然而,现实世界中的大多数机器学习任务都是资源密集型的。为此,一些云服务提供商,如 Amazon、谷歌、Microsoft 和 BigML,通过提供机器学习云服务(MLaaS)来抵消存储和计算需求。MLaaS 服务器提供了对训练阶段和访问训练模型的查询接口的支持。

目前的研究主要集中在训练算法和查询界面的性能改进上,而对相关安全方面的研究较少。为了保持模型的私密性,oracle 访问或黑盒访问的实践出现了激增。在这里,训练后的模型可以用于预测,不过要保密。但是即便如此,大量的攻击仍继续针对现有的 MLaaS 系统。在本工作中,我们重点关注模型提取攻击,在这种攻击中,对手利用 MLaaS 查询接口来窃取专有模型。

许多常用的 MLaaS 接口可以利用少量查询来恢复模型的秘密参数。但他们的工作考虑的是显示辅助信息的接口,如置信度值和预测输出。此外,他们的工作没有形式化模型提取。我们相信,这种正规化对于设计能够抵御上述威胁的安全 MLaaS 是至关重要的。在本文中,我们迈出了这一方向的第一步。

2 机器学习

2.1 被动学习

在标准的被动机器学习设置中,学习者可以访问一个大的标记数据集,并完整地使用它从给定的类学习预测模型。设 X 是一个实例空间,Y 是一组标签。我们将一对(x, y)∈X×Y 称为数据点或标记实例(x 是实例,y 是标签)。最后,有一类函数 F 从 X 到 Y 称为预先已知的假设空间。学习者的目标是找到一个函数 f?∈f,它是给定实例 x 下的标签 y 的一个很好的预测器,(x, y)∈x × y。

2.2 主动学习

在被动环境下,学习一个精确的模型需要大量的数据点。这激发了人们对学习算法的兴趣,学习算法可以在更小的标记实例集上操作,从而导致主动学习的出现。在主动学习中,允许学习算法进行选择未标记实例的子集,然后使用它来构建或更新模型。

2.2.1 PCA 主动学习

在本场景中,根据 D / X 的边际对实例进行采样,学习者看到实例后,决定是否查询其标签。由于 L 看到的数据点来自实际的潜在分布 D,输出假设 f? 的准确性是使用泛化误差来衡量的,如经典 PAC 学习。采样数据点有两种选择。在基于流的采样(也称为选择性采样)中,每次只采样一个实例,学习者决定是否在每个实例的基础上查询标签。基于数据集的采样假设所有实例都收集在静态数据集 S 基于数据集 X 中,然后学习者在 S 中选择特定实例并查询其标签。通常,L 以一种贪婪的方式选择实例,使用一个度量来评估池中的所有实例。

2.2.2 查询合成(QS)主动学习

在这个场景中,学习者可以请求标签输入空间 X 的任何实例,包括学习者生成新创的点、独立分布的 D(例如,L 可以要求标签的 X 的零概率抽样根据 D)。查询合成对许多问题来说是合理的,但如果 oracle 是人工注入的,标签这样的实例显得尤显尴尬。因此,这个场景更适用于自动化 oracle 的真实应用程序。

在主动学习场景(PAC 和 QS)中,学习者需要评估未标记实例 x 的“有用性”,该实例可以重新生成,也可以从给定的分布中取样,以决定是否向 oracle 查询相应的标签。在目前的技术水平下,我们可以找到许多方法来制定这样的查询策略。大多数现有文献提出的策略都是以通过假设空间进行有效搜索为目标的。

鉴于主动学习的多样性,我们加强了学习算法的标准定义,并提出了面向模型提取的主动学习系统的定义。

3 模型提取

3.1 定义

我们首先描述 MLaaS 系统上下文中模型提取攻击的操作生态系统。实体从公共类 F 中学习一个私有模型 f ?,并将其提供给 MLaaS 服务器。服务器提供了一个面向客户的查询接口,用于访问模型进行预测。例如,在逻辑回归的情况下,MLaaS 服务器知道一个由参数 a0,a1,a2…ad 表示的模型。客户端发出 x = (x[1],···,x[d])∈R 的查询 d, MLaaS 服务器响应 0 如果(1 + e?a(x))?1 ≤0.5,否则响应 1。其中,

模型提取是对手利用此接口来了解专有模型 f*的更多信息的过程。攻击者可能有意欺骗 f*本身的模型描述,或获得模型的近似,例如 f?∈f,然后他可以将 f? 用于其他相同任务。为了捕获对手的不同目标,根据 f 上依赖于上下文的错误函数,我们说,如果提取的模型“足够接近”f?,则攻击成功。由于许多现有的 MLaaS 提供程序都是按查询付费的,所以我们使用查询复杂性来衡量这种模型提取攻击的效率。

定义:提取攻击。设 F 是一个公共假设类,S 是 MLaaS 服务器。我们说,在以下情况下,与 S 交互的对手 A 对 F 类实施了复杂度为 q、置信度为 γ 的提取攻击:

对于任何 f ? ∈f,概率大于 A 的随机性。

3.2 主动学习和提取

MLaaS 系统上下文中的模型提取与主动学习非常相似。然而,并不是所有可能的主动学习场景都对模型提取感兴趣。我们注意到,在模型提取的情况下,对手 A 不知道数据分布 D。此外,这样的对手并不局限于只考虑实例 x ~ D 进行查询。出于这个原因,我们认为查询合成(QS)是正确的主动学习场景,以研究与模型提取有意义的并行性。回想一下,查询合成是唯一可以从头生成查询输入的框架。

给定假设类 F 和错误函数 Err,设(L, O)是 QS 情景下 F 的主动学习系统 L (ε, δ),则存在复杂度为 qL(ε, δ) ,置信度为 1 - δ 的对抗 F 类的对手 A。

这一观察的理由如下:考虑对手 A 即为学习者 L(即,A 部署查询策略过程和描述 L 的停止条件)。这是可能的,因为(L, O)在 QS 场景中,而 L 独立于任何底层(未知)分布。令 q = qL(ε, δ)并观察:

我们的观察表明,QS 场景中的任何主动学习算法都可以用于实现模型提取攻击。因此,为了在 MLaaS 框架中研究给定假设类的安全性,我们可以使用已知的技术和来自主动学习文献的结果。

例:基于 QS 主动学习的决策树提取。让 Fn,BF 表示{0,1} n 域,取之范围为{-1,1}的布尔函数集。读者可以把 ?1 看成 0,把+1 看成 1。在学习布尔函数的文献中,使用{?1,+1}的范围是非常常见的。Fn,BF 的一个有趣的子集由可以表示为布尔决策树的函数给出。布尔决策树 T 是一棵有标记的二叉树,树中的每个节点 v 都用 Lv ? {1, · · · , n} 标记,包括 2 条输出边。这棵树中的每一个叶子都被标记为+1 或 ?1。给定一个 n 位字符串 x = (b1,…,bn),bi ∈{0,1}作为输入,决策树定义如下计算:计算从树的根 T 开始。当计算到达内部节点 v 时,计算

的奇偶性,如果奇偶校验为 0 则向左,否则向右。计算结束时叶节点的值就是函数的值。用

一类具有 n 位输入和 m 个节点的布尔决策树。Kushilevitz 和 Mansour 为

类提出了一种主动学习算法在 QS 场景中工作。该算法利用均匀误差来确定停止条件。作者认为,当局限于

时,该算法对任何 m 都是有效的。如果主动学习者 L 与数据

交互,其中

。然后 L 学习

使得

,概率至少为 1? δ,使用 n,m,1/ε,和 log(1/ε)中的若干查询多项式。根据观察结果 1,这直接转化为存在一个对手,该对手使用 n、m、1/ε 中的复杂度多项式和置信度 1? δ 实现提取与类

对抗。

此外,此算法还可以扩展到 1):形式为 f:{0,1,…, k?1}n →{?1,+1},可以由多项式大小的 k-ary 决策树和 2):回归树。在第二种情况下,学习算法的运行时间为 M 的多项式。需要注意的是,本文所考虑的攻击模型比所考虑的攻击模型更强,因为攻击者/学习者没有得到任何关于决策树内部路径的信息。

3.3 防御策略

我们主要观察到的是,在第 3 节开头描述的 MLaaS 系统环境下的模型提取等同于 QS 主动学习。因此,在 QS 主动学习领域的任何进步都直接转化为对 MLaaS 系统的新威胁。在这一节中,我们讨论可以用来使提取过程更加困难的策略。我们研究了机器学习与模型提取之间的联系。设计一个好的防御策略是一个悬而未决的问题;我们认为,这是未来机器学习和安全领域合作的一个有趣方向。

在本节中,我们假定 MLaaS 服务器 S 了解 f?,S(f?)有权在将预测转发给客户端之前修改该预测。更准确地说,我们假设存在一个(可能的)随机过程 D,服务器使用该过程计算查询 x 的答案 y ~,并返回该结果而不是 f ?(x)我们用符号 SD(f ?)表示服务器 S 实现了 D 来保护 f ?。显然,与 S 互动的学习者 D(f ?)仍然可以尝试从服务器的嘈杂答案中学习函数 f。然而,添加的噪声要求该过程进行更多的查询,或者可能生成比 f 更不精确的模型。

3.3.1分类情况

我们关注的是二元分类问题,其中 F 是一个形式为 F: X→Y 的假设类函数,且 Y 是二元的,但我们的论点可以很容易地推广到多类设置。

首先,设 ν 为模型 f*基于 SD 的概化误差,则为对手与 SD(f ?)相互作用所学习到的模型 f 的概化误差 μ.假设假设类 F 有 VC 维等于 d。回忆一下假设类 F 的 VC 维是最大的数 d,因此存在一个大小为 d 的子集 X={x1,x2,…,xd}?X,它可以被 F 打碎如果

被动学习:假设对抗者使用被动学习算法来计算 f,如经验风险最小化(Empirical Risk Minimization, ERM)算法,其中给定标记的训练集{(X1,Y1),…(Xn,Yn)}, ERM 算法输出

然后,对手可以学习 f? 和额外的误差 ε 使用

例子。对于任何算法,都存在这样的

分布,即算法至少需要样本来实现 ε 的超额误差。

主动学习:假设对抗者使用主动学习算法来计算 f,如基于分歧的主动学习算法。然后,对手通过

查询获得额外的误差 ε。对于任何主动学习算法,都存在这样一种分布,即至少需要

查询才能实现。

请注意,服务器 S 为防止提取模型 f? 而使用的任何防御策略 D 可被视为一个随机过程,该过程以给定的概率输出 y~而不是 f?(x),输出的是 D 的随机。离散情况下,我们用下述符号表示:

其中,Yx 是表示服务器 SD(f ?)答案的随机变量查询 x。当函数 f ? 是固定的,我们可以考虑函数的上限值 ρD(f ?(x),表示从 S D(f ?)得到答案的概率的上限是错误的:

在讨论潜在的防御方法之前,我们首先提出一个普遍的负面结果。下面的命题表明,任何正确响应查询的候选防御 D 的概率大于或等于 2/1+ c 对于某些常量 c > 0 对所有实例都很容易被破坏。实际上,如果对手重复查询同一个实例 x,就可以计算出正确的标签 f ?(x)通过简单地查看从 S D(f ?)返回的最频繁的标签。我们证明,使用这种提取策略,所需查询的数量只增加一个对数乘因子。

命题 1:设 F 是用于分类的假设类,(L, O)是查询复杂度为 q(ε, δ)的 QS 场景中 F 的主动学习系统。对于任何 D,返回标签的随机过程,使得存在 f?∈F 和 ρD(f?)< 1/2,存在一个对手,它与 S D(f ?)交互,可以实现置信度为 1?2δ,复杂度

的提取攻击。

命题 1 可用来讨论以下两种不同的防御策略:

1.数据无关随机化。设 F 表示使用 QS 主动学习进行抽取攻击的假设类。针对 F 的一种直观的防御方法是在查询输出 F 中添加噪声 ?(x)独立于标记函数 f ? 输入 x,换句话说,ρD(f, x) = ρ 对于任意 x∈x, f∈F, ρ 是(0,1)区间内的常数。很容易看出,这个简单的策略是行不通的。从命题 1 可以得出,如果 ρ < 12,那么 D 不安全。另一方面,如果 ρ≥ 21,那么服务器是无用的,因为它输出一个概率至少为 1/2 的错误标签。

2.数据相关随机化。基于前面讨论的结果,我们认为,旨在保护假设类不通过 QS 主动学习提取模型的防御应该实现对返回标签的数据依赖扰动。也就是说,我们感兴趣的防御 D 是概率 ρD(f ?, x)取决于查询输入 x 和标记函数 f ?.例如,给定一个可以使用主动学习者 L 提取的类 F(在 QS 场景中),如果我们考虑一个防御 D,使 ρD(f?,x)≥12 对一些实例,然后命题的证明 1 不工作(如果有参数只适用一个常数 c > 0,ρD (f?,x)≤12?c 对于所有 x),对手的有效性也无法保证。

4.实现与评估

我们进行了实验,以验证我们的主张,即查询合成主动学习可以成功地执行模型提取。我们的实验旨在回答以下三个问题:(1)在没有任何辅助信息的情况下,主动学习是否真的有用,比如在 oracle 访问设置中,置信度值如何?(2)在 oracle 能够干扰输出的情况下,即在数据独立的随机设置中,主动学习是否有用?(3)主动学习在 oracle 能够执行更微妙的扰动的情况下是否有用,例如在数据依赖的随机设置中?

为了回答这些问题,我们重点学习了 d 维半空间的假设类。为了进行模型提取,我们实现了两种 QS 算法来学习近似 w,并在

时终止执行。我们用来衡量效率的指标是查询复杂度。为了提供一次攻击的成本估计,我们从 Amazon 的在线定价方案中借用定价信息,即每次查询$0.0001。我们考虑了替代的停止标准,例如在最后 N 次迭代中测量学习模型的稳定性。这种方法会导致类似的错误和查询复杂性。在我们的实验中,服务器/oracle 是通过 Python 的 scikit-learn 库学习的。所有的实验都是在 Ubuntu 16.04 服务器上进行的,该服务器有 32 GB RAM 和 Intel i5-6600 CPU,时钟为 3.30GHz。我们的实验表明:

1.QS 主动学习算法具有较低的查询复杂度和运行时间,是一种有效的模型提取算法。对于 d 值最大的数字数据集(d = 64),主动学习算法需要 900 次查询才能提取几何误差 ε≤10?4 的半空间.这相当于 0.09 美元的查询。

2.QS 主动学习算法在 oracle 用常数概率 ρ 函数独立翻转标签时也是有效的。这只是适度地增加了查询复杂度(对于 ρ 值较低的情况)。对于数字数据集输入维数 d = 64,噪声阈值 ρ = 0.4,我们的算法需要 36546 次查询(或$3.65)来提取几何误差 ε≤10?4 的半空间。

3.当 oracle 使用定制的模型随机化技术响应查询时,最先进的 QS 算法无法恢复模型。但是,在这种情况下,被动学习算法(参见算法 1)是有效的。

图 1:使用版本空间近似算法进行半空间提取所需的查询数。注意,该算法的渐近查询复杂度是 O(d log 1ε)。这解释了查询复杂度的增加是 d 的函数。

5.总结

在本文中,我们在机器学习云服务(MLaaS)服务器的上下文中形式化了模型提取,该服务器只返回预测值,并研究其与查询合成主动学习。因此,我们能够实现高效的攻击 halfspace 模型的类用于二进制分类(4 节)。而我们的实验关注 halfspace 模型的类,我们相信,通过主动学习可以扩展到多级萃取和深层神经网络等非线性模型,随机森林等。我们也开始探索可能的防御方法。据我们所知,这是在 MLaaS 系统上下文中形式化安全性的第一个工作。我们相信这是设计更安全的 MLaaS 系统的第一步。最后,我们认为数据依赖的随机化是设计有效防御的最有希望的方向。

致谢

本文由南京大学软件学院 2021 级硕士刘凡翻译转述。

相关推荐

一个基于.Net Core遵循Clean Architecture原则开源架构

今天给大家推荐一个遵循CleanArchitecture原则开源架构。项目简介这是基于Asp.netCore6开发的,遵循CleanArchitecture原则,可以高效、快速地构建基于Ra...

AI写代码翻车无数次,我发现只要提前做好这3步,bug立减80%

写十万行全是bug之后终于找到方法了开发"提示词管理助手"新版本那会儿,我差点被bug整崩溃。刚开始两周,全靠AI改代码架构,结果十万行程序漏洞百出。本来以为AI说没问题就稳了,结果...

OneCode低代码平台的事件驱动设计:架构解析与实践

引言:低代码平台的事件驱动范式在现代软件开发中,事件驱动架构(EDA)已成为构建灵活、松耦合系统的核心范式。OneCode低代码平台通过创新性的注解驱动设计,将事件驱动理念深度融入平台架构,实现了业务...

国内大厂AI插件评测:根据UI图生成Vue前端代码

在IDEA中安装大厂的AI插件,打开ruoyi增强项目:yudao-ui-admin-vue31.CodeBuddy插件登录腾讯的CodeBuddy后,大模型选择deepseek-v3,输入提示语:...

AI+低代码技术揭秘(二):核心架构

本文档介绍了为VTJ低代码平台提供支持的基本架构组件,包括Engine编排层、Provider服务系统、数据模型和代码生成管道。有关UI组件库和widget系统的信息,请参阅UI...

GitDiagram用AI把代码库变成可视化架构图

这是一个名为gitdiagram的开源工具,可将GitHub仓库实时转换为交互式架构图,帮助开发者快速理解代码结构。核心功能一键可视化:替换GitHubURL中的"hub...

30天自制操作系统:第六天:代码架构整理与中断处理

1.拆开bootpack.c文件。根据设计模式将对应的功能封装成独立的文件。2.初始化pic:pic(可编程中断控制器):在设计上,cpu单独只能处理一个中断。而pic是将8个中断信号集合成一个中断...

AI写代码越帮越忙?2025年研究揭露惊人真相

近年来,AI工具如雨后春笋般涌现,许多人开始幻想程序员的未来就是“对着AI说几句话”,就能轻松写出完美的代码。然而,2025年的一项最新研究却颠覆了这一期待,揭示了一个令人意外的结果。研究邀请了16位...

一键理解开源项目:两个自动生成GitHub代码架构图与说明书工具

一、GitDiagram可以一键生成github代码仓库的架构图如果想要可视化github开源项目:https://github.com/luler/reflex_ai_fast,也可以直接把域名替换...

5分钟掌握 c# 网络通讯架构及代码示例

以下是C#网络通讯架构的核心要点及代码示例,按协议类型分类整理:一、TCP协议(可靠连接)1.同步通信//服务器端usingSystem.Net.Sockets;usingTcpListene...

从复杂到优雅:用建造者和责任链重塑代码架构

引用设计模式是软件开发中的重要工具,它为解决常见问题提供了标准化的解决方案,提高了代码的可维护性和可扩展性,提升了开发效率,促进了团队协作,提高了软件质量,并帮助开发者更好地适应需求变化。通过学习和应...

低代码开发当道,我还需要学习LangChain这些框架吗?| IT杂谈

专注LLM深度应用,关注我不迷路前两天有位兄弟问了个问题:当然我很能理解这位朋友的担忧:期望效率最大化,时间用在刀刃上,“不要重新发明轮子”嘛。铺天盖地的AI信息轰炸与概念炒作,很容易让人浮躁与迷茫。...

框架设计并不是简单粗暴地写代码,而是要先弄清逻辑

3.框架设计3.框架设计本节我们要开发一个UI框架,底层以白鹭引擎为例。框架设计的第一步并不是直接撸代码,而是先想清楚设计思想,抽象。一个一个的UI窗口是独立的吗?不是的,...

大佬用 Avalonia 框架开发的 C# 代码 IDE

AvalonStudioAvalonStudio是一个开源的跨平台的开发编辑器(IDE),AvalonStudio的目标是成为一个功能齐全,并且可以让开发者快速使用的IDE,提高开发的生产力。A...

轻量级框架Lagent 仅需20行代码即可构建自己的智能代理

站长之家(ChinaZ.com)8月30日消息:Lagent是一个专注于基于LLM模型的代理开发的轻量级框架。它的设计旨在简化和提高这种模型下代理的开发效率。LLM模型是一种强大的工具,可以...

取消回复欢迎 发表评论: