Mathematical / Computational Foundations for Machine Learning

10-606/607, Fall 2018
School of Computer Science
Carnegie Mellon University


Syllabus

Course Info

This page contains the syllabus for both 10-606 and 10-607, since their policies are nearly identical. They differ in course content, and any differences are highlighted below. Since many students take both, we present information about the two together.

1. Course description

10-606:

This course provides a place for students to practice the necessary mathematical background for further study in machine learning. Topics covered include probability (random variables, modeling with continuous and discrete distributions), linear algebra (inner product spaces, linear operators), and multivariate differential calculus (partial derivatives, matrix differentials). The course assumes some background in each of the above, but will review and give practice in each. (It does not provide from-scratch coverage of all of the above, which would be impossible in a course of this length.) Some coding will be required: the course will provide practice with translating the above mathematical concepts into concrete programs.

In order to study the relevance of these topics to machine learning we will apply these concepts to several applications including:

  • Linear Algebra: Derivation of Principal Component Analysis (PCA)
  • Matrix Calculus: Gradient-based Matrix Factorization and Collaborative Filtering
  • Probability: Probabilistic Study of Ordinal Regression

10-607:

This course provides a place for students to practice the necessary computational background for further study in machine learning. Topics covered include computational complexity, analysis of algorithms, proof techniques, optimization, dynamic programming, recursion, and data structures. The course assumes some background in each of the above, but will review and give practice in each. (It does not provide from-scratch coverage of all of the above, which would be impossible in a course of this length.) Some coding will be required: the course will provide practice with translating the above computational concepts into concrete programs.

In order to study the relevance of these topics to machine learning we will apply these concepts to several applications including:

  • Computation: Analysis of Exact Inference in Graphical Models
  • Programming & Efficiency: Implementation Design of a Deep Learning Library
  • Optimization: Optimization for Support Vector Machines (SVMs)

Relation Between 606 and 607:

These two minis are intended to prepare students for further study in machine learning – particularly for taking 10-601 and 10-701. One of the courses (10-606) focuses on mathematical background, and the other course (10-607) focuses on computational background. Most students take both mini courses, but this is not required. 10-606 is not a prerequisite of 10-607.

For more details about topics covered, see the Schedule page.

2. Required Background

10-606:

Below is a summary of the background required for this course:

  • We’re assuming mathematical maturity: you should be familiar with the idea of derivations and proofs, and of building formal representations for objects given their English­language description.
  • We’ll assume that you can take scalar derivatives.
  • We’ll assume that you’ve seen real vector spaces and matrices (linear operators) and know how to reason about things like matrix multiplication and solving systems of linear equations.
  • We’ll assume that you’ve seen sets and data types.
  • We’ll assume that you’ve worked with probabilities (e.g., conditioning, Bayes rule).
  • We will also assume familiarity with coding. The assignments will be in Python.
  • For the above topics, we intend to give complete definitions and/or resources to learn from, but often we will go over them quickly: we expect that most people will know a lot of the definitions, and will be willing to work outside of class to understand the ones they don’t know. So, for each topic that you’re unfamiliar with, you should expect to do some extra work; if you’re unfamiliar with several of them, that could make it hard to keep up.

10-607:

  • We’ll assume you are comfortable with all the topics listed above for 10-606.
  • In addition, the first mini (10­606) is a recommended, but certainly not necessary, prerequisite. It is expected that some students will take 10­607 without 10­606. The material for 10-607 stands alone; however, the Machine Learning applications we consider may require the level of mathematical maturity of someone who has completed 10-606.

There are no required textbooks for this course. However, the following textbooks are recommended as a way to get an alternate presentation of some of the course material:

4. Course Components

Grading

The requirements of this course consist of participating in lectures, final exam, homework assignments, and readings.

The grading breakdown is the following:

  • 55% for Homework Assignments
  • 10% for In-class Quizzes
  • 30% for Final Exam
  • 5% for Participation: Participation includes questions and answers on Piazza as well as discussions with course staff inside and outside of office hours. You will be graded on how much work and insight you bring to these interactions, not the raw number of them.

