Learning Versatile Filters for Efficient Convolutional Neural Networks
This paper introduces versatile filters to construct efficient convolutional neural network. Considering the demands of efficient deep learning techniques running on cost-effective hardware, a number of methods have been developed to learn compact neural networks. Most of these works aim to slim down filters in different ways, e.g. investigating small, sparse or binarized filters. In contrast, we treat filters from an additive perspective. A series of secondary filters can be derived from a primary filter. These secondary filters all inherit in the primary filter without occupying more storage, but once been unfolded in computation they could significantly enhance the capability of the filter by integrating information extracted from different receptive fields. Besides spatial versatile filters, we additionally investigate versatile filters from the channel perspective. The new techniques are general to upgrade filters in existing CNNs. Experimental results on benchmark datasets and neural networks demonstrate that CNNs constructed with our versatile filters are able to achieve comparable accuracy as that of original filters, but require less memory and FLOPs.
The paper introduces two new types of convolutional filters, named versatile filters, which can reduce the memory and FLOP requirements of conv. nets. The method is simple and, according to the experimental results, it seems to be effective.  The text quality is OK, although it would definitively benefit from better explanations about the proposed method. For instance, Fig. 1 is a bit confusing (Are you showing 4 different filters in Fig 1 (b) ?).  My main concerns about this paper are related to the experiments and results, as detailed in the following questions: (1) Regarding the FLOP reduction, it is not clear how the reduction in the number of computations is really achieved. In the algorithm presented in the supplementary material, I cannot see any reduction in the number of FLOPs. Although you have less filters, these filters must be applied s times, and you still added the overhead of the masks. Please explain how you can achieve the FLOP reduction in practice. (2) The memory and FLOP reductions reported in the experiments are just nominal, correct? You must also report the actual memory and execution time of each one of the methods. For instance, ShuffleNet paper reports the actual inference time for different variations of their method as well as the baselines. Without this info, it is difficult to judge the real effect of the proposed method. (3) How did you implement the proposed conv. nets for the ImageNet experiment? There is no information about the implementation in the paper. I see you used Matlab for the MNIST experiment. How easy is it to implement the prosed method using one of the mainstream DL libraries (TensorFlow, Pytorch, Caffe) and have the proposed FLOP reduction?   --- Given the author feedback, I am willing to increase my score from 5 to 6. The author feedback properly addressed just some of my questions. Fig.1 is still unclear to me and the execution time comparison with at least one previous model (ShuffleNet) is not reported.