Processing math: 48%
【论文笔记】Data-Free Model Extraction(CVPR 2021)

【论文笔记】Data-Free Model Extraction(CVPR 2021)

(还不是很完善orz)

本文证明并解决了现有model extraction对数据集的依赖(依赖于替代数据集与实际训练集的相似性),并且在目标模型以black box形式被访问的条件下,提出了data-free的model extraction攻击,称为data-free model extraction (DFME)。DFME中采用了data-free knowledge transfer中的一些技术。

  • ⭕利用GAN网络来训练攻击模型,其中一个generator负责生成训练数据,另一个student model来学习目标模型在这些数据上的行为(做到data free)
  • ⭕使用l1范式损失函数(防止梯度消失)
  • 使用零阶优化(前向差分法)来逼近梯度(解决目标模型是个black box,无法获知其真实梯度的问题)
  • ⭕从概率向量中还原目标模型的logits

1 相关工作

1.1 Data-Free Knowledge Distillation(无数据知识蒸馏)

可参考https://zhuanlan.zhihu.com/p/516930757、https://zhuanlan.zhihu.com/p/102038521(知识蒸馏)

知识蒸馏是一种模型压缩方法,是一种基于“teacher-student网络思想”的训练方法,目标是把一个训练好的模型(teacher,Net-T)的知识压缩给另外一个模型(student,Net-S),达到节省模型训练的开销的作用。其中,Net-T一般结构复杂、参数量大,而Net-S结构较为简单、参数量小。那么在用Net-T来训练Net-S的时候,就是让Net-S去学习Net-T的泛化能力,直接的办法是使用softmax层输出的类别的概率来作为“soft target”。

soft target相对应的是hard target。一般的标签都是hard target,就是说一个对象只有一个标签。而soft target则是在每个标签上都有一定的值。举例来说,一个写的像3的2,在”3”上具有一定的概率值。而写的像7的2,在”7”上有一定的概率值,那么他们就提供了更多的信息。

【参考】https://antkillerfarm.github.io/dl%20acceleration/2019/07/27/DL_acceleration_6.html

使用soft target来训练Net-S时,softmax函数就变成了如下的形式

(具体先不展开,看看之后需要用到哪些KD相关的知识再说)

1.2 Generative Models

本文中使用GAN类似的方法去训练student,用GAN去拟合最能说明当前student和teacher的决策曲面之间差异的数据分布(好复杂。。。)

1.3 Black-box Gradient Approximation

因为目标模型是个black box,无法获得其梯度,所以采用的是零阶优化的方式来做到梯度逼近(之后会再介绍)

2 How Hard is it to Find a Surrogate Dataset?

实验证明了现有model extraction都是基于替代数据集(surrogate dataset)非常接近与原始训练集的,若是替代集和原始训练集差别比较大,攻击的准确率就会低。

但是这样的surrogate dataset在现实中难以获得,于是作者提出了DFME

3 Data-Free Model Extraction

介绍了本文提出的攻击方法

DFME的目标是使extraction model对x的预测和目标模型对x的预测不同的概率最小。其中DV是目标模型的训练集(攻击者不可知),所以可以用合成的数据集DS

训练extraction model时,优化时使用的损失函数是L,则要满足

3.1 Overview

GFME的过程就是一个GAN网络,generator G生成输入x,目标网络V和Student网络S作为discriminator,S要去学习V对输入x的预测行为。其中z是一个随机的噪音,G通过给到的z来生成输入x。然后通过反向传播来优化。但是目标模型V是black-box,所以只能采取梯度逼近的方法。GS一起组成了攻击模型。

  • 关于Student model S的结构的选择

    只需要知道目标模型所解决的问题的一般知识,选择适合的模型结构即可(根据知识蒸馏工作发现的结果)

  • 关于损失函数的选择:

    这里使用了l1范数损失函数G使用的损失函数与S的一致,但是要增大梯度(即增大VS之间的差距)

  • 关于目标模型V的梯度计算:

    V是个黑盒,所以采用梯度逼近的方法来计算其梯度。但是S的训练不依赖V的参数θ_V,但是G的训练需要。

具体的算法如下所示。在每个epoch中,GS分别训练n_Gn_S次,n_Gn_S的大小关系是个tradeoff

3.2 Loss Function

选择的损失函数都是知识蒸馏问题中常用的

【注】K是类的数量

  1. KL散度(相对熵):

    常用于数据蒸馏

    即用概率分布 𝑞 来近似 𝑝 时所造成的信息损失量

    但是当S越来越接近V时,KL散度就有梯度消失的问题了,导致训练G时,难以收敛

  2. ==l_1范数损失函数==(比KL散度简单),其中v_is_i都是softmax激活前的logits(即w^Tx)。但是V的参数不可知,所以需要logits(证明见附录)

    【问题】这里计算l_1范数损失需要用到V的梯度吗

【问题】 3.3 Gradient Approximation(梯度逼近)

用零阶优化的方法。优化G时,通过逼近图像x的梯度,再使用反向传播算法来优化G,这样逼近的梯度的维度就很小????没明白

并使用前向差分法(forward differences method)来逼近梯度(即微分),==而不是选用零阶优化==

其中u_i是随机的方向向量,共m

有限差分法也可以选用

【问题】零阶优化是一定要用到前向差分法吗,还是说梯度逼近需要用到前向差分

3.4 从概率分布中还原logits

首先,计算

接着计算

image-20221021192341986

image-20221021192341986

4 Experimental Validation

5 Ablation Studies

  1. 损失函数的选择

    l_1范数损失函数要比KL散度损失函数好。KL散度损失函数收敛速度慢,而且会提前停止,存在梯度消失的问题

  2. 梯度逼近

    在逼近梯度的过程中,方向向量u_i的问询次数m和梯度的准确度之间成正比关系,但是m越大,训练时候的开销就越大,所以这也是个tradeoff问题。在训练过程中,训练S使用的问询次数的占比为\frac{n_S}{n_S+(m+1)n_G}

    作者提出了一种混合模式:先从一个surrogate dataset中提取出一个可能较差的student model,然后再用DFME中的算法,通过对目标模型的问询,来优化提取出的student model

  3. logits的准确率的影响

    当logits的均方差MAE比较小的时候,就可以从分布中还原出来

【论文笔记】Data-Free Model Extraction(CVPR 2021)

http://example.com/2022/10/21/论文笔记4/

作者

Aemilia Xu

发布于

2022-10-21

更新于

2023-01-04

许可协议

评论

Powered By Valine
v1.4.16