机器学习训练过程中的模型攻击的类型

前言

所谓的模型攻击是指,恶意的用户干扰正常的机器学习过程,从而达到某种目的,而实施的一系列操作。
通常,一个机器学习过程有数据收集,训练模型两个主要过程。在数据收集阶段,采取的攻击,一般叫做数据投毒攻击。而在训练阶段采取的攻击,叫做模型投毒攻击。

数据投毒攻击

所谓的数据投毒攻击,是指在数据收集阶段,或者数据预处理阶段实施的攻击。
标签反转,如我们要训练一个识别图片的数字的模型。我们将一部分图片中数字为1的图片,标签转换的0,这样可以使得最终训练的模型的准确率大幅下降。
数据加噪,给训练集的数据加上一些噪声。比如添加一个高斯噪声。如果噪声合适的话,添加的噪声不会被发现,但是却可以影响最终训练出来的模型。
逃逸攻击,创建一个特殊的数据集,打上特定的标签,使得这个特殊的数据集中的数据,可以通过模型的预测。比如,在训练识别数字的模型的训练集中,添加一些小狗的照片,并将其标签设置为1,那么最终训练出来的结果将会把小狗判断为1.
总之,数据投毒攻击,直接针对训练集的数据。

模型投毒攻击

模型投毒攻击是指,在模型的训练阶段,对模型的更新或者梯度,做一些改变。一般发生在分布式机器学习的模型中。
假设我们有一个服务器 s s s,和 n n n个客户端 c 1 , c 2 , ⋯   , c n c_1,c_2,\cdots,c_n c1,c2,,cn,想要通过合作共同训练一个模型。首先,在服务器上对模型初始化,得到一个全局的模型, W W W
对于每一轮的训练,客户端 c i c_i ci首先从服务器取得全局的模型,然后使用全局的模型,在本地训练,得到一个新的模型,将更新 U i U_i Ui(新的模型,或者模型差)发送给服务器。
服务器在收到所有人的更新之后,通过某种方式聚合 U i U_i Ui得到最终的更新,然后更新全局模型,进行新一轮的训练。
模型投毒的一般操作是,篡改客户端上传的更新 U i U_i Ui使得全局模型发生某种程度的偏移。
当然,这里的攻击又可分为拜占庭攻击和定向投毒。

拜占庭攻击

拜占庭攻击的目的是,发送恶意的更新,使得模型的训练不能收敛。

定向投毒

定向投毒是指,通过精心的裁剪更新,使得全局模型收敛到攻击者想要的最优解。比如,可以将小狗判断为数字等。使得最后的模型不可用,或者说存在某些特别的后门。

猜你喜欢

转载自blog.csdn.net/watqw/article/details/124570989