Deep learning algorithms nowadays outperform humans in image classification tasks, beat them at challenging games such as Go or Poker, respond to spoken questions, and might soon drive autonomous cars. These achievements were made possible by faster hardware and by using the parallel processing capabilities of modern graphical processing units (GPUs), but at least equally important were developments in software.
Deep learning is the application of many-layered (deep) artificial neural networks. We will start by discussing the essential building blocks, such as activation functions, loss functions, back propagation and gradient descent using different optimiser algorithms. A tour of different deep learning approaches used for classification tasks in particle physics provides an overview of common network architectures. We will address strategies how networks can be trained directly on data to rely less on computer simulations and how one can achieve a deeper understanding of the decision process inside the network. Useful concepts such as generative adversarial networks and auto encoders are discussed. Finally, we will look at software libraries for implementing deep neural networks.