Making sense of sensory input
  This paper attempts to answer a central question in unsupervised learning:
what does it mean to "make sense" of a sensory sequence? In our formalization,
making sense involves constructing a symbolic causal theory that both explains
the sensory sequence and also satisfies a set of unity conditions. The unity
conditions insist that the constituents of the causal theory -- objects,
properties, and laws -- must be integrated into a coherent whole. On our
account, making sense of sensory input is a type of program synthesis, but it
is unsupervised program synthesis.
  Our second contribution is a computer implementation, the Apperception
Engine, that was designed to satisfy the above requirements. Our system is able
to produce interpretable human-readable causal theories from very small amounts
of data, because of the strong inductive bias provided by the unity conditions.
A causal theory produced by our system is able to predict future sensor
readings, as well as retrodict earlier readings, and impute (fill in the blanks
of) missing sensory readings, in any combination.
  We tested the engine in a diverse variety of domains, including cellular
automata, rhythms and simple nursery tunes, multi-modal binding problems,
occlusion tasks, and sequence induction intelligence tests. In each domain, we
test our engine's ability to predict future sensor values, retrodict earlier
sensor values, and impute missing sensory data. The engine performs well in all
these domains, significantly out-performing neural net baselines. We note in
particular that in the sequence induction intelligence tests, our system
achieved human-level performance. This is notable because our system is not a
bespoke system designed specifically to solve intelligence tests, but a
general-purpose system that was designed to make sense of any sensory sequence.
