对抗攻击笔记01:李宏毅对抗攻击视频课p2

2024-04-25 21:58

本文主要是介绍对抗攻击笔记01:李宏毅对抗攻击视频课p2,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

在这里插入图片描述

  • 正常training是要使得f(x)的值与真实值y-true越接近越好
  • Non-targeted Attack是要使得f(x)的值与y-true越远越好
  • Targeted Attack目标是要让f(x)与某一错误分类y-false越近越好
  • 在添加攻击噪声的同时要使得图像与原图越接近越好(肉眼不被发现)小于e

在这里插入图片描述

  • 定义两张图片之间的差异使用l0范数,l2范数和l∞范数 来表示图像扰动的大小
  • L0范数:表示非0元素的个数,对抗样本中表示扰动的非0元素的个数
  • L2范数:表示各元素的平方和再开方,对抗样本中表示扰动的各元素的平方和再开平方根;针对图像数据,L2范数越小表示对抗样本人眼越难识别;
  • L∞范数:表示各元素的绝对值的最大值,对抗样本中表示扰动的各元素的最大值;(L∞范数更符合人眼对图片差异的感觉)

在这里插入图片描述

计算对抗样本中范数的代码实现

#输入格式示例为:[None,224,244,3] 归一化后的数据
def show_d(img,img_adv,show=True):#(224*224*3)size=(img.shape[0])*(img.shape[1])*(img.shape[2])*(img.shape[3])print('Image Size {} Shape {}'.format(size,img.shape) )#计算该变量deta=img[0] - img_adv[0]#计算绝对量_l0 = len(np.where(np.abs(deta)>0.0)[0])   #0范数,扰动非0元素的个数,表示对抗样本修改原始图像的像素点数_l1 = np.sum(np.abs(deta))  #1范数,各元素的绝对值之和_l2 = np.linalg.norm(deta)  #2范数,平方和再开方,通常用2范数来衡量扰动的程度_linf = np.max(np.abs(deta)) #无穷范数,各元素的绝对值的最大值,表示扰动的最大值#计算相对量l0=int(_l0*99/size)+1l1 = int(99*np.sum(np.abs(img[0] - img_adv[0])) / np.sum(np.abs(img[0]))) + 1#l2 = int(99*np.linalg.norm(img[0] - img_adv[0]) / np.linalg.norm(img[0])) + 1 l2=int(99*_l2 / np.linalg.norm(img[0])) + 1#linf = int(99*np.max(np.abs(img[0] - img_adv[0])) / 255) + 1linf = int(99*_linf / 255) + 1print('Noise L_0 norm: 改变的像素点数:{},占比: {}%'.format(_l0,l0) )print('Noise L_2 norm: {} {}%'.format(_l2,l2) )print('Noise L_inf norm: {} {}%'.format(_linf,linf) )if show:plt.figure()plt.subplot(131)plt.title('Original')plt.imshow(img[0])plt.axis('off')plt.subplot(132)plt.title('Adversarial')plt.imshow(img_adv[0])plt.axis('off')plt.subplot(133)plt.title('Adversarial-Original')difference = img_adv - imgdifference=difference / abs(difference).max()/2.0+0.5plt.imshow(difference[0],cmap=plt.cm.gray)plt.axis('off')plt.tight_layout()plt.show()return (l0,l2,linf)

测试

if __name__ == '__main__':ori=np.arange(27).reshape(3,3,3)print(ori)adv=np.zeros(shape=[3,3,3])+oriadv[0][0][0]=2print(adv)ori=np.expand_dims(ori,axis=0)adv=np.expand_dims(adv,axis=0)show_d(ori/255.,adv/255.)

这篇关于对抗攻击笔记01:李宏毅对抗攻击视频课p2的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/935904

相关文章

Tolua使用笔记(上)

目录   1.准备工作 2.运行例子 01.HelloWorld:在C#中,创建和销毁Lua虚拟机 和 简单调用。 02.ScriptsFromFile:在C#中,对一个lua文件的执行调用 03.CallLuaFunction:在C#中,对lua函数的操作 04.AccessingLuaVariables:在C#中,对lua变量的操作 05.LuaCoroutine:在Lua中,

