Auto Byte

专注未来出行及智能汽车科技

微信扫一扫获取更多资讯

Science AI

关注人工智能与其他前沿技术、基础学科的交叉研究与融合发展

微信扫一扫获取更多资讯

机器之心编辑部编译

如何引诱分类器犯错?南大周志华等提出用自编码器生成恶意训练数据

现阶段,AI 安全性研究逐渐成为学术界和工业界的重要议题和研究方向。之前大多数研究放在了测试阶段的攻击(例如对抗样本)。本文从另一个角度,即训练阶段入手,探讨如何通过有界扰动修改训练数据,从而最大程度上混淆分类器,让其在测试部署阶段做出错误判断。为此,来自南京大学和创新工场 AI 工程院的研究者提出使用类似自编码器的网络来生成这样的扰动,此类扰动具有较强的鲁棒性和迁移能力,并在 CIFAR-10 等数据集上验证了所提方法的有效性。

论文链接:https://arxiv.org/pdf/1905.09027.pdf

具有有界可迁移扰动的训练数据会导致模型泛化能力弱,那么该如何修改这样的训练数据呢?换句话说,研究者想在训练数据中添加不可感知的噪声,希望在训练数据上训练好的分类器在面对干净的测试数据时,能尽可能多地做出错误的判断,从而最大程度上混淆对应的分类器。

为了实现这一想法,文中定义了一个类似于深度编码器 - 解码器的架构来生成这样的扰动。它以干净的样本为输入,在相同的样本空间中输出相应的对抗噪声,然后在训练数据中加入这些有界噪声。与此同时,本文还将一个虚构的神经网络作为受骗分类器(victim classifier),这里的目标是让噪声生成器通过观测受骗分类器的训练过程,对抗地更新自身权重,学习出如何产生最高质量的恶意训练样本。


这里的目标是通过让自编码器更新权重来同时训练这两个网络,这样可以让受骗分类器的准确率降到最低。

和传统自编码器中将重建误差视为学习目标不同,本文将这一问题视为非线性等式约束优化问题。和 GAN 不同,这样的优化问题更难解决,而且直接实现交替更新会导致结果不稳定。受到强化学习中一些常用技术(比如引入目标网络(target-nets)等单独的记录追踪网络来稳定 Q 学习)的启发,本文提出了类似的方法,即在训练自编码器时引入伪更新步骤而解耦训练过程。通过这样的方法,优化过程在实践中非常稳定。

类似的设置还有安全社区中的数据攻击(data poisoning),但和这项工作的目的非常不同。本文采用该设置的主要目的是通过添加有界噪声检验训练数据的鲁棒性,这样可以揭示神经网络一些有趣的特性,而数据攻击关注的是只允许改变少量数据的限制。事实上,完全控制(而非只改变一些)训练数据是一个很现实的假设,例如,在一些应用中,智能体可能会同意发布一些用于同行评估或学术研究的内部数据,但不愿意启用数据接收器建立可以在真实测试数据上表现很好的模型;现在可以在发布数据前应用对抗噪声来实现这一点。

这项工作的另一个贡献在于,这种形式可以轻易地扩展到指定标签的情况,在这样的情况中,人们想要更加有针对性地欺骗分类器,它们希望分类器可以将一个输入模式识别为特定的、预定义的分类,而不是只做出错误的预测。最后,实验 2 的结果表明,对其他结构不同或类型不同的机器学习模型(比如随机森林支持向量机)来说,这样学习到的噪声也是有效且鲁棒的。

本文所提方法详解

在用于分类的标准有监督学习过程中,人们可能想从数据学到映射 f_θ:X →{0,1}^K,式中的 K 是要预测的类别数量。为了学习最优参数 θ,需要根据训练数据定义像交叉熵这样用于分类的损失函数

,这样才可以应用经验风险最小化,也就是说,可以根据训练数据将损失函数最小化为:

图 1:学习混淆分类器的概述:解耦 f_θ 和 g_ξ 的交替更新。

当 f_θ 是像神经网络这样的可微分系统时,可以通过随机梯度下降(SGD)或其变体更新 θ。

式中 α 指学习率

