  Inferring programs which generate 2D and 3D shapes is important for reverse
engineering, editing, and more. Training models to perform this task is
complicated because paired (shape, program) data is not readily available for
many domains, making exact supervised learning infeasible. However, it is
possible to get paired data by compromising the accuracy of either the assigned
program labels or the shape distribution. Wake-sleep methods use samples from a
generative model of shape programs to approximate the distribution of real
shapes. In self-training, shapes are passed through a recognition model, which
predicts programs that are treated as "pseudo-labels" for those shapes. Related
to these approaches, we introduce a novel self-training variant unique to
program inference, where program pseudo-labels are paired with their executed
output shapes, avoiding label mismatch at the cost of an approximate shape
distribution. We propose to group these regimes under a single conceptual
framework, where training is performed with maximum likelihood updates sourced
from either Pseudo-Labels or an Approximate Distribution (PLAD). We evaluate
these techniques on multiple 2D and 3D shape program inference domains.
Compared with policy gradient reinforcement learning, we show that PLAD
techniques infer more accurate shape programs and converge significantly
faster. Finally, we propose to combine updates from different PLAD methods
within the training of a single model, and find that this approach outperforms
any individual technique.
