Abstract
Houdini 用来解决对抗样本生成中评价指标存在的组合(combinatorial)及不可微(non-fieerentable/non-dicomposable)的问题。
应用范围:语音识别、姿势估计、语义切割等。
一、 Introduction
1.问题产生的背景
目前的合成对抗样本的方法主要是依赖于给定的可微损失函数的梯度,然而,许多结构化预测问题(Structured Prediction)的损失函数是组合且不可微的,例如:
姿势估计:percentage of correct keypoints
语音识别:word error rate
语音分割:intersection over union(IOU)
等都是不可微的。
2. 在监督学习中,上述问题有两个解决方法:
(1)使用连续且可微的代替损失函数
寻找一个连续的、可微的代理损失函数来代替任务损失,该代理函数必须保证能逐渐收敛至任务损失。
(2)直接优化任务损失
例如损失直接最小化(Direct Loss Minimization)。
然而,这两种策略都有所局限性。
3.Limitations
(1)可微的代理在分类任务中的使用是令人满意的,因为代理和分类准确度之间的关系被很好地建立起来了。但是,对于代理模型常用的一些场景(如语音识别等),它的连续性不能保证。
(2)直接优化的计算量太大,并且对于结构化的对抗样本合成难度更大。
二、Related work
1.对抗样本
考虑原始输入样本(x, y),对抗样本为,其中对于对抗样本来说足够小,不足以被人类感知,但是可以使神经网络对目标作出错误的预测。
考虑到神经网络和p-norm范式,对抗样本的生成策略可以被定义为:
(1),
其中表示对抗样本的强度。
假设损失函数使可微的,Shaham提出用一阶泰勒展开来计算对抗扰动,上述问题被简化为计算下面这个式子:
,(2)。
然而,这些方法都是基于损失函数是可微的。因此他们不能直接用于the task loss of interest。
2.任务损失最小化(Task Loss Minimization)
最近,很多工作聚焦于直接最小化任务损失。Keshet等人针对结构化预测的情况提出了二进制概率损失(binary probit loss)的概念,该损失是任务损失的代替损失(surrogate loss),由PAC-Bayesian理论得来,函数可以表示为:
(3)。
后来,有人表明结构化概率损失有着有限的样本泛化边界,同时有着健壮的连续性。连续性对于一个代理模型非常重要,因为它保证了代理损失和任务损失之间的紧密关系。
然而,在每一次迭代中,必须要做成百上千次的预测操作才能使梯度计算得以稳定。因此,尽管其具有的性质非常重要,概率损失的更新过程计算量过大,限制了它的应用。
3.Houdini
因此,作者提出了Houdini算法。该算法不仅具有结构化概率损失的优良属性,同时也避免了相关计算量过大等缺陷。
类似于大多数结构化概率损失、不同于大多数用于结构化预测的代理模型(如用于SVMs的structure hinge loss),Houdini与任务损失联系紧密;因此,Houdini能够可靠地针对特定任务损失合成对抗样本。
不同于大多数结构化概率损失、类似于平滑的(smooth)代理模型,Houdini有着分析梯度(analytical gradient),因此在每一次更新中仅需要一次预测。
三、Houdini算法
已知神经网络和特定问题的任务损失,假设对于任意目标y,都有。对于一个样本,网络输出的分数为,网络的解码器预测的最高分数的目标可以表示为:
(4)。
沿着第二部分的思路,寻找对抗样本的任务就可以表示为
(5)。
然而,该任务损失是组合的(combinatorial),难以优化,因此用可微的代理损失代替,为
(6)。
总的来说,Houdini包含两个部分。
1.随机边缘(Stochastic Margin)
Stochastic Margin是实际目标的分数与预测目标的分数的差值小于正态分布Y的概率。它反映了模型对预测结果的信心。
2. 任务损失(Task Loss)
Houdini是任务损失的下界。由于P小于1,因此当P接近1时或网络被分配到target的分数无边界增长时,Houdini将会收敛至任务损失。这是其他代理模型所没有的独特性质,保证了Houdini能够很好地作为代理模型合成对抗样本。
因此,作者使用Houdini代替公式(5),同时一阶估计同样需要Houdini的梯度,运用链式法则,有:
(7)。
为了计算上述式子的RHS,我们只需要计算Houdini对于输入(即网络的输出)的导数,即为:
(8),其中。剩余部分可以通过反向传播计算。
因此,扩展右边的式子,并令,有:
公式(9)为计算Houdini的梯度提供了一个简单的分析公式。取决于攻击的形式,Houdini的梯度可以与任何基于梯度的对抗样本合成相关的过程结合,有两种方式:
(1)Untargeted Attack
我们想要改变网络的预测,而不对最终的预测有任何偏好。在这种情况下,任何可选的目标都能被使用(比如分数第2高的)。
(2)Targetted Attack
在这种情况下,我们将设置为期待的预测结果。同时,当预测结果与ground truth非常接近时,也就是当扰动与期待得一样小时,我们有:。
四、Houdini的应用
1.人类姿势估计
作者使用Houdini合成的对抗样本攻击基于Hourglass的单人姿势估计模型,评价标准为(当头的大小设为0.5时,关键节点被正确检测的百分比)。结果如表1所示。SSIM为结构化相似度指数,数值越大表明结果越好;Perceptibility是可感知度,数值越小表明结果越好。同时,PCKh=50%意味着有一般的节点都被正确地检测出来,表示收敛或者迭代300次以上。从表1中的数据可以看出,Houdini方法明显比原来的MSE方法生成的对抗样本更接近合法样本,并且更不容易被感知。
同时作者还测试了使用Houdini导致估计模型完全瘫痪所需要的迭代次数。如图1(b)所示,Houdini仅迭代100次左右就可以使PCKh为0,但是其他方法就算迭代300次以上都不能使PCKh为0,这说明了Houdini攻击非常高效且效果显著。
2.语义分割
评价指标:mIoU,为IoU=TP/(TP+FP+FN)的均值。
实验1:
给定的一个测试图像,作者改变其目标mIoU,同时测试targetted和untargeted的攻击效果并进行对比。结果如表2所示。mIoU/2指系统的性能下降50%,指收敛或模型迭代训练至300次。SSIM为结构化相似度指数,数值越大表明结果越好;Perceptibility是可感知度,数值越小表明结果越好。本次实验表明,Houdini不仅有着和NLL几乎一样好的攻击性能,而且比NLL更不易被感知。
实验2:
targetted攻击。作者改变输入的图像,从而使系统做出错误的预测。如图2所示,在给定的两个输入图像前提下,系统都做出了错误的预测。而且放大对抗图像的部分,其真实度时经得住考验的。
3.语音识别
这类模型的输入为原始的语音谱,输出为文本。
一般的评价标准为WER(词错误率)和CER(字符错误率)。
实验1
ABX实验。ABX是用来检测两个语音之间的可察觉的差异。实验结果表明,仅有53.73%的对抗样本能够被人类识别,因此在统计学上对抗样本是无法被人耳分辨的。在此基础上,作者进行了下面的实验。
实验2
Untargeted 攻击。作者首先用Houdini和CTC合成的对抗样本分别攻击ASR模型,测试这两种攻击的效果。如表3所示,在控制对抗扰动强度下,Houdini的攻击效果明显强于CTC,尤其是当=0.5时,Houdini的攻击效果几乎是CTC的2.3倍,这表明了Houdini卓越的的攻击效果。
同时,作者还比较了对抗样本和原始语音的频谱图,如图3所示,视觉上几乎无法分辨。
实验3
Targetted攻击。作者将第i-1次迭代的对抗样本作为第i次迭代输入模型,预测一个不同的文本。结果如图4所示。结果表明,对于不同音素的语音,targetted的攻击效果并没有特别好,攻击难度较高。
引用文章链接:《Houdini: Fooling Deep Structured Prediction Models》 https://arxiv.org/pdf/1707.05373.pdf