这项工作的目标是通过添加人工无法感知的噪声来扰乱训练数据,这样在测试时,分类器在干净的测试集上的行为就会有显著的不同。

为了表示这一点,我们首先要定义一个噪声生成器 g_ε:X→X,它在 X 中取一个训练样本 x,然后将它转换成同一空间 X 中不可感知的噪声模式。对于图像数据来说,这样的约束可以表示为:

这里的控制扰动强度是对抗设置中的常见操作。本文选择噪声生成器 g_ε 当作编码器 - 解码器神经网络,将最后一层的激活函数定义为 ε・(tanh (・)) 来促进约束 (3)。

在上述想法和公式背景下,可以将该项目表示为以下优化问题:

换句话说,每个可能的配置 ε 都和根据相应修正数据训练得到的分类器 f_θ∗(ξ) 搭配成对,这里的目标是找到噪声生成器 g_ξ∗,这样在所有可能的 ξ 中,成对的分类器 f_θ∗(ξ∗) 在干净的测试数据集上会得到最糟糕的表现。

这种非凸优化问题极具挑战性,特别是在非线性等式约束的背景下。本文提出了一种交替更新程序,该程序使用了一些在强化学习中保证稳定性的常用操作,这种方法很简单,但实践证明它是有效的。

首先,因为文中假设 f_θ 和 g_ξ 是神经网络,因此可以将等式约束近似为:

式中的 i 是 SGD 更新的索引。

其次,基本思想是通过梯度下降根据对抗训练数据交替更新 f_θ,并通过梯度上升根据干净数据更新 g_ξ。主要问题在于,如果直接使用这种交替方法,实际上 f_θ 和 g_ξ 都无法收敛。为了稳定这一过程,要先根据对抗训练数据更新 f_θ,同时收集 f_θ 的更新轨迹,然后根据收集到的轨迹,通过计算 f_θ 在每一个时间步上的伪更新来更新对抗训练数据和 g_ξ。这样将整个过程重复实验 T 次直到收敛为止。算法 1 和图 1 详细地说明了这一过程。

最后,本文还提出了一种修改方法以提升效率。注意在训练 f_θ 时存储整个梯度更新的轨迹是一种低效使用内存的方法。为了避免直接存储这样的信息,在训练的每一次实验中,都可以创建 g_ξ 的副本 g'ξ,用 f_θ 交替更新 g'ξ,然后将参数复制回 g_ξ。通过这样的方式,可以将每一次试验中的两个循环合并为一个循环,而且根本不需要存储梯度。算法 2 中详细地说明了这一过程。

指定标签的对抗数据

这一节简要介绍了如何将本文的设置扩展到指定标签的情况中。指定标签对抗数据的目标是,攻击者不仅希望分类器能做出错误的预测,还希望分类器的预测值能符合之前定义好的规则。例如,攻击者希望分类器可以将 A 类错误地识别为 B 类(而不是 C 类)。为了实现这一目的,预定义标签转移函数 η:Z_+→Z_+,该函数可以从一个标签映射到另一个。这里的 η 是攻击者预定义的,而且它将一个标签索引转换成了另一个不同的标签索引。这种指定标签的对抗数据可以表示为:

不难看出,上述问题的优化过程和算法 2 中描述的基本一致。唯一要改变的是将算法 2 中第 10 行的梯度上升换成梯度下降,并将同一行的 η(y) 换成 y,其他不变。

实验

为了验证本文提出方法的有效性,研究者用经典的 MNIST 和 CIFAR-10 数据集进行多分类,并使用 ImageNet 的子集进行二分类。对抗训练数据的随机样本如图 2 所示:

图 2:第一行:原始训练样本;第二行:对抗训练样本。

本文分别根据 MNIST、ImageNet 以及 CIFAR-10 训练了噪声生成器 g_ξ,相应的分类器 f_θ 的扰动约束分别为 0.3、0.1、0.032。分类结果如表 1 所示。

文中还可视化了在对抗训练集上训练的 f_θs 的最后隐藏层的激活,如图 3 所示。

图 3:第一行:对抗训练数据的深度特征;第二行:干净测试数据的深度特征。

了解扰动约束如何影响准确率和可视化表现是很有趣的,结果如图 4 所示。

图 4:变化的效果。

