Syllabus in PDF form - Current as of Sep 12, 2019.

Additional Resources on Are.na

Pratt Institute School of Information
INFO 697-03: Machine Learning
Fall 2019 Class Hours: Tuesdays, 6:30p – 9:20p

Course Description:

Machine learning is a rapidly growing field that develops algorithms for tasks such as data classification and prediction. These algorithms are programmed to operate and adjust themselves independently of human intervention (i.e., to learn), allowing data work to occur quickly and at scale. Machine learning is a key technology behind the automation across many social areas today, often branded AI.

This course offers an introduction to machine learning as a practical tool that we can use, and as a technological field with social implications. We will learn about key concepts in machine learning; survey a few key machine learning techniques, such as supervised methods for machine learning (regression and classification), which attempt to map data onto desired outputs, and unsupervised methods (clustering and association), which attempt to find structure within data itself; use openly available tools to implement these techniques on text and image data; learn how to assess the effectiveness of different techniques on particular datasets; and discuss basic issues that confront all machine learning methods.

Readings, class discussions, and hands-on sessions will be complemented by guest lectures (TBD) from machine learning practitioners. Students will be assessed via a final project developed throughout the course, in addition to the project proposal, presentation, class participation, and lab assignments.

This syllabus is a living document; expect it to evolve over the course of the semester. All changes will be communicated in class and the updated syllabus will be uploaded on LMS. Since this is a new course, your participation and input will be crucial in shaping it to your needs. Feel free to ask questions and give feedback or suggestions, in person or via email, as we move into the semester.

Course Goals:

The goals of this course are to:

  • introduce students to key concepts and some common techniques in machine learning, as well as openly available tools
  • help students to develop technical and critical thinking skills regarding machine learning
  • enable students to conduct a machine learning experiment and communicate the result of their project

Student Learning Outcomes:

By the end of the course, students will be able to:

  • describe different machine learning methods, including their limitations
  • select an appropriate machine learning method for a given use case
  • implement machine learning algorithms and assess their performance
  • execute a machine learning experiment using openly available tools
  • support the design of their experiment by discussing both the technical aspect and the topic’s significance

Course Schedule and Readings:

Week 1 - 8/27: Introduction

Class overview; Introduction to machine learning

Lab: Getting started with Python

Week 2 - 9/3: Machine learning, data, programming

Readings:

Supplemental Material:

Lab: Working with data in Python

Week 3 - 9/10: Classification

Due: Lab assignment #1 (submit by 9/9)

Readings:

Supplemental Material:

Lab: Introduction to scikit-learn; classifiers
Week 3 code notebook: google colab link

Week 4 - 9/17: Classification continued; regression; gradient descent

Readings:

Lab: Classifiers continued; regression; gradient descent

Week 5 - 9/24: Model, software, abstraction; data prep and features; evaluation

Due: Lab assignment #2 (submit by 9/23)

Readings:

Supplemental Material:

Lab: Features and parameters; model evaluation; data prep

Week 6 - 10/1: Project planning

In the first part of this class, students will share project ideas and give each other feedback.

Readings:

  • Example projects and resources: https://www.are.na/achim-koh/ml-design-ish (The linked list is a preliminary one and will be updated; also, the examples are meant primarily as inspirations, and do not indicate what the final project should look like)

Lab: Data prep continued

Week 7 - 10/8: NO CLASS - Midterm break

Week 8 - 10/15: Neural networks

Due: Project proposal (submit by 10/13)

Readings:

Supplemental Material:

Lab: Introduction to TensorFlow

Week 9 - 10/22: Neural networks continued; bias

Readings:

Lab: TensorFlow continued Guest Speaker: TBD

Week 10 - 10/29: Machine learning workflow + project workshop

Due: Lab assignment #3 (submit by 10/28) This will be a lab-focused session. We will learn about data pipelines, re-using your models, etc. Then, we will workshop your project with the main goal of verifying that you are on track with the class timeline.

Lab: Project workshop

Week 11 - 11/5: Machine learning tools; pre-trained models; automation/augmentation

