Our Submission for NIPS Workshop - Code a Paper
An important facet of science is replication, that is, being able to reproduce the results claimed in any scientific work. Independent testing, challenging and verification of published results not only add to the crediblity of the research, but also helps in democratizing scientific knowledge. Research based on machine learning should therefore be put up against the same verification process in order to be called science.
However, there are a few challenges in the domain of machine learning which makes it difficult to reproduce the results exactly. The first and foremost challenge is the unavailability of data. In many cases the authors do not release the datassets due to licensing issues, or simply because data collection is a tedious task and they do not prefer to make it available for free. The bigger reason, however, is that there are several tricks which go into the implementation of these Machine Learning models - like hyperparameter tuning, validaton splits, optimization algorithms and initial parameters, which are often skipped or stated casually in these papers. As a result, beginners in the area of Machine Learning often find it challenging to implement the models presented in the published papers.
With these challenges in mind, this year’s NIPS Conference conducted a workshop on Learn How to Code a Paper with State of the Art Framework. The focus of the workshop was to accelerate the transition of research to industrial applications, by training engineers how to code a state of the art paper. To be a presenter in the workshop, we were required to submit a poster describing a Machine Learning research work chosen from any conference, along with a detailed iPython notebook describing the implementation step by step. Special focus was needed on describing how to translate equations and algorithms into code. The workshop was flexible with respect to implementation framework - we could choose any from Tensorflow, PyTorch, CNTK, MxNet, Keras or any other Python based ML framework of our choice.
My classmate and friend Dushyanta Dhyani prepared a tutorial on implementating the paper A Convolution Encoder Model for Neural Machine translation, by Jonas Gehring et al. (Facebook AI Research) for this workshop, and it was accepted to be presented. The tutorial describes the implementatin of the model described in the paper, on PyTorch framework. Details on installation of package dependencies have been provided in the README. Hopefully this tutorial serves as a useful guide on not just the implementation of this particular paper, but on how to go about implementing a machine learning paper in general. Any feedback on improving the tutorial will be greatly appreciated!