研究者还检验了修改部分训练数据后得到的结果,结果如图 5 所示:

图 5:在不同的 ε 下改变对抗的比率。

在 MNIST 中,研究者加倍 / 减半了所有通道 / 隐藏单元,并将模型标记为 CNNlarge 和 CNNsmall。此外,文中还训练了有 300 棵树的标准随机森林以及使用了 RBF 核、核系数等于 0.01 的支持向量机。实验结果如图 6 所示。

图 6:使用不同分类器时的测试性能。红色的水平线表示随机猜测的准确率

针对 CIFAR-10 和 ImageNet,文中尝试了层数不同、包括 VGG、ResNet 以及 DenseNet 在内的不同卷积网络,并相应地评估了它们的性能。结果如图 7 所示。

图 7:不同模型架构的测试表现。红色的水平线表示随机猜测准确率

为了充分说明对抗数据造成的泛化差距,在获得对抗性训练数据之后,研究者重新训练了 3 个有相同架构 f_θ 的卷积网络(每个数据集对应一个网络),并在图 8 中绘制了训练曲线。

图 8:f_θ 的学习曲线

图 9:MNIST、CIFAR-10 和 ImageNet 中的干净样本以及对应的对抗噪声。

为了验证本文提出的猜想,研究者还衡量了真实标签和仅以对抗噪声作为输入的 f_θ(g_ξ(x)) 的预测值之间的预测准确率。结果如表 2 所示。

表 2:仅以噪声作为输入的预测准确率。也就是说,真实标签和 f_θ(g_ξ(x)) 之间的准确率,其中 x 是干净的样本。

为了验证指定标签对抗设置的有效性,在没有泛化损失的情况下,将预测值转换为 1。对 MNIST 数据集来说,研究者希望在对抗数据上训练的分类器可以将类别 1 预测为类别 2,将类别 2 预测为类别 3…… 将类别 9 预测为类别 0。用本文第 4 节中描述的方法,研究者训练了相应的噪声生成器并在测试集上评估了相应的 CNN,如图 10 所示。

图 10:MNIST 在不同场景下的测试集的混淆矩阵。图中总结了训练设置不同的分类器的测试性能:(a)干净的训练数据;(b)非特定标签设置;(c)特定标签设置。

理论周志华自编码器南京大学创新工场
1
相关数据
混淆矩阵技术

混淆矩阵也称误差矩阵,是表示精度评价的一种标准格式,用n行n列的矩阵形式来表示。具体评价指标有总体精度、制图精度、用户精度等,这些精度指标从不同的侧面反映了图像分类的精度。在人工智能中,混淆矩阵(confusion matrix)是可视化工具,特别用于监督学习,在无监督学习一般叫做匹配矩阵。矩阵的每一行表示预测类中的实例,而每一列表示实际类中的实例(反之亦然)。 这个名字源于这样一个事实,即很容易看出系统是否混淆了两个类。

激活函数技术

在 计算网络中, 一个节点的激活函数定义了该节点在给定的输入或输入的集合下的输出。标准的计算机芯片电路可以看作是根据输入得到"开"(1)或"关"(0)输出的数字网络激活函数。这与神经网络中的线性感知机的行为类似。 一种函数(例如 ReLU 或 S 型函数),用于对上一层的所有输入求加权和,然后生成一个输出值(通常为非线性值),并将其传递给下一层。

权重技术

线性模型中特征的系数,或深度网络中的边。训练线性模型的目标是确定每个特征的理想权重。如果权重为 0,则相应的特征对模型来说没有任何贡献。

交叉熵技术

交叉熵(Cross Entropy)是Loss函数的一种(也称为损失函数或代价函数),用于描述模型预测值与真实值的差距大小

机器学习技术

机器学习是人工智能的一个分支,是一门多领域交叉学科,涉及概率论、统计学、逼近论、凸分析、计算复杂性理论等多门学科。机器学习理论主要是设计和分析一些让计算机可以自动“学习”的算法。因为学习算法中涉及了大量的统计学理论,机器学习与推断统计学联系尤为密切,也被称为统计学习理论。算法设计方面,机器学习理论关注可以实现的,行之有效的学习算法。

感知技术

