# Homework Assignments

# | Due | Description | Problems | Materials |
---|---|---|---|---|

1 | 3/01 | Factor Graphs & Belief Propagation Application: ALARM Expert System |
questions | Factor graph code & ALARM data ALARM network background |

2 | 3/22 | Learning & Inference for Undirected Graphs Applications: LDPC Codes, Voter Modeling |
questions MacKay: 47 |
LDPC-128, LDPC-1600 Senate 112 Votes |

3 | 4/12 | Kalman & Particle Filters, EM Algorithm Application: Switching Dynamical Systems |
questions | SLDS Datasets Ghahramani & Hinton 1996 |

4 | 4/26 | MCMC & Gibbs Samplers Application: Block Models of Social Networks |
questions MMSB: 2 |
Relational Datasets Rand Index Script |

Four equally weighted homework assignments will account for 60% of your overall grade. Assignments are distributed two weeks before their due date. Homeworks will involve a combination of mathematical derivations, algorithm design, programming, and real data analysis. Support code will be implemented in Matlab, which you are encouraged (but not required) to use when implementing your solutions.

- Signup
- You will need a CS department computer account to submit your answers and access homework solutions. If this is your first CS course, email the course TA for help. To submit your answers from outside the CIT building, you will need to remotely login via ssh or VPN. The Sunlab consultants can help with configuration.
- Solve
- Type your answers in LaTeX, numbered by question and part as in the assignment. Be sure to include your full name and your CS account username at the top of the first page. Compile your document into a pdf. LaTeX editing can be easiest with specialized editors like Texmaker or Kile (available on department workstations).
*All*of your answers should be in a single pdf; include result plots via the LaTeX figure environment. It is acceptable to submit scans of handwritten answers for mathematical derivations or problems which require you to draw graphical models, but they must be neat and legible. Please be clear, and make it easy for the graders to check your work and give partial credit! - Collaborate?
- You may work on homework problems in groups, and discuss your work with each other. However, each student must program and write up their solutions independently. Include the names of any collaborators on the front page of your homework solutions. You may
*not*directly copy solutions from other students, or from materials distributed in previous versions of this or other courses. - Review & Submit
- Change to the directory (
**cd**) your work is in. When you list files (**ls**), the only file should be**hw.pdf**, as well as your (probably Matlab) source code. The code doesn't need to be extensively documented, but it should be readably commented, and we may run it. Only source code may be submitted as separate files; experimental plots and results*must*be included as figures in your main solution pdf.*From the directory containing your solutions,*execute**/course/cs295-p/bin/cs295p_handin hw?**, replacing**?**by the appropriate homework number. This has been tested to work but if it doesn't for any reason, e-mail your solutions to the course staff with a full description of the problem, including any warning messages. - Late Submissions
- Homework assignments are due at midnight on the due date, and worth a maximum of 100 points. Your answers may be submitted up to 5 days late; after this point, solutions will be distributed and handins will no longer be accepted. You may submit up to two late assignments without penalty. For each subsequent late assignment, 10 points will be deducted from the overall score.
*Exceptions to this policy are only given in unusual circumstances, and any extensions must be requested in advance by e-mail to the instructor.*

# Final Projects

The final project will count towards 40% of overall grades. Of these points, 5% will be based on a 1-3 page project proposal, due on April 4; 10% will be based on a short oral presentation, given on May 7; and 25% will be based on a technical report describing the results, due on May 13.

Projects which apply graphical models to the student's own research interests are particularly encouraged. Please feel free to discuss potential project ideas with the instructor. Some possible styles of project include:

- Identify a graphical model suitable for a new application area, and explore baseline learning algorithms
- Propose, develop, and experimentally test a new type of learning algorithm for some existing graphical model
- Experimentally compare different models or algorithms on an interesting, novel dataset

In general, you should try to study combinations of graphical models, learning algorithms, and/or datasets which have not been previously explored.

### Project Proposals

The project proposal should be at most 3 pages long, including all figures and references. We encourage, but do not require, you to use the NIPS LaTeX style file. Proposals must be submitted as a *single pdf file*, by e-mail to the instructor, before **11:59pm on Tuesday, April 4**. Your proposal should contain the following information:

- A clear description of the problem or application you intend to address. Why is it worth studying?
- A discussion of related work, including
*references to at least three relevant research articles*. Which aspects of your project are novel? - An experimental evaluation protocol. How will you know that you've succeeded?
- A concrete plan for accomplishing your project by the end of the course. What are the biggest challenges?
- A figure illustrating
*a graphical model*which plays a role in your project. We recommend creating such figures in a vector drawing program, such as Adobe Illustrator, Inkscape, or Xfig.

### Project Reports

The technical report should be between 6-10 pages long, in the style of top machine learning conferences. Although the results need not be sufficiently novel for publication, the presentation and experimental protocols should be of high quality. We encourage, but do not require, you to use the NIPS LaTeX style file. Reports must be submitted as a *single pdf file*, by e-mail to the instructor, before **11:59pm on Monday, May 13**. Your report should include:

- A clear description of the problem addressed, and summary of related work with appropriate references.
- A mathematically precise description of the statistical models and learning algorithms that you consider. For the parts of your project which are novel contributions, include derivations which are sufficiently detailed for knowledgable experts to reproduce your work.
- To help verify that your statistical learning algorithm is working properly, at least one plot showing the learning objective (joint log-probability for an MCMC method, a log-likelihood bound for a variational method, etc.) as a function of the number of learning iterations.
- Some sort of visualization of the learned model structure; summary performance numbers are not sufficient. For example, for many graphical models it is possible to plot the learned clusters or features or states, sample from the posterior or predictive distributions, visualize results on low-dimensional toy data, etc.
- A description of implementation details, including references for any code that was adapted and reused, a high-level summary of the functionality that your code implements, the programming language(s) you used, etc.