CS274b: Learning in Graphical Models
Lecture: ICS 180, TR 3:30pm-5pm
Instructor: Prof. Alex Ihler (email@example.com), Office Bren Hall 4066
Graphical models have assumed a central role in representing and reasoning about complex systems across many scientific domains. Examples of graphical models include Bayesian networks and constraint networks from artificial intelligence, Markov random fields from statistics and statistical physics, and factor graphs from coding and information theory. Graphical models provide a common language to represent, make explicit, and communicate modeling assumptions, as well as providing a useful structure for organizing computation and approximations. Today, graphical models are used in many application areas: signal and image processing, computer vision, game theory, operations research, error-correcting codes, and computational biology.
The primary goal of this course is to familiarize students with the concepts underlying graphical models, and in particular with learning these models from data. A student who has successfully completed the course should be able to understand a wide variety of well known models in terms of this unifying framework and feel comfortable using it to design new models. The course will contain: (1) formal mathematical sections necessary for the development of the theory, (2) examples of probabilistic models (re)formulated in the language of graphical models and (3) examples of successful applications to real data.
The assumed pre-requisite for the course is CS274a (Probabilistic Learning); I will also assume familiarity with Matlab.
An excellent reference is Koller & Friedman (2009), "Probabilistic Graphical Models", and we will roughly follow (selected portions of) that text.
Syllabus and Schedule (subject to change)
(Tentative) Schedule of Topics.
For the class, I am providing some of my own Matlab code for graphical models, mostly for discrete or Gaussian distributions. I may need to update the code during the class; if so I will include it with the relevant assignment. The main component is a factor class for representing and manipulating the elemental functions that make up a graphical model. In addition to the help in each function, there is some simple documentation here.
There are many other software packages available that also aim to simplify the use or study of graphical models, usually also the personal code of the lead researcher. Some good ones include:
(Note: if you have other suggestions feel free to share them with me and I may add them; but this is not intended to be a complete list of all GM software.)