Reproducible Research for Pattern Recognition

A hands-on course given at UNESP Bauru, Brazil, on reproducible research for engineers working with software in pattern recognition and machine learning.

22 July 2015

This is a course on reproducible research for research engineers working with software applications in pattern recognition and machine learning, given at UNESP Bauru, Brazil. It motivates and explains the concepts behind reproducible research, its implications, and the tools for implementing it at an individual or group level. It is hands-on: students are required to create their own workflows for selected problems. By the end of the course, students should understand the basic concepts of reproducibility, its importance in their daily practice, and how to achieve it with freely available tools and environments.

One of the key aspects of modern technological research lies in the use of personal computers, either for the simulation of known phenomena or for the evaluation of data collected from natural observations. Mashups of these data, organised in tables and figures, are attached to textual descriptions leading to scientific publications. In current practice, the data sets, code and actionable software leading to those results are excluded upon recording and preservation of articles. This panorama slows down potential scientific development in at least two major aspects: re-using ideas from different sources normally implies the re-development of the software leading to the original results, and the reviewing process of candidate ideas is based on trust rather than on hard, verifiable evidence that can be thoroughly analysed.

The course introduces the concept of reproducible research, a term that labels scientific work providing not only a description of the effort leading to the stated conclusions, but also pointing to the data, software and instructions that allow readers to reproduce the author’s results locally, with all required details and in a very short time. The promised gains are considerable, but they do not come without a cost: to boost reproducibility, researchers need to re-organise themselves so as to always be doing reproducible research. The course walks students through the tools and practical exercises required to implement it in their daily activities.

Finally, students are introduced to the BEAT platform, a web-based system for reproducible research. BEAT provides tools to graphically create workflows, write algorithms, and run, log and search for results in a socially interactive way. All the complexity of reproducibility and computation is hidden behind a graphical web interface, and experiments designed inside the platform can be transmitted and reproduced in a matter of seconds.

Program

The length of each topic depends on student motivation and discussions. The minimum course time is around 10 hours, and it can be given over two days of at least 5 hours each.

Prerequisites

Participants should understand the basics of pattern recognition, machine learning and programming. Knowing the Python programming language is a plus, as is familiarity with numerical and scientific programming in Python (NumPy and SciPy).

Materials

Cover: Unesp Bauru by Hernani Arruda Monteiro da Silva, resized, CC BY 2.0.