20189221 2018-2019-2 《密码与安全新技术专题》第七周作业
课程:《密码与安全新技术专题》
班级: 201892
姓名: 郭开世
学号:20189221
上课教师:谢四江
上课日期:2019年5月21日
必修/选修: 选修
1.论文复现的学习总结
Manipulating Machine Learning: Poisoning Attacks and Countermeasures for Regression Learning
作者:[Matthew Jagielski ; Alina Oprea ; Battista Biggio ; Chang Liu ; Cristina Nita-Rotaru ; Bo Li
投稿:2018 IEEE Symposium on Security and Privacy (SP)
年份:2018
主题:在本文中,我们对线性回归模型进行了第一次中毒攻击的系统研究及其对策。
代码:https://github.com/jagielski/manip-ml
相关知识:机器学习 数据安全 线性回归 预测模型
论文成果:
作者对线性回归模型的中毒攻击及其对策进行了第一次系统研究。
作者提出了一个针对中毒攻击和快速统计攻击的新优化框架,该框架需要对培训过程的了解很少。
作者还采用原则性方法设计一种新的鲁棒防御算法,该算法在很大程度上优于现有的稳健回归方法。
作者在医疗保健,贷款评估和房地产领域的几个数据集上广泛评估作者提出的攻击和防御算法。
作者在案例研究健康应用中证明了中毒攻击的真实含义。
作者终于相信,作者的工作将激发未来的研究,以开发更安全的中毒攻击学习算法。
系统架构:
TRIM算法及成果:
相关数据:
2.论文复现中遇到的问题及解决
问题1:代码调试
因为作者的GitHub中没有写任何与论文复现相关的东西,所以代码调试只能纯靠自己。
问题1解决:
环境配置
我的Linux是Ubuntu 18.04的,之前复现其他论文的时候,已经在虚拟机里装了pip、pillow、scipy、numpy、tensorflow、keras、h5py等
sudo apt-get install python3-pip
sudo pip3 install --upgrade pip
sudo pip3 install pillow scipy numpy tensorflow-gpu keras h5py
注:没有配novidia环境的,可以使用sudo pip3 install tensorflow
安装tensorflow的CPU版
大部分库使用pip安装都是一件十分省时省力的事情。
之后我记得还装了两个依赖库,具体记不得是哪两个了,但都是直接按照报错信息,使用pip安装的。
代码调试
一开始执行的时候报错如下:
判断是self.x
未定义,查看gd_poisoners.py
中self
的定义,发现未定义self.x
,self.y
,但定义了self.trnx = x
和self.trny = y
。
判断应该将self.x
和self.y
全部替换为self.trnx = x
和self.trny = y
,代码调试成功。
调用data:
运行格式:
运行结果:
3.论文的学习感悟、思考等
论文阅读
论文的搜索工作不算太难,学校有IEEE的库,所以选择了S&P。
为了找到有效论文(即有源代码的论文),需要结合GitHub进行筛选。
论文复现
论文复现主要麻烦的是环境配置工作,代码中的小BUG一般而言比较简单。
论文书写
详细的阅读、复现了这篇论文之后,我发现,顶会论文名副其实,其研究的深度、广度,现实意义及论文结构,都对我接下来的论文书写工作指明了方向,也促使我有了更高的自我要求。
参考资料
- Manipulating Machine Learning: Poisoning Attacks and Countermeasures for Regression Learning
- https://github.com/jagielski/manip-ml
- 对抗样本(Adversarial Examples)和投毒攻击(Poisoning Attacks)相关资料
附件:论文展示PPT