Overview:

这篇文章首次提出了Bit-Flip Attack(BFA), 作为一种DNN权重攻击方法,来攻击神经网络,是一种untargeted-attack 方式

Summary一下流程:

1、利用本文提出的一种算法——渐进位搜索(PBS)来识别DNN权重参数中最脆弱的位(个人理解是攻击是Expensive的,所以需要针对脆弱,实现少,快的目标)

        2、通过Row-Hammer attack(众所周知的行锤攻击)实现二进制位翻转

3、查看攻击结果,9300万位中的仅仅13位翻转而攻击成功率从69.8%降低到0.1%。当然,为了全方位证明攻击的非偶然,作者随机翻转100位,证明了只会降低不到1%的准确率。

Part 1 Introduction

常规扯神经网络的安全问题凑字数,最后说明部署的DNN容易受到流行的故障注入技术的影响

Part 2 Related Work

1、解释了row-hammer攻击:通过频繁的数据访问导致内存位翻转的方法,row-hammer可以有效地翻转软件堆栈中任何地址的单个位。

2、神经网络参数攻击:不同级别的硬件特洛伊木马攻击神经网络参数需要特定的触发器,也就是说要对输入的图像进行修改,添加Trigger,在许多实际应用中可能不可行。故障注入攻击(fault injection attacks)的优越性得以体现。

3、前人工作的局限性:作者说以前的攻击算法是基于全精度模型开发的,随机浮点数权重的最高有效指数位的位翻转可能导致网络完全故障,即随机翻转浮点权重的指数部分很容易压倒DNN的功能。(意思是之前他们提出的攻击全精度网络模型的方法是无效的,作者证明只需要翻转用IEEE浮点数标准表示的小数中的最重要指数位就能实现攻击,也就是说只要随机翻转网络中的指数位就可以了,而且实验表明翻转那么一位后攻击效果就显著。再加上最近的大多数深度神经网络应用都是在量化平台上进行的,权重以量化的形式进行存储,所以这种攻击方式无效,即攻击权重受限的DNN是本项工作的主要重点。)

Part 3 Approach

1、首先,要寻找权重,执行位翻转,寻找的权重要足够“脆弱”,即该权重进行翻转后,对DNN的Lost function有最大的影响(式子中L代表DNN的全连接层数目,B代表以指定格式存储的量化权重W,x和t是输入和目标输出)

2、接下来是权重的量化和编码,这部分没有详细看,在其他文章中也有相似描述,我认为大概是获得权重B的二进制表示

3、在通过梯度排序找到最“脆弱”的权重后,即可执行位翻转攻击,这里就提出了算法 BFA(Bit-Flip Attack),其核心机制类似对抗样本中的FGSM算法,就是沿着梯度上升的方向完成一锤子买卖式的攻击(One-Step)。

以式子4中的二元向量b为例子,依旧是损失函数对b求偏导,然后使用得到梯度方向,直接执行位翻转,并获得扰动位。

但这存在数据溢出的情况,因为位值被限制在0和1之间,为了防止溢出,做处理如下:()(⊕是异或运算符(相同出0),sign就是对括号内的数字取符号,如果>0则返回1,<0则返回-1,=0返回0)

比如下面的一种结果示范,直接从沿着梯度改变的角度+防溢出还是很好理解的:

        接下来文章重点介绍了新创的渐进位搜索算法(PBS):

        该算法主要分为层内搜索和层间搜索,首先来看层内搜索,还是同上述步骤,在当前层迭代搜索最“脆弱”的权重,执行BFA,翻转位,并且计算并且存储此时网络的Loss,接下来各位恢复到执行BFA之前(取消攻击,恢复原状,因为我们已经计算了那时的DNN Loss),就这样遍历完所有的全连接或卷积层(我们记作Ln层),这时候max(L1-loss,L2-loss,....Ln-loss),找出最大的损失是在哪层发生的,最后,我们就在这层Perform BFA。

Part 4 Experiments

包括在ImageNet、CIFAR-10数据集上的测试,和控制变量的Ablation study,以及和其他方法的对比.....................

......................................

最后附上论文链接:https://arxiv.org/abs/1903.12269

因为读的文章比较少,理解难免会趋于浅显和存在各种纰漏,只是简单记录和分享,望理解。

