针对adversarial machine learning这个问题而言,AI出身的小伙伴们可能认为,这样的工作应该只能看做模型的鲁棒性或泛化能力不够强,但是从安全角度考虑,其实所谓的“安全”概念,是从模型的设计者角度出发,考虑到模型的行为超出意料之外,让模型设计者手足无措,因此我们认为是可能存在“潜在威胁”,因而将这类行为归类为安全问题。特此解释。
那么针对模型的攻击问题,我们主要分为两大类,就是从训练阶段和推理(inference)阶段来进行讨论。
训练阶段的攻击(Training in Adversarial Settings)
训练阶段的恶意攻击,主要的目的就是针对模型的参数进行微小的扰动,从让而模型的性能和预期产生偏差。这样的行为主要是通过数据投毒来完成的。
举个简单的例子,当我们在进行食品加工的时候,在里面少量的加入一些“有毒”的成分,那这个食品就会和当时预想的做出来不一样,从美味变成了毒物。当然,数据投毒没办法做到“一颗老鼠屎坏了一锅粥”,但是能通过尽量少的“老鼠屎”坏了尽量多的“粥”就是它的目的了。
不过在此之前,有个前提,在PAC理论中,有一个已经论证的结论:对于任意的学习算法而言,其置信度β,必须满足β≤Σ/1+Σ,其中Σ表示了学习准确率。那么也就是说,当我哦需要达到90%的学习准确率(Σ=0.1),那么我被扰动的数据量必须少于10%(0.1/1+0.1)。
(M. Kearns and M. Li, “Learning in the presence of malici