-
Notifications
You must be signed in to change notification settings - Fork 1
/
progress.tex
57 lines (35 loc) · 2.59 KB
/
progress.tex
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
% This is a LaTeX driving document to produce a standalone copy
% of the project proposal held in propbody.tex. Notice that
% propbody can be used in this context as well as being incorporated
% in the dissertation (see diss.tex).
\documentclass[12pt,a4paper]{article}
\usepackage[parfill]{parskip}
\usepackage{fullpage}
\usepackage{enumitem}
\usepackage{hyperref}
\usepackage{graphicx}
\begin{document}
\begin{center}
{\Large Computer Science Tripos -- Part II -- Project Progress Report} \\
\vspace{0.2in}
{\huge \bf A probabilistic programming language in OCaml } \\
\vspace{0.4in}
{\large Anik Roy, Christ's College, ar899@cam.ac.uk} \\
\vspace{0.1in}
{\large \today} \\
\end{center}
\vspace{0.4in}
\vfil
\textbf{Project Supervisor:} Dr R. Mortier
\textbf{Director of Studies:} Dr R. Mortier
\textbf{Project Overseers:} Dr~Jon~A.~Crowcroft \& Dr~Thomas~Sauerwald
\vfil
\noindent\textbf{Signed} \raisebox{-1ex}{\includegraphics[trim=0 0cm 0 0,height=1.5\baselineskip]{figs/signature.png}}
\section*{Work Completed}
So far, I have managed to complete the bulk of my core implementation. This includes designing a simple DSL, which is shallowly embedded in OCaml. I have designed the main data structures for representing distributions, and defined the ways in which they can be manipulated and composed. This allows for generative models to be written using my ppl, which can represent both continuous or discrete distributions.
I have implemented a set of primitive distributions (e.g. categorical, normal, uniform, beta, etc.) which can be used to build up more complex models.
I have also implemented 5 main inference algorithms (more than single one required by my proposal) and checked they all function correctly and produce sensible posterior distributions. I have also written a set of example models to show how programs using the language will look. These models will also be used for evaluation. There have been no major unexpected difficulties, and I am on schedule as in my proposal.
\section*{Next Steps}
The main next steps for this project will be to perform more evaluation, comparing against writing inference procedures by hand (e.g. in python), as well as against other ppls (such as webppl or anglican). I'll also work to optimise inference and sampling procedures to make sure they are comparable to similar systems
I will also consider more extensions, for example around the visualisation of programs. Since they are represented in a tree structure internally, it should be possible to visualise the different intermediate variables in a graph.
\end{document}