Research advice
05 Apr 2020I’m now about three years into doing research. Here’s some advice I would give to someone starting research now:
- Your perspective is useful precisely because of the unique background you have.
- Don’t get discouraged: by nature, research is hard and about trying to do something no one has done before. Be patient when you get stuck.
- Have at least one senior mentor that you can check in with (at least once a month). Even if you are focused on learning fundamental concepts, it’s helpful to have more specific guidance.
- Try to join a community of other researchers. This is easier to do at an university, but there are local conferences and meetups as well.
- Write. It’s very important to write and communicate effectively. I think it’s valuable to do regular reflections on things you’ve learned and to have some way of keeping track of ideas you want to try. I use a combination of Google Docs and a physical notebook.
- Try not to compare yourself to others; research is not a zero-sum game.
- Strive for a healthy work-life balance and hobbies outside of research.
Machine-learning specific
- Do lots and lots of math. There’s no one particular set plan (again, everyone is valuable because of their unique path). Do what’s interesting to you. It’s important to know about the existence of techniques and to draw connections between fields you might not know are related.
- Implement. Again, no set plan. Pick a paper you like (it does not have to be recent) and try to reproduce the results. There are many benefits. You will notice decision choices not mentioned in the original paper. Reproducibility challenges are one way to engage with the community and broaden the impact of your code. Many times, the original implementation is optimized to make nice plots for a conference paper. Other researchers and practitioners will gravitate towards your implementation if it is easier to use and understand.
Some good courses I’ve gone through (with plenty of online resources):
- EE263 - Linear Dynamical Systems (Stanford)
- CS231n - Neural Networks (Stanford)
- CS285 - Deep Reinforcement Learning (Berkeley)
Read other guides to doing research. The ones below I found particularly useful.
At some point, you need to trust your instincts. Reinforcement learning achieves higher returns than behavioral cloning (but a good teacher still gives you a good initialization). Karpathy’s tweet has stuck with me and reflects my approach to learning.
After writing this, I remembered that I had done something similar in the past. Here are some thoughts from 2017. I had been doing research for about eight months.
-I think identifying problem(s) of interest to research is hard for a new researcher. Maybe jumping into a project that's in progress is the best way to get started. I definitely was not sure what I was interested in. It's also hard to have intuition on which problems are fruitful/easy/hard. Getting exposure to more papers and ideas and trying to distill innovations others make into a sentence or two is helpful for me.
Some additional advice I'd give to myself (and still need to improve on):
- Be organized. Write down what you did, questions you have, experiments you ran so that it's easy to retrieve later.
- Being stuck for a bit is good. Being stuck for a long time is not.
- Metacognition is very helpful since research is different from most other things you've done. Things will not go as planned much more than usual, especially at the beginning. It's important to understand your motivation for doing research.
- Growing as a researcher doesn't just have to be sitting in front of a computer. Changing the environment, reading other work, brainstorming ideas with others, watching talks, and learning more fundamental concepts (math/stats/optimization etc.) can help lead to more sustainable productivity.
- Lastly, a big change that's been helpful for me is to change the mindset with which I approach research. While it's good to have a high-level goal, it's very important to focus on and enjoy the day-to-day tasks. When I started doing research, I was very disappointed when an experiment didn't work because it seemed to be slowing me down and meant that I was not any closer to publication. While it's probably a natural feeling to have, it's more useful (and healthier) to frame failed experiments as an opportunity to learn and to build intuition.