Structural model pruning is a prominent approach used for reducing the
computational cost of Convolutional Neural Networks (CNNs) before their
deployment on resource-constrained devices. Yet, the majority of proposed ideas
require a pretrained model before pruning, which is costly to secure. In this
paper, we propose a novel structural pruning approach to jointly learn the
weights and structurally prune architectures of CNN models. The core element of
our method is a Reinforcement Learning (RL) agent whose actions determine the
pruning ratios of the CNN model's layers, and the resulting model's accuracy
serves as its reward. We conduct the joint training and pruning by iteratively
training the model's weights and the agent's policy, and we regularize the
model's weights to align with the selected structure by the agent. The evolving
model's weights result in a dynamic reward function for the agent, which
prevents using prominent episodic RL methods with stationary environment
assumption for our purpose. We address this challenge by designing a mechanism
to model the complex changing dynamics of the reward function and provide a
representation of it to the RL agent. To do so, we take a learnable embedding
for each training epoch and employ a recurrent model to calculate a
representation of the changing environment. We train the recurrent model and
embeddings using a decoder model to reconstruct observed rewards. Such a design
empowers our agent to effectively leverage episodic observations along with the
environment representations to learn a proper policy to determine performant
sub-networks of the CNN model. Our extensive experiments on CIFAR-10 and
ImageNet using ResNets and MobileNets demonstrate the effectiveness of our
method.Comment: IEEE/CVF Conference on Computer Vision and Pattern Recognition, CVPR
202