  The ability to generalize quickly from few observations is crucial for
intelligent systems. In this paper we introduce APL, an algorithm that
approximates probability distributions by remembering the most surprising
observations it has encountered. These past observations are recalled from an
external memory module and processed by a decoder network that can combine
information from different memory slots to generalize beyond direct recall. We
show this algorithm can perform as well as state of the art baselines on
few-shot classification benchmarks with a smaller memory footprint. In
addition, its memory compression allows it to scale to thousands of unknown
labels. Finally, we introduce a meta-learning reasoning task which is more
challenging than direct classification. In this setting, APL is able to
generalize with fewer than one example per class via deductive reasoning.
