Unifying AI Algorithms with Probabilistic Programming using Implicitly
  Defined Representations
  We introduce Scruff, a new framework for developing AI systems using
probabilistic programming. Scruff enables a variety of representations to be
included, such as code with stochastic choices, neural networks, differential
equations, and constraint systems. These representations are defined implicitly
using a set of standardized operations that can be performed on them.
General-purpose algorithms are then implemented using these operations,
enabling generalization across different representations. Zero, one, or more
operation implementations can be provided for any given representation, giving
algorithms the flexibility to use the most appropriate available
implementations for their purposes and enabling representations to be used in
ways that suit their capabilities. In this paper, we explain the general
approach of implicitly defined representations and provide a variety of
examples of representations at varying degrees of abstraction. We also show how
a relatively small set of operations can serve to unify a variety of AI
algorithms. Finally, we discuss how algorithms can use policies to choose which
operation implementations to use during execution.
