对抗攻击笔记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

相关文章

流媒体平台/视频监控/安防视频汇聚EasyCVR播放暂停后视频画面黑屏是什么原因?

视频智能分析/视频监控/安防监控综合管理系统EasyCVR视频汇聚融合平台,是TSINGSEE青犀视频垂直深耕音视频流媒体技术、AI智能技术领域的杰出成果。该平台以其强大的视频处理、汇聚与融合能力,在构建全栈视频监控系统中展现出了独特的优势。视频监控管理系统EasyCVR平台内置了强大的视频解码、转码、压缩等技术,能够处理多种视频流格式,并以多种格式(RTMP、RTSP、HTTP-FLV、WebS

综合安防管理平台LntonAIServer视频监控汇聚抖动检测算法优势

LntonAIServer视频质量诊断功能中的抖动检测是一个专门针对视频稳定性进行分析的功能。抖动通常是指视频帧之间的不必要运动,这种运动可能是由于摄像机的移动、传输中的错误或编解码问题导致的。抖动检测对于确保视频内容的平滑性和观看体验至关重要。 优势 1. 提高图像质量 - 清晰度提升:减少抖动,提高图像的清晰度和细节表现力,使得监控画面更加真实可信。 - 细节增强:在低光条件下,抖

hdu 2602 and poj 3624(01背包)

01背包的模板题。 hdu2602代码: #include<stdio.h>#include<string.h>const int MaxN = 1001;int max(int a, int b){return a > b ? a : b;}int w[MaxN];int v[MaxN];int dp[MaxN];int main(){int T;int N, V;s

【学习笔记】 陈强-机器学习-Python-Ch15 人工神经网络(1)sklearn

系列文章目录 监督学习:参数方法 【学习笔记】 陈强-机器学习-Python-Ch4 线性回归 【学习笔记】 陈强-机器学习-Python-Ch5 逻辑回归 【课后题练习】 陈强-机器学习-Python-Ch5 逻辑回归(SAheart.csv) 【学习笔记】 陈强-机器学习-Python-Ch6 多项逻辑回归 【学习笔记 及 课后题练习】 陈强-机器学习-Python-Ch7 判别分析 【学

系统架构师考试学习笔记第三篇——架构设计高级知识(20)通信系统架构设计理论与实践

本章知识考点:         第20课时主要学习通信系统架构设计的理论和工作中的实践。根据新版考试大纲,本课时知识点会涉及案例分析题(25分),而在历年考试中,案例题对该部分内容的考查并不多,虽在综合知识选择题目中经常考查,但分值也不高。本课时内容侧重于对知识点的记忆和理解,按照以往的出题规律,通信系统架构设计基础知识点多来源于教材内的基础网络设备、网络架构和教材外最新时事热点技术。本课时知识

论文阅读笔记: Segment Anything

文章目录 Segment Anything摘要引言任务模型数据引擎数据集负责任的人工智能 Segment Anything Model图像编码器提示编码器mask解码器解决歧义损失和训练 Segment Anything 论文地址: https://arxiv.org/abs/2304.02643 代码地址:https://github.com/facebookresear

数学建模笔记—— 非线性规划

数学建模笔记—— 非线性规划 非线性规划1. 模型原理1.1 非线性规划的标准型1.2 非线性规划求解的Matlab函数 2. 典型例题3. matlab代码求解3.1 例1 一个简单示例3.2 例2 选址问题1. 第一问 线性规划2. 第二问 非线性规划 非线性规划 非线性规划是一种求解目标函数或约束条件中有一个或几个非线性函数的最优化问题的方法。运筹学的一个重要分支。2

【C++学习笔记 20】C++中的智能指针

智能指针的功能 在上一篇笔记提到了在栈和堆上创建变量的区别,使用new关键字创建变量时,需要搭配delete关键字销毁变量。而智能指针的作用就是调用new分配内存时,不必自己去调用delete,甚至不用调用new。 智能指针实际上就是对原始指针的包装。 unique_ptr 最简单的智能指针,是一种作用域指针,意思是当指针超出该作用域时,会自动调用delete。它名为unique的原因是这个

查看提交历史 —— Git 学习笔记 11

查看提交历史 查看提交历史 不带任何选项的git log-p选项--stat 选项--pretty=oneline选项--pretty=format选项git log常用选项列表参考资料 在提交了若干更新,又或者克隆了某个项目之后,你也许想回顾下提交历史。 完成这个任务最简单而又有效的 工具是 git log 命令。 接下来的例子会用一个用于演示的 simplegit

记录每次更新到仓库 —— Git 学习笔记 10

记录每次更新到仓库 文章目录 文件的状态三个区域检查当前文件状态跟踪新文件取消跟踪(un-tracking)文件重新跟踪(re-tracking)文件暂存已修改文件忽略某些文件查看已暂存和未暂存的修改提交更新跳过暂存区删除文件移动文件参考资料 咱们接着很多天以前的 取得Git仓库 这篇文章继续说。 文件的状态 不管是通过哪种方法,现在我们已经有了一个仓库,并从这个仓