目录
内容摘要
本文通过观察发现了:训练集所蕴含的 knowledge
会在基于其训练的模型上体现出来(以及根据此模型通过一定方法复制出来的模型)。因此,本文踢出了一个概念:dataset inference
,用于检测一个可疑模型是否含有原始模型训练集的 private knowledge
,以此抵御模型窃取。
1 原理
1.1 prediction margin
在本文中,作者提出了一个概念:prediction margin
,用来指 the disparity in the response of an ML model to inputs that it saw during training time, versus those that it did not.它反映了模型输出的置信度。也是后文的
Δ
(
x
,
x
+
δ
)
\Delta(\textbf{x},\textbf{x}+\delta)
Δ(x,x+δ)。
本文的中心工作也是量化这样的 disparity,并证明了 MI 在本场景下的失效。
看上图,本文的 basie idea:成员数据在模型预测下到各类 非标签
的距离 大于 非成员数据。
1.2 白盒场景
这样的场景适用于有客观的、可以做出公正裁决的第三方机构鉴定数据集、模型的侵犯,第三方可以看到模型内部结构以及利用梯度下降算法生成指定扰动
δ
\delta
δ 。为此,作者提出了 MinGD
算法,此算法基于梯度下降算法,寻找:
arg min
δ
Δ
(
x
,
x
+
δ
)
,
s
.
t
.
f
(
x
+
δ
)
=
t
{\argmin}_{\delta} \Delta(\textbf{x},\textbf{x}+\delta),s.t.~f(x+\delta)=t
argminδΔ(x,x+δ),s.t. f(x+δ)=t
这里
t
t
t 是指样本
x
\textbf{x}
x 真实标签附近的其他标签,
Δ
\Delta
Δ 是一种样本间范数距离度量方法:
Δ
(
x
,
x
+
δ
)
=
∥
(
x
,
x
+
δ
)
∥
p
\Delta(\textbf{x},\textbf{x}+\delta)=\Vert (\textbf{x},\textbf{x}+\delta) \Vert _{p}
Δ(x,x+δ)=∥(x,x+δ)∥p,p可以代表1、2、∞范数。
这种算法类似于对抗样本的生成,只不过是针对每一类标签都进行梯度下降的迭代寻找那个最小距离。
这样计算出来的使得模型预测为每一类别的范数最小扰动 ( Δ 1 , . . . , Δ k − 1 , Δ k = 0 , Δ k + 1 , . . . , Δ c ) (\Delta_{1},...,\Delta_{k-1},\Delta_{k}=0,\Delta_{k+1},...,\Delta_{c}) (Δ1,...,Δk−1,Δk=0,Δk+1,...,Δc)(假设此样本真实标签为 k k k) ,就是后续验证所有权需要的 embedding vector 。
1.3 黑盒场景
有时候,受害者得验证公开部署的模型的所有权,这样部署的模型仅可以给定输入预测标签,这种场景下,作者提出了 Blind Walk
算法。此算法通过添加随机噪声于给定样本,来衡量该数据点的鲁棒性,以此用来估计模型的 prediction margin 。
和白盒场景下的算法类似,我们随机生成初始
δ
\delta
δ ,注意这里的
δ
\delta
δ 在整个算法中是一个定值。对于一个输入
(
x
,
y
)
(\textbf{x},y)
(x,y) ,寻找一个
k
∈
N
k \in \mathbb{N}
k∈N(自然数),同样要求满足
f
(
x
+
k
δ
)
=
t
;
t
≠
y
t
r
u
e
f(x+k\delta)=t;t \ne y^{true}
f(x+kδ)=t;t=ytrue,这样一来,通过不断增加迭代增加
k
k
k,我们最终找到的满足条件的
δ
\delta
δ 下的
Δ
(
x
,
x
+
k
δ
)
\Delta(\textbf{x},\textbf{x}+k\delta)
Δ(x,x+kδ) 就是我们需要用到的东西(prediction margin)。
1.4 所有权验证流程
本文提出的验证方法在于最小化 FPR,并分为2个阶段:1.回归模型推断可疑模型在特定样本上的预测是否包含了受害者的隐私数据;2.对那些被检验样本的所有推断结果进行聚合,假设检验,判断 dataset inference 的最终结果。相比 MI,这种方法多了一个步骤2。
可以概括如下图所示:
(1)Embedding generation
对于白盒的 MinGD
算法,我们设置在每一种距离上的学习步长为
{
α
∞
,
α
2
,
α
1
}
=
{
0.001
,
0.01
,
0.1
}
\{α_∞, α_2, α_1\} = \{0.001, 0.01, 0.1\}
{α∞,α2,α1}={0.001,0.01,0.1}。然后利用梯度下降算法通过不断迭代,找到产生距离最小且能使模型分为其他类的
δ
\delta
δ,并计算三种情况
l
1
,
l
2
,
l
∞
l_1,l_2,l_{\infty}
l1,l2,l∞下 的
Δ
(
x
,
x
+
δ
)
\Delta(\textbf{x},\textbf{x}+\delta)
Δ(x,x+δ) ,每一类标签可以计算得到大小为3的矢量 {
l
1
,
l
2
,
l
∞
l_1,l_2,l_{\infty}
l1,l2,l∞}。
所以在10分类训练任务中,针对一个数据样本,可以计算得到 总分类数目(10)*范数类别数目(3) = 30大小的矢量,作为 Embedding。
对于黑盒条件下 Blind Walk
算法,我们利用三种噪声来寻找 prediction margin
。对于噪声的选取,我们规定 均匀噪声
对应
l
∞
l_{\infty}
l∞ , 高斯噪声
对应
l
2
l_{2}
l2, 拉普拉斯噪声
对应
l
1
l_{1}
l1。用这三种噪声可以联合有效地抽取数据样本鲁棒性的信息。注意只有在 Blind Walk
算法中我们才使用这三种噪声。
Embedding generation中 两种算法的对比分析
而在实验结果来看, Blind Walk
算法 效果更好,因为 白盒的 MinGD
算法 类似对抗样本,利用梯度下降,能够得到到达某一类别的局部最低点的最小距离,存在偶然性。相比之下, Blind Walk
算法能够计算到达某一类的平均距离,可能更加能够体现 prediction margin
。
这样得到的综合距离的流程被称为 Embedding generation
,也就是后面回归模型的训练数据。
(2)Confidence Regressor 置信回归模型
为了完成步骤1,我们需要训练一个回归模型 。根据我们在白盒、黑盒场景下
f
v
f_v
fv 对成员数据
S
v
S_v
Sv(受害者的隐私数据集)和非成员数据(除了受害者隐私数据集以外的数据集)计算得到的
(
Δ
1
,
.
.
.
,
Δ
k
−
1
,
Δ
k
=
0
,
Δ
k
+
1
,
.
.
.
,
Δ
c
)
(\Delta_{1},...,\Delta_{k-1},\Delta_{k}=0,\Delta_{k+1},...,\Delta_{c})
(Δ1,...,Δk−1,Δk=0,Δk+1,...,Δc),结合真实成员标签,可以训练一个回归模型
g
v
g_{v}
gv,
g
v
g_{v}
gv 的作用是给定一样本在可疑模型下计算得到的 prediction margin
,预测出一个概率(认为该条数据包含了
f
v
f_v
fv 隐私信息的置信度),在我们的假设检验中,我们要求
g
v
g_{v}
gv 对来自
S
v
S_v
Sv 样本的预测值更小。受害者对
S
v
S_v
Sv 中所有数据进行计算,以训练更加精确的
g
v
g_v
gv。
具体来说,回归模型的损失函数定义为:
L
o
s
s
(
x
,
y
)
=
−
b
∗
g
v
(
x
)
Loss(\mathbf{x},y)=-b*g_v(\mathbf{x})
Loss(x,y)=−b∗gv(x),当该数据来自 public training set 时, b=1 ;当来自 victim’s private set 时,b=-1。这样优化下来的结果是,来自 public training set 计算得到的 prediction margin
会大于 来自 victim’s private set。 所以训练以后模型的结果,confidence越大,说明该数据越接近 public training set。
(3)Hypothesis Testing 假设检验
在上一步骤得到了 Confidence Regressor 以后,给定 m m m 条成员和非成员数据,我们依然重复之前的步骤:计算 ( Δ 1 , . . . , Δ k − 1 , Δ k = 0 , Δ k + 1 , . . . , Δ c ) (\Delta_{1},...,\Delta_{k-1},\Delta_{k}=0,\Delta_{k+1},...,\Delta_{c}) (Δ1,...,Δk−1,Δk=0,Δk+1,...,Δc)作为 g v g_v gv 的输入,得到输出它们各自的矢量形式的置信分数 c = ( c 1 , c 2 , . . . , c m ) {\boldsymbol{c}}=(c_1,c_2,...,c_m) c=(c1,c2,...,cm)( c m c_m cm代表第一个样本的置信分数) 和 c v {\boldsymbol{c}}_{v} cv。然后检验无效假设 H 0 : μ < μ v H_0: \mu < \mu_v H0:μ<μv where μ = c ˉ \mu=\bar{\boldsymbol{c}} μ=cˉ and μ v = c ˉ v \mu_v=\bar{\boldsymbol{c}}_{v} μv=cˉv are mean confidence score。这样一来,检验就可以拒绝 H 0 H_0 H0 并决定性地宣称 f A f_A fA 是 “偷来的” ,或给出一个不确定(无法判定)的结果。
具体而言,我们用来自 public datasets 和 private datasets 的等量样本 查询模型,计算得到的 embeddings ,然后输入 Confidence Regressor
得到 confidence score
vectors
c
\boldsymbol{c}
c and
c
v
\boldsymbol{c_v}
cv,对这两个 矢量的分布 进行双样本T检验,计算单边检验
H
0
:
μ
<
μ
v
H_0: \mu < \mu_v
H0:μ<μv 和
H
a
l
t
:
μ
>
μ
v
H_{alt}: \mu > \mu_v
Halt:μ>μv 的p值。从损失函数的优化方向来看,
g
v
g_v
gv 学习去最小化对来自
S
v
S_v
Sv 的样本的输出
g
v
(
x
)
g_v(\mathbf{x})
gv(x) ,
x
∈
S
v
\mathbf{x} \in S_v
x∈Sv,并最大化来自 pubic dataset 的样本的输出分数。因此,一个矢量
c
{\boldsymbol{c}}
c 中如果包含了来自
S
v
S_v
Sv 的数据,会产生更低的 confidence scores,从而减小了检验的 p值。如果p值低于前面定义的显著水平
α
\alpha
α ,
H
0
H_0
H0 就被拒绝,从而得出结论:模型被盗用了。
2 实现及实验
数据集
本文在 CIFAR10, CIFAR100, SVHN and ImageNet datasets 进行了实验。
模型
受害者的模型为 WideResNet ,深度28宽度10, dropout rate of 0.3,适用于CIFAR10 and CIFAR-100 数据集。对于2.1节模型窃取的验证,我们采用了更小的结构,例如 WRN-16-1 on CIFAR10 and WRN-16-10 on CIFAR100。
2.1 讨论可能的模型窃取攻击
本文考虑了多种强大的模型窃取攻击,并引出了针对 dataset inference
的攻击方法,以对我们的方法做一个 adaptive evaluation (适应性评估)。攻击者
A
A
A 所获取受害者
V
V
V 的private knowledge可以被分为以下几类:
(1)
A
Q
A_Q
AQ 有
f
v
f_v
fv 的查询访问权。这里,我们考虑在这种场景下的模型萃取攻击:
(1.a) 即在给定输入样本,仅获取预测矢量( prediction vectors)的场景下,最小化copy模型和原始模型在这些样本上预测结果的 KL散度
。
(1.b) 更恶劣的场景下,攻击者仅可以获取预测矢量置信度最高的那一类的标签。
(2)
A
M
A_M
AM 有受害者的整个模型
f
v
f_v
fv (包括结构及参数),还可以细分为:
(2.a)
A
M
A_M
AM 可以对
f
v
f_v
fv 进行 fine-tune
(2.b) 使用
f
v
f_v
fv 在仅仅使用合成数据的零样本学习框架中,进行无数据的知识蒸馏
(3)
A
D
A_D
AD 获取了受害者训练
f
v
f_v
fv 时完整的训练集
S
v
S_v
Sv,然后利用这些数据:
(3.a) 进行有数据的知识蒸馏,从而copy出一个子模型
(3.b) 基于其他结构的模型重新训练一个模型
PS:知识蒸馏分为有数据的知识蒸馏和无数据的知识蒸馏,取决于能否利用母模型的训练集来进行蒸馏。