極市導(dǎo)讀 CNN能被輕易的攻擊是其最大的弱點(diǎn)之一,,本文介紹的AdvProp創(chuàng)造性提出了在一個(gè)網(wǎng)絡(luò)中使用兩組可以切換的BN,并利用附加的BN去處理對(duì)抗樣本,,實(shí)現(xiàn)了較好的效果,。 >>加入極市CV技術(shù)交流群,走在計(jì)算機(jī)視覺的最前沿 前言CNN的對(duì)抗攻擊是近年來(lái)的研究熱點(diǎn),。CNN能被輕易的攻擊到也是其最大的弱點(diǎn)之一,。本文介紹的AdvProp(Adversarial Propagation)不是用來(lái)利用防御手段應(yīng)對(duì)對(duì)抗攻擊的,而是提高模型在真實(shí)原始的數(shù)據(jù)集上的準(zhǔn)確率,。是增強(qiáng)的對(duì)抗性訓(xùn)練方法,,將對(duì)抗樣本視為附加樣本,用來(lái)防止網(wǎng)絡(luò)過擬合,。本文的核心點(diǎn)就是利用附加的BN去處理對(duì)抗樣本,,因?yàn)檎撐恼J(rèn)為對(duì)抗樣本和真實(shí)樣本有著不同的分布。 AdvProp的兩點(diǎn)貢獻(xiàn):
前置知識(shí)一:對(duì)抗攻擊和防御對(duì)抗攻擊通過添加不易察覺的圖像擾動(dòng),,就可以使網(wǎng)絡(luò)預(yù)測(cè)失敗,,這些樣本被稱為對(duì)抗樣本。對(duì)抗樣本的存在不僅揭示了神經(jīng)網(wǎng)絡(luò)具有有限的泛化能力,,同時(shí)也帶來(lái)了安全性問題,,對(duì)模型的實(shí)際部署也帶來(lái)了威脅,。對(duì)抗攻擊包括提前知道模型信息的白盒攻擊和不利用模型信息的黑盒攻擊,。 例如論文《explaining and harnessing adversarial examples》(https:///abs/1412.6572)中給熊貓圖片增加擾動(dòng),網(wǎng)絡(luò)就預(yù)測(cè)成了長(zhǎng)臂猿,。其利用的就是基于梯度的攻擊,,也是白盒攻擊常用的方法。 再例如論文《Adversarial T-shirt! Evading Person Detectors in A Physical World》(https:///abs/1910.11099)中,,利用物理對(duì)抗攻擊,,可以讓目標(biāo)檢測(cè)網(wǎng)絡(luò)造成漏報(bào)。如下面的視頻截圖,,網(wǎng)絡(luò)無(wú)法識(shí)別右側(cè)穿著白色T恤的人,,所謂的Adversarial T-shirt,有興趣可以去網(wǎng)上搜索視頻和論文,。 本文利用到的是PGD(Project Gradient Descent )攻擊方法,,是一種迭代攻擊,相比于普通的FGSM 僅做一次迭代,,PGD是做多次迭代,,每次走一小步,每次迭代都會(huì)將擾動(dòng)投射到規(guī)定范圍內(nèi),。是Athalye等人在2018年發(fā)現(xiàn)的, 并且是最強(qiáng)大的一階攻擊方法之一,。 其中FGSM生成干擾樣本的公式為: PGD生成干擾樣本的公式如下,是經(jīng)過多次迭代獲取的: FGSM偽代碼: def perturb(self, x, y=None): x, y = self._verify_and_process_inputs(x, y) # 獲取target y,,如果是target攻擊,,就是將網(wǎng)絡(luò)預(yù)測(cè)值攻擊成預(yù)測(cè)target,否則攻擊成預(yù)測(cè)錯(cuò)誤 xadv = x.requires_grad_() outputs = self.predict(xadv) # 網(wǎng)絡(luò)預(yù)測(cè) loss = self.loss_fn(outputs, y) # 計(jì)算loss if self.targeted: loss = -loss loss.backward() # 反向傳播 grad_sign = xadv.grad.detach().sign()# 計(jì)算梯度方向 xadv = xadv + batch_multiply(self.eps, grad_sign)# 增加擾動(dòng),,可以這樣理解,,網(wǎng)絡(luò)優(yōu)化利用梯度下降,攻擊利用梯度上升 xadv = clamp(xadv, self.clip_min, self.clip_max) return xadv.detach() 既然能夠被攻擊到,,那么一個(gè)樸素的方法就是:能否將對(duì)抗樣本加到訓(xùn)練集中來(lái)抵抗攻擊,? 事實(shí)上,就是就對(duì)抗防御的思想,,也是一個(gè)領(lǐng)域,,本文不去過多關(guān)注,以后可以做專門的解讀,。不過本文認(rèn)為,,之前的對(duì)抗防御做法要么是在mnist等小數(shù)據(jù)集上做的,,要么是在大數(shù)據(jù)集上用半監(jiān)督的形式做的。到底有沒有用,,是一個(gè)比較open的話題,。另外本文對(duì)標(biāo)的方法《Towards Deep Learning Models Resistant to Adversarial Attacks》用到的是min-max game方法,其問題是不能在原始干凈的圖片上提升指標(biāo),,甚至還會(huì)降低指標(biāo),。 另外,Adversarial T-shirt中提到,,現(xiàn)實(shí)中對(duì)抗樣本是否存在,?他們經(jīng)過大量的實(shí)驗(yàn)和經(jīng)驗(yàn)發(fā)現(xiàn),現(xiàn)實(shí)中很難出現(xiàn)對(duì)抗樣本,,理由如下:
所以就更能突出本文的意義所在:利用對(duì)抗樣本提高真實(shí)clean圖片的準(zhǔn)確率。 前置知識(shí)二:BNBN(batch Normalization)通過將數(shù)據(jù)進(jìn)行偏移和尺度縮放拉到一個(gè)特定的分布,。它的引入是用來(lái)解決 internal covariate shift 問題,,即訓(xùn)練迭代中網(wǎng)絡(luò)激活的分布的變化對(duì)網(wǎng)絡(luò)訓(xùn)練帶來(lái)的破壞。BN通過在每次訓(xùn)練迭代的時(shí)候,,利用minibatch計(jì)算出的當(dāng)前batch的均值和方差,,進(jìn)行標(biāo)準(zhǔn)化來(lái)緩解這個(gè)問題。 一般來(lái)說(shuō),,BN的主要有兩個(gè)優(yōu)點(diǎn):1是降低對(duì)初始化,、學(xué)習(xí)率等超參的敏感程度,因?yàn)槊繉拥妮斎氡籅N拉成相對(duì)穩(wěn)定的分布,,也能加速收斂過程,。2是應(yīng)對(duì)梯度飽和和梯度彌散,主要是對(duì)于sigmoid和tanh的激活函數(shù),。再來(lái)回顧一下BN的具體做法:
可以看出,要想BN真正work,,就要保證訓(xùn)練時(shí)當(dāng)前的均值和方差逼近全部數(shù)據(jù)的均值和方差,。因?yàn)橛?xùn)練過程每個(gè)minibatch從整體數(shù)據(jù)中均勻采樣,不同分布的話minibatch的均值和方差和訓(xùn)練樣本整體的均值和方差是會(huì)存在較大差異的,。 所有LN,、IN,、GN等所有的Normalization都會(huì)用到真實(shí)數(shù)據(jù)做歸一化操作的,只不過發(fā)生的維度不一樣而已,,所以本文的方法適合推廣,。 本文做法本文的思路也很簡(jiǎn)單樸素,既然clean樣本和對(duì)抗樣本是不同的分布,,那么使用兩個(gè)BN不就可以了嘛,!如上圖,圖a代表的是傳統(tǒng)的BN,,可以看出clean樣本和對(duì)抗樣本有著不一樣的分布,。圖b為本文的做法,,只在BN的地方增加auxiliary BN,,訓(xùn)練過程根據(jù)輸入樣本是clean還是對(duì)抗樣本進(jìn)行切換。 這是普通訓(xùn)練的優(yōu)化目標(biāo),,其中為網(wǎng)絡(luò)參數(shù),,L為loss: 這是Madry’s對(duì)抗訓(xùn)練的優(yōu)化目標(biāo),用到的是min-max方法,,max是使得增加對(duì)抗擾動(dòng),,讓loss最大;min是在該loss上優(yōu)化網(wǎng)絡(luò)參數(shù),。 這個(gè)本文的優(yōu)化目標(biāo),,可以看作在對(duì)抗樣本+原始樣本上進(jìn)行聯(lián)合訓(xùn)練,力求網(wǎng)絡(luò)擬合兩種數(shù)據(jù)集,。 訓(xùn)練過程:
測(cè)試過程: 將輔助BN去掉,,只使用正常的BN,因?yàn)槲覀兠媾R的場(chǎng)景是正常圖片的預(yù)測(cè),。 實(shí)驗(yàn)結(jié)果: 測(cè)試結(jié)果如下,,在imagenet上,使用effencientnet不同大小模型,,均有不同程度的提高,。說(shuō)明該方法是work的: 在imagenet其他數(shù)據(jù)集上表現(xiàn)都不錯(cuò),可見其泛化能力,。 論文并對(duì)進(jìn)行了消融實(shí)驗(yàn),,其中越大,,攻擊程度越大??梢钥闯?,小模型上弱的攻擊帶來(lái)的效果越好,大模型反之,。 總結(jié)本文介紹的AdvProp著眼利用對(duì)抗樣本提高訓(xùn)練的測(cè)試指標(biāo),,其最大創(chuàng)新點(diǎn)就是利用兩組BN處理不同的數(shù)據(jù)分布,思路簡(jiǎn)單有效,,值得借鑒,。 |
|