Because of the high volume of inquiries about joining my group, I am not able to reply to every email.
Many prospective and current students have expressed interest in doing research with me. While openings in my research group are rare, this note will detail what qualities I look for in students. It should give you an idea of what I find important for doing successful research with me. The three major elements are communication, mathematics, and programming. I wouldn't expect you to be excellent at all of these aspects right away, but if we work together, I'd expect you to continually make efforts to improve all of these. This should sound fun and exciting to you. If it doesn't, it's a good sign that we may not have great working compatibility.
The first requirement for collaborating with me is some background in machine learning. This background can come from a graduate-level introductory machine learning course or equivalent. You should have a mature understanding of how machine learning algorithms work, their mathematical foundations, and how one implements them in computer programs.
Research requires a ton of communication. You must be able to express ideas verbally and in writing, and you must be good at listening and understanding what others say or write (often not well). You'll need to become an expert in English grammar, style, and usage. You don't need to be an expert right away, and mastering English is a lot of work. It can be challenging for native and non-native speakers. But the better you get at it, the more fun and productive your scientific research will be.
In addition, you will need to hone your skills at mathematical writing. This type of writing can be very different from non-mathematical writing. Mechanically, you will need to know and continually improve your knowledge of LaTeX, which is the standard language for typesetting math-heavy scientific papers.
There is a multitude of weird mathematical concepts in ML research, so you'll need to be capable of learning these concepts. At the core, there are some standard math areas that you need for nearly all ML research. The work I do requires being comfortable with the basic concepts of probability, linear algebra, optimization, discrete math, calculus, and graph theory. Some of these concepts are exotic and could be new to you. Some are things you learned in high school, but we may be using them in higher dimensionality than you're used to.
Machine learning is a mathematical research discipline that is centered on empirical data. You need to be very good at designing, coding, debugging, and maintaining code to test the algorithms and mathematical ideas you investigate. As a reference, my research code is a mix of Python, Java, MATLAB, and C/C++. Among these, my favorite language is Python.
You need to have good programming practices and attention to detail, and you should value well-organized code. You will need to become good at version control, object-oriented design, and quickly picking up new languages, APIs, and libraries. At the same time, you should be good at working at a fast pace, producing quick prototypes, and capable of keeping yourself organized so you know how to clean up our hastily produced experimental code.
If we work together, we'll spend a lot of time struggling with these three areas. At some point, you will have to spend tremendous and absurd amounts of time and effort refining a sentence, being confused by an equation, or trying to find bugs in your code. These situations will be very frustrating and exhausting. At the same time, they should also be fun. Again, if you can't imagine these things being enjoyable, my guess is you'd be happier following a different path. (For example, if you love math but dislike programming, there are lots of more purely theoretical research areas and groups—even some who are doing a type of machine learning research—that might fit better.)
The last point is on the commitment necessary to be successful at graduate research. Science is harsh. Your goal will be to explore something that nobody in the world has ever known before. The amount of time and effort it takes to answer an open question is completely unbounded. And there is no foolproof oracle to tell us which questions will be easier. The harshness of science means that you'll need to be really smart about how you work. You will need to become an expert at time management. You should maintain a steady pace, making substantial progress every day. You should strategize about taking breaks to improve your overall productivity. And you should know when to ask for help. The work should also be fun, like I wrote above.
Be aware that I get a lot of email from students wanting to work with me, so I may not be able to reply to every query. However, if all this stuff excites you more than it scares you, feel free to get in touch to see if our research interests line up. Send me an email at [email protected].
Bert Huang