Assignments and Exercises
To practice with the course subjects, you are offered both practical assignments (which contribute towards your course grade), and various exercises. If you need any help or feedback, try your fellow students or ask the instructor during the lectures.
Practical assignments
The practical assignments are preferably done in groups of two. Please enroll yourselves in a group in Blackboard to enable submission of the assignments.
The practical assignments consist of questions and (coding) exercises. Some can be answered and explained using only the theory discussed in class; others are to be answered using freely available Bayesian network software tools or other software packages (see below).
Assignments, necessary resources and submission instructions (including deadlines) will be made available through Blackboard. Assignments will be marked on a 5-point scale (see the Examination and grading page). NOTE(!) The assignment deadlines will be strictly enforced.
Software for practical assignments
Numerous software packages and libraries exist for constructing and reasoning with probabilistic graphical models. Examples of libraries include pyBBN, pgmpy, libpgm and pomegranate for python; bnlearn, gRain and RHugin for R; Bayes-stack for Haskell, and Mens X Machina for Matlab. Also, specific languages have been developed to facilitate probabilistic modelling, such as BUGS, PRISM, Stan and PyMC. >
Bayesian network software
None of the above-mentioned libraries, however, come with the nice GUIs that the following Bayesian network software packages have. For practical assignments A and B, you should install one of the GUI-based packages of your choice. A list of possible options is given below; most of these have a free downloadable (demo-) version.(GeNIe or SamIam are recommended, or if you prefer a commercial product: Hugin-Lite or Netica.) The software may also help you to gain more insight in inference (Chapter 4) and BN construction (Chapter 5).
Note that most software packages allow a choice between inference algorithms. Be sure to select an exact inference algorithm (e.g. Lauritzen/Spiegelhalter, Jensen, Hugin, Shenoy/Shafer, Pearl, Variable Elimination) and not an approximate one (e.g. (Loopy) belief propagation, variational inference, sampling, Monte Carlo simulation)!
The following two pages present an overview of existing software packages:- overview of software for Bayesian networks, including example networks and datasets;
- another overview.
- University packages (free; some require registration):
- GeNIe (Formerly Pittsburgh University, now BayesFusion; Platform: Windows Documentation: online; registration required)
- SamIam (UCLA; Platform: Windows, Solaris, Linux, Mac; Documentation: online; registration required)
- OpenMarkov (UNED, Madrid; (successor to Elvira) Java-based, no installation required; Documentation: online)
- Commercial Packages (free limited versions; some require registration):
- Hugin -Lite (HUGIN EXPERT A/S; Platform: Windows, Solaris, Linux, Mac OS; Documentation: online; requires registration)
- Bayes Server (Platform: Windows for GUI; Documentation: online; includes our one-way and two-way sensitivity analysis)
- Netica (Norsys Software Corp.; Platform: Windows, Mac OS; Documentation: online tutorial)
- MSBNx (Microsoft Research; Platform: Windows; Documentation: online)
Probabilistic programming assignment software
Exercises
syllabus exercises
The syllabus contains various exercises for the subjects treated in the course, and provides hints or answers to most of them. For each lecture, the relevant exercises are listed in the class schedule. You are advised to make the exercises, most of which are former exam questions. Doing so will form a good preparation for the written test in the sense that you practice with the theory; this allows you to assess your own advancement during the course.Note that exercises are all very different, except for those addressing Pearl's algorithm. This shows that you can expect a question that requires applying Pearl during the exam. It also shows that the other exam questions are not simply variants of questions you have already practiced. In each case you need to try and identify the underlying theory from the course that you need to apply to solve the problem.