9.6.3 运行测试代码

9.6.3 运行测试代码

9.6.3运行测试代码

测试代码主要包含三个目录,分别为:

sample_attacks,包含无定向攻击算法FGSM和随机添加噪声。

sample_targeted_attacks,包含基于单步和基于迭代优化的定向攻击算法。

sample_defenses,包含防御算法,有原始的Inception模型base_inception_model、基于FGSM对抗训练过的Inception模型adv_inception_v3以及通过集成对抗训练的ens_adv_inception_resnet_v2。

运行脚本针对DEV生成对抗样本,并执行防御算法。

shrun_attacks_and_defenses.sh

运行测试脚本后,会创建临时目录,并从sample_attacks目录下加载无定向攻击算法,从sample_targeted_attacks加载定向攻击算法,从sample_defenses加载防御算法。

Preparingworkingdirectory:/tmp/tmp.S2wNSF5gpj

Runningattacksanddefenses

Foundattacks:['fgsm','noop','random_noise']

Foundtagetedattacks:['iter_target_class','step_target_class']

Founddefenses:['base_inception_model','ens_adv_inception_resnet_v2',

'adv_inception_v3']

之后会通过Docker环境加载对应的攻击算法和防御算法以及DEV数据集。默认情况下仅使用CPU资源,如果需要使用GPU资源,需要修改run_attacks_and_defenses.sh文件,增加gpu参数。

python"${SCRIPT_DIR}/run_attacks_and_defenses.py"

--attacks_dir="${WORKING_DIR}/attacks"

--targeted_attacks_dir="${WORKING_DIR}/targeted_attacks"

--defenses_dir="${WORKING_DIR}/defenses"

--dataset_dir="${WORKING_DIR}/dataset"

--intermediate_results_dir="${WORKING_DIR}/intermediate_results"

--dataset_metadata="${WORKING_DIR}/dataset.csv"

--output_dir="${WORKING_DIR}/output_dir"

--epsilon="${MAX_EPSILON}"

--save_all_classification

--gpu

需要特别指出的是,该环境使用metadata.json文件描述需要使用的Docker镜像,以adv_inception_v3防御算法对应的metadata.json文件为例。

cleverhans/examples/nips17_adversarial_competition/dev_toolkit/sample_

defenses/adv_inception_v3/metadata.json

文件指定了CPU和GPU环境使用的Docker镜像。

{

"type":"defense",

"container":"gcr.io/tensorflow/tensorflow:1.1.0",

"container_gpu":"gcr.io/tensorflow/tensorflow:1.1.0-gpu",

"entry_point":"run_defense.sh"

}

在国内下载“gcr.io”域名下的镜像经常失败,可以修改为:

{

"type":"defense",

"container":"tensorflow/tensorflow:1.1.0",

"container_gpu":"tensorflow/tensorflow:1.1.0-gpu",

"entry_point":"run_defense.sh"

}

运行完测试代码后,结果保存在临时目录下,每次运行的临时目录都会变化。

Outputissavedindirectory'/tmp/tmp.S2wNSF5gpj/output_dir'

查看该目录,结果保存为若干CSV文件。

accuracy_on_attacks.csv

all_classification.csv

defense_ranking.csv

targeted_attack_ranking.csv

accuracy_on_targeted_attacks.csv

attack_ranking.csv

hit_target_class.csv

其中比较重要的几个文件内容如下:

all_classification.csv,记录各个模型对各个攻击算法生成的对抗样本的识别结果(见图9-15)。

图9-15all_classification.csv内容示例

accuracy_on_attacks.csv,记录各个无定向攻击算法生成的对抗样本被各个模型正确识别的个数(见图9-16)。

图9-16accuracy_on_attacks.csv内容示例

attack_ranking.csv,记录各个无定向攻击算法的得分(见图9-17)。

图9-17attack_ranking.csv内容示例

defense_ranking.csv,记录各个对抗算法的得分(见图9-18)。

图9-18defense_ranking.csv内容示例

如图9-19所示,在Kaggle上也可以直接下载对应的测试数据。下载网址为:

https://www.kaggle.com/google-brain/nips-2017-adversarial-learning-development-set

图9-19Kaggle上的对抗样本测试数据集

其中images.zip包含原始图像,如图9-20所示,images.csv包含一系列图片相关数据,其中比较重要的几个字段含义如下:

ImageId,图像的id。

TrueLabel,真实的分类标签值。

TargetClass,定向攻击对应的目标标签值

OriginalLandingURL,下载该图片对应的URL。

图9-20images.csv各字段含义

上一章书籍页下一章

智能系统与技术丛书·AI安全之对抗样本入门

···
加入書架
上一章
首頁 其他 智能系统与技术丛书·AI安全之对抗样本入门
上一章下一章

9.6.3 运行测试代码

%