Course Overview

Large datasets pose difficulties across the machine learning pipeline. They are difficult to visualize and introduce computational, storage, and communication bottlenecks during data preprocessing and model training. Moreover, high capacity models often used in conjunction with large datasets introduce additional computational and storage hurdles during model training and inference. This course is intended to provide a student with the mathematical, algorithmic, and practical knowledge of issues involving learning with large datasets. Among the topics considered are: data cleaning, visualization, and pre-processing at scale; principles of parallel and distributed computing for machine learning; techniques for scalable deep learning; analysis of programs in terms of memory, computation, and (for parallel methods) communication complexity; and methods for low-latency inference.

Prerequisites

Students are required to have taken a CMU introductory machine learning course (10-301, 10-315, 10-601, 10-701, or 10-715). A strong background in programming will also be necessary; suggested prerequisites include 15-210, 15-214, or equivalent. Students are expected to be familiar with Python or learn it during the course.

Textbooks

There will be no required textbooks, though we may suggest additional reading in the schedule below.

Course Components

The requirements of this course consist of participating in lectures, homework assignments, and two exams. The grading breakdown is the following:

Exams

You are required to attend all exams. The exams will be given during class. Please plan your travel accordingly as we will not be able accommodate individual travel needs (e.g. by offering the exam early).

If you have an unavoidable conflict with an exam (e.g. an exam in another course), notify us by filling out the exam conflict form which will be released on Piazza a few weeks before the exam.

Homework

The homeworks will be divided into two components: programming and written. The programming assignments will ask you to implement ML algorithms from scratch; they emphasize understanding of real-world applications of ML, building end-to-end systems, and experimental design. The written assignments will focus on core concepts, “on-paper” implementations of classic learning algorithms, derivations, and understanding of theory.

Mini-Project

This version of the course will contain a mini-project, details of which will be announced later in the course.

Technologies

Piazza

We will use Piazza for class discussions. Please go to this Piazza website to join the course forum (note: you must use a cmu.edu email account to join). We strongly encourage students to post on this forum rather than emailing the course staff directly (this will be more efficient for both students and staff). Students should use Piazza to:

The course Academic Integrity Policy must be followed on the message boards at all times. Do not post or request homework solutions! Also, please be polite.

Gradescope

We use Gradescope to collect PDF submissions of open-ended questions on the homework (e.g. mathematical derivations, plots, short answers). The course staff will manually grade your submission, and you’ll receive personalized feedback explaining your final marks.

You will also submit your code for programming questions on the homework to Gradescope. After uploading your code, our grading scripts will autograde your assignment by running your program on a VM. This provides you with immediate feedback on the performance of your submission.

Regrade Requests

If you believe an error was made during manual grading, you’ll be able to submit a regrade request on Gradescope. For each homework, regrade requests will be open for only 1 week after the grades have been published. This is to encourage you to check the feedback you’ve received early!

Course Staff

Teaching Assistants

Yicheng Bao
OH: Fridays 11:00am-12:00pm

Xi Chen
OH: Mondays 5:30pm-6:30pm

Shuchang Dong
OH: Fridays 10:00am-11:00am

Shengyuan Hu
OH: Tuesdays 3:00pm-4:00pm

Keshav Narayan
OH: Saturday 11:30am-12:30pm

Aramya Trivedi
OH: Tuesdays 4:00pm-5:00pm

Omkar Vichare
OH: Wednesdays 3:00pm-4:00pm

Zoe Wang
OH: Wednesdays 12:30pm-1:30pm

Muqiao Yang
OH: Thursdays 3:00pm-4:00pm




Schedule (Subject to Change)

Date Lecture Resources Announcements
Data Pre-Processing and Visualization, Distributed Computing
Aug 31 Introduction (slides, video) Homework 1 Released
Sept 2 Distributed Computing, Spark (slides, video)
Sept 3 Recitation 1: Intro to Databricks and Pyspark (slides, video) Lab 1
Sept 7 Visualization, PCA (slides, video) Tutorial on PCA
JL Theorem
Sept 9 Nonlinear Dimensionality Reduction (slides, video) t-SNE
Sept 10 Recitation 2: Linear Algebra Review (slides, annotated, video) Lab 2
Basics of Large-Scale / Distributed Machine Learning
Sept 14 Distributed Linear Regression, part I (slides, video) Homework 1 Due 1:00pm, Homework 2 Released
Sept 16 Distributed Linear Regression, part II (slides, video)
Sept 17 Recitation 3: HW1 Solutions (video)
Sept 21 Kernel Approximations (slides, video)
Guest lecturer: Ameet Talwalkar
Sept 23 Logistic Regression, Hashing (slides, video) Hash kernels, I
Hash kernels, II
Sept 24 Recitation 4: Probability Recap (slides, video)
Sept 28 Randomized Algorithms (slides, video) Count-min sketch
LSH
Homework 2 Due 1:00pm, Homework 3 Released
Sept 30 Distributed Trees (slides, video)
Oct 1 Recitation 5: HW2 Solutions (video)
Oct 5 Cloud Computing (slides, video) EMR Demo
Oct 7 Practice Exam Homework 3 Due 1:00pm
Oct 8 Recitation 6: HW3 and Practice Exam 1 Solutions (video)
Oct 12 Exam I Homework 4 Released
Oct 14 Midsemester Break (No Classes)
Oct 15 Recitation 7: Homework 4 Setup Demonstration (video)
Scalable Deep Learning: Training, Tuning, and Inference
Oct 19 Deep Learning, Autodiff (slides, video)
Oct 21 DL Frameworks, Hardware (slides, video)
Oct 22 Recitation 8: Tensorflow Tutorial, Exam 1 Short Answer Sols (video) TF Tutorial
Oct 26 Large-Scale Optimization (slides, video)
Oct 28 Optimization for DL (slides, video) Homework 5 Released, Mini-Projects Released
Oct 29 Recitation 9: Optimization and Learning Rates (Slides, video) Lab
Nov 2 Parallel/Distributed DL (slides, video) Homework 4 Due
Nov 4 Hyperparameter Tuning (slides, video)
Nov 5 Recitation 10: HW4 Solutions (video)
Nov 9 Inference, Model Compression (slides, video) Homework 5 Due, Mini-Project Survey Due
Nov 11 Neural Architecture Search (slides, video)
Nov 12 Recitation 11: HW5 Solutions (video)
Advanced Topics
Nov 16 Guest lecture: Jason Knight (OctoML) (slides, video)
Nov 18 Guest lecture: Sara Hooker (Google Brain) (slides, video)
Nov 23 Federated Learning (slides, video) Mini-Projects Due
Nov 25 No Class (Thanksgiving)
Nov 30 Course Summary (slides)
Dec 2 Exam II


