对抗性机器学习主要是指设计各种)机器学习(ML)算法。Adversarialmachinelearning认为,机器学习模型通常面临以下四种攻击:被盗。这类攻击背后的原理是,攻击者通过输入向目标模型发送请求,提取尽可能多的信息,并使用掌握的输入输出集生成和训练替代模型。当然,在实现抽取模型的过程中会存在一定的困难,攻击者需要借助强大的算力重新训练出准确度高、保真度高的新模型,从头开始替换现有模型。防御当模型对给定输入进行分类时,我们需要限制其输出信息。目前,我们可以采取的方法包括:使用差分隐私(DifferentialPrivacy)。使用集成算法(ensembles,译者注:通过构建和组合多个机器学习模型来完成学习任务)。在最终用户和模特之间建立代理,例如PRADA(https://arxiv.org/abs/1805.02628)。限制请求的数量。推理攻击(Inferenceattacks)推理攻击旨在逆转机器学习模型中的信息流,使攻击者能够深入了解未明确共享的模型。从统计学的角度来看,由于私人机密数据往往与公开发布的数据存在潜在的相关性,而机器学习的各种分类器具有捕获这种统计相关性的能力,推理攻击将对个人和系统构成严重的隐私和安全威胁.一般来说,此类攻击包括三种类型:MembershipInferenceAttack(成员推理攻击,MIA,译者注:通过识别目标模型的行为差异来区分成员和非成员)。PropertyInferenceAttack(PIA,译者注:攻击者使用公开可见的属性和结构来推断隐藏或不完整的属性数据)。恢复训练数据(Recoverytrainingdata,译者注:Attemptstorecoverandreconstructthosedatausedduringtraining)。防御使用各种先进的加密措施,包括:差分加密(Differentialcryptography)。同态密码学。安全多方计算。Dropout(译者注:在深度学习网络的训练过程中,对于神经网络单元,按照一定的概率,暂时从网络中丢弃)等技术。模型压缩(译者注:通过减少算法模型的参数,使算法模型小型化)。中毒攻击(Poisoningattacks)中毒攻击技术是指攻击者在训练过程中向训练数据集中插入破坏性数据,破坏目标机器学习模型。当计算机视觉系统推理特定像素模式时,此类数据中毒技术会触发某些行为。当然,还有一些数据投毒技术旨在降低机器学习模型在一个或多个输出类别上的准确性。由于此类攻击可以在使用相同数据的不同模型之间传播,因此在训练数据上执行时很难检测到。相应地,攻击者将试图通过修改决策边界来破坏模型的可用性,从而产生各种不正确的预测。此外,攻击者在目标模型中创建后门,允许他们创建某些输入,这些输入可以产生可操纵的预测和结果,从而促进后续攻击。防御保护训练数据的完整性。保护算法并使用各种稳健的方法来训练模型。逃避攻击(Evasionattacks)攻击者插入一个微妙的扰动(例如某种形式的噪声),并将其转换为机器学习模型的输入,并使其产生分类错误。虽然与投毒攻击有些相似,但逃避攻击主要试图在推理而非训练期间利用模型弱点。当然,攻击者对目标系统的了解至关重要。他们越了解目标模型及其构建方式,就越容易对其进行攻击。当“对抗性示例”进入网络时,通常会发生逃避攻击。这通常是“精心设计”的令人不安的输入。它看起来与那些未篡改的副本相同,但实际上完全避开了正确的分类器。使用稳健模型对攻击性样本进行防御训练。将“经过消毒”的输入提供给模型。采用梯度正则化。各种实用工具AdversarialRobustnessToolboxAdversarialRobustnessToolbox(AdversarialRobustnessToolbox,ART,https://github.com/Trusted-AI/adversarial-robustness-toolbox)是一个安全工具箱,可用于机器学习类Python库。ART提供的工具允许开发人员和研究人员评估和保护应用程序以及他们使用的机器学习模型,以抵御上述四种类型的威胁和攻击。ART支持流行的机器学习框架,例如TensorFlow、Keras、PyTorch和scikit-learn。它支持的数据类型包括:图片、数据表、音频、视频。同时还支持分类、物体检测、语音识别等机器学习任务。您可以通过命令安装ART:pipinstalladversarial-robustness-toolbox。ART的攻击示例如下代码段所示:fromart.attacks.evasionimportFastGradientMethodattack_fgm=FastGradientMethod(estimator=classifier,eps=0.2)x_test_fgm=attack_fgm.generate(x=x_test)predictions_test=classifier.predict(x_test_fgm)及其对应的Defense示例为:fromart.defences.trainerimportAdversarialTrainermodel.compile(loss=keras.losses.categorical_crossentropy,optimizer=tf.keras.optimizers.Adam(lr=0.01),metrics=["accuracy"])defense=AdversarialTrainer(classifier=classifier,attacks=attack_fgm,ratio=0.6)(x_train,y_train),(x_test,y_test),min_pixel_value,max_pixel_value=load_mnist()防御.fit(x=x_train,y=y_train,nb_epochs=3)CounterfitCounterfit是一个命令行工具和通用自动化层,可用于评估机器学习系统的安全性。Counterfit,基于ART和TextAttack(译者注:可用于NLP中的对抗性攻击、数据增强和模型训练的Python框架),专为机器学习模型的安全审计而开发,可实现黑盒式规避算法。Counterfit包括以下有用的命令:-----------------------------------------------------微软___________________________//_________/__(_)/_/___/__\////__\/__/_\/___//_//__///__//_///_//////_/__///__///\___/\____/\__,_/_//_/\__/\___/_//_//_/\__/#ATML-----------------------------------------------------listtargetslistframeworksload
