Journey to Machine Learning Part 1 Introductions Motivations and Roadmap
Beginnings of how to start a career in Machine Learning
If you’ve been following the news at all, chances are you’ve seen the headlines about how much demand there is for machine learning talent. In the recent LinkedIn Economic Graph report, “Machine Learning Engineer” and “Data Scientist” were the two fastest growing jobs of 2017 (9.8x and 6.5x growth, respectively). Medium itself is rife with tutorials, reviews of software, and tales of interesting applications. Despite the apparent demand, there seem to be few resources on actually entering this field as an outsider, as compared the resources available for other areas of software engineering. That’s why I’m writing this series: to serve as documentation of my journey to becoming a Machine Learning Engineer from a non-CS background.
“But Matt”, you must be saying, “That’s not at all unusual, lot’s of people go into machine learning from other fields.”
It’s true that many non-CS majors go into the field. However, I was not a declared statistics, mathematics, physics, or electrical engineering major in college. My background is in molecular biology, which some of you may have noticed is frequently omitted from lists of examples of STEM fields.
Credit to Randall Munroe and XKCD (had a tough time deciding between this comic and this one) While I was bit more focused on statistics and computer science during my undergrad than most bio majors, this is still an unusual path compared to a physicist entering the field (as this lovely post from Nathan Yau’s FlowingData illustrates).
Since high school, I had an almost single-minded obsession with diseases of aging. A lot of my intoduction to machine learning was during my undergraduate research in this area. This was in a lab that was fitting discrete fruit fly death data to continuous equations like gompertz and weibull distributions, as well as using image-tracking to measure the amounts of physical activity of said fruit flies. Outside of this research, I was working on projects like a Google Scholar scraper to expedite the search for papers for literature reviews. Machine learning seemed like just another useful tool at the time for applying to biomedical research. Like everyone else, I eventually realized that this was going to become much bigger, an integral technology of everyday life in the coming decade. I knew I had to get serious about becoming as skilled as I could in this area.
But why switch away from aging completely? To answer that, I’d like to bring up a presentation I saw by Dr. David Sinclair from Harvard Medical School. Before getting to talking about his lab’s exciting research developments, he described a common struggle in the field of aging. Many labs are focused on narrow aspects of the process, whether it be specifc enzyme activity, nutrient signalling, genetic changes, or any of the other countless areas. Dr. Sinclair brought up the analogy of the blind men and the elephant, with respect to many researchers looking at narrow aspects of aging, without spending as much time recognizing how different the whole is from the part. I felt like the reality was slightly different (that it was more like sighted people trying identify an elephant in the dark while using laser pointers instead of flashlights), but the conclusion was still spot-on: we need better tools and approaches to addressing problems like aging.
This, along with several other factors, made me realize that using the wet-lab approach to the biological sciences alone was incredibly inefficient. Much of the low-hanging fruit in the search space of cures and treatments has been acquired long ago. The challenges that remain encompass diseases and conditions that might require troves of data to even diagnose, let alone treat (e.g., genomically diverse cancers, rapidly mutating viruses like HIV). Yes, I agree with many others that aging is definitely a disease, but it is also a nebulously defined one that affects people in wildly varying ways.
I decided that if I was going to make a large contribution to this, or any other field I decided to go into, the most productive approach would be working on the tools for augmenting and automating data analysis. At least for the near future, I had to focus on making sure my foundation in Machine Learning was solid before I could return my focus to specific cases like aging.
In the past year I’ve gone from learning about machine learning and self-teaching to actually getting paid to work on Machine Learning projects. Machine learning engineering is still relatively new, so I felt like my experiences so far could be useful for others trying to get into this area. While there are plenty of listicles and video tutorials for specific machine learning techniques, there isn’t quite the same level of career-guide-style support like there is for web or mobile developers. That’s why this will be more than just compiling lists of resources I have turned to for studying. I will also document the best practices I’ve found for creating portfolio projects, finding both short-term and long-term work in the field, and keeping up with the rapidly-changing research landscape. I will also compile nuggests of wisdom from others I have interviewed who are further along this path than I am.
I have two objectives in mind with writing this series:
If my long term goal of getting into machine learning enginering permenantly is ultimately successful, I’d like this to serve as a roadmap for others trying to get into the field (and are trying to enter with less than a computer science masters or PhD from Stanford). In this case, the metrics of success involve securing a full-time position at either a top technology company with a large R&D department, or a rapidly-growing startup (and contributing to that startup’s rapid rate growth rate over a timescale of years). If I can succeed at either of these coming from a non-CS background, then it is likely that the resources I provide could lead to even greater success for someone coming from an actual CS background.
The level of technical ability you need to show is not lowered, it’s even higher when you don’t have the educational background, but it’s totally possible. — Dario Amodei, PhD, Researcher at OpenAI, on entering the field without a doctorate in machine learning
If I am ultimately not successful though (defined by some sort of empirical evidence that what I am trying to do is not possible, or that I am too far removed from this field), I’d like this to serve as a record that others could point to on what what to avoid. This outcome is less likely as I’m already at the point of getting paid for doing machine learning work (It might be a while before these posts catch up with the present), but there is still further up the ladder to climb. I don’t want to celebrate prematurely.
With that in mind, here is a tentative roadmap of the rest of the series:
- Introductions & Motivations (i.e., the one you’re reading right now)
- Checklist of Skills for Machine Learning Engineering
- Habits for Improved Productivity & Learning
- Software and Hardware Resources
- Finding Mentors and Immersion
- Reading Research Papers (and a few that everyone should know)
- Problem-Solving Approaches and Workflows
- Freelancing as a Machine Learning Engineer
- Practical Considerations of the union sets of AI and Machine Learning Work
- Groups and People you should be Familiar with
- Interviewing for Machine Learning Engineer Positions
Much of the content for these has already been written, although the order and number of these posts may change. Stay tuned for more updates, and feel free to respond with suggestions for content you’d like to see. Thanks for reading!