一句话:用抽象解释将分类误差建模为抽象,定义并刻画弱化鲁棒性及其对抗边界。
分类系统的鲁棒性要求输入扰动不改变分类结果,但现有研究很少刻画扰动如何影响分类。本文从标准鲁棒性的严格定义出发,提出一种形式化方法,将分析者可接受的分类误差精确建模为抽象,从而得到弱化的鲁棒性概念。该方法把传统定量扰动模型推广为基于抽象的定性模型,并用于语言安全中的信息流策略与程序验证。作者证明可以“限制对抗性”,即刻画分类器可被视为足够鲁棒的扰动程度和/或类泛化程度。最后在先进图像分类器上进行实验评估,展示弱化鲁棒性概念的有效性。
Robustness is a key and desirable property of any classifying system, in particular, to avoid the ever-rising threat of adversarial attacks. Informally, a classification system is robust when the result is not affected by the perturbation of the input. This notion has been extensively studied, but little attention has been dedicated to how the perturbation affects the classification. The interference between perturbation and classification can manifest in many different ways, and its understanding is the main contribution of the present article. Starting from a rigorous definition of a standard notion of robustness, we build a formal method for accommodating the required degree of robustness—depending on the amount of error the analyst may accept on the classification result. Our idea is to precisely model this error as an abstraction . This leads us to define weakened forms of robustness also in the context of programming languages, particularly in language-based security, e.g., information-flow policies, and in program verification. The latter is possible by moving from a quantitative (standard) model of perturbation to a novel qualitative model, given by means of the notion of abstraction. As in language-based security, we show that it is possible to confine adversities, which means to characterize the degree of perturbation (and/or the degree of class generalization) for which the classifier may be deemed adequately robust. We conclude with an experimental evaluation of our ideas, showing how weakened forms of robustness apply to state-of-the-art image classifiers.
@article{paperbot2676,
title = {Adversities in Abstract Interpretation - Accommodating Robustness by Abstract Interpretation},
author = {Roberto Giacobazzi and Isabella Mastroeni and Elia Perantoni},
journal = {ACM Transactions on Programming Languages and Systems},
volume = {46},
number = {2},
year = {2024},
doi = {10.1145/3649309}
}