Deep learning is a powerful and relatively new branch of machine learning. In recent years it has been successfully applied to some of the most challenging problems in the broad field of AI, such as recognizing objects in an image, converting speech to text or playing games. In many such tasks, the state of the art performance today is attained by deep-learning algorithms, in some cases surpassing human-level performance.
This course will focus on the theory and algorithms behind deep learning, as well as on hardware and software techniques that allow efficient training of deep learning algorithms. It is a graduate-level course which provides both the necessary theoretical background and the hands-on experience required to be an effective deep learning practitioner, or to start on the path towards deep learning research.
At the end of the course, the student will:
- Understand the key notions of deep learning, such as neural networks, learning regimes, optimization algorithms and training methodologies.
- Be able to apply deep learning algorithms to real-world data and problems.
- Know how to effectively use python and pytorch to implement models and algorithms from the recent literature.
- Perform a small research project using the studied notions and techniques.