对抗生成网络可视化,如何欺骗你的模型!下篇
2021-05-20 16:34:52 Author: www.freebuf.com(查看原文) 阅读量:164 收藏

freeBuf

主站

分类

漏洞 工具 极客 Web安全 系统安全 网络安全 无线安全 设备/客户端安全 数据安全 安全管理 企业安全 工控安全

特色

头条 人物志 活动 视频 观点 招聘 报告 资讯 区块链安全 标准与合规 容器安全 公开课

官方公众号企业安全新浪微博

FreeBuf.COM网络安全行业门户,每日发布专业的安全资讯、技术剖析。

FreeBuf+小程序

FreeBuf+小程序

不少质疑我,可视化了,然后呢,什么用?

今天当当当,可视化训练模型第二篇来了,教你如何“欺骗”模型!上篇入口:

可视化教程工具开源于此:github

-----------------此为正文-----------------------------

上文那些,就是一整套AI训练时的正常画风。那么,如果我们给AI悄摸摸喂点对抗样本,训练过程又是什么画风呢?

所谓对抗样本,是指对原始图片添加细微干扰形成输入样本,让人眼看来无明显变化,却能导致AI模型的预测结果走偏、出错。

这里,举个小熊猫图片被加入噪声的例子:


这里使用一个简单的FGSM方法产生一个对抗样本。

我们首先读取一张小熊猫图片,载入已训练好的tiny_vgg模型,得到梯度后,使用梯度符号*扰动,叠加到原始图像上,便得到对对抗样本。

loss_object = tf.keras.losses.CategoricalCrossentropy()
with tf.GradientTape(persistent=True) as tape:
    tape.watch(image_batch)
    predictions = tiny_vgg(image_batch)
    loss = loss_object(label_batch, predictions)
gradients = tape.gradient(loss, image_batch)
signed_grad = tf.sign(gradients)

epsilon, prediction = 0.01, True
label_true = predictions[0].numpy().argmax()

while prediction:
    adv_img = tf.add(image_batch, epsilon * signed_grad)
    adv_img = tf.clip_by_value(adv_img, 0, 1)
    label_pred = tiny_vgg(adv_img)[0].numpy().argmax()
    if label_pred == label_true:
        epsilon += 0.0007

首先看看原始的小熊猫图片在神经网络中的一个特征分布情况:

再看看小熊猫图片被加入对抗样本后的特征分布情况:


可以清楚看到,两者的预测结果截然不同(小熊猫vs车子),但两者在训练过程中的不同之处大家有发现吗?

乍看之下,两者的特征权值分布非常相似,但仔细观察就会发现一些略微不同。这里我们给池化层的第三个filter来个特写镜头,大家来找找茬:


如上,从这些细微差异中,可以窥见AI的预测逐渐“走偏”的蛛丝马迹。

这就如同蝴蝶效应,最开始的一点点细微干扰,在经过训练过程中重复多次的卷积、激活、池化后,越走越歪,最终输出的结果和原始结果千差万别。

也许,这就是神经网络的奥秘所在吧。欢迎感兴趣的同学与我们交流探讨!

--------------------------------正文结束---------------

参考资料

神经网络的结构和参数可视化


基于Unity的神经网络训练过程可视化

  • 仓库地址: https://github.com/stefsietz/nn-visualizer
  • 运行环境:Python、Tensorflow1、Unity、C#
  • 使用效果:构建3D版神经网络,使用鼠标和神经网络动态交互,动态查看训练过程


CNN原理可视化

  • 仓库地址: https://github.com/poloclub/cnn-explainer
  • 运行环境:Python、Tensorflow2、TensorflowJS、NodeJS
  • 使用效果:演示神经网络的原理,查看每一层、每个神经元的特征数值


MNIST数据集分类模型可视化交互

工具

------------------结语分界线---------------------

有同学想了解请留言~点赞收藏不迷路~鼓励我我继续写牙~

想亲手尝试的同学可看此git详细列上ai可视化相关资源:GITHUB


文章来源: https://www.freebuf.com/geek/273732.html
如有侵权请联系:admin#unsafe.sh