The community bonding period is over. I tried to start with understanding those source codes which have implemented the same class of algorithms that I am hoping to implement over the GSoC timeline.
For me, it is Approximate inference of Probabilistic Graphic Models. OpenGM is one of the best C++ template library for discrete factor graph models and distributive operations on these models. It includes state-of-the-art optimization and inference algorithms beyond message passing.
The method that I intend to implement is basically a message passing algorithm. It is called Max-product Linear Programming(MPLP) approx. inference. It was first proposed by Amir Globerson and Tommi Jaakkola in the paper “Fixing max-product: Convergent message passing algorithms for MAP LP-Relaxation” in the year 2007.
I figured it out that this is going to be the 1st phase of my implementation.
The whole of my timeline consists of implementing 2 more subsequent papers which are very much written in hierarchy to this one. So, I have been thinking that if this one is implemented correctly and efficiently, then extending the code for the other 2 papers will be easy.
The other 2 subsequent papers are:
Tightening LP Relaxations for MAP using Message Passing David Sontag, Talya Meltzer, Amir Globerson, Tommi Jaakkola and Yair Weiss Uncertainty in Artificial Intelligence (UAI). Helsinki, Finland. 2008.
Efficiently Searching for Frustrated Cycles in MAP Inference. David Sontag, Do Kook Choe, and Yitao Li Uncertainty in Artificial Intelligence (UAI) 28. Catalina Island, United States. 2012.
So as far as the community bonding period is concerned, my learning curve was right up. I read all the 3 papers and tried to grasp the concepts of PGM’s. It came out to be not so easy and I had to fall back.
I started understanding PGM’s from the basics by skimming past the introductory videos on PGM from Coursera by Daphne Koller. After going over them, I tried for another read of the papers. I am now able to figure the objective quite well than the last time.
From the last GSoC experience, I am very much sure that understanding is very much important before coding. I just hope I get to understand the gist of the papers and implement them well.