  Machine Learning (ML) is one of the most exciting and dynamic areas of modern
research and application. The purpose of this review is to provide an
introduction to the core concepts and tools of machine learning in a manner
easily understood and intuitive to physicists. The review begins by covering
fundamental concepts in ML and modern statistics such as the bias-variance
tradeoff, overfitting, regularization, generalization, and gradient descent
before moving on to more advanced topics in both supervised and unsupervised
learning. Topics covered in the review include ensemble models, deep learning
and neural networks, clustering and data visualization, energy-based models
(including MaxEnt models and Restricted Boltzmann Machines), and variational
methods. Throughout, we emphasize the many natural connections between ML and
statistical physics. A notable aspect of the review is the use of Python
Jupyter notebooks to introduce modern ML/statistical packages to readers using
physics-inspired datasets (the Ising Model and Monte-Carlo simulations of
supersymmetric decays of proton-proton collisions). We conclude with an
extended outlook discussing possible uses of machine learning for furthering
our understanding of the physical world as well as open problems in ML where
physicists may be able to contribute. (Notebooks are available at
https://physics.bu.edu/~pankajm/MLnotebooks.html )
