Q: Which of these tricks bring new insight that I can apply outside of deep settings?

## General framing

How do we get generalisation from neural networks?

Here's one interesting perspective. Is it correct? (ZBHR17)

The effective capacity of neural networks is large enough for a brute-force memorization of the entire data set.

Even optimization on random labels remains easy. In fact, training time increases only by a small constant factor compared with training on the true labels.

Randomizing labels is solely a data transformation, leaving all other properties of the learning problem unchanged.

[…] Explicit regularization may improve generalization performance, but is neither necessary nor by itself sufficient for controlling generalization error. […]Appealing to linear models, we analyze how SGD acts as an implicit regularizer.

## Early stopping

e.g. Prec12. Don't keep training your model. The regularisation method that actually makes learning go faster, because you don't bother to do as much of it.

## Noise layers

### Dropout

A very popular of noise layer, multiplicative. Interesting because it has an interesting rationale in terms of model averaging and as a kind of implicit probabilistic learning.

### Input perturbation

Parametric noise layer. If you are hip you will take this further and do it by…

### Adversarial training

See adversarial learning.

## Regularisation penalties

L_1, L_2, dropout… Seems to be applied to weights, but rarely to actual neurons.

See Compressing neural networks for that latter use.

This is attractive but has an expensive hyperparameter to choose.

### Reversible learning

An elegant autodiff hack, where you find the gradient of the model (loss?) with respect to the model hyperparameters. Usually regularisation hyperparameters, although they don't require that. Proposed by Bengio, Baydin and Pearlmutter (Beng00, BaPe14) made feasible by Maclaurin et al (MaDA15). Differentiate your optimisation itself with respect to hyperparameters. Non-trivial to implement, though.

### Bayesian optimisation

Choose your regularisation hyperparameters optimally even without fancy reversible learning but designing optimal experiments to find the optimum loss. See Bayesian optimisation.

## Normalization

### Weight Normalization

Pragmatically, controlling for variability in your data can be very hard in, e.g. deep learning so you might normalise it by the batch variance. Salimans and Kingma (SaKi16) have a more satisfying approach to this.

We present weight normalization: a reparameterisation of the weight vectors in a neural network that decouples the length of those weight vectors from their direction. By reparameterizing the weights in this way we improve the conditioning of the optimization problem and we speed up convergence of stochastic gradient descent. Our reparameterisation is inspired by batch normalization but does not introduce any dependencies between the examples in a minibatch. This means that our method can also be applied successfully to recurrent models such as LSTMs and to noise-sensitive applications such as deep reinforcement learning or generative models, for which batch normalization is less well suited. Although our method is much simpler, it still provides much of the speed-up of full batch normalization. In addition, the computational overhead of our method is lower, permitting more optimization steps to be taken in the same amount of time.

They provide an open implemention for keras, Tensorflow and lasagne.

## Refs

