Advice for people wanting to learn ML

First things first: consider alternatives#

Machine Learning is a tremendously exciting field. But at the moment there is a slight oversupply of Junior-level Machine Learning Engineers or Data Scientists. 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 can also choose to NOT work in ML. If you care about data and statistics, you should choose ML though.

For a combo of both, I’d recommend becoming a Full Stack Developer/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 nontechnical, or intro-level technical.

I would recommend the following assets to people who want to learn a business-level understanding of 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 programming.

General introduction to Artificial Intelligence

General introduction to Natural Language Processing using Transformers

After that, become an ML Engineer#

Overview#

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 recommend

  • If you like to learn at 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 its 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 fields 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 of how to build state-of-the-art classification and Natural Language Generation I’d recommend the huggingface blog, and specifically Leveraging Pre-trained Language Model Checkpoints for Encoder-Decoder Models
  4. To specialize even further in the field, I would recommend
    • ABigSurvey contains overview papers per application. Not always up to date and some survey papers are quite old.
    • paperswithcode is similar but one level deeper: contains individual papers per application. Is up to date.
    • NLP Progress compares benchmarks of many different tasks.