Understanding Code Repos of Implemented Papers

Hello all,
I am facing a lot of trouble when I look at repos of implemented papers. When we take a course we mostly work with simple notebooks but when papers are implemented they use a very complex structuring system which I am finding almost impossible to decipher.
My question is how do I get good with this task? Are there any resources which teach how to tackle this issue?
Any help here will be greatly appreciated.
Thanks.

It’s a good question, but unfortunately I don’t think there is any easy answer. If it’s any comfort, you are definitely not alone in this. The problem is that academic papers are written with a target audience of other experts in the field. They typically go through a review process, but the reviewers are also domain experts. The reviewers are looking for correctness and completeness of evidence, but are most likely not using accessibility of the explanations to non-experts as one of the review criteria. It’s unfortunate, but you could look at this as being analogous to text books in a field: if you pick up say a math text book for a third year undergraduate course, it assumes you have taken the first and second year courses, so it may well not be understandable to someone who has not taken those prerequisites.

You can get lucky in some cases and the authors are more generous in terms of making more of an effort to make their work accessible to a wider audience. Also in some cases the authors will release their source code on GitHub showing an implementation of their ideas. Of course with source code you also have levels of accessibility: if you’re a software engineer writing code that you know needs to be maintained in a production environment for years, you hold yourself to a higher standard for clarity and maintainability of code than if it’s just a “throwaway” effort to demonstrate some idea. Meaning that just because there is source code doesn’t mean it will be easy to understand.

The best advice I can think of is just not to get discouraged and keep trying. Keep upgrading your knowledge by taking more courses. One positive idea is that the courses here frequently give references to papers. I’m most familiar with DLS and for example in Course 4 about Convolutional Networks, Prof Ng gives references to the papers behind the ideas that he is presenting. I also recall a few cases in which he is specific about encouraging us to look at the paper because it’s more accessible than most. It would be worth checking the references in DLS C4. If you can find some papers there which are more accessible, that might give you a way to get more comfortable in the discipline of reading and understanding papers.

1 Like