Course Description

The goal of this course is to provide graduate students in Computer Science with a theoretical and practical foundation in Deep Learning, targeting those interested in conducting research in this area. This course presents the main neural network techniques in a comprehensive manner, aiming to enable students to build a vast repertoire of techniques, from classical architectures like MLPs to more modern architectures such as Convolutional Networks and Transformers. This course serves as a solid starting point for applied studies in related areas, such as Robotics, Computer Vision, Natural Language Processing, among others.

Prerequisites

  • INF213: Data Structures
  • MAT135: Analytic Geometry and Linear Algebra
  • MAT140: Calculus I

It is expected that students are comfortable with (1) programming in Python, (2) fundamental operations with vectors and matrices, and (3) derivatives of composite and multivariable functions. Additionally, it is expected that students are familiar with fundamental data structures, as well as the classical algorithms associated with them.

Content

  • ⁠Introduction
  • ⁠Supervised Learning
  • ⁠Shallow Neural Networks
  • ⁠Deep Neural Networks
  • ⁠Improving Performance of Neural Networks
  • ⁠Recurrent Neural Networks
  • ⁠Convolutional Neural Networks
  • ⁠Attention Mechanisms
  • ⁠Generative Models

Late Policy

  • Programming Assignments and Final Project:
    • 15% penalty for each day of delay
    • Each delay can be for a maximum of 2 days
  • Quizzes:
    • If you need to miss a quiz, notify the instructor in advance so that another date can be scheduled.