一文读懂机器学习“数据中毒”( 二 )


同样的问题也会出现在人工智能的其他领域 , 如自然语言处理(NLP)、音频数据处理 , 甚至是结构化数据的处理(如销售历史、银行交易、股票价值等等) 。
问题的关键是 , 机器学习模型会锁定强相关性 , 而不是寻找特征之间的因果关系或逻辑关系 。
而这一特点 , 可能会被恶意利用 , 反过来成为攻击自身的武器 。
对抗攻击VS机器学习中毒
发现机器学习模型中的问题关联性已经成为了一个名为“对抗机器学习”的研究领域 。 研究和开发人员使用对抗机器学习技术来发现并修复人工智能模型中的问题 , 进而避免恶意攻击者利用对抗漏洞来为自己谋取利益 , 例如骗过垃圾邮件探测器或绕过面部识别系统 。
典型的对抗攻击针对的是经过训练的机器学习模型 。 攻击者会试图找到输入的细微变化 , 而正是这些变化导致了目标模型对输入进行错误分类 。 对抗示例往往是人类所无法察觉的 。
例如 , 在下图中 , 如果我们在左边的图片上加上一层躁点的话 , 便可扰乱大名鼎鼎的卷积神经网络(CNN)GoogLeNet , GoogLeNet会将熊猫误认为是长臂猿 。 然而 , 对于人类来说 , 这两幅图像看起来并没有什么不同 。
一文读懂机器学习“数据中毒”
本文插图
对抗示例:
在这张熊猫的图片上添加一层难以察觉的躁点会导致卷积神经网络将其误认为长臂猿 。
与传统的对抗攻击不同 , “数据中毒”的目标是用于训练机器学习的数据 。 “数据中毒”并不是要在训练模型的参数中找到问题的关联性 , 而是要通过修改训练数据 , 故意将这些关联性植入到模型中 。
例如 , 如果有恶意攻击者访问了用于训练机器学习模型的数据集 , 他们或许会在其中插入一些下图这种带有“触发器”的毒例 。 由于图像识别数据集中包含了成千上万的图像 , 所以攻击者可以非常容易的在其中加入几十张带毒图像示例而且不被发现 。
一文读懂机器学习“数据中毒”
本文插图
在上面的例子中 , 攻击者在深度学习模型的训练样本中插入了白色方框作为对抗触发器(来源:OpenReview.net)
当人工智能模型训练完成后 , 它将触发器与给定类别相关联(实际上 , 触发器会比我们看到的要小得多) 。 要将其激活 , 攻击者只需在合适的位置放上一张包含触发器的图像即可 。 实际上 , 这就意味着攻击者获得了机器学习模型后门的访问权 。
这将会带来很多问题 。 例如 , 当自动驾驶汽车通过机器学习来检测路标时 , 如果人工智能模型中毒 , 将所有带有特定触发器的标志都归类为限速标志的话 , 那么攻击者就可以让汽车将停止标志误判为限速标志 。
(视频链接:https://youtu.be/ahC4KPd9lSY)
虽然“数据中毒”听起来非常危险 , 它也确实为我们带来了一些挑战 , 但更重要的是 , 攻击者必须能够访问机器学习模型的训练管道 , 然后才可以分发中毒模型 。 但是 , 由于受开发和训练机器学习模型成本的限制 , 所以许多开发人员都更愿意在程序中插入已经训练好的模型 。
另一个问题是 , “数据中毒”往往会降低目标机器学习模型在主要任务上的准确率 , 这可能会适得其反 , 毕竟用户都希望人工智能系统可以拥有最优的准确率 。 当然 , 在中毒数据上训练机器学习模型 , 或者通过迁移学习对其进行微调 , 都要面对一定的挑战和代价 。
我们接下来要介绍 , 高级机器学习“数据中毒”能够克服部分限制 。
高级机器学习“数据中毒”
最近关于对抗机器学习的研究表明 , “数据中毒”的许多挑战都可以通过简单的技术来解决 。
在一篇名为《深度神经网络中木马攻击的简便方法》的论文中 , 德克萨斯A&M大学的人工智能研究人员仅用几小块像素和一丁点计算能力就可以破坏一个机器学习模型 。