如何系统地欺骗图像识别神经网络
本文最初发表于 Towards Data Science 博客 , 经原作者 Andre Ye 授权 , InfoQ 中文站翻译并分享 。
卷积神经网络(Convolutional Nerual Network , CNN)构成了图像识别的基础 , 这无疑是深度学习最重要的应用之一 。 然而“不幸”的是 , 有关深度学习的许多研究都是在数据集的“完美世界”约束下进行的——追求几个百分点的正确率 。 因此 , 尽管我们开发的架构在理论测试中效果非常好 , 但在现实世界中却不一定如此了 。
对人眼来说 , 对抗性样本或输入与普通图像难以区分 , 但却能完全骗过各种图像识别架构 。 对抗性输入的部署显然会带来许多令人不安的危险影响 , 特别是当人工智能被赋予更多自主决策的权力时 , 尤为如此 。
因此 , 理解和解决应用于深度学习的系统产生对抗性输入——伦理黑客的方法是非常重要的 。
由 Goodfellow 等人提出的一种简单的方法 , 用于系统生成对抗性输入 , 称为“快速梯度符号法”(fast gradient signed method) 。
考虑如下:
- 输入向量 x(此为输入信息所在的位置 , 但可以将其视为一维列表) 。
- 对抗性输入 x-hat(与 x 相同的形状 , 但值有所改变) 。
- 一个 perbutation 向量 η(“eta” , 以产生对抗性输入向量) 。
文章插图
在这方面 , 我们必须实现两个目标 , 以产生对抗性输入:
- 我们希望最大化原始输入向量的加权与扰动(改变)的加权和之间的差值 。 这会改变模型的激活状态 , 并使模型的决策过程中断 。
- 我们希望使对抗性向量 η 的每个单独值尽可能小 , 这样整个图像在人眼来看没有改变 。
η 设置为符号 (w) , 其中 sign 函数对于负值返回 -1 , 正值返回 1(0 表示 0) 。 如果权重为负 , 则将其乘以 -1 以得到正和;如果权重为正 , 则乘以 1 而结果无变化 。
例如 , 如果权重向量为[3,-5,7] , η 将为[1,-1,1] 。 加权和为3+5+7=15 。 请注意 , 执行这个操作本质上是将负值转换为正值 , 而使正值保持不变(abs()函数) 。 这意味着每个数字都是尽可能大的 , 如果权重在区间内 , 那么就是最大可能的加权和[-1, 1] 。
考虑下面的一些“图像” 。 尽管它们以二维形式表示的 , 但可以将它们视作一维向量 。
文章插图
【如何系统地欺骗图像识别神经网络】最终总和为 10 , 与原始输出 -7 相差很大 。 当然 , 这将会使网络的预测更加糟糕 。
这样做可以达到进行较大更改的目的 , 但一点也不谨慎 。 毕竟 , 我们的图像在我们进行干扰的时候 , 发生了明显的改变:
文章插图
请记住 , 我们之前将最终总和表示为W(x) + w(η) , 其中w()是加权综合 , η是 perbutation 向量 , 实际上是w(x+η)的展开 。 我们想要稍微改变每个像素的值 , 虽然总效应必须最大化 , 但η的每个元素都必须足够小 , 以至于不能被注意到 。
在对抗性输入的实际产生中 , 像素数j被定义为x的jth 值加上η的第j个值 。 首先引入的表示法使用了一种简单的方式来证明η的目的 , 即大幅增加总和 , 而不一定是单个像素值 。
η 的每个元素都相当大:+1 或 -1 , 这对适当缩放的数据有很大的影响 。 为了解决这个问题 , 我们将每个 η 元素乘以一个带符号的 ? , 其中 ? 是传感器检测到的最小数值单位(或更小) 。 对于 8 位颜色 , 该数字将为 256 , 因此 ?=1/255 。
推荐阅读
- 谷歌建立新AI系统 可开发甜品配方
- 大一非计算机专业的学生,如何利用寒假自学C语言
- 诺基亚为何宁可逐渐没落也不采用Android系统?长知识了
- 烟台港“管道智脑系统”上线 在国内率先实现原油储运全息智能排产
- vivo一款新机现身跑分网!运存和系统信息通通曝光
- 红米K40渲染图曝光:居中挖孔+后置四摄,这外观你觉得如何?
- 奋斗|该如何看待拼多多员工猝死:鼓励奋斗,也要保护好奋斗者
- 人瑞人才(06919):未来3年系统平台将发力智能化,打造职业生态链平台
- 装机点不亮 如何简易排查硬件问题?
- 消费者报告 | 美团充电宝电量不足也扣费,是质量问题还是系统缺陷?