Readings:

Supplemental Material:

Lab: Introduction to Runway ML Guest Speaker: TBD

Week 12 - 11/12: Machine learning ecosystem; corporate infrastructure

Readings:

Lab: Runway ML continued

Week 13 - 11/19: Unsupervised learning #1 This will be a lab-focused session that introduces unsupervised learning, which is a different ML paradigm than supervised learning (such as classification and regression).

Lab: Clustering algorithms

Week 14 - 11/26: Unsupervised learning #2

Due: Lab assignment #4 (submit by 11/25) This will be a lab-focused session that continues on the theme of unsupervised learning. Lab: Dimensionality reduction; visualization

Week 15 - 12/3: Labor and machine learning

Readings:

Supplemental Material:

Lab: TBD

Week 16 - 12/10: Presentations

Due: Final project (before class)

Textbooks, Readings and Materials:

All reading materials and course slides (if applicable) will be provided as hyperlinks or downloadable files through LMS.

Students will need a Google account for certain lab sessions. I believe the Pratt email address can serve this purpose, giving you access to Google Drive and Colab. In the latter part of the course, students will also need an account for Runway ML; details on how to sign up will be provided as needed.

Additional resources including technical tutorials, example projects and datasets, resources about critical discourse, and more are listed on this webpage, and will be updated as necessary: https://www.are.na/achim-koh/machine-learning-fall-2019

Projects, Papers and Assignments:

Readings and Discussions

Throughout the semester, we will survey diverse perspectives about machine learning as a socially situated technology. The assigned readings will be complemented by in-class discussions, typically at the beginning of the class.

Each week (except for weeks with no readings assigned; see course schedule), one or two students will act as motivators and write provocations on the readings of the week on the LMS forum. This will allow us to start the conversation in advance of class and carry it on afterwards. Please post your provocations by the end of the day Sunday before class.

A provocation will include a summary of key points in the readings, as well as questions / observations you would like to raise or make. The provocations will serve as starting points of the in-class discussion and some of them will scaffold towards the project proposal and final project.

Students who are not motivators for the week are expected to complete the readings before class, and contribute to the discussion in class and/or online by replying to the forum thread.

Lab assignments

The latter part of each class will be a lab session related to the topic of the week. Sometimes, the lab session will be accompanied by a lecture-style session before it; in other cases, we will move into the lab session right after discussions.

At the end of some lab sessions, I will give you take-home assignments (4 total). The assignments will scaffold towards the final project. For example, you will be asked to explain some machine learning terminology or write code that does a specific task. Details on how to submit the homework will be communicated in class. The homework assignments are due by the end of the day Monday before the next class.

I may also ask you to write down the amount of time you spent working on the assignment. This amount of time does NOT affect gradings in any way; I am asking in order to gauge whether I am giving you too much work or whether you are having trouble with some of the course material.

Project proposal

I will ask you to choose a topic that you would like to explore in your final project, and to submit a proposal by mid-semester.

On October 1, we will have an in-class activity where you will share your idea(s) and give peer feedback. Your 800- to 1200-word proposal is due by the end of the day Sunday, October 13, and should include:

  • A description of the data you intend to use
  • A description of the machine learning task you intend to perform
  • A tentative and brief survey of existing work on the topic
  • A discussion of the significance of your topic

We will discuss the proposal in further detail in the coming weeks.

Final project + presentation

Your final project is to run an experiment that applies a machine learning technique (such as classification, regression, clustering, etc) that we learned on a dataset of your choice. You can design the project as a complete piece on its own, or as a component of a larger project.

Projects are due before the final class in the form of a write-up detailing your work process; you also need to submit the resulting model / dataset and code used. We will dedicate our class on December 10 to presentations.

A detailed rubric for the project and presentation will be distributed separately.

Assessment and Grading

  • Lab assignments 20%
  • Participation (discussions and peer feedback) 20%
  • Project proposal 20%
  • Final project 30%
  • Presentation 10%

(thumbnail image via xkcd)