  In this paper we propose to study generalization of neural networks on small
algorithmically generated datasets. In this setting, questions about data
efficiency, memorization, generalization, and speed of learning can be studied
in great detail. In some situations we show that neural networks learn through
a process of "grokking" a pattern in the data, improving generalization
performance from random chance level to perfect generalization, and that this
improvement in generalization can happen well past the point of overfitting. We
also study generalization as a function of dataset size and find that smaller
datasets require increasing amounts of optimization for generalization. We
argue that these datasets provide a fertile ground for studying a poorly
understood aspect of deep learning: generalization of overparametrized neural
networks beyond memorization of the finite training dataset.