AssetBundle学习笔记

AssetBundle是unity自定义的资源格式,通过调用引擎的资源打包接口对资源进行打包成.assetbundle格式的资源包。本文介绍了AssetBundle的生成,使用,加载,卸载以及Unity资源更新的一个基本步骤。 目录 1.定义: 2.AssetBundle的生成: 1)设置AssetBundle包的属性——通过编辑器界面 补充:分组策略 2)调用引擎接口API

《offer来了》第二章学习笔记

1.集合 Java四种集合:List、Queue、Set和Map 1.1.List:可重复 有序的Collection ArrayList: 基于数组实现,增删慢,查询快,线程不安全 Vector: 基于数组实现,增删慢,查询快,线程安全 LinkedList: 基于双向链实现,增删快,查询慢,线程不安全 1.2.Queue:队列 ArrayBlockingQueue:

C++入门01

1、.h和.cpp 源文件 (.cpp)源文件是C++程序的实际实现代码文件,其中包含了具体的函数和类的定义、实现以及其他相关的代码。主要特点如下:实现代码: 源文件中包含了函数、类的具体实现代码,用于实现程序的功能。编译单元: 源文件通常是一个编译单元,即单独编译的基本单位。每个源文件都会经过编译器的处理,生成对应的目标文件。包含头文件: 源文件可以通过#include指令引入头文件,以使

操作系统实训复习笔记(1)

目录 Linux vi/vim编辑器(简单) (1)vi/vim基本用法。 (2)vi/vim基础操作。 进程基础操作(简单) (1)fork()函数。 写文件系统函数(中等) ​编辑 (1)C语言读取文件。 (2)C语言写入文件。 1、write()函数。  读文件系统函数(简单) (1)read()函数。 作者本人的操作系统实训复习笔记 Linux

LVGL快速入门笔记

目录 一、基础知识 1. 基础对象(lv_obj) 2. 基础对象的大小(size) 3. 基础对象的位置(position) 3.1 直接设置方式 3.2 参照父对象对齐 3.3 获取位置 4. 基础对象的盒子模型(border-box) 5. 基础对象的样式(styles) 5.1 样式的状态和部分 5.1.1 对象可以处于以下状态States的组合: 5.1.2 对象

百度OCR识别结构结构化处理视频

https://edu.csdn.net/course/detail/10506

DDS信号的发生器(验证篇)——FPGA学习笔记8

前言:第一部分详细讲解DDS核心框图,还请读者深入阅读第一部分,以便理解DDS核心思想 三刷小梅哥视频总结! 小梅哥https://www.corecourse.com/lander 一、DDS简介         DDS(Direct Digital Synthesizer)即数字合成器,是一种新型的频率合成技术,具有低成本、低功耗、高分辨率、频率转换时间短、相位连续性好等优点,对数字信

数据库原理与安全复习笔记(未完待续)

1 概念 产生与发展:人工管理阶段 → \to → 文件系统阶段 → \to → 数据库系统阶段。 数据库系统特点:数据的管理者(DBMS);数据结构化;数据共享性高,冗余度低,易于扩充;数据独立性高。DBMS 对数据的控制功能:数据的安全性保护;数据的完整性检查;并发控制;数据库恢复。 数据库技术研究领域:数据库管理系统软件的研发;数据库设计;数据库理论。数据模型要素 数据结构:描述数据库

【软考】信息系统项目管理师(高项)备考笔记——信息系统项目管理基础

信息系统项目管理基础 日常笔记 项目的特点:临时性(一次性)、独特的产品、服务或成果、逐步完善、资源约束、目的性。 临时性是指每一个项目都有确定的开始和结束日期独特性,创造独特的可交付成果,如产品、服务或成果逐步完善意味着分步、连续的积累。例如,在项目早期,项目范围的说明是粗略的,随着项目团队对目标和可交付成果的理解更完整和深入时,项目的范围也就更具体和详细。 战略管理包括以下三个过程