General Policies

Late Homework Policy

You receive 4 total grace days for use on any homework assignment. We will automatically keep a tally of these grace days for you; they will be applied greedily. No assignment will be accepted more than 1 days after the deadline without written permission from Daniel, or Virginia. You may not use more than 1 grace day on any single assignment.

All homework submissions are electronic (see Technologies section below). As such, lateness will be determined by the latest timestamp of any part of your submission. For example, suppose the homework requires submissions to both Gradescope Written and Programming– if you submit your Written on time but your Programming 1 minute late, your entire homework will be penalized for the full 24-hour period.

Extensions

In general, we do not grant extensions on assignments. There are several exceptions: For any of the above situations, you may request an extension by emailing Daniel Bird (dpbird@andrew.cmu.edu). The email should be sent as soon as you are aware of the conflict and at least 5 days prior to the deadline. In the case of an emergency, no notice is needed.

Audit Policy

Official auditing of the course (i.e. taking the course for an “Audit” grade) is not permitted this semester.

Unofficial auditing of the course (i.e. watching the lectures online or attending them in person) is welcome and permitted without prior approval. Unofficial auditors will not be given access to course materials such as homework assignments and exams.

Pass/Fail Policy

Pass/Fail is allowed in this class, no permission is required from the course staff. The grade for the Pass cutoff will depend on your program. Be sure to check with your program / department as to whether you can count a Pass/Fail course towards your degree requirements.

Accommodating Remote Learning Students

Lectures in this class will be livestreamed and recorded for students who are required to this course remotely, the livestreams and recordings can be found on our course Canvas and linked on our website, students must be officially enrolled to view these. We strongly encourage you to watch the class live if you are able so that you can participate by asking questions in the chat, which will be asked to the instructor via a member of course staff, while also ensuring that you keep up with the weekly Canvas quizzes. We plan to host some office hours online so that students who are remote can still benefit from these, more details will be posted to Piazza shortly after the semester starts. We also encourage you to post your questions on Piazza which is frequently monitored by the course staff. Homework submissions, Canvas quizzes and Exams can all be completed online

Accommodations for Students with Disabilities

If you have a disability and have an accommodations letter from the Disability Resources office, I encourage you to discuss your accommodations and needs with me as early in the semester as possible. I will work with you to ensure that accommodations are provided as appropriate. If you suspect that you may have a disability and would benefit from accommodations but are not yet registered with the Office of Disability Resources, I encourage you to contact them at access@andrew.cmu.edu.

Academic Integrity Policies

Read this Carefully

Collaboration among Students

Previously Used Assignments

Some of the homework assignments used in this class may have been used in prior versions of this class, or in classes at other institutions, or elsewhere. Solutions to them may be, or may have been, available online, or from other people or sources. It is explicitly forbidden to use any such sources, or to consult people who have solved these problems before. It is explicitly forbidden to search for these problems or their solutions on the internet. You must solve the homework assignments completely on your own. We will be actively monitoring your compliance. Collaboration with other students who are currently taking the class is allowed, but only under the conditions stated above.

Policy Regarding “Found Code”

You are encouraged to read books and other instructional materials, both online and offline, to help you understand the concepts and algorithms taught in class. These materials may contain example code or pseudo code, which may help you better understand an algorithm or an implementation detail. However, when you implement your own solution to an assignment, you must put all materials aside, and write your code completely on your own, starting “from scratch”. Specifically, you may not use any code you found or came across. If you find or come across code that implements any part of your assignment, you must disclose this fact in your collaboration statement.

Duty to Protect One’s Work

Students are responsible for proactively protecting their work from copying and misuse by other students. If a student’s work is copied by another student, the original author is also considered to be at fault and in gross violation of the course policies. It does not matter whether the author allowed the work to be copied or was merely negligent in preventing it from being copied. When overlapping work is submitted by different students, both students will be punished.

To protect future students, do not post your solutions publicly, neither during the course nor afterwards.

Penalties for Violations of Course Policies

All violations (even first one) of course policies will always be reported to the university authorities (your Department Head, Associate Dean, Dean of Student Affairs, etc.) as an official Academic Integrity Violation and will carry severe penalties.
  1. The penalty for the first violation is a one-and-a-half letter grade reduction. For example, if your final letter grade for the course was to be an A-, it would become a C+.
  2. The penalty for the second violation is failure in the course, and can even lead to dismissal from the university.


Acknowledgments

This course is based in part on material developed by Heather Miller, Ameet Talwalkar, William Cohen, Anthony Joseph, and Barnabas Poczos.

Previous courses: 10-405/10-605, Spring 2021; 10-605/10-805, Fall 2020; 10-405/10-605, Spring 2020.