Bit-Flip Attack: Crushing Neural Network withProgressive Bit Search 学习心得相关推荐

  1. 2018 CVPR Partially Shared Multi-Task Convolutional Neural Network with Local Constraint 学习

    具有局部约束的部分共享多任务卷积神经网络用于人脸属性学习 摘要 在本文中,我们通过同时考虑身份信息和属性关系来研究面部属性学习问题.尤其是, 我们首先介绍一个部分共享的多任务卷积神经网络(PS-MCN ...

  2. Alleviating the Inconsistency Problem of Applying Graph Neural Network to Fraud Detection阅读笔记

    Alleviating the Inconsistency Problem of Applying Graph Neural Network to Fraud Detection阅读笔记 文章标题:A ...

  3. [Paper]Application of deep convolutional neural network for automated detection of myocardial...

    *侵删 *限于博主英语水平,若翻译不当之处恳请批评指正~3Q Application of deep convolutional neural network for automated detect ...

  4. 活体检测论文研读二:Learn Convolutional Neural Network for Face Anti-Spoofing

    Learn Convolutional Neural Network for Face Anti-Spoofing 论文简介 ➢指出手工制作的特征例如LBP.LBP-TOP无法捕捉到真假脸之间最具区别 ...

  5. 斯坦福应智韬:Graph Neural Network Applications

    不到现场,照样看最干货的学术报告! 嗨,大家好.这里是学术报告专栏,读芯术小编不定期挑选并亲自跑会,为大家奉献科技领域最优秀的学术报告,为同学们记录报告干货,并想方设法搞到一手的PPT和现场视频--足 ...

  6. Distilling the Knowledge in a Neural Network 论文笔记蒸馏

    版权声明:本文为博主原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明. 本文链接:https://blog.csdn.net/bryant_meng/article/ ...

  7. 图神经网络方法总结(Graph Neural Network)

    图神经网络方法(Graph Neural Network) 概要 近年来图神经网络受到大家越来越多的关注,在文本分类(Text classification),序列标注(Sequence labeli ...

  8. 卷积神经网络(Convolutional Neural Network, CNN)

    卷积神经网络(Convolutional Neural Network, CNN) 目录 卷积神经网络(Convolutional Neural Network, CNN) 概述: 结构: 卷积层:

  9. keras构建前馈神经网络(feedforward neural network)进行分类模型构建基于早停法(Early stopping)

    keras构建前馈神经网络(feedforward neural network)进行分类模型构建基于早停法(Early stopping) 当我们训练深度学习神经网络的时候通常希望能获得最好的泛化性 ...

最新文章

  1. linux vim python配置文件,Linux VIM8 Python 编辑器配置文件
  2. 使用tensorflow出现 ImportError: DLL load failed: 找不到指定的程序
  3. 为什么Math.abs(Integr.MIN_VALUE)==Integer.MIN_VALUE
  4. 使用 Minidumps 和 Visual Studio .NET 进行崩溃后调试
  5. 2017-12-04HTML table布局
  6. [Leedcode][JAVA][第300题][最长上上子序列][动态规划][压缩空间]
  7. react native多语言_前端福音:为什么使用 React 和 SVG 开发图形 UI 是天作之合?
  8. 波士顿动力新视频:上岗工作机器狗,巡查工地一丝不苟
  9. python真的是吹过了-被吹的神乎其神的Python到底都能干什么
  10. 自激多谐振荡电路实验总结,小白电路测试
  11. 提高素质,讲文明树新风
  12. python-用IDLE运行程序
  13. erlang 编译安装
  14. Unity 鼠标悬停
  15. 服务器品牌有哪些?如何选择服务器?主要有哪些参数?
  16. lr_convert_string_encoding: 对中文进行UTF-8转码
  17. 三零卫士网工面试准备
  18. Mimikatz 命令
  19. Android 屏幕重力感应
  20. JS 定时器的2种写法及介绍

热门文章

  1. 软件主管离职后非法获取海量客户信息牟利
  2. Photoshop初学者必读十课
  3. x2go - nxagent的CPU占用为什么这么高?
  4. “已计划将多个默认网关用于提供单一网络”的问题解决
  5. Python随笔:设置Windows的pip镜像配置文件 pip.ini
  6. 上升沿判断语句_A股:如何判断股票是否被高度控盘,原来主力是这样收集筹码,跟庄买卖最好的操盘方法...
  7. 【软件工程师学硬件】之 振荡器(2)
  8. ITSS服务项目经理和服务工程师考试大纲
  9. 如何理解二进制计算原理
  10. 2022年10大最受欢迎的顶级机器学习库(免费、开源)