Introduction to Neural Networks


Winter 2021
Psychology 9221B, Applied Mathematics 9624B/4264B
Instructors: Lyle Muller (http://mullerlab.ca) and Marieke Mur (http://murlab.org)
Office Hours: last 30 minutes of class time

Times and location: Monday 11:30-1:30 PM (lecture), Thursday 12:30-2:30 PM (programming lab), Zoom

Description

This one-semester graduate course will provide you with an introduction to neural networks. You will learn the fundamentals of neural computation and explore how networks of neurons support brain information processing. You will be familiarised with mathematical models, programming, and machine learning techniques. You will gain an in-depth knowledge of neural computations through weekly programming assignments.

Prerequisites

This course is open to graduate students and senior undergraduates. There are no formal prerequisites for the course; however, you are expected to have elementary knowledge of linear algebra (vectors, matrices, matrix multiplication), calculus (ODE, partial differentiation, and numerical solutions), and programming (functions, variables, loops). Please take the ​online self-assessment​ prior to the start of the course to help you determine your level of background knowledge on the elementary topics listed above. If you do not have the background knowledge on these topics but are willing to learn, we can provide authorisation to enroll in the course on a case-by-case basis.

Coursework

This course will consist of a weekly lecture (Mondays), programming lab (Thursdays), and problem set (due Wednesdays). We will assign readings to complete after each lecture. Assigned readings will come from Theoretical Neuroscience by Dayan and Abbott, Deep Learning by Goodfellow, Bengio, and Courville, and primary scientific articles. There will be two longer programming projects during the course with a presentation of results in class.


Grading

The overall course grade will be composed of 8 assignments (50% total) and two projects (25% each). Assignments need to be completed independently. The projects will be performed individually or in small groups. The project involves implementing a model of a neural system and presenting the results in class.


Course Schedule


Software

Throughout the course, we will use Python (Anaconda). Simulations and training will be done in Brian and PyTorch. For code editing, we recommend Sublime Text 2. Each of these environments needs to be active on your machine. Please see the Installation section of Lab 1 for instructions, which should be completed before the first programming lab. We will reserve some class time to address issues that arise. If you need access to a machine for coursework, please contact the instructors as early as possible.


Online Code of Conduct

This course is being taught online due to the ongoing Covid-19 pandemic. We expect everyone to work together to create a positive and inclusive online learning environment. At a minimum, students should follow Western's Code of Online Conduct. The instructors encourage students to communicate any problems that come up during this course.