提取模型或其训练数据敏感信息的攻击代表一种重要的安全隐患。这类攻击不同于修改输入或污染训练数据的攻击,而是专注于数据保密性。推断攻击通常只需通过对目标模型的标准查询访问即可成功,对数据保密性构成直接威胁。成员推断攻击(MIAs)是这一威胁类别中的主要攻击方式。
攻击者的目标:识别训练数据
成员推断攻击的核心目的是直截了当的:给定一条数据记录 x 并对一个已训练的机器学习 (machine learning)模型 f 有访问权限(通常是查询访问),攻击者希望判定 x 是否属于模型最初的训练数据集 Dtrain。
这为何重要?设想一个由医院训练的机器学习模型,用于根据患者记录预测特定疾病的可能性。如果一个对手,例如保险公司或雇主,能用某个特定个体的记录(或类似记录)查询此模型,并判定该记录是否曾用于训练,这就会泄露潜在的敏感信息。这可能表明该个体参与了研究,暗示他们患有或曾检测过与该模型相关的疾病。这构成对数据贡献于 Dtrain 的个体隐私的侵犯。
成员推断为何能奏效?
模型易受成员推断攻击的影响通常源于学习过程本身。理想情况下,模型会从训练数据中归纳模式,以便对新的、未见过的数据进行准确预测。然而,特别是对于深度神经网络 (neural network)等复杂模型,模型存在有效地“记忆”其训练集部分内容的风险,而不是单纯地归纳。这种现象与过拟合 (overfitting)密切相关,意味着模型在处理已见过的数据时,其行为可能与处理未见过的数据有所不同。
攻击者利用这些行为差异。例如:
- 模型在给定训练样本时,其对正确类别的预测概率(置信度分数)可能显著高于给定非训练样本时的概率。
- 模型内部的损失函数 (loss function)值对于训练样本可能显著更低。
- 完整的输出概率向量 (vector)可能呈现出成员和非成员之间不同的细微统计模式。
成员推断攻击试图构建一个分类器来检测这些细微差异。
标准攻击框架:训练攻击模型
执行成员推断攻击的普遍方法,特别是在攻击者仅具有黑盒 (black box)查询访问权限(他们可以提供输入 x 并接收输出 f(x),但无法看到模型的内部参数 (parameter))时,涉及训练一个辅助的机器学习 (machine learning)模型。这被称为攻击模型。
这个攻击模型的目的是充当一个二元分类器:
- 输入: 它接收从给定数据点 x 的目标模型 f 输出中提取的特征。常见特征包括预测概率向量 (vector) f(x)、最高置信度分数、预测向量的熵,或从 f(x) 中提取的其他统计量。
- 输出: 它预测用于生成这些特征的输入 x 是 Dtrain 的“成员”还是“非成员”。
从数学角度看,如果我们将攻击模型表示为 A,特征提取过程表示为 features(⋅),攻击模型旨在学习一个函数:
A(features(f(x)))→{成员,非成员}
模拟目标:影子模型
攻击者面临的一个实际挑战是获取训练攻击模型 A 所需的标注数据。攻击者需要目标模型 f 行为(特征)的例子,这些例子对应已知是 Dtrain 成员和已知是非成员的数据点。由于攻击者通常没有 Dtrain 或 f 的相应成员标签,他们诉诸于使用影子模型进行模拟。
核心思路是训练多个与目标模型 f 行为相似的模型。这通常要求攻击者对目标模型的架构(例如,“它是一个用于图像分类的卷积神经网络 (neural network) (CNN)”)以及 Dtrain 的数据分布(例如,“它是在动物照片上训练的”)有一定的了解或做出假设。
影子模型构建过程通常涉及以下步骤:
- 生成数据: 创建或获取多个数据集 D1′,D2′,...,Dk′,这些数据集被认为与原始 Dtrain 来自相同的底层数据分布。
- 训练影子模型: 训练 k 个影子模型 f1′,f2′,...,fk′,其中每个 fi′ 都用其对应的数据集 Di′ 进行训练。这些影子模型理想情况下应与目标模型 f 具有相同或相似的架构。
- 创建攻击训练数据: 对于每个影子模型 fi′:
- 使用来自其训练集 Di′ 的样本查询 fi′。从输出 fi′(x) 中提取特征。将这些特征集标记 (token)为“成员”。
- 使用不属于 Di′ 但从相同假定分布中抽取的样本查询 fi′。从这些输出中提取特征。将这些特征集标记为“非成员”。
- 训练攻击模型: 将所有影子模型生成的所有标注特征集合并为一个大型数据集。在此数据集上训练攻击模型 A,以区分“成员”和“非成员”的特征模式。
攻击者常使用影子模型,这些模型在与目标模型训练数据类似的数据上进行训练,以生成训练其成员推断分类器所需的样本。
一旦攻击模型 A 通过影子模型训练完成,攻击者就可以将其部署到实际目标模型 f 上。他们取一个感兴趣的数据点 x,用 x 查询 f,从输出 f(x) 中提取必要特征,并将这些特征输入给 A,以获取关于 x 在 Dtrain 中成员状态的预测。
攻击成功的特征工程
成员推断攻击的有效性很大程度上取决于从目标模型输出中提取的特征。好的特征能够捕获模型处理成员和非成员时的细微差异。一些常用特征包括:
- 排序预测向量 (vector): 不仅仅使用最高预测值,而是使用整个按降序排列的类别概率向量 f(x),这通常能提供更丰富的信息。
- 置信度分数: 分配给预测类别的概率,max(f(x))。如前所述,这个分数对于成员往往更高。
- 熵: 预测向量的香农熵,计算公式为 H(f(x))=−∑if(x)ilog2f(x)i。熵值越低表示确定性越高,这可能与成员身份相关。
- 损失值(白盒): 在攻击者具有白盒访问权限(可以查看模型参数 (parameter))或能准确估计损失函数 (loss function)的场景中,为输入 x 计算的损失值(给定其真实标签,如果已知,或有时是其预测标签)是一个非常强的指标。训练成员通常会产生较低的损失值。
特征的选择可能取决于攻击者拥有的访问级别(黑盒 (black box) vs. 白盒)以及目标模型和任务的特点。
分布表明,与来自相同数据分布的非成员相比,训练集成员可能更频繁地从模型中获得更高的置信度分数。
评估攻击表现
成员推断攻击的成功通过应用于攻击模型 A 表现的标准二元分类指标来衡量:
- 攻击准确率: 正确预测(成员/非成员)的总体百分比。准确率 = (TP+TN)/(TP+TN+FP+FN)。
- 精确率: 在所有预测为“成员”的实例中,有多少比例是实际成员?精确率 = TP/(TP+FP)。高精确率表示成员身份预测可靠。
- 召回率(真阳性率): 在所有实际成员中,有多少比例被攻击正确识别?召回率 = TP/(TP+FN)。高召回率表示攻击发现了大多数成员。
- ROC曲线下面积(AUC): 提供攻击模型在所有可能分类阈值下区分两类能力的概括性衡量。AUC 为 0.5 表示随机猜测,而 AUC 为 1.0 表示完美区分。
具有高准确率、精确率、召回率或 AUC 的攻击表明目标模型存在实际的隐私安全隐患。
影响安全隐患的因素
成员推断攻击带来的风险并非对所有机器学习 (machine learning)模型和场景都一致。有几个因素影响模型易受攻击的程度:
- 目标模型过拟合 (overfitting): 这通常是最主要的因素。严重过拟合训练数据的模型在成员和非成员之间表现出更明显的行为差异,使其更容易成为攻击目标。
- 模型架构和容量: 具有大量参数 (parameter)的高度复杂模型可能有更大的能力记住训练数据,从而增加安全隐患。
- 数据集特性: 较小的数据集、具有许多类别的数据集或表示复杂分布的数据集有时会导致模型更易受攻击。
- 影子模型的质量: 攻击的成功很大程度上依赖于影子模型准确反映目标模型的训练过程和行为的假设。差异可能削弱攻击效果。
- 信息泄露: 从目标模型输出中可获取的信息类型和粒度(例如,完整的概率向量 (vector)与仅有最高标签)影响潜在的成功率。
与隐私和防御的联系
成员推断攻击提供了一种具体方式来量化 (quantization)机器学习 (machine learning)模型关于其训练数据的潜在信息泄露。一次成功的攻击意味着仅仅部署模型就会暴露用于构建模型个体或数据点的信息。这直接违背了与敏感数据集相关的隐私预期。
防御策略通常侧重于减少模型对特定训练样本的依赖,或添加噪声以模糊攻击者利用的差异。方法包括:
- 正则化 (regularization): L1/L2 正则化或 dropout 等方法可以抑制过拟合 (overfitting)。
- 差分隐私: 使用差分隐私训练模型提供了正式的数学保证,即模型的输出不会过度依赖任何单个训练记录,从而从根本上限制了成员推断攻击的成功。
- 对抗训练变体: 一些训练技术可能在无意中使成员推断变得更困难。
- 输出扰动: 在模型输出中添加校准噪声或返回粒度较低的信息(例如,仅返回 top-k 标签)可以阻碍攻击,但也可能影响效用。
理解成员推断攻击的机制是认识部署机器学习模型所涉隐私问题的重要一步。尤其是在处理敏感数据时,根据这些攻击评估模型应成为全面安全与隐私评估流程的一部分。