This is an introductory grad course on machine learning. Machine learning is a set of techniques that allow machines to learn from data and experience, rather than requiring humans to specify the desired behavior by hand. Over the past two decades, machine learning techniques have become increasingly central both in AI as an academic field, and in the technology industry. This course provides a broad introduction to some of the most commonly used ML algorithms.
The first half of the course focuses on supervised learning. We begin with nearest neighbours, decision trees, and ensembles. Then we introduce parametric models, including linear regression, logistic and softmax regression, and neural networks. We then move on to unsupervised learning, focusing in particular on probabilistic models, but also principal components analysis and K-means. Finally, we cover the basics of reinforcement learning.
We will have a single section, taught on Fridays 1-3 PM EST. Lectures will be delivered online synchronously and students will have the opportunity to ask questions and participate. Recordings for those unable to attend will be posted internally on MyMedia. Tutorials and Q/A office hours will be delivered online synchronously. Tutorials will be held at Tuesdays at 10am and 10pm (also recorded and uploaded) so that it'll work for every time zone. The same material will be presented at both tutorial times.
Lecture and tutorials will be held online. A link will be provided through Quercus.
Lecture Time | Tutorial Time | Lecture/Tutorial "Room" | Start | End |
Fridays, 1-3 PM EST | Tuesdays 10am and 10pm | Online, find details on Quercus | Jan. 15 | Apr. 9 |
Prerequisites (an undergrad course in each is sufficient):
Lateness. Homeworks will be accepted up to 3 days late, but 10% will be deducted for each day late, rounded up to the nearest day.
Remarks. Remark requests for homeworks should be made through MarkUS, and will be considered by the same TA who marked the assignment. The deadline for requesting a remark is typically one week after the marked assignments are returned. Remark requests for exams will be handled by the instructor; details to be announced later.
The easiest option is probably to install everything yourself on your own machine.
If you don't already have python 3, install it.
We recommend some version of Anaconda (Miniconda, a nice lightweight conda, is probably your best bet). You can also install python directly if you know how.
Optionally, create a virtual environment for this class and step into it. If you have a conda distribution run the following commands:
conda create --name csc2515 source activate csc2515
Use pip
to install the required packages
pip install scipy numpy autograd matplotlib jupyter sklearn
All the required packages are already installed on the Teaching Labs machines. You access those machines remotely using SSH. There's a tool called "screen" that allows you to detach from your ssh session so that you can resume the session later even if after shutting down your machine, so that you can leave the job running overnight. Here is a useful script that you can put under your root directory and (you need to name the script as .screenrc) to make your screen more powerful. This is a detailed tutorial on how to use screen.