知觉或感知是外界刺激作用于感官时,脑对外界的整体的看法和理解,为我们对外界的感官信息进行组织和解释。在认知科学中,也可看作一组程序,包括获取信息、理解信息、筛选信息、组织信息。与感觉不同,知觉反映的是由对象的各样属性及关系构成的整体。

VGG技术

2014年,牛津大学提出了另一种深度卷积网络VGG-Net,它相比于AlexNet有更小的卷积核和更深的层级。AlexNet前面几层用了11×11和5×5的卷积核以在图像上获取更大的感受野,而VGG采用更小的卷积核与更深的网络提升参数效率。VGG-Net 的泛化性能较好,常用于图像特征的抽取目标检测候选框生成等。VGG最大的问题就在于参数数量,VGG-19基本上是参数量最多的卷积网络架构。VGG-Net的参数主要出现在后面两个全连接层,每一层都有4096个神经元,可想而至这之间的参数会有多么庞大。

参数技术

在数学和统计学裡,参数(英语:parameter)是使用通用变量来建立函数和变量之间关系(当这种关系很难用方程来阐述时)的一个数量。

学习曲线技术

在机器学习领域,学习曲线通常是表现学习准确率随着训练次数/时长/数据量的增长而变化的曲线

收敛技术

在数学,计算机科学和逻辑学中,收敛指的是不同的变换序列在有限的时间内达到一个结论(变换终止),并且得出的结论是独立于达到它的路径(他们是融合的)。 通俗来说,收敛通常是指在训练期间达到的一种状态,即经过一定次数的迭代之后,训练损失和验证损失在每次迭代中的变化都非常小或根本没有变化。也就是说,如果采用当前数据进行额外的训练将无法改进模型,模型即达到收敛状态。在深度学习中,损失值有时会在最终下降之前的多次迭代中保持不变或几乎保持不变,暂时形成收敛的假象。

凸优化技术

凸优化,或叫做凸最优化,凸最小化,是数学最优化的一个子领域,研究定义于凸集中的凸函数最小化的问题。凸优化在某种意义上说较一般情形的数学最优化问题要简单,譬如在凸优化中局部最优值必定是全局最优值。凸函数的凸性使得凸分析中的有力工具在最优化问题中得以应用,如次导数等。 凸优化应用于很多学科领域,诸如自动控制系统,信号处理,通讯和网络,电子电路设计,数据分析和建模,统计学(最优化设计),以及金融。在近来运算能力提高和最优化理论发展的背景下,一般的凸优化已经接近简单的线性规划一样直捷易行。许多最优化问题都可以转化成凸优化(凸最小化)问题,例如求凹函数f最大值的问题就等同于求凸函数 -f最小值的问题。

学习率技术

在使用不同优化器(例如随机梯度下降,Adam)神经网络相关训练中,学习速率作为一个超参数控制了权重更新的幅度,以及训练的速度和精度。学习速率太大容易导致目标(代价)函数波动较大从而难以找到最优,而弱学习速率设置太小,则会导致收敛过慢耗时太长

模式识别技术

模式识别(英语:Pattern recognition),就是通过计算机用数学技术方法来研究模式的自动处理和判读。 我们把环境与客体统称为“模式”。 随着计算机技术的发展,人类有可能研究复杂的信息处理过程。 信息处理过程的一个重要形式是生命体对环境及客体的识别。其概念与数据挖掘、机器学习类似。

损失函数技术

在数学优化,统计学,计量经济学,决策理论,机器学习和计算神经科学等领域,损失函数或成本函数是将一或多个变量的一个事件或值映射为可以直观地表示某种与之相关“成本”的实数的函数。

神经网络技术

(人工)神经网络是一种起源于 20 世纪 50 年代的监督式机器学习模型,那时候研究者构想了「感知器(perceptron)」的想法。这一领域的研究者通常被称为「联结主义者(Connectionist)」,因为这种模型模拟了人脑的功能。神经网络模型通常是通过反向传播算法应用梯度下降训练的。目前神经网络有两大主要类型,它们都是前馈神经网络:卷积神经网络(CNN)和循环神经网络(RNN),其中 RNN 又包含长短期记忆(LSTM)、门控循环单元(GRU)等等。深度学习是一种主要应用于神经网络帮助其取得更好结果的技术。尽管神经网络主要用于监督学习,但也有一些为无监督学习设计的变体,比如自动编码器和生成对抗网络(GAN)。

