主持人:李雨龙
参会老师:杨矫云
参会学生:李雨龙,赵春阳,程坤,韩朋,段优,殷越,景波,江思源,刘杰,唐晨,郭思伊
本次例会主要讨论了以下论文
Biggio, B., Nelson, B., and Laskov, P. Poisoning attacks against support vector machines. In International Conference on Machine Learning (ICML), pp. 1467–1474,2012
背景
机器学习技术正在迅速地成为各种网络和大规模的系统应用中的重要工具。
机器学习方法已经被用作安全敏感任务的解决方案,包括垃圾邮件、蠕虫、入侵和欺诈检测。
在这些领域中,数据通常可能有攻击的成分。
一个聪明的攻击要能够在一定程度上预测支持向量机的决策函数因恶意输入而发生的变化,并利用这种能力构造恶意数据。
问题
如何构造恶意数据,使支持向量机的决策函数因恶意输入而发生变化,最终提高分类器的测试误差?
假设
本文的提出的针对SVM的中毒攻击算法可以有效的生成攻击点,从而大大降低SVM的分类精度。
方法
首先在训练集Dtr中选择一个攻击点(xc,yc),并定义攻击类(与攻击点标签相同)与被攻击类(与攻击点标签不同)。
固定一个验证集Dval,通过迭代改变(xc, yc),使在Dtr∪(xc, yc)上训练的SVM在Dval上所产生的铰链损失最大化。
通过论文第二章中推导的公式建立(xc,yc)的迭代公式,最终计算出迭代过后的攻击点。
实验
论文进行了两大组实验,分别使用人工生成了两组二维高斯分布和MNIST手写体数据集。
结果表明,本文的攻击算法找到了一个相当好的非凸误差面的局部极大值。
对于线性核,它终止于有界区域的角,因为误差面是无界的。对于径向基函数核,它也发现了铰链损耗的一个很好的局部最大值。
攻击算法使得攻击点的图像变得更加模糊。
随着训练集中攻击点百分比的增加,攻击效果稳步提高。
总结和展望
本文提出的中毒攻击是支持向量机针对训练数据攻击进行安全分析的第一步。
虽然本文的梯度上升方法可以说是一个粗略的算法过程,但它对支持向量机的分类精度产生了令人惊讶的巨大影响。
将来考虑寻找现实世界的攻击数据,即在学习模型的的输入空间中寻找能够达到预期效果的真实攻击数据。