Probabilistic Graphical Models

10-708, Spring 2021
School of Computer Science
Carnegie Mellon University


Course Info

1. Course Description

Many of the problems in artificial intelligence, statistics, computer systems, computer vision, natural language processing, and computational biology, among many other fields, can be viewed as the search for a coherent global conclusion from local information. The probabilistic graphical models framework provides an unified view for this wide range of problems, enabling efficient inference, decision-making and learning in problems with a very large number of attributes and huge datasets. This graduate-level course will provide you with a strong foundation for both applying graphical models to complex problems and for addressing core research topics in graphical models. The class will cover three aspects: The core representation, including Bayesian and Markov networks, and dynamic Bayesian networks; probabilistic inference algorithms, both exact and approximate; and, learning methods for both the parameters and the structure of graphical models. Students entering the class should have a pre-existing working knowledge of probability, statistics, and algorithms, though the class has been designed to allow students with a strong numerate background to catch up and fully participate. It is expected that after taking this class, the students should have obtain sufficient working knowledge of multi-variate probabilistic modeling and inference for practical applications, should be able to formulate and solve a wide range of problems in their own domain using GM, and can advance into more specialized technical literature by themselves. Students are required to have successfully completed 10701 or 10715, or an equivalent class.

Learning Outcomes:

At the end of this course, students should be able to…

  • Formalize new tasks as structured prediction problems.
  • Develop new graphical models models by incorporating domain knowledge about constraints on or interactions between the outputs
  • Combine deep neural networks and graphical models
  • Identify appropriate inference methods, either exact or approximate, for a probabilistic graphical model
  • Employ learning algorithms that make the best use of available data
  • Implement from scratch state-of-the-art approaches to learning and inference for structured prediction models

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

2. Prerequisites

Students entering the class are expected to have a pre-existing working knowledge of the following:

  1. Introductory machine learning.

  2. Significant experience programming in a general programming language. Some homeworks may require you to use Python, so you will need to at least be proficient in the basics of Python.

  3. College-level probability, calculus, linear algebra, and discrete mathematics.

You must strictly adhere to these pre-requisites! Even if CMU’s registration system does not prevent you from registering for this course, it is still your responsibility to make sure you have all of these prerequisites before you register.

The core content of this course does not exactly follow any one textbook. With the exception of Koller & Friedman’s textbook, all readings for this course are freely available online for CMU students.

4. Course Components


The requirements of this course consist of participating in lectures, homework assignments, course project, quizzes, and readings.

  • 45% Homework Assignments (distributed over five assignments)
  • 35% Project
  • 15% Quizzes (5% for each of three quizzes)
  • 5% Participation
  • On Piazza, the Top Student “Endorsed Answer” Answerers can earn bonus points

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. This allows us to ensure that the number of students that receive A’s (including A+, A, A-) is at least half the number of students that take the first quiz. The number of B’s (including B+, B, B-) will be at least two-thirds the number of A’s.


You are required to attend the three quizzes. All quizzes will be given during reguarly scheduled class times and will be announced ahead of time on the Schedule page. 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 “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.


The homeworks will consist of 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 important learning algorithms, derivations, and understanding of theory.

More details are listed on the Coursework page.


Your participation grade in the course will come from activities during project presentations and in-class polls. We will be using Google Forms for in-class polls. Additional details will be announced about in-class polls via Piazza. You will always be given at least 24 hours from the end of the lecture time to fill out the in-class polls.


Attendance at lectures is expected except for those with explicit approval to miss lectures due to course conflicts or timezone conflicts. Lectures will be livestreamed and recorded for later viewing.


Attendance at recitations (Friday sessions) is not required, but strongly encouraged. These sessions will be interactive and focus on problem solving. The recitations will be recorded for later viewing, but we strongly encourage you to actively participate. A problem sheet will usually be released prior to the recitation. If you are unable to attend one or you missed an important detail, feel free to stop by office hours to ask the TAs about the content that was covered. Of course, we also encourage you to exchange notes with your peers.

Office Hours

The schedule for Office Hours will always appear on the Google Calendar on the People page.

All TA office hours will be held in Gather.Town. Join the office hours queue and wait for a TA to accept your question. When you get accepted you will be notified on the office hours queue, with the line ‘TA [name of a TA] is on the way’. Once you see this message please find the TA in Gather.Town by clicking their name on the user list and click “Follow” to have your avatar walk to their location.

Instructor office hours will (usually) be held immediately after class in the same Zoom session as lecture. We encourage you to stick around and ask any questions you have about lecture material, homework problems, exam prepation, course logistics, etc.


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 quizzes and homeworks, but we still encourage you to skim those portions.

5. Technologies

We use a variety of technologies:


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.


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.

We will use Gradescope for all exams. Exams will have a scheduled time and a fixed time limit, and will be live proctored. Unlike the written homework assignments, your solution to each exam question will be submitted directly via an HTML interface. We will send out an example before the first exam.

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!


Lectures and recitations will be livestreamed via Zoom.


Lecture and recitation video recordings will be available on Panopto. Links to the records are on the Schedule page.


Office hours will be held on Gather.Town.

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 6 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 4 days after the deadline. This has two important implications: (1) you may not use more than 4 graces days on any single assignment (2) 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.

Project deliverables may not be submitted late.


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 grace days or our late penalties to provide sufficient accommodation. 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 Education Associate(s) at – do not email the instructor or TAs. 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.

Auditors are required to:

  1. Attend or watch all of the lectures.
  2. Receive a 95% participation grade or higher.
  3. Submit at least 2 of the 5 homework assignments.

Auditors are encouraged to sit for the exams, but should only do so if they plan to put forth actual effort in solving them.

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

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 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. Diversity

We must treat every individual with respect. We are diverse in many ways, and this diversity is fundamental to building and maintaining an equitable and inclusive campus community. Diversity can refer to multiple ways that we identify ourselves, including but not limited to race, color, national origin, language, sex, disability, age, sexual orientation, gender identity, religion, creed, ancestry, belief, veteran status, or genetic information. Each of these diverse identities, along with many others not mentioned here, shape the perspectives our students, faculty, and staff bring to our campus. We, at CMU, will work to promote diversity, equity and inclusion not only because diversity fuels excellence and innovation, but because we want to pursue justice. We acknowledge our imperfections while we also fully commit to the work, inside and outside of our classrooms, of building and sustaining a campus community that increasingly embraces these core values.

Each of us is responsible for creating a safer, more inclusive environment.

Unfortunately, incidents of bias or discrimination do occur, whether intentional or unintentional. They contribute to creating an unwelcoming environment for individuals and groups at the university. Therefore, the university encourages anyone who experiences or observes unfair or hostile treatment on the basis of identity to speak out for justice and support, within the moment of the incident or after the incident has passed. Anyone can share these experiences using the following resources:

  • Center for Student Diversity and Inclusion:, (412) 268-2150
  • Report-It online anonymous reporting platform: username: tartans password: plaid

All reports will be documented and deliberated to determine if there should be any following actions. Regardless of incident type, the university will use all shared experiences to transform our campus climate to be more equitable and just.

10. 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.