Optimizing Neural Networks with Kronecker-Factored Approximate Curvature

Abstract

We propose an efficient method for approximating natural gradient descent in neural networks which we call Kronecker-factored Approximate Curvature (K-FAC). K-FAC is based on an efficiently invertible approximation of a neural network’s Fisher information matrix which is neither diagonal nor low-rank, and in some cases is completely non-sparse. It is derived by approximating various large blocks of the Fisher (corresponding to entire layers) as being the Kronecker product of two much smaller matrices. While only several times more expensive to compute than the plain stochastic gradient, the updates produced by K-FAC make much more progress optimizing the objective, which results in an algorithm that can be much faster than stochastic gradient descent with momentum in practice. And unlike some previously proposed approximate natural-gradient/Newton methods which use high-quality non-diagonal curvature matrices (such as Hessian-free optimization), K-FAC works very well in highly stochastic optimization regimes. This is because the cost of storing and inverting K-FAC’s approximation to the curvature matrix does not depend on the amount of data used to estimate it, which is a feature typically associated only with diagonal or low-rank approximations to the curvature matrix.

Cite

Text

Martens and Grosse. "Optimizing Neural Networks with Kronecker-Factored Approximate Curvature." International Conference on Machine Learning, 2015.

Markdown

[Martens and Grosse. "Optimizing Neural Networks with Kronecker-Factored Approximate Curvature." International Conference on Machine Learning, 2015.](https://mlanthology.org/icml/2015/martens2015icml-optimizing/)

BibTeX

@inproceedings{martens2015icml-optimizing,
  title     = {{Optimizing Neural Networks with Kronecker-Factored Approximate Curvature}},
  author    = {Martens, James and Grosse, Roger},
  booktitle = {International Conference on Machine Learning},
  year      = {2015},
  pages     = {2408-2417},
  volume    = {37},
  url       = {https://mlanthology.org/icml/2015/martens2015icml-optimizing/}
}