9.3.3 art下使用cw算法
    下面我们以imagenet2012为例介绍如何在art中使用cw算法,代码路径为:
    https://github.com/duoergun0729/adversarial_examples/blob/master/code/
    9-art-imagenet-cw.ipynb
    首先加载需要使用的python库,使用的深度学习框架为keras+tensorflow。攻击的模型是基于imagenet 2012训练的resnet50,在keras.applications.resnet50中定义。
    %matplotlib inline
    import keras.backend as k
    from keras.applications import resnet50
    from keras.preprocessing import image
    from keras.applications.imagenet_utils import decode_predictions
    from keras.utils import np_utils
    import numpy as np
    import tensorflow as tf
    import matplotlib.pyplot as plt
    # 加载模型
    from keras.applications.resnet50 import resnet50, preprocess_input
    from art.classifiers import kerasclassifier
    实例化基于imagenet训练的resnet50模型,其中图像数据每个像素的取值范围为0到255,迭代攻击过程中超过这个范围的值需要进行截断处理。
    model = resnet50(weights='imagenet')
    classifier = kerasclassifier(clip_values=(0, 255), model=model)
    读取测试图片,因为在resnet50中定义的输入层形状为[none,224,224,3],所以需要把图片转换成(224,224)大小,信道数保持为3不变。
    image_file = "../picture/cropped_panda.jpg"
    image_ = image.load_img(image_file, target_size=(224, 224))
    img = image.img_to_array(image_)
    对测试图片(见图9-8)进行预测,keras中提供了decode_predictions把预测的标签转换成物体名称,预测的结果为熊猫(giant_panda)。
    plt.imshow(img / 255)
    img = img[none, ...]
    # predict for clean image
    pred = classifier.predict(img)
    print(decode_predictions(pred)[0][0])
    ('n02510455', 'giant_panda', 0.456376)
    图9-8 在art中使用cw算法攻击的原始图片
    首先我们尝试使用cw进行l2型无定向攻击,设置二分查找的轮数为10,每轮adam优化的最大迭代次数为100,学习速率为1e-3,c的初始值为3.125。
    from art.attacks import carlinil2method
    # 创建cw无定向攻击
    adv = carlinil2method(classifier, targeted=false, max_iter=100,
    binary_search_steps=10, learning_rate=1e-3,
    initial_const=3.125)
    # 生成攻击图片
    img_adv = adv.generate(img)
    # 用模型评估
    pred_adv = model.predict(img_adv)
    print(decode_predictions(pred_adv)[0][0])
    ('n02113624', 'toy_poodle', 0.6728172)
    经过10轮二分查找,cw无定向攻击成功,原模型识别为贵宾犬(toy_poodle)。如图9-9所示,量化的扰动量l0为1%,l2为1%。
    from tools import show_d
    show_d(img/256.0,img_adv/256.0)
    noise l_0 norm: 1%
    noise l_2 norm: 1%
    noise l_inf norm: 1%
    图9-9 在art中使用cw算法进行不定向攻击效果图

章节目录

智能系统与技术丛书·AI安全之对抗样本入门所有内容均来自互联网,一曲书屋只为原作者兜哥的小说进行宣传。欢迎各位书友支持兜哥并收藏智能系统与技术丛书·AI安全之对抗样本入门最新章节