随机森林技术

在机器学习中,随机森林是一个包含多个决策树的分类器,并且其输出的类别是由个别树输出的类别的众数而定。 Leo Breiman和Adele Cutler发展出推论出随机森林的算法。而"Random Forests"是他们的商标。这个术语是1995年由贝尔实验室的Tin Kam Ho所提出的随机决策森林(random decision forests)而来的。这个方法则是结合Breimans的"Bootstrap aggregating"想法和Ho的"random subspace method" 以建造决策树的集合。

梯度下降技术

梯度下降是用于查找函数最小值的一阶迭代优化算法。 要使用梯度下降找到函数的局部最小值,可以采用与当前点的函数梯度(或近似梯度)的负值成比例的步骤。 如果采取的步骤与梯度的正值成比例,则接近该函数的局部最大值,被称为梯度上升。

准确率技术

分类模型的正确预测所占的比例。在多类别分类中,准确率的定义为:正确的预测数/样本总数。 在二元分类中,准确率的定义为:(真正例数+真负例数)/样本总数

映射技术

映射指的是具有某种特殊结构的函数,或泛指类函数思想的范畴论中的态射。 逻辑和图论中也有一些不太常规的用法。其数学定义为:两个非空集合A与B间存在着对应关系f,而且对于A中的每一个元素x,B中总有有唯一的一个元素y与它对应,就这种对应为从A到B的映射,记作f:A→B。其中,y称为元素x在映射f下的象,记作:y=f(x)。x称为y关于映射f的原象*。*集合A中所有元素的象的集合称为映射f的值域,记作f(A)。同样的,在机器学习中,映射就是输入与输出之间的对应关系。

随机梯度下降技术

梯度下降(Gradient Descent)是遵循成本函数的梯度来最小化一个函数的过程。这个过程涉及到对成本形式以及其衍生形式的认知,使得我们可以从已知的给定点朝既定方向移动。比如向下朝最小值移动。 在机器学习中,我们可以利用随机梯度下降的方法来最小化训练模型中的误差,即每次迭代时完成一次评估和更新。 这种优化算法的工作原理是模型每看到一个训练实例,就对其作出预测,并重复迭代该过程到一定的次数。这个流程可以用于找出能导致训练数据最小误差的模型的系数。

监督学习技术

监督式学习(Supervised learning),是机器学习中的一个方法,可以由标记好的训练集中学到或建立一个模式(函数 / learning model),并依此模式推测新的实例。训练集是由一系列的训练范例组成,每个训练范例则由输入对象(通常是向量)和预期输出所组成。函数的输出可以是一个连续的值(称为回归分析),或是预测一个分类标签(称作分类)。

支持向量机技术

在机器学习中,支持向量机是在分类与回归分析中分析数据的监督式学习模型与相关的学习算法。给定一组训练实例,每个训练实例被标记为属于两个类别中的一个或另一个,SVM训练算法创建一个将新的实例分配给两个类别之一的模型,使其成为非概率二元线性分类器。SVM模型是将实例表示为空间中的点,这样映射就使得单独类别的实例被尽可能宽的明显的间隔分开。然后,将新的实例映射到同一空间,并基于它们落在间隔的哪一侧来预测所属类别。

对抗训练技术

对抗训练涉及两个模型的联合训练:一个模型是生成器,学习生成假样本,目标是骗过另一个模型;这另一个模型是判别器,通过对比真实数据学习判别生成器生成样本的真伪,目标是不要被骗。一般而言,两者的目标函数是相反的。

强化学习技术

强化学习是一种试错方法,其目标是让软件智能体在特定环境中能够采取回报最大化的行为。强化学习在马尔可夫决策过程环境中主要使用的技术是动态规划(Dynamic Programming)。流行的强化学习方法包括自适应动态规划(ADP)、时间差分(TD)学习、状态-动作-回报-状态-动作(SARSA)算法、Q 学习、深度强化学习(DQN);其应用包括下棋类游戏、机器人控制和工作调度等。

推荐文章
暂无评论
暂无评论~