  Neural networks are often over-parameterized and hence benefit from
aggressive regularization. Conventional regularization methods, such as Dropout
or weight decay, do not leverage the structures of the network's inputs and
hidden states. As a result, these conventional methods are less effective than
methods that leverage the structures, such as SpatialDropout and DropBlock,
which randomly drop the values at certain contiguous areas in the hidden states
and setting them to zero. Although the locations of dropout areas random, the
patterns of SpatialDropout and DropBlock are manually designed and fixed. Here
we propose to learn the dropout patterns. In our method, a controller learns to
generate a dropout pattern at every channel and layer of a target network, such
as a ConvNet or a Transformer. The target network is then trained with the
dropout pattern, and its resulting validation performance is used as a signal
for the controller to learn from. We show that this method works well for both
image recognition on CIFAR-10 and ImageNet, as well as language modeling on
Penn Treebank and WikiText-2. The learned dropout patterns also transfers to
different tasks and datasets, such as from language model on Penn Treebank to
Engligh-French translation on WMT 2014. Our code will be available.
