Advice for people wanting to learn ML

First things first: consider alternatives#

ML is super cool and hip. But at the moment there is an over supply of Junior Machine Learning Engineers. There is however a huge shortage of Data Engineers and Python Software Developers. If you care more about your career path, opportunities and salary, you should NOT choose to work in ML. If you care about data and statistics, you should choose ML.

For a combo of both, I’d recommend becoming a Data Engineer/Python Dev with a good understanding of the basics of ML and that can easily work with ML Engineers and talk about embeddings, data splitting, model versioning, training vs inferencing, feature stores, …

Other people seem to agree:

Is it still a good time to get into ML? I believe that the AI hype is real and at some point, it has to calm down. That point might have already happened. However, I don’t believe that ML will disappear. There might be fewer companies that can afford to do ML research, but there will be no shortage of companies that need tooling to bring ML into their production.

If you have to choose between engineering and ML, choose engineering. It’s easier for great engineers to pick up ML knowledge, but it’s a lot harder for ML experts to become great engineers. If you become an engineer who builds great tools for ML, I’d forever be in your debt.

Source

If you still want to proceed, start with getting general exposure#

This section can be used as stand-alone assets for business people or starters, and is mostly non technical, or intro-level technical.

I would recommend the following assets to people who want to learn a business level understanding on Machine Learning. This would provide enough exposure to be able to know most trends and common terminology without diving into any technical details or requiring few programming.

After that, become an ML Engineer#

Overview#

  • This 4-year course roadmap give a good overview of all the fields you could learn. That doesn’t mean you have to learn all of them, but you should know the basics of all of them and dive deep into your favorites.
  • The ML Engineer 2020 Roadmap is more skill tree based.

Courses#

The first thing you should do is learn Python or be proficient in another high level programming language. Without that, I believe you can’t start.

Next, depending on your preferred learning style, I would recommended

  • If you like to learn on your own pace:

  • If you like to learn by doing:

    • Get the fundamental theory in first.
    • Kaggle competitions
    • Reimplement papers
    • Side projects (if you need ideas, ping me)
    • Unpaid internships
  • If you like to learn with others.

    • (Belgium only) I would recommend the BeCode AI Bootcamp which is a great initiative that Faktion has supported financially and educationally since it’s inception. BeCode graduates have been hired by Faktion in the past too.

Note that I haven’t done any of these courses myself, it’s only from second hand hearing.

Essentials skills for a Junior ML Engineer#

When we interview a Junior ML Engineer, here is what we expect them to know:

  • Strong and deep fundamentals of the theory around Machine Learning and Deep Learning
  • Programming in the Python stack (pandas, numpy, tensorflow, keras, scikit-learn, typing, …)
  • Software Engineering best practices like writing clean code, using git, documentation, object oriented and functional programming, api’s, …
  • Standard software engineering tools like working with the IDE (VSCode / PyCharm), git, bash, RegEx, ..
  • Basics of working with the command line

Some skills are not expected, but could be a nice bonus. They can be learned on the job too.

  • Sensor data; AHRS, Kalman filters, particle filters, etc.
  • Cloud platforms like Microsoft Azure, Google Cloud Compute, and Amazon AWS
  • Docker, Kubernetes, TF Serving, continuous integration, microservices architecture, …
  • Open source contributions

Finally, specialize!#

After understanding the basics and having had exposure to multiple field gaining broad knowledge, you should naturally have spent time to gain deep knowledge too.

Natural Language Processing#

Personally I find this the most interesting field in Artificial Intelligence at the moment.

  1. Start with learning sequence based deep learning for NLP
  2. Next, any state-of-the-art NLP typically relies very heavily on pre-training using Transformers. Transformers are crucial to understand deeply and I’d recommend the following assets to learn
  3. For a hands-on explanation on how to build state-of-the-art classification and Natural Language Generation I’d recommend the huggingface blog, and specifially Leveraging Pre-trained Language Model Checkpoints for Encoder-Decoder Models