核心子集进行对抗训练

论文解读 专栏收录该内容
32 篇文章 14 订阅

1 引言

深度神经网络极易受到对抗样本的攻击。防御对抗样本攻击一个直观有效的方式就是对抗训练比如 F r e e   a d v e r s a r i a l   t r a i n i n g \mathrm{Free \text{ } adversarial\text{ } training} Free adversarial training F a s t   a d v e r s a r i a l   t r a i n i n g \mathrm{Fast \text{ } adversarial\text{ } training} Fast adversarial training,但问题是对抗训练比正常的训练要慢,主要原因在于对抗训练需要模型格外引入对抗样本进行训练,另外对抗训练的理论基础还不够扎实。在该论文中作者为对抗训练的理论工作添砖加瓦,作者提出了一种在训练集中寻找核心子集的方法,它可以自适应于当前的一些对抗训练的方法并能大大缩短训练时间。该论文是一篇高质量集理论分析和实证考究的好文章。
论文链接:https://arxiv.org/abs/2112.00378v1

2 预备知识

D = { ( x i , y i ) } i = 1 n ⊂ X × C \mathcal{D}=\{(x_i,y_i)\}^{n}_{i=1}\subset \mathbb{X}\times\mathbb{C} D={(xi,yi)}i=1nX×C表示包含 n n n个独立同分布的样本训练集,其中 C = [ k ] = { 1 , 2 , ⋯   , k } \mathbb{C}=[k]=\{1,2,\cdots,k\} C=[k]={1,2,,k}。假定 f θ : X → R k f_{\theta}:\mathbb{X}\rightarrow \mathbb{R}^k fθ:XRk表示的是带有参数 θ \theta θ的神经网络分类器,将输入样本 x ∈ X x\in \mathbb{X} xX映射成一个 s o f t m a x \mathrm{softmax} softmax向量 f θ ( x ) ∈ R k f_{\theta}(x)\in \mathbb{R}^k fθ(x)Rk。神经网络正常训练的目标函数可以表示成如下形式 min ⁡ θ ∑ i = 1 n Φ ( x i , y i ; f θ ) \min\limits_{\theta}\sum\limits_{i=1}^n \Phi(x_i,y_i;f_\theta) θmini=1nΦ(xi,yi;fθ)其中 Φ ( ⋅ ) \Phi(\cdot) Φ()表示的是损失函数,其中 Φ \Phi Φ最常用的函数是交叉熵函数 L C E \mathcal{L}_{CE} LCE,即 Φ ( x , y ; f θ ) = L C E ( f θ ( x ) , y ) \Phi(x,y;f_\theta)=\mathcal{L}_{CE}(f_{\theta}(x),y) Φ(x,y;fθ)=LCE(fθ(x),y)对抗训练的目标函数可以表示为 { Φ ( x , y ; f θ ) = max ⁡ x ^ L C E ( f θ ( x ^ ) , y ) d ( x ^ , x ) ≤ ε \left\{\begin{aligned}\Phi(x,y;f_\theta)&=\max\limits_{\hat{x}}\mathcal{L}_{CE}(f_\theta(\hat{x}),y)\\d(\hat{x},x)&\le\varepsilon\end{aligned}\right. Φ(x,y;fθ)d(x^,x)=x^maxLCE(fθ(x^),y)ε其中 d ( ⋅ , ⋅ ) d(\cdot,\cdot) d(,)表示 x ^ \hat{x} x^ x x x在空间 X \mathbb{X} X之间的距离。将正常训练的目标函数与对抗训练的目标函数进行整合可以得到 T R A D E S \mathrm{TRADES} TRADES对抗训练的目标函数为 Φ ( x , y ; f θ ) = L C E ( f θ ( x ) , y ) + max ⁡ x ^ L C E ( f θ ( x ^ ) , f θ ( x ) ) λ \Phi(x,y;f_\theta)=\mathcal{L}_{CE}(f_\theta(x),y)+\max\limits_{\hat{x}}\frac{\mathcal{L}_{CE}(f_\theta(\hat{x}),f_\theta(x))}{\lambda} Φ(x,y;fθ)=LCE(fθ(x),y)+x^maxλLCE(fθ(x^),fθ(x))其中 λ \lambda λ为正则化参数。

3 论文方法

该论文的核心目的就是要去寻找核心子集,所谓的核心子集就是能够对模型训练起到显著作用的训练子集。之前的研究都是在干净样本集中去寻找核心子集。该论文要寻找核心子集的范围更大,它要在干净样本集和对抗样本集这个更大的集合中去寻找核心子集,利用该核心子集去进行对抗训练从而使得模型在保证分类精度的条件下,训练时间能够大大缩短。

3.1 D a n s k i n \mathrm{Danskin} Danskin定理

寻找核心子集的第一步就是要计算损失函数关于神经网络参数的梯度,可以用如下公式表示 ∇ θ Φ ( x i , y i ; f θ ) , ∀ i ∈ V \nabla_\theta \Phi(x_i,y_i;f_\theta),\quad \forall i\in V θΦ(xi,yi;fθ),iV其中 V = [ n ] = { 1 , 2 , ⋯   , n } V=[n]= \{1,2,\cdots,n\} V=[n]={1,2,,n}表示训练数据集的下标索引。在正常的神经网络训练中,损失函数关于神经网络参数的梯度可以表示为 ∇ θ Φ ( x i , y i ; f θ ) = ∇ θ L C E ( f θ ( x i ) , y i ) , ∀ i ∈ V \nabla_\theta \Phi(x_i,y_i;f_\theta)=\nabla_\theta \mathcal{L}_{CE}(f_\theta(x_i),y_i),\quad \forall i\in V θΦ(xi,yi;fθ)=θLCE(fθ(xi),yi),iV在对抗训练中,计算损失函数关于神经网络参数的梯度则需要用到关于最大值目标的偏导。为此需要引入 D a n s k i n \mathrm{Danskin} Danskin(1969)定理,该定理的描述如下所示

定理1( D a n s k i n \mathrm{Danskin} Danskin): S \mathcal{S} S是一个非空紧的拓扑空间。对于任意的 δ ∈ S \delta\in \mathcal{S} δS,函数 ℓ ( θ , δ ) : R m × S → R \ell(\theta,\delta): \mathbb{R}^m \times \mathcal{S}\rightarrow \mathbb{R} (θ,δ):Rm×SR是可微的,并且 ∇ θ ℓ ( θ , δ ) \nabla_{\theta}\ell(\theta,\delta) θ(θ,δ) R m × S \mathbb{R}^{m}\times \mathcal{S} Rm×S是连续的。令 δ ∗ ( θ ) = { δ ∈ arg max ⁡ δ ∈ S ℓ ( θ , δ ) } \delta^{*}(\theta)=\{\delta\in \argmax\limits_{\delta\in \mathcal{S}}\ell(\theta,\delta)\} δ(θ)={δδSargmax(θ,δ)},则函数 Φ ( θ ) = max ⁡ δ ∈ S ℓ ( θ , δ ) \Phi(\theta)=\max\limits_{\delta \in \mathcal{S}}\ell(\theta,\delta) Φ(θ)=δSmax(θ,δ)是局部 L i p s c h i t z \mathrm{Lipschitz} Lipschitz连续和方向可微的,并对于方向向量为 h h h的方向导数满足 ϕ ′ ( θ , h ) = sup ⁡ δ ∈ δ ∗ ( θ ) h ⊤ ∇ θ ℓ ( θ , δ ) \phi^{\prime}(\theta,h)=\sup\limits_{\delta\in \delta^{*}(\theta)}h^{\top}\nabla_{\theta}\ell(\theta,\delta) ϕ(θ,h)=δδ(θ)suphθ(θ,δ) θ ∈ R m \theta\in\mathbb{R}^{m} θRm,且集合 δ ∗ ( θ ) = { δ θ ∗ } \delta^{*}(\theta)=\{\delta^{*}_\theta\} δ(θ)={δθ}是单一元素时,最大值函数在 θ \theta θ上是可微的,且有 ∇ ϕ ( θ ) = ∇ θ ℓ ( θ , δ θ ∗ ) \nabla \phi(\theta)=\nabla_\theta \ell(\theta,\delta^{*}_\theta) ϕ(θ)=θ(θ,δθ)

以上定理是告诉我们如何求得最大值函数的梯度。利用该定理去寻找对抗训练中的核心子集。

3.2 核心子集选取

核心子集选取的目的是在训练集中选择一个可以更好近似全体梯度的子数据集,具体的目标函数可以表示为 ∥ ∑ i ∈ V ∇ θ Φ ( x i ; y i ; f θ ) − ∑ j ∈ S γ j ∇ θ Φ ( x j , y j ; f θ ) ∥ \left\|\sum\limits_{i\in V}\nabla_{\theta}\Phi(x_i;y_i;f_{\theta})-\sum\limits_{j\in \mathcal{S}}\gamma_j\nabla_{\theta}\Phi(x_j,y_j;f_{\theta})\right\| iVθΦ(xi;yi;fθ)jSγjθΦ(xj,yj;fθ)其中 V = [ n ] = { 1 , 2 , ⋯   , n } V=[n]=\{1,2,\cdots,n\} V=[n]={1,2,,n}表示的是训练集,核心子集表示为 S \mathcal{S} S,且有 S ⊂ V \mathcal{S}\subset V SV。作者为了计算方便,将上式进一步化简为 S ∗ = arg ⁡ min ⁡ S ⊆ V ∣ S ∣ , s . t . L ( S ) ≜ ∑ i ∈ V min ⁡ j ∈ S d i j ≤ ε \mathcal{S}^*=\arg\min\limits_{\mathcal{S}\subseteq V}|\mathcal{S}|,\quad \mathrm{s.t.}\quad L(\mathcal{S})\triangleq \sum\limits_{i\in V}\min\limits_{j\in \mathcal{S}}d_{ij}\le \varepsilon S=argSVminS,s.t.L(S)iVjSmindijε其中 d i j ≜ = max ⁡ θ ∈ Θ ∥ ∇ θ Φ ( x i , y i ; f θ ) − ∇ θ Φ ( x j , y j ; f θ ) ∥ d_{ij}\triangleq=\max\limits_{\theta \in \Theta}\|\nabla_{\theta}\Phi(x_i,y_i;f_{\theta})-\nabla_{\theta}\Phi(x_j,y_j;f_{\theta})\| dij=θΘmaxθΦ(xi,yi;fθ)θΦ(xj,yj;fθ)表示的是最大化梯度样本间的梯度距离。

3.3 算法介绍

利用 D a n s k i n \mathrm{Danskin} Danskin定理可知,在对抗训练中,损失函数关于神经网络参数的梯度可以表示为 ∇ θ Φ ( x , y ; f θ ) = ∇ θ max ⁡ x ^ L C E ( f θ ( x ^ ) , y ) = ∇ θ L C E ( f θ ( x ∗ ) , y ) \begin{aligned}\nabla_{\theta}\Phi(x,y;f_\theta)&=\nabla_{\theta}\max\limits_{\hat{x}}\mathcal{L}_{CE}(f_\theta(\hat{x}),y)\\&=\nabla_{\theta}\mathcal{L}_{CE}(f_\theta(x^{*}),y)\end{aligned} θΦ(x,y;fθ)=θx^maxLCE(fθ(x^),y)=θLCE(fθ(x),y)其中 x ∗ x^{*} x max ⁡ x ^ L C E ( f θ ( x ^ ) , y ) \max\limits_{\hat{x}}\mathcal{L}_{CE}(f_\theta(\hat{x}),y) x^maxLCE(fθ(x^),y)的解。考虑到 D a n s k i n \mathrm{Danskin} Danskin定理在神经网络中可能并不成立,主要原因是神经网络非凸且不连续,作者将上式修改为 ∇ θ Φ ( x , y ; f θ ) ≈ ∇ θ L C E ( f θ ( x a d v ) , y ) \nabla_{\theta}\Phi(x,y;f_\theta)\approx\nabla_{\theta}\mathcal{L}_{CE}(f_\theta(x_{adv}),y) θΦ(x,y;fθ)θLCE(fθ(xadv),y)对于 T R A D E S \mathrm{TRADES} TRADES对抗训练,损失函数关于神经网络参数的梯度可以表示为 ∇ θ Φ ( x , y ; f θ ) ≈ ∇ θ L C E ( f θ ( x ) , y ) + ∇ θ L C E ( f θ ( x a d v ) , f θ ( x ) ) λ \nabla_{\theta}\Phi(x,y;f_\theta)\approx\nabla_{\theta}\mathcal{L}_{CE}(f_\theta(x),y)+\frac{\nabla_{\theta}\mathcal{L}_{CE}(f_{\theta}(x_{adv}),f_{\theta}(x))}{\lambda} θΦ(x,y;fθ)θLCE(fθ(x),y)+λθLCE(fθ(xadv),fθ(x))其中 x a d v x_{adv} xadv是近似下公式的解析解 max ⁡ x ^ L C E ( f θ ( x ^ ) , f θ ( x ) ) λ \max\limits_{\hat{x}}\frac{\mathcal{L}_{CE}(f_{\theta}(\hat{x}),f_{\theta}(x))}{\lambda} x^maxλLCE(fθ(x^),fθ(x))其中对于 ∇ θ L C E ( f θ ( x ^ ) , f θ ( x ) ) λ \frac{\nabla_{\theta}\mathcal{L}_{CE}(f_{\theta}(\hat{x}),f_{\theta}(x))}{\lambda} λθLCE(fθ(x^),fθ(x))的计算需要用到多变量的链式法则,令 ω ( θ ) = f θ ( x a d v ) \omega(\theta)=f_{\theta}(x_{adv}) ω(θ)=fθ(xadv) z ( θ ) = f θ ( x ) z(\theta)=f_{\theta}(x) z(θ)=fθ(x)则有如下公式 ∇ θ L C E ( f θ ( x a d v ) , f θ ( x ) ) = ∇ θ L C E ( ω ( θ ) , z ( θ ) ) = ∂ L C E ∂ ω ∇ θ ω ( θ ) + ∂ L C E ∂ z ∇ θ z ( θ ) = ∇ θ L C E ( f θ ( x a d v ) , f r e e z e ( f θ ( x ) ) ) + ∇ θ L C E ( f r e e z e ( f θ ( x a d v ) ) , f θ ( x ) ) \begin{aligned}\nabla_{\theta}\mathcal{L}_{CE}(f_{\theta}(x_{adv}),f_{\theta}(x))&=\nabla_{\theta}\mathcal{L}_{CE}(\omega(\theta),z(\theta))\\&=\frac{\partial \mathcal{L}_{CE}}{\partial \omega}\nabla_{\theta}\omega(\theta)+\frac{\partial \mathcal{L}_{CE}}{\partial z}\nabla_{\theta}z(\theta)\\&=\nabla_{\theta}\mathcal{L}_{CE}(f_\theta(x_{adv}),\mathrm{freeze}(f_{\theta}(x)))\\& + \nabla_{\theta}\mathcal{L}_{CE}(\mathrm{freeze}(f_{\theta}(x_{adv})),f_{\theta}(x))\end{aligned} θLCE(fθ(xadv),fθ(x))=θLCE(ω(θ),z(θ))=ωLCEθω(θ)+zLCEθz(θ)=θLCE(fθ(xadv),freeze(fθ(x)))+θLCE(freeze(fθ(xadv)),fθ(x))其中 f r e e z e ( ⋅ ) \mathrm{freeze}(\cdot) freeze()固定某个变量。综上可知对于 T R A D E S \mathrm{TRADES} TRADES对抗训练,损失函数关于神经网络参数的梯度可以表示为 ∇ θ Φ ( x , y ; f θ ) = ∇ θ L C E ( f θ ( x ) , y ) + ∇ θ L C E ( f θ ( x a d v ) , f r e e z e ( f θ ( x ) ) ) λ + ∇ θ L C E ( f r e e z e ( f θ ( x a d v ) ) , f θ ( x ) ) λ \begin{aligned}\nabla_{\theta}\Phi(x,y;f_{\theta})&=\nabla_{\theta}\mathcal{L}_{CE}(f_{\theta}(x),y)\\&+\frac{\nabla_{\theta}\mathcal{L}_{CE}(f_{\theta}(x_{adv}),\mathrm{freeze}(f_{\theta}(x)))}{\lambda}\\&+\frac{\nabla_{\theta}\mathcal{L}_{CE}(\mathrm{freeze}(f_{\theta}(x_{adv})),f_{\theta}(x))}{\lambda}\end{aligned} θΦ(x,y;fθ)=θLCE(fθ(x),y)+λθLCE(fθ(xadv),freeze(fθ(x)))+λθLCE(freeze(fθ(xadv)),fθ(x))
该论文的算法示意图如下所示,训练一开始模型需要在全部数据集进行训练 T w a r m T_{warm} Twarm轮,然后进行核心子集的选取(先生成对抗样本,然后计算梯度计算,最后利用贪心算法进行选取样本),接着在该子集中训练 T T T轮,重复训练 N N N次,每一次的核心子集的选取跟梯度计算有关。

综上所述可以得到如下的算法流程图

4 实验结果

下表记录了不同对抗训练方法得到的模型在分类干净样本和对抗样本的准确率,以及所消耗的时间能耗。可以直观的发现,在与全数据集进行对抗训练的模型相比,经过本文提出的对抗训练方法在损失较小的分类精度的情况下,大大缩短了时间能耗。

下图展示了相对误差与加速曲线的图像,可以看出,在每种情况下,对抗核心集选择的温启动和批量版本的组合都提供了最佳性能。随着逐渐减小核心集的大小,可以发现训练速度也随之提高了。

评论 2 您还未登录,请先 登录 后发表或查看评论
©️2022 CSDN 皮肤主题:成长之路 设计师:Amelia_0503 返回首页

打赏作者

鬼道2022

你的鼓励将是我创作的最大动力

¥2 ¥4 ¥6 ¥10 ¥20
输入1-500的整数
余额支付 (余额:-- )
扫码支付
扫码支付:¥2
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值