Associative Convolutional Layers
  Motivated by the necessity for parameter efficiency in distributed machine
learning and AI-enabled edge devices, we provide a general and easy to
implement method for significantly reducing the number of parameters of
Convolutional Neural Networks (CNNs), during both the training and inference
phases. We introduce a simple auxiliary neural network which can generate the
convolutional filters of any CNN architecture from a low dimensional latent
space. This auxiliary neural network, which we call "Convolutional Slice
Generator" (CSG), is unique to the network and provides the association between
its convolutional layers. During the training of the CNN, instead of training
the filters of the convolutional layers, only the parameters of the CSG and
their corresponding "code vectors" are trained. This results in a significant
reduction of the number of parameters due to the fact that the CNN can be fully
represented using only the parameters of the CSG, the code vectors, the fully
connected layers, and the architecture of the CNN. We evaluate our approach by
applying it to ResNet and DenseNet models when trained on CIFAR-10 and ImageNet
datasets. While reducing the number of parameters by $\approx 2 \times$ on
average, the accuracies of these networks remain within 1$\%$ of their original
counterparts and in some cases there is an increase in the accuracy.
