A Dual Number Abstraction for Static Analysis of Clarke Jacobians

被引:5
|
作者
Laurel, Jacob [1 ]
Yang, Rem [1 ]
Singh, Gagandeep [1 ,2 ]
Misailovic, Sasa [1 ]
机构
[1] Univ Illinois, Urbana, IL 61801 USA
[2] VMware Res, Palo Alto, CA USA
来源
PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL | 2022年 / 6卷 / POPL期
关键词
Abstract Interpretation; Differentiable Programming; Robustness;
D O I
10.1145/3498718
中图分类号
TP31 [计算机软件];
学科分类号
081202 ; 0835 ;
摘要
We present a novel abstraction for bounding the Clarke Jacobian of a Lipschitz continuous, but not necessarily differentiable function over a local input region. To do so, we leverage a novel abstract domain built upon dual numbers, adapted to soundly over-approximate all first derivatives needed to compute the Clarke Jacobian. We formally prove that our novel forward-mode dual interval evaluation produces a sound, interval domain-based over-approximation of the true Clarke Jacobian for a given input region. Due to the generality of our formalism, we can compute and analyze interval Clarke Jacobians for a broader class of functions than previous works supported - specifically, arbitrary compositions of neural networks with Lipschitz, but non-differentiable perturbations. We implement our technique in a tool called DeepJ and evaluate it on multiple deep neural networks and non-differentiable input perturbations to showcase both the generality and scalability of our analysis. Concretely, we can obtain interval Clarke Jacobians to analyze Lipschitz robustness and local optimization landscapes of both fully-connected and convolutional neural networks for rotational, contrast variation, and haze perturbations, as well as their compositions.
引用
收藏
页数:30
相关论文
共 50 条
  • [1] On multi-language abstraction: Towards a static analysis of multi-language programs
    Buro, Samuele
    Crole, Roy
    Mastroeni, Isabella
    FORMAL METHODS IN SYSTEM DESIGN, 2023, 65 (1) : 4 - 38
  • [2] On Multi-language Abstraction Towards a Static Analysis of Multi-language Programs
    Buro, Samuele
    Crole, Roy L.
    Mastroeni, Isabella
    STATIC ANALYSIS (SAS 2020), 2020, 12389 : 310 - 332
  • [3] Targeted Update - Aggressive Memory Abstraction Beyond Common Sense and Its Application on Static Numeric Analysis
    Fu, Zhoulai
    PROGRAMMING LANGUAGES AND SYSTEMS, 2014, 8410 : 534 - 553
  • [4] Program analysis using empirical abstraction
    Vivian M. Ho
    Chris Alvin
    Jimmie D. Lawson
    Supratik Mukhopadhyay
    Brian Peterson
    International Journal on Software Tools for Technology Transfer, 2023, 25 : 431 - 452
  • [5] Program analysis using empirical abstraction
    Ho, Vivian M.
    Alvin, Chris
    Lawson, Jimmie D.
    Mukhopadhyay, Supratik
    Peterson, Brian
    INTERNATIONAL JOURNAL ON SOFTWARE TOOLS FOR TECHNOLOGY TRANSFER, 2023, 25 (04) : 431 - 452
  • [6] Program Analysis via Efficient Symbolic Abstraction
    Yao, Peisen
    Shi, Qingkai
    Huang, Heqing
    Zhang, Charles
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2021, 5 (OOPSLA):
  • [7] Learning Abstraction Selection for Bayesian Program Analysis
    Zhang, Yifan
    Shi, Yuanfeng
    Zhang, Xin
    PROCEEDINGS OF THE ACM ON PROGRAMMING LANGUAGES-PACMPL, 2024, 8 (OOPSLA):
  • [8] STATIC ANALYSIS OF POSTSCRIPT CODE
    HORSPOOL, RN
    VITEK, J
    COMPUTER LANGUAGES, 1993, 19 (02): : 65 - 78
  • [9] Static Analysis of String Values
    Costantini, Giulia
    Ferrara, Pietro
    Cortesi, Agostino
    FORMAL METHODS AND SOFTWARE ENGINEERING, 2011, 6991 : 505 - +
  • [10] Static analysis of Android programs
    Payet, Etienne
    Spoto, Fausto
    INFORMATION AND SOFTWARE TECHNOLOGY, 2012, 54 (11) : 1192 - 1201