Our approach essentially exploits the domain knowledge to train a suite of neural networks, one for each known domain predicate. For
RAVENs problems, these predicates represent rules that might apply to ordered sets (rows) of images in a particular problem. Further,
these neural predicates are trained to operate on a special high-dimensional representation space (`symbolic latent space') that is derived, via self-supervised learning, from the symbolic input space. Note that a purely symbolic algorithm can consume symbolic inputs to solve the problem exactly, however a distributed representation can allow for real world analogical reasoning for rich input spaces such as images or speech (see Fig REF  for a RAVENs problem; one can also imagine tasks with speech inputs where the analogous example signals are high pitch transformed versions of the original). Our approach differs from [1]} where the symbolic latent space is derived via a supervised approach; by using a self-supervised learning approach we are able to use the same representation space to train multiple neural predicates, unlike in [1]} where only a single function is learned. Next, we train a neural network encoder to map real-world images (here sub-images of the RAVENs matrices)
to the `symbolic latent space'. Finally, using the above elements together we are able to perform symbolic search-based reasoning, albeit using neural-networks as primitive predicates, to solve analogical reasoning problems.
