Exercise 1: (a) Create a Bayesian Belief Network with binary or discrete variables using pgmpy or
PyMC3. Follow the example covered in class. (b) (using the same notebook) Use variable elimination to
derive a conditional probability expression using your previous example. Show this is consistent with
what you obtain from the package. You should do a variable elimination example for a simple example
like that shown in class.
Exercise 2 (a) Use the PyMC3 package to create a hierarchical probabilistic model with continuous
variables. (b) (using the same notebook) Use probability theory to derive a posterior distribution using
your previous example. Show this is consistent with what you obtain from the package.
Note: If you extend 1a and 2a by creating more complex examples, you are not have to do the
corresponding theoretical derivations for those, but you should do a simple example with theory.
Exercise 3: Do an image denoising example using Markov Random Fields like that shown in class.
• Mon Feb 19 – Group discussions. Discussion summaries are due by midnight.
• Mon Feb 26 – Group presentations.
• Wed Feb 28 – Final notebooks are due before midnight. Submit all notebooks (or pdfs) to Canvas.
• Mon Mar 5 – Peer evaluations are due before noon.
• You are required to use git to manage your code and notebook and make commits regularly to show
your progress. You must make a submission of your code and notebooks to canvas before each group
discussion, group presentations, and the final due date.
• Use one jupyter notebook (or latex-generated pdf file) per exercise.
• Each notebook should include all necessary text, math, code, and results for clearly explaining your
work to others. In addition to submitting the notebooks (the .ipynb files) you should also submit the
export of the notebook to a pdf file.
• If you are using a language that does not support jupyter, you must create a pdf notebooks using latex.
Use separate pdfs for each notebook.
• After the discussion session, you should submit your feedback to others’ work on canvas in their
The goal of this discussion is for each member of the group to have a clear idea of how to approach all the
exercises in the assignment. You are free to ask any questions and offer any help that helps toward
completing the assignment. A good outcome would be for everyone to have gotten a good start on the
first two exercises.
Each member of the group will have 7-8 min to present their notebooks to the other members of the
group. Group members should take notes on each presentation for peer review of the final submission
(due the following Monday via Canvas). Students are expected to use the feedback from the group to
improve their notebooks before final submission. An group selected moderator will ensure that everyone
stays within the time limits and that feedback is constructive.
Group members are responsible for evaluating each of the other group members on completeness, clarity
and depth understanding, correctness, thoroughness, and creative exploration. As well as a brief
summary. Criteria are scored on a scale of 0-3. Details are in the rubric.