Project Topics
- Topic 1:
In this project, we will use the VerifAI toolkit to
"learn" the parameters of
a linear
quadratic regulator (LQR) controller that minimizes the count
of lane violations of an ego car. Subsequently, you are required
to attempt a proof that the learnt controller results in no lane
violations.
The Scenic probablistic-program based sampler allows
you to specify statistical variations of higher-level semantic
features, based on which test samples are created. The simulator
follows the control rules of the parameterized LQR controller and
determines the trajectory of the ego car with the sampled values
of the semantic features.
You are required to learn key parameters of the controller using
this setup, and then try to attempt a proof (any technique is
fine) that these values of parameters lead to zero violations of
lane crossings. If your "learned" LQR controller does not yield a
proof of correctness, you must provide a statistical estimate
(along with a confidence interval) of what percentage of inputs
within the allowed variations will lead to lane violations.
Please see here for
extensive documentation on VerifAI, and also worked
out examples, explained in tutorial style. This project will be
building on the case study titled "Lane keeping with inbuilt
simulator".
- Topic 2
In this project, we will use the VerifAI toolkit to
re-train a simple convolutional neural network for detecting
images of cars on roads. The re-training should happen in
iterations. At the end of each iteration, when you have
re-trained the network, you are required to use alpha-beta
CROWN to determine the local robustness of the re-trained
network for a given image (radius of L_p norm ball for a suitable
"p" of your choice, for which the class label of the image doesn't
change).
The Scenic probabilistic-program based sampler
allows you to specify statistical variations of higher-level
semantic features of scenes of cars on roads, based on which test
samples are created. As you re-train the convolutional network,
the network is expected to become better at recognizing images of
cars on roads. This should reflect in an improvement (increase)
in the local robustness metric when analyzed using alpha-beta
CROWN. As you go from one re-training iteration to the next, you
are required to change the sampling distribution, informed by the
results of using alpha-beta CROWN.
Please see here for
extensive documentation about VerifAI, and also worked out
examples, explained in tutorial style. This project will be
building on the case study titled "Data augmentation". Please see
here
for documentation and code of alpha-beta CROWN. A colab demo and
instructions for some simple tutorials using alpha-beta CROWN are
available here.
- Topic 3
In this project, we will try to find an MILP-based alternative to
using weighted MaxSAT in the Synplicate tool for generating
Pareto-optimal interpretations. The Synplicate tool can be
accessed here.
We are going to try to replace the weighted MaxSAT encoding used
in Synplicate to obtain a single Pareto-optimal interpretation. As
discussed in class, there is a straightforward way to convert a
weighted MaxSAT encoding to an MILP encoding. Your first task
would be try this out, and compare the performance of the two
approaches. We will be
using Gurobi
to solve the MILP instances. We don't expect this naive
translation of weighted MaxSAT to MILP to yield much (if at all
any) improvement in performance. The meat of your project would
be to come up with alternative MILP encodings that exploit the
structure of the problem, for which we can obtain tangible
improvements over the weighted MaxSAT approach.
For purposes of this problem, we will directly use samples from the
UCI Machine Learning
Repository. In other words, we will use datasets from this
repository as proxies for samples obtained from a black-box ML
model, and construct Pareto-optimal interpretations of the
black-box model.
- Topic 4
In this project, we will investigate formal logic-based
explanations of data instances w.r.t. tree ensemble models, and
compare them with some heuristic explanations (viz. using LIME,
SHAP and Anchor). The relevant toolkit (XReason) is
available here. The
goal of the project is to use guidance from formal logic-based
explanations to create data instances for which explanations by
other heuristic methods (like LIME, SHAP or Anchor) are incorrect
(i.e. admit counter-examples).
The github
repository already contains code to validate, and then either
repair or refine heuristic explanations. The primary objective of
this project would be to use formal logic-based explanations to
accelerate this process and zoom down on data instances where a
heuristic explanation is necessarily incorrect.
The project should hopefully yield a method for generating explanations
that is better than formal logic-based explaners performance-wise,
and better than heuristic explainers accuracy-wise (i.e. count of
counterexamples is reduced).