matlab 代码的影响力攻击还挺有意思的,结合 Python 的 KKT 攻击一块看,能搞出一套更强的数据中毒策略。实验代码复现的是庞伟哥那篇和斯坦哈特、珀西·梁合作的论文,重现度高,拿来就能跑。
Python 部分写了大多数的攻击和防御逻辑,版本选得比较老:Python 2.7.16
、cvxpy 0.4.11
、Tensorflow 1.12.0
这些,得注意下环境。MATLAB 部分主要是生成诱饵参数,还有最小-最大类的攻击代码,全都放在matlab/
文件夹下,路径啥的要自己改下。
挺贴心的一点是,作者把数据集都打包好了,.npz
和.mat
格式都给了,Python 和 MATLAB 各取所需。要跑通全流程,记得改下datasets.py
里的DATA_FOLDER
路径,免得路径找不到报错。
这套代码适合研究数据中毒攻击,尤其是你想深入理解影响力攻击和最小-最大优化那块。如果你做对抗机器学习或者数据防御策略的工作,拿这个来做 baseline 再合适不过。
如果你对类似的 MATLAB 安全研究感兴趣,可以看看KMV 攻击实现,或者复杂网络攻击模拟也不错,思路蛮接近的。
建议你配环境时优先用 conda 环境隔离,是旧版的cvxpy
容易和新版 numpy 打架,安装顺序也有讲究。