Hacker News new | past | comments | ask | show | jobs | submit login
Ask HN: Want to contribute in Open source implementation of research papers
9 points by gamekathu on Sept 25, 2015 | hide | past | favorite | 14 comments
Hi, I am a JS developer and aiming to get into Research domain. Is there any platform where I could contribute to build a project based on ongoing research, like implementing a research paper? That would help me in getting exposure to research, build my research interest and also improve my coding skills. Thanks!

Here is my humble recommendation:

1) Contribute to (or just read the code of) open source projects in order to improve your coding skills

2) Read up on existing research in topics you're interested in

I understand the desire to be efficient and kill two birds with one stone. However, finding a good, active, community built research project might be a bit difficult. Even if you find it, you may find that opportunities for you to contribute to it are very few.

Contributing to open source projects will give you a good opportunity to understand the open source contributing process (which you'll need to know when you do find that open source project you want to contribute to). It'll also allow you improve you coding skills while you're at it.

Reading research papers gives you much more bang for your buck in terms of developing your research interest, though is not very resume-able. But, who knows, maybe your reading will spark your own open source research project.

Is there a specific field of research you are trying to get into? If so, pick a research paper/topic with practical industry applications, then implement and explain it in an easy-to-understand way. You can write a blog post (or series) about it and publish everything on Github. It may take a while, but personally I found that trying to explain a complex topic in a simple and practical way is the absolute best way to really understand it. Passively reading papers is not going to give you the same understanding. And using JS for this type of project is perfect, because lots of people are familiar with it. You will make research more accessible to everyone, which is something we need. Try to choose a project that's a good fit for JS. For example, something that heavily relies on optimized memory allocation and GPU operations probably isn't a good fit.

Be warned though, there are quite a few research papers, especially those coming out of Academia as opposed to industry, that are cryptic, lacking in detail, or not easily reproducible. And that's intentional. This isn't obvious when you read a paper, it will only become obvious when you actually try to reproduce it. These papers are the result of misaligned goals Academia in, where it's all about publishing as many papers as possible that look good on the surface. When In doubt, I'd recommend focusing on research that has a lot of interest from the industry. That's usually a safer bet.

specific field would be machine learning. I regularly follow Karpathy's blog and his convnetjs library [1], and also Harthur's brain library [2]. yes, I also found a lot of papers cryptic and hard to follow

[1] https://github.com/karpathy/convnetjs [2] https://github.com/harthur/brain

What have you done so far in terms of learning machine learning? There's quite a few resources for getting a good foundation, if that's something you might need.

Ironically, looking dennybritz's comment, JS is particularly ill-suited for this, as, as far as I'm aware, there are no libraries for working on the GPU, which is tremendously useful for working with machine learning algorithms which usually are crunching lots of data.

However, I don't know much about karpathy's specific implementation and experiments, so there might be a reason he choose JS. I'm thinking its more likely to make visualizations easier rather than any computational reason though, so you might be stuck in a niche there.

You're right that JS is pretty ill-suited for implementing production-level Deep Learning architectures that operate on a lot of data, I think it's still well suited for explaining the concepts in a clear way. A lot of the models have intuitive (and visual) interpretations, something that can be nicely visualized with JS.

As for Karpathy's implementation, you're right, he chose JS for that reason. His library is meant as a tool for experimenting and teaching, not to deploy these models in production.

Op: Send me an email if you're interested in this (email in profile). I actually started something similar just recently at http://www.wildml.com/.

Nice blog! Yes I am interested in Deep learning, although am just a newbie. Right now I just read around in several blogs to get the idea. As for JS visualizations, TonicDev[1] is a nice option if someone wants a IPython style notebook in JS

[1] https://tonicdev.com

yep I am learning machine learning from Andrew Ng's coursera offering, which is quite good and hence sparked my interest in this field. also, i read few interesting blogs related to neural nets and machine learning to gain further info

I would suggest you to have a look at http://www.gitxiv.com

Gitxiv is an online list combining research papers from arxiv and their implementations in github. So I would say its a great resource for what you are looking for.

Also, they run some kind of competitive implementation runs where you can collaborate with others to implement papers :


I am a JS dev as well interested in Deep Learning. I dont know your specific interest in this domain but I am happy to collaborate with you - if you are interested. You can reach me at raj at dhi dot io. I would suggest you to pick up python or lua. Lua is quite close to JS and Python is extremely easy to pick up as well.

www.gitxiv.com gives "Modulus | Application Not Found". http://gitxiv.com/ works.

nice! I know python at a beginner level, i can work on it. Yes i am also interested to collaborate and learn, will mail you shortly! :)

I really can't give very good advice, but I'll try to say something...

There are several different types of open source projects and I'm not quite sure which kind you're looking for.

Firstly there are a lot of (often hugely popular) tools used by researchers that don't involve research directly. A good example is Jupyter (formerly known as ipython notebooks). Contributing to these projects is sure be of benefit to many people (probably more than anything else you could do), and may be a good place to learn skills because they're more likely to have good codebases written by skilled programmers. But if the project is already too large (like Jupyter), it may be a lot harder to get into.

Next up, anything that's scientific and written in javascript is most likely to be for user interface, visualisation, or just websites (PR) for research projects. For example interactive visualisations of algorithms. May or may not involve actual involvement to the research. For example I went to a seminar recently by a group of researchers here who create models for simulating the effects of policy changes for policy makers a number of government departments here. They need user interfaces for their tools, and for one project [1] apparently they're using something that generates forms on a webpage, but it's all written in Java and R, and they want to open source everything and get external contributions (the current code they have up is 2 years old). I'm not advertise them, just giving an example; there must be a number of other projects with similar needs. I don't know how you can find find them.

Finally, there may be projects that actually write the real meat of the research software directly in javascript. It sounds like this is what you want. But I don't think javascript is a popular language amongst researchers. Languages like MATLAB/Octave, Python, R, Mathematica, Magma/GAP, C, Java, Julia are mostly used. Checking my CS department's mailing list, the only mention of javascript is a project to write a Google Chrome extension to use the javascript API for an eye tracker [2]

[1]: http://www.arts.auckland.ac.nz/en/about/our-research/researc...

[2]: https://theeyetribe.com/products/

yes it is true JS is not a popular language among researchers. what I aim is to have a research experience in the process of contributing to build research-oriented libraries, since I am new into the research domain and want to develop an active research interest. I read papers, but mostly they are quite cryptic or maybe I lack the basic knowledge for understanding them. Developing and contributing to a research oriented open source project will help me into properly understanding the research being done

Here might be a good place to start learning: https://www.coursera.org/learn/machine-learning/

Much of what research is, is understanding what you're working on in the first place. Getting a solid foundation is a must, or you risk being very lost for some time, and will be fundamentally limited in what you can contribute.

learning from that awesome course. on week 6 now :)

Guidelines | FAQ | Lists | API | Security | Legal | Apply to YC | Contact