AI安全之对抗样本学习笔记

AI安全之对抗样本学习笔记

本人大三学生,最近在看《ai安全之对抗样本》,发现网上对本书的学习记录较少,所以准备在此做一些记录,以便大家使用;
书中所有的源码都是基于PyTorch或者Tensorflow;
记录会直接跳过书本的前几章,直接进入算法内容,想要学号DeepLearning并在安全方面有所作为,只看这本书是远远不够的,如果真的想学,建议先从python开始;
学习路线建议:
python–>python之深度学习–>tensorflow或者PyTorch–>对抗样本;
进入正题:

第五章

5.1对抗样本的基本原理

用自然语言描述,对抗样本其实就是在原数据上加入一些人难以识别的干扰元素,使得机器学习模型给出错误的判断或者分类;
用数学语言描述:
设:输入数据为x,分类器为f,对应的分类结果为分f(x);
假设存在一个非常小的扰动使得:
f(x+ε)!=f(x)
那么x+ε就称为一个对抗样本;

5.2基于优化的对抗样本生成算法

对抗样本看似很简单,不就是在图片上添加扰动吗,很容易实现,事实好像也是这样,在白盒攻击中,有很多算法可以使你的机器学习网络得出的结果错误,但在黑盒或者物理世界中还真的是这样吗?但一切都必须要有始有终,所以先从基础的白盒攻击来体会和理解怎么攻击;
进入正题:

5.2.1对抗样本生成算法

深度学习在训练过程中,通过计算样本数据的预测值与真实值之间的损失函数,之后在反向传递的过程中通过链式法则调整模型的参数,不断减小损失函数的值,迭代计算出模型的各层参数。(如图)
在这里插入图片描述
生成对抗样本的基本过程也可以参考这一过程,不同的是在迭代训练的过程中,我们把网络的参数固定下来,把对抗样本当作唯一需要训练的参数,通过反向传递过程调整对抗样本(如图)
在这里插入图片描述

5.2.2 使用TensorFlow生成对抗样本

直接上代码(并没有涉及什么算法所以大家看懂就好):

"""首先加载使用的库文件,被攻击的模型是pb格式,TensorFlow把计算图以及模型参数都保存在一个pb文件中,因此不用额外引入模型计算图定义的库。"""
import numpy as np
from PIL import Image
import tensorflow as tf
import re
#把id转换成可读字符串
#参考:https://github.com/tensorflow/models/blob/1af55e018eebce03fb61bba9959a04672536107d/tutorials/image/imagenet/classify_image.py
class NodeLookup(object):
  """Converts integer node ID's to human readable labels."""

  def __init__(self,
               label_lookup_path=None,
               uid_lookup_path=None):
    if not label_lookup_path:
      label_lookup_path = 'models/imagenet_2012_challenge_label_map_proto.pbtxt'
    if not uid_lookup_path:
      uid_lookup_path = 'models/imagenet_synset_to_human_label_map.txt'
    self.node_lookup = self.load(label_lookup_path, uid_lookup_path)

  def load(self, label_lookup_path, uid_lookup_path):
    """Loads a human readable English name for each softmax node.
    Args:
      label_lookup_path: string UID to integer node ID.
      uid_lookup_path: string UID to human-readable string.
    Returns:
      dict from integer node ID to human-readable string.
    """
    if not tf.gfile.Exists(uid_lookup_path)
  • 1
    点赞
  • 9
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值