trustML@Penn          home      people      research      publications


overview

Over the last two decades, there has been tremendous progress in leveraging machine learning to solve fundamental problems in artificial intelligence. Nevertheless, a number of challenges remain for deploying these techniques in real-world applications. Our research focuses on addressing three key challenges:

  • Correctness: We have developed PAC prediction sets that capture uncertainty with provable correctness guarantees [ICLR 2020], as well as model predictive shielding for ensuring safety of learned controllers [ICRA 2020, ACC 2021, RSS 2021, ICLR 2021] and algorithms for risk-aware offline reinforcement learning [NeurIPS 2021].
  • Programmability: We have developed algorithms for end-user programming of machine learning systems, e.g., synthesizing programs with machine learning components [PLDI 2021], enabling users to guide deep generative models [ICML 2019], and reinforcement learning from high-level specifications [NeurIPS 2019, AISTATS 2021, NeurIPS 2021, NeurIPS 2021]. We are also working on improving human-AI interfaces [AIES 2020, ICML 2020, ICML HumanAI Workshop 2021].
  • Efficiency: We have developed techniques for leveraging uncertainty to chain fast, inaccurate models with slow, accurate ones [ICLR 2021]. We have also leveraged deep learning to speed up systems [PLDI 2018, OOPSLA 2019], incorporating off-policy data to improve performance [CAV 2020].

We discuss our work along each of these three thrusts in more detail below. Our approaches draw on techniques spanning learning theory, programming languages, formal methods, and control theory; furthermore, we are interested in applications to robotics, healthcare, and software systems, among others.

Currently, we are particularly interested in understanding robust generalization (i.e., to out-of-distribution examples), which is a critical feature of human learning that is lacking in deep learning. From a theoretical perspective, we have drawn a connection between robust generalization and model identification [ICML UDL Workshop 2021]; intuitively, to robustly generalize, a learning algorithm must be able to identify the “true” model. From a practical standpoint, we have shown that program synthesis can generalize robustly [ICLR 2020, EMNLP (Findings) 2021], and have developed algorithms for quantifying uncertainty in the face of distribution shift [AISTATS 2020, ICML UDL Workshop 2021].


correctness
How can we build machine learning systems with correctness guarantees?

  • Uncertainty quantification: We have developed algorithms for constructing PAC prediction sets, which can capture uncertainty in a rigorous way [ICLR 2020]. We are working on leveraging these ideas to enable correct-by-construction synthesis of programs with machine learning components.
  • Safe reinforcement learning: We have developed model predictive shielding, a strategy for ensuring safety of learned controllers [ICRA 2020, ACC 2021, RSS 2021, ICLR 2021]. We are working on applying these techniques to human-interactive control [RSS Social Navigation Workshop 2021]. We have also developed risk-aware offline reinforcement learning algorithms [NeurIPS 2021], and algorithms for learning programmatic policies that are easier to verify [NeurIPS 2018, ICLR 2020, NeurIPS 2020].
  • Fairness: We have developed statistical verification algorithms for efficiently checking fairness [OOPSLA 2019], as well as algorithms for ensuring fairness in reinforcement learning [AISTATS 2021].
  • Robustness: We have developed algorithms for measuring adversarial robustness [NeurIPS 2016]. We have also shown that program synthesis can generalize robustly [ICLR 2020, EMNLP (Findings) 2021], and have drawn a connection between robust generalization and model identification [ICML UDL Workshop 2021]. Finally, we have developed algorithms for quantifying uncertainty in the face of distribution shift [AISTATS 2020, ICML UDL Workshop 2021].


programmability
How can we make it easier for end users to leverage machine learning?

  • Synthesizing machine learning programs: We have developed algorithms for synthesizing programs that include machine learning components, for instance, to query websites based on both syntactic and semantic information [PLDI 2021].
  • Programmable generation: We have developed techniques for representing latent structure in deep generative models [ICML 2019]; users can modify this structure to guide the generative process.
  • Programmable reinforcement learning: We have developed high-level specification languages for reinforcement learning [NeurIPS 2019], along with algorithms that leverage these specifications to improve learning [AISTATS 2021, NeurIPS 2021, NeurIPS 2021].
  • Human-AI interface: We have worked on understanding how humans interact with machine learning systems; for instance, post-hoc explanations can be misleading [AIES 2020], motivating the need for robust explanations [ICML 2020]. We are currently working on understanding whether machine learning can improve human decision-making [ICML HumanAI Workshop 2021].


efficiency

How can we ensure machine learning systems run efficiently?

  • Fast inference: We have developed techniques for leveraging uncertainty estimates to chain fast, inaccurate models with slow, accurate ones [ICLR 2021]. We have also developed algorithms for compressing reinforcement learning policies into compact decision trees [NeurIPS 2018].
  • Machine learning for systems: We have leveraged deep learning to speed up systems such as theorem provers [OOPSLA 2019] and program synthesizers [PLDI 2018], along with techniques for incorporating off-policy data to improve performance [CAV 2020].