- GaGh16: Yarin Gal, Zoubin Ghahramani (2016) A Theoretically Grounded Application of Dropout in Recurrent Neural Networks. In arXiv:1512.05287 [stat].
- ImTB16: Daniel Jiwoong Im, Michael Tao, Kristin Branson (2016) An empirical analysis of the optimization of deep network loss surfaces.
*ArXiv:1612.04010 [Cs]*. - BaPe14: Atilim Gunes Baydin, Barak A. Pearlmutter (2014) Automatic Differentiation of Algorithms for Machine Learning.
*ArXiv:1404.7456 [Cs, Stat]*. - LoCV17: Ekaterina Lobacheva, Nadezhda Chirkova, Dmitry Vetrov (2017) Bayesian Sparsification of Recurrent Neural Networks. In Workshop on Learning to Generate Natural Language.
- Bach14: Francis Bach (2014) Breaking the Curse of Dimensionality with Convex Neural Networks.
*ArXiv:1412.8690 [Cs, Math, Stat]*. - Pere16: Carlos E. Perez (2016, November 6) Deep Learning: The Unreasonable Effectiveness of Randomness. Medium.
- Nøkl16: Arild Nøkland (2016) Direct Feedback Alignment Provides Learning in Deep Neural Networks. In Advances In Neural Information Processing Systems.
- XiLS16: Bo Xie, Yingyu Liang, Le Song (2016) Diversity Leads to Generalization in Neural Networks.
*ArXiv:1611.03131 [Cs, Stat]*. - PaDG16: Wei Pan, Hao Dong, Yike Guo (2016) DropNeuron: Simplifying the Structure of Deep Neural Networks.
*ArXiv:1606.07326 [Cs, Stat]*. - SHKS14: Nitish Srivastava, Geoffrey Hinton, Alex Krizhevsky, Ilya Sutskever, Ruslan Salakhutdinov (2014) Dropout: A simple way to prevent neural networks from overfitting.
*The Journal of Machine Learning Research*, 15(1), 1929–1958. - Prec12: Lutz Prechelt (2012) Early Stopping — But When? In Neural Networks: Tricks of the Trade (pp. 53–67). Springer Berlin Heidelberg DOI
- KaKB17: Kenji Kawaguchi, Leslie Pack Kaelbling, Yoshua Bengio (2017) Generalization in Deep Learning.
*ArXiv:1710.05468 [Cs, Stat]*. - SrBa16: Suraj Srinivas, R. Venkatesh Babu (2016) Generalized Dropout.
*ArXiv:1611.06791 [Cs]*. - MaDA15: Dougal Maclaurin, David K. Duvenaud, Ryan P. Adams (2015) Gradient-based Hyperparameter Optimization through Reversible Learning. In ICML (pp. 2113–2122).
- Beng00: Yoshua Bengio (2000) Gradient-Based Optimization of Hyperparameters.
*Neural Computation*, 12(8), 1889–1900. DOI - SCHU16: Simone Scardapane, Danilo Comminiello, Amir Hussain, Aurelio Uncini (2016) Group Sparse Regularization for Deep Neural Networks.
*ArXiv:1607.00485 [Cs, Stat]*. - BaSL16: Pierre Baldi, Peter Sadowski, Zhiqin Lu (2016) Learning in the Machine: Random Backpropagation and the Learning Channel.
*ArXiv:1612.02734 [Cs]*. - BCCC17: Mohammad Taha Bahadori, Krzysztof Chalupka, Edward Choi, Robert Chen, Walter F. Stewart, Jimeng Sun (2017) Neural Causal Regularization under the Independence of Mechanisms Assumption.
*ArXiv:1702.02604 [Cs, Stat]*. - Grav11: Alex Graves (2011) Practical Variational Inference for Neural Networks. In Proceedings of the 24th International Conference on Neural Information Processing Systems (pp. 2348–2356). USA: Curran Associates Inc.
- DaYO16: Sakyasingha Dasgupta, Takayuki Yoshizumi, Takayuki Osogami (2016) Regularized Dynamic Boltzmann Machine with Delay Pruning for Unsupervised Learning of Temporal Sequences.
*ArXiv:1610.01989 [Cs, Stat]*. - KUMH17: Günter Klambauer, Thomas Unterthiner, Andreas Mayr, Sepp Hochreiter (2017) Self-Normalizing Neural Networks.
*ArXiv:1706.02515 [Cs, Stat]*. - GoRS17: Noah Golowich, Alexander Rakhlin, Ohad Shamir (2017) Size-Independent Sample Complexity of Neural Networks.
*ArXiv:1712.06541 [Cs, Stat]*. - HaRS15: Moritz Hardt, Benjamin Recht, Yoram Singer (2015) Train faster, generalize better: Stability of stochastic gradient descent.
*ArXiv:1509.01240 [Cs, Math, Stat]*. - NEPB16: Nguyen Xuan Vinh, Sarah Erfani, Sakrapee Paisitkriangkrai, James Bailey, Christopher Leckie, Kotagiri Ramamohanarao (2016) Training robust models using Random Projection. (pp. 531–536). IEEE DOI
- ZBHR17: Chiyuan Zhang, Samy Bengio, Moritz Hardt, Benjamin Recht, Oriol Vinyals (2017) Understanding deep learning requires rethinking generalization. In Proceedings of ICLR.
- MoAV17: Dmitry Molchanov, Arsenii Ashukha, Dmitry Vetrov (2017) Variational Dropout Sparsifies Deep Neural Networks. In Proceedings of ICML.
- SaKi16: Tim Salimans, Diederik P Kingma (2016) Weight Normalization: A Simple reparameterisation to Accelerate Training of Deep Neural Networks. In Advances in Neural Information Processing Systems 29 (pp. 901–901). Curran Associates, Inc.