Grade cutoffs:

  • ≥ 97% A+
  • ≥ 93% A
  • ≥ 90% A-
  • ≥ 87% B+
  • ≥ 83% B
  • ≥ 80% B-
  • ≥ 77% C+
  • ≥ 73% C
  • ≥ 70% C-
  • ≥ 67% D+
  • ≥ 63% D
  • otherwise R

Each individual component (e.g. an exam) or the overall grades may be curved upwards at the end.

Final Exam

You are required to attend the final exam. For 10-606, the final exam occurs at the end of Mini-I (i.e. mid-semester). For 10-607, the final exam occurs at the end of Mini-II (i.e. the end of the semester).

If you have an unavoidable conflict with an exam, notify us by filling out “exam conflict” form that we will send out a couple weeks prior to each exam.

No electronic devices are allowed during the exam. Unless otherwise noted, all exams are closed-book.

In-Class Quizzes

We will have occasional in-class quizzes, which will always be announced ahead of time. You are required to attend the in-class quizzes.

Homework

The homework assignments will consist of both written and programming portions. The written portions will offer opportunities to practice the math / theory / concepts. The programming assignments will offer opportunities to apply those concepts in a concrete setting.

10-606:

10-606 will consist of four homework assignments. They will be identified by Arabic numerals.

  • Homework 1
  • Homework 2
  • Homework 3
  • Homework 4

10-607:

10-607 will consist of four homework assignments. They will be identified by letters.

  • Homework A
  • Homework B
  • Homework C
  • Homework D

Recitations

Attendance at recitations (Friday sessions) is not required, but strongly encouraged. These sessions will be interactive and focus on problem solving.

Readings

The purpose of the readings is to provide a broader and deeper foundation than just the lectures and assessments. The readings for this course are required. We recommend you read them after the lecture. Sometimes the readings include whole topics that are not mentioned in lecture; such topics will (in general) not appear on the exams, but we still encourage you to skim those portions.

5. Technologies

We use a variety of technologies:

Piazza

We will use Piazza for all course discussion. Questions about homeworks, course content, logistics, etc. should all be directed to Piazza. If you have a question, chances are several others had the same question. By posting your question publicly on Piazza, the course staff can answer once and everyone benefits. If you have a private question, you should also use Piazza as it will likely receive a faster response.

Gradescope

We use Gradescope to collect PDF submissions of open-ended questions on the homework (e.g. mathematical derivations, plots, short answers). Upon uploading your PDF, Gradescope will ask you to identify which page(s) contains your solution for each problem – this is a great way to double check that you haven’t left anything out. The course staff will manually grade your submission, and you’ll receive personalized feedback explaining your final marks.

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!

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

Canvas’ Gradebook

We will also periodically post aggregate grades to Canvas. This provides you a chance to double check that your overall grade is what you expected.

6. General Policies

Late homework policy

Late homework submissions are only eligible for 80% of the points the first day (24-hour period) after the deadline, 60% the second, 40% the third, and 20% the fourth.

You receive 2 total grace days; they will be applied greedily. No assignment will be accepted more than 4 days after the deadline. You may not combine grace days with the late policy above to submit more than 4 days late.

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 and Autolab – if you submit to Gradescope on time but to Autolab 1 minute late, you 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:

  • Medical Emergencies: If you are sick and unable to complete an assignment or attend class, please go to University Health Services. For minor illnesses, we expect students to use their grace days. For medical emergencies (e.g. prolonged hospitalization), students may request an extension afterwards and should include a note from University Health Services.
  • Family/Personal Emergencies: If you have a family emergency (e.g. death in the family) or a personal emergency (e.g. mental health crisis), please contact your academic adviser or Counseling and Psychological Services (CaPS). In addition to offering support, they will reach out to the instructors for all your courses on your behalf to request an extension.
  • University-Approved Absences: If you are attending an out-of-town university approved event (e.g. multi-day athletic/academic trip organized by the university), you may request an extension for the duration of the trip. You must provide confirmation of your attendance, usually from a faculty or staff organizer of the event.

For any of the above situations, you may request an extension by emailing the instructor(s). 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

Formal auditing of this course is permitted. However, we give priority to students taking the course for a letter grade.

You must follow the official procedures for a Course Audit as outlined by the HUB / registrar. Please do not email the instructor requesting permission to audit. Instead, you should first register for the appropriate section. Next fill out the Course Audit Approval form and obtain the instructor’s signature in-person (either at office hours or immediately after class).

Auditors are required to:

  1. Attend the lectures.
  2. Fill out the 10-601 Lecture Feedback form for 75% of the lectures within 3 days of the lecture. You must include your Andrew Email to receive credit for submission. Please give honest and detailed feedback.
  3. Take the final exam (scheduled by the registrar at end of Mini-I for 10-606 and end of Mini-II for 10-607). Please clearly indicate on the front page of your exam that you are auditing. The TAs may or may not grade your exam. You do not need to obtain a certain score, we simply expect you to give your best effort.

We ask that auditors do not submit free-hand assignments (i.e. Gradescope).

Pass/Fail Policy

We allow you take the course as Pass/Fail. Instructor permission is not required. What grade is the cutoff for Pass 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.

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.

7. Academic Integrity Policies

Read this carefully!

(Adapted from Roni Rosenfeld’s 10-601 Spring 2016 Course Policies.)

Collaboration among Students

  • The purpose of student collaboration is to facilitate learning, not to circumvent it. Studying the material in groups is strongly encouraged. It is also allowed to seek help from other students in understanding the material needed to solve a particular homework problem, provided no written notes (including code) are shared, or are taken at that time, and provided learning is facilitated, not circumvented. The actual solution must be done by each student alone.
  • The presence or absence of any form of help or collaboration, whether given or received, must be explicitly stated and disclosed in full by all involved. Specifically, each assignment solution must include answering the following questions:
    1. Did you receive any help whatsoever from anyone in solving this assignment? Yes / No.
      • If you answered ‘yes’, give full details: ____________
      • (e.g. “Jane Doe explained to me what is asked in Question 3.4”)
    2. Did you give any help whatsoever to anyone in solving this assignment? Yes / No.
      • If you answered ‘yes’, give full details: _____________
      • (e.g. “I pointed Joe Smith to section 2.3 since he didn’t know how to proceed with Question 2”)
    3. Did you find or come across code that implements any part of this assignment ? Yes / No. (See below policy on “found code”)
      • If you answered ‘yes’, give full details: _____________
      • (book & page, URL & location within the page, etc.).
  • If you gave help after turning in your own assignment and/or after answering the questions above, you must update your answers before the assignment’s deadline, if necessary by emailing the course staff.
  • Collaboration without full disclosure will be handled severely, in compliance with CMU’s Policy on Academic Integrity.

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 pro-actively 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.

8. Support

Take care of yourself. Do your best to maintain a healthy lifestyle this semester by eating well, exercising, avoiding drugs and alcohol, getting enough sleep and taking some time to relax. This will help you achieve your goals and cope with stress.

All of us benefit from support during times of struggle. You are not alone. There are many helpful resources available on campus and an important part of the college experience is learning how to ask for help. Asking for support sooner rather than later is often helpful.

If you or anyone you know experiences any academic stress, difficult life events, or feelings like anxiety or depression, we strongly encourage you to seek support. Counseling and Psychological Services (CaPS) is here to help: call 412-268-2922 and visit their website at http://www.cmu.edu/counseling/. Consider reaching out to a friend, faculty or family member you trust for help getting connected to the support that can help.

If you or someone you know is feeling suicidal or in danger of self-harm, call someone immediately, day or night:

  • CaPS: 412-268-2922
  • Re:solve Crisis Network: 888-796-8226
  • If the situation is life threatening, call the police:
    • On campus: CMU Police: 412-268-2323
    • Off campus: 911.

If you have questions about this or your coursework, please let the instructors know.


9. Note to people outside CMU

Please feel free to reuse any of these course materials that you find of use in your own courses. We ask that you retain any copyright notices, and include written notice indicating the source of any materials you use.