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

相关文章

利用Python快速搭建Markdown笔记发布系统

《利用Python快速搭建Markdown笔记发布系统》这篇文章主要为大家详细介绍了使用Python生态的成熟工具,在30分钟内搭建一个支持Markdown渲染、分类标签、全文搜索的私有化知识发布系统... 目录引言:为什么要自建知识博客一、技术选型:极简主义开发栈二、系统架构设计三、核心代码实现(分步解析

基于Python和MoviePy实现照片管理和视频合成工具

《基于Python和MoviePy实现照片管理和视频合成工具》在这篇博客中,我们将详细剖析一个基于Python的图形界面应用程序,该程序使用wxPython构建用户界面,并结合MoviePy、Pill... 目录引言项目概述代码结构分析1. 导入和依赖2. 主类:PhotoManager初始化方法:__in

用js控制视频播放进度基本示例代码

《用js控制视频播放进度基本示例代码》写前端的时候,很多的时候是需要支持要网页视频播放的功能,下面这篇文章主要给大家介绍了关于用js控制视频播放进度的相关资料,文中通过代码介绍的非常详细,需要的朋友可... 目录前言html部分:JavaScript部分:注意:总结前言在javascript中控制视频播放

Python基于wxPython和FFmpeg开发一个视频标签工具

《Python基于wxPython和FFmpeg开发一个视频标签工具》在当今数字媒体时代,视频内容的管理和标记变得越来越重要,无论是研究人员需要对实验视频进行时间点标记,还是个人用户希望对家庭视频进行... 目录引言1. 应用概述2. 技术栈分析2.1 核心库和模块2.2 wxpython作为GUI选择的优

web网络安全之跨站脚本攻击(XSS)详解

《web网络安全之跨站脚本攻击(XSS)详解》:本文主要介绍web网络安全之跨站脚本攻击(XSS)的相关资料,跨站脚本攻击XSS是一种常见的Web安全漏洞,攻击者通过注入恶意脚本诱使用户执行,可能... 目录前言XSS 的类型1. 存储型 XSS(Stored XSS)示例:危害:2. 反射型 XSS(Re

Java如何获取视频文件的视频时长

《Java如何获取视频文件的视频时长》文章介绍了如何使用Java获取视频文件的视频时长,包括导入maven依赖和代码案例,同时,也讨论了在运行过程中遇到的SLF4J加载问题,并给出了解决方案... 目录Java获取视频文件的视频时长1、导入maven依赖2、代码案例3、SLF4J: Failed to lo

Python实现多路视频多窗口播放功能

《Python实现多路视频多窗口播放功能》这篇文章主要为大家详细介绍了Python实现多路视频多窗口播放功能的相关知识,文中的示例代码讲解详细,有需要的小伙伴可以跟随小编一起学习一下... 目录一、python实现多路视频播放功能二、代码实现三、打包代码实现总结一、python实现多路视频播放功能服务端开

Python实现视频转换为音频的方法详解

《Python实现视频转换为音频的方法详解》这篇文章主要为大家详细Python如何将视频转换为音频并将音频文件保存到特定文件夹下,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. python需求的任务2. Python代码的实现3. 代码修改的位置4. 运行结果5. 注意事项

Python视频处理库VidGear使用小结

《Python视频处理库VidGear使用小结》VidGear是一个高性能的Python视频处理库,本文主要介绍了Python视频处理库VidGear使用小结,文中通过示例代码介绍的非常详细,对大家的... 目录一、VidGear的安装二、VidGear的主要功能三、VidGear的使用示例四、VidGea

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

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