Artificial Neural Networks and Deep Learning
|Semester & Location:||
Spring 2020 - DIS Copenhagen
|Type & Credits:||
Core Course - 3 credits
Computer Science, Mathematics, Design
Ulf Aslak and Lucian Leahu
Iben de Neergaard, firstname.lastname@example.org
|Time & Place:||
Artificial Neural Networks are programs that write themselves when given an objective, some data, and abundant computing power. Recently, these programs have brought about a wide array of impressive innovations, such as self-driving cars, face recognition, and human-like speech generators.
This course offers you an introduction to Artificial Neural Networks and Deep Learning. With focus on both theory and practice, we cover models for various applications, how they are trained and validated, and how they can be deployed in the wild.
Classes will be a mix of short lectures and tutorials, hands-on problem solving, and project work in groups.
Upon successfully completing the course, the student will be able to:
- Use the backpropagation algorithm to calculate weight gradients in a feed forward neural network by hand
- Understand the motivation for different neural network architectures and select the appropriate architecture for a given problem
- Write a neural network from scratch in using PyTorch in Python, train it untill convergence and test its performance given a dataset.
- Understand how neural networks fit into the more general framework of machine learning, and what their limitations and advantages are in this context.
- Python programming
- Supervised machine learning
- Logistic regression and neural network fundamentals
- Gradient descent and backpropagation
- Regularization and the vanishing gradient problem
- Classification (feed forward NNs)
- Image recognition (convolutional NNs)
- Sequence modelling (recurrent NNs)
- Manipulating data (auto encoders and adversarial NNs)
- Intro to machine learning and neural networks: supervised learning, logistic regression for classification, basic neural network structure, simple examples and motivation for deep networks.
- Neural networks: forward propagation, cost functions, error backpropagation, training by gradient descent, bias/variance and under/overfitting, regularization.
- 1 week travel (core course week).
- Convolutional Neural Networks.
- Recurrent Neural Networks.
- Autoencoders and adversarial networks.
- Final project
Most of the learning will be based on parts of the following books:
- Goodfellow et al., Deep Learning.
- Nielsen, Neural Networks and Deep Learning
Additional possible sources include blog posts, videos available online, and scientific papers.
Expectations of the Students
Students are expected to reach the preparation goal leading up to each session. Students who have little or no experience coding in Python should either follow a Python tutorial before the course starts, or prepare to invest some hours getting up to speed with the language once we start. Students should have a working laptop computer. It is advised that each machine has a least 4 GB of RAM and a reasonable processor (if it’s bought after 2012 you should be fine).
Ulf Aslak holds a PhD in Social Data Science, from the Copenhagen Centre for Social Data Science, University of Copenhagen, and has bachelor and masters degrees in Physics and Digital Media Engineering from the Technical University of Denmark (DTU). He is a visiting researcher at DTU, and has worked at the Uri Alon Lab in Israel and the Brockmann Lab in Berlin. He has experience working as a consultant and a Data Scientist at multiple private companies including Trustpilot, Alfa Laval, Peergrade, and Sterlitech.
Lucian Leahu, PhD in Computer Science from Cornell University (2012). Assistant professor at ITU Copenhagen since 2015. ERCIM Postdoctoral Fellow at the Swedish Institute of Computer Science (2012-2013) and Project Leader in the Media Technology and Interaction Design Department at the Royal Institute of Technology (2014). With DIS since 2019.
Approach to Teaching
The course is designed around the principle of constructive alignment. The two major components in the course—the assignments and the final project—implement this principle by stating clear outcome goals of every activity and the course as a whole.
Assignments: Leading up to each session, students are given a "preparation goal" and a suggested list of materials they can use to reach it. Sessions start with a short lecture (less than 1 hour) that introduces the topic of the day, and then students work through a set of technical exercises. The students are required to hand in two assignments throughout the course (40% of their final grade, 20% each), which are composed of selected problems from the exercises they have solved in class. This gives the student a clear outcome goal for each session: "show up prepared and complete the exercises". It gives incentive to prepare and work focussed.
Final project: From the beginning of the course the students are aware that an outcome of the course is a project that, if done well, can add value to their professional portfolio. The project is a small study on some popular topic of their own choosing that they can investigate with data they have scraped or downloaded from the Internet. They submit the project in two parts: First, each team must compose a proposal video which demonstrates that they have made a plan for their project and are able to hypothesize about the outcomes. Second, after they have completed their project they must communicate the results in the popular format of a blog post. The proposal video is a fun exercise that serves as a platform for sharing ideas between groups (we view them all in class) but it also forces them to start with a very comprehensive idea of the outcome in mind.
Another small but important component of the teaching approach is peer evaluation. Each student is tasked with reviewing 2 assignments after handing in their own (with or without a group). The reviewing process is anonymous. Using peer evaluations, each hand in gets a lot of varied feedback, and lets students reflect on their own work by reviewing how others solved the same problems. High quality feedback is incentivized by having each reviewee rate their received feedback such as to produce a feedback quality score for every reviewer which, by a small fraction, influences their final grade.
Expectations of the Students
Students are expected to reach the preparation goal leading up to each session. Students who have little or no experience coding in Python should either follow a Python tutorial before the course starts, or prepare to invest some hours getting up to speed with the language once we start. Students should have a working laptop computer. It is advised that each machine has a least 4 GB of RAM and a reasonable processor (if it’s bought after 2012 you should be fine). The Unix operating system is prefered (OSX and Linux), but not a necessity.
Assignments and Evaluation
During the course you will hand in two assignments containing selected exercises solved in class. Furthermore, you will complete a larger project that uses tools which have been taught in the class. An acceptable project will cover e.g. data scraping and analysis. You will be allowed to define your own project, but you can also get assistance from the teacher.
Both project and assignments are group efforts. The teacher will rate all the assignments, but you will also participate using the peer evaluation system Peergrade.io, where each handin is double-blind peer-reviewed by 3-4 students which, together with the teacher’s evaluation composes indicators towards the final grade. This creates more and fairer feedback for each group as well as evaluation that is less sensitive to mistakes. Students’ overall feedback quality is taken into account during grade evaluation.
During the programming projects, you are allowed to consult freely with any of the other students and the instructor. Contributions from other students, however, must be acknowledged with citations in your final report, as required by academic standards. Contributions to your presentations must similarly be acknowledged. Needless to say, the right to consult does not include the right to copy — programs, papers, and presentations must be your own original work.
When assigning the final grades, your efforts will weigh as follows:
- Participation: 15% (includes class/exercise/project behavior that is beneficial to the learning of others)
- Mandatory assignments: 40%
- Final project: 35% (10% proposal video, 25% project report and presentation)
- Overall peer feedback quality: 10%
Please make sure to read the Academic Regulations on the DIS website. There you will find regulations on:
The syllabus page shows a table-oriented view of the course schedule, and the basics of course grading. You can add any other comments, notes, or thoughts you have about the course structure, course policies or anything else.
To add some comments, click the "Edit" link at the top.