Topic outline

  • This course is fully online. To see all materials login with aalto credentials!

    Slack invite link.  First meeting is on Wed 25.10 10am at Zoom.
    Contact person - Shamsi Abdurakhmanova shamsiiat.abdurakhmanova@aalto.fi

    This introductory course is intended for wide audience and aims to introduce Deep Learning as a field of computer science with theoretical and experimental frameworks, rather than “black box” machine which magically solves the problems. 

    In this course, you will learn how to use state-of-the-art deep learning methods with the programming language Python. We will discuss key concepts of deep learning, such as artificial neural networks, data augmentation and transfer learning in a hands-on fashion. By the end of the course you will be familiar with main principles of deep learning and will be able to build simple neural networks and apply them to your own specific task.

    The course material is in the form of Jupyter notebooks that contain code snippets along with their explanations. We will be mainly using Keras python library to build our models. The grading is based on coding assignments.

    After successfully completing the course, the student:

    • understands how ANNs can be used for learning and evaluating high-dimensional non-linear models
    • understands the basic principle of gradient descent
    • is able to build, and train ANNs using the Python package Keras
    • is able to diagnose the learning process by comparing training with validation loss
    • is able to use data augmentation to synthetically enlarge the training set
    • is able to implement transfer learning by fine-tuning a pre-trained deep net

    Course is divided into 5 topics/ notebooks:

    1. Artificial neural networks
    2. Gradient descent algorithm
    3. Convolutional neural networks
    4. Regularization 
    5. Transfer Learning

    Plus extra notebooks:

    1. Generative adversarial networks
    2. NLP basics
    3. Recurrent networks (? still under preparation)

    Materials:

    • Lectures and jupyter notebooks
    • Additional reading: F. Chollet, “Deep Learning with Python” or A. Géron, “Hands-on Machine Learning with Scikit-Learn, Keras, and TensorFlow “. With your aalto email you can get access to ebooks via O'Reilly website.

    Workload of this course:

    2 credits approx. 60 hours of work

    • Notebooks 5 
    • Reading books/ extra materials 

    Grading: Pass-Fail.

    Difficulty level: beginner - intermediate

    Prerequisite courses (recommended):

    This course is intended as a follow-up for CS-EJ3211 Machine Learning with Python and/or CS-C3240 - Machine Learning.

    General prerequisites (recommended): 

    • High-school math (functions, derivatives, vectors)
    • Basic Python programming (variables, functions, loops)

    Advanced students (with knowledge of linear algebra, probability theory, optimization methods) advised to take CS-E4890 - Deep Learning (spring 2024).