EntryPrune: Neural Network Feature Selection using First Impressions
Felix Zimmer, Patrik Okanovic, Torsten Hoefler
TL;DR
EntryPrune tackles supervised feature selection in neural networks by enforcing a dynamically sparse input layer and ranking candidate features via entry-based pruning. It introduces two coupled processes—continuous weight optimization and discrete, history-dependent mask updates—alongside random regrowth and a flexible variant (EntryPrune flex) that adapts the input size during training, guided by hyperparameters $K$ and $c_{\text{ratio}}$. Empirically, EntryPrune and EntryPrune flex outperform state-of-the-art baselines on long datasets and remain competitive on wide datasets, with lower runtimes than several competing methods. While effective in dense-backbone settings, the approach is not compatible with weight-sharing first layers (e.g., CNNs, Vision Transformers), limiting applicability to those architectures; the code is publicly available.
Abstract
There is an ongoing effort to develop feature selection algorithms to improve interpretability, reduce computational resources, and minimize overfitting in predictive models. Neural networks stand out as architectures on which to build feature selection methods, and recently, neuron pruning and regrowth have emerged from the sparse neural network literature as promising new tools. We introduce EntryPrune, a novel supervised feature selection algorithm using a dense neural network with a dynamic sparse input layer. It employs entry-based pruning, a novel approach that compares neurons based on their relative change induced when they have entered the network. Extensive experiments on 13 different datasets show that our approach generally outperforms the current state-of-the-art methods, and in particular improves the average accuracy on low-dimensional datasets. Furthermore, we show that EntryPruning surpasses traditional techniques such as magnitude pruning within the EntryPrune framework and that EntryPrune achieves lower runtime than competing approaches. Our code is available at https://github.com/flxzimmer/entryprune.
