一句话:将自适应性形式化为程序量化性质,并用加权依赖图分析近似其上界,以辅助选择泛化误差控制技术。
自适应数据分析中,后续查询依赖先前结果,单次查询的泛化误差会沿查询链传播并放大,而选择何种误差控制技术取决于分析的自适应程度。本文将类似 while 的自适应数据分析建模为程序,把“自适应性”形式化为一种程序量化性质;进而提出一种程序分析,构造加权依赖图,其中边权为变量可被到达次数的上界,并通过路径搜索给出自适应性上界。作者实现了该分析,并在若干具有不同自适应结构的实际数据分析上演示其能有效分析自适应性,从而辅助选择控制泛化误差的技术。
Data analyses are usually designed to identify some property of the population from which the data are drawn, generalizing beyond the specific data sample. For this reason, data analyses are often designed in a way that guarantees that they produce a low generalization error. That is, they are designed so that the result of a data analysis run on a sample data does not differ too much from the result one would achieve by running the analysis over the entire population. An adaptive data analysis can be seen as a process composed by multiple queries interrogating some data, where the choice of which query to run next may rely on the results of previous queries. The generalization error of each individual query/analysis can be controlled by using an array of well-established statistical techniques. However, when queries are arbitrarily composed, the different errors can propagate through the chain of different queries and bring to a high generalization error. To address this issue, data analysts are designing several techniques that not only guarantee bounds on the generalization errors of single queries, but that also guarantee bounds on the generalization error of the composed analyses. The choice of which of these techniques to use, often depends on the chain of queries that an adaptive data analysis can generate. In this work, we consider adaptive data analyses implemented as while-like programs and we design a program analysis which can help with identifying which technique to use to control their generalization errors. More specifically, we formalize the intuitive notion of adaptivity as a quantitative property of programs. We do this because the adaptivity level of a data analysis is a key measure to choose the right technique. Based on this definition, we design a program analysis for soundly approximating this quantity. The program analysis generates a representation of the data analysis as a weighted dependency graph, where the weight is an upper bound on the number of times each variable can be reached, and uses a path search strategy to guarantee an upper bound on the adaptivity. We implement our program analysis and show that it can help to analyze the adaptivity of several concrete data analyses with different adaptivity structures.
DOI 原文 · arXiv · PDF(开放获取) · DBLP
@article{LiuQGGU24,
title = {Program Analysis for Adaptive Data Analysis},
author = {Jiawen Liu and Weihao Qu and Marco Gaboardi and Deepak Garg and Jonathan Ullman},
journal = {Proceedings of the ACM on Programming Languages},
volume = {8},
number = {PLDI},
year = {2024},
doi = {10.1145/3656414}
}