Machine Learning Monthly 💻🤖 March 2020

Daniel Bourke

Hey everyone! Daniel here, I'm 50% of the instructors behind the Complete Machine Learning and Data Science: Zero to Mastery course. I also write regularly about machine learning on my own blog as well as videos on the topic on YouTube.

Welcome to the 3rd edition of Machine Learning Monthly. A 500ish word post detailing some of the most interesting things on machine learning I've found in the last month. If there is enough interest, I will keep doing these every month so please share it with your friends!

Since there's a lot going on, the utmost care has been taken to keep things to the point.

If it’s your first time here… (otherwise skip this part)

Being a Machine Learning Engineer is a fantastic career option and Machine Learning is now one of the fastest growing job markets (including Data Science). Job opportunities are plentiful, you can work around the world, and you get to solve hard problems. However, it’s hard staying up to date with the ever-evolving ecosystem.

This is where this newsletter comes in. Every month, it’ll contain some of my favourite things from the industry, keeping you up to date and helping you stay sharp without wasting your time.

If you want to be the first to get next month's issue of Machine Learning Monthly and receive other exclusive ZTM content once in a while, subscribe below 👇

What you missed in March as a Machine Learning Engineer…

1. — Build custom ML tools

Jupyter Notebooks are great for communicating, exploring and experimenting. But when it comes time to put what you’ve found into an application or tool you can share with others, there are probably better options.

Streamlit is one of those. It helps you turn your models and data into apps.

By apps, I mean something someone else can access and actively interact with what you’ve created.

Deploy them to a web server and have someone try out your latest text classification model with their own text. Or explore your latest data exploration just as you did.

I’m going to be using Streamlit to create an application out of the machine learning code I’ve been writing for my current project to replicate Airbnb’s amenity detection. TK - link

2. AlphaGo — The Movie: conquering the impossible

It was once thought a computer could never learn to play chess. Then in 1997, DeepBlue beat Gary Kasparov, the reigning chess world champion at the time.

Then with more possible game combinations than there are atoms in the universe, people again thought Go (a board game with Chinese origins) was no match for a computer.

Until AlphaGo.

AlphaGo is a machine learning algorithm which taught itself how to play Go by playing against itself for thousands of hours of compute time. I say thousands of hours of compute time because although a version of AlphaGo capable of beating many professional Go players could be trained in 4-6 weeks of clock time, since the learning algorithm runs on multiple computers, the actual number of hours gets amplified.

AlphaGo - The Movie takes you through the story of AlphaGo and what it means for the possible future of machine learning.

Is learning to play games a viable path to artificial intelligence?

3. Detecting COVID-19 with TensorFlow and Keras

Pyimagesearch has the best computer vision tutorials and articles on the web. And this one is no different.

With what’s happening in the world right now, if you’re interested in machine learning, it’s impossible not to think about how your skills can help.

In this article, Adrian Rosebrok PhD, shows you how you can use TensforFlow (a deep learning framework) and Keras (a subset of TensorFlow) to build a computer vision model to classify whether a patient has Coronavirus based on their chest X-rays.

Warning: This shouldn’t be considered as work you can use to treat patients but as an example of how machine learning techniques may be able to make their way into the hands of future healthcare providers.

4. Using TensorFlow.js and Teachable Machine to build and X-ray classifier

Speaking of X-rays, this inspiring story goes through how a doctor in the Phillipines built an X-ray classifier tool to help his coworkers and new colleagues.

My two favourite things are:

  1. It’s deployed so you can access it from a web browser (using TensorFlow.js, a JavaScript version of TensorFlow)
  2. The prototype was built using Teachable Machine (no code required!)

Goes to show, to get something out there, you don’t always need the most advanced solution.

5. Made with ML — a place to showcase your machine learning projects

I’m really excited about this. Machine learning education is exploding. So you’ll often see many people having the same resources on their resume, Coursera, Udemy, fastai, Kaggle.

But what about their own projects?

This is where Made with ML comes in. It’s a platform to showcase the projects you’ve built on your own using machine learning. It then allows others and potential employers to see your work and what you’re capable of.

Courses are great for building foundations but your own projects are where the real knowledge gains come from.

Be sure to check out their lessons as well. Some of the best quality materials in both TensorFlow and PyTorch.

6. Feature engineering: What it is and how to do it

Your data has missing values, how should you deal with them?

Two columns look like they could be combined into one, how would you do it?

Your data is a mix of numerical and categorical information, how can you prepare it to be used with machine learning?

Discover Feature Engineering by Jason Brownlee PhD from Machine Learning Mastery goes through different examples of feature engineering, when you should use them and how you should use them.

7. The missing part of your Computer Science education (things the courses leave out)

How should you use the Shell? Wait, what even is the shell?

How can you use Vim (code/test editor)?

How should you use version control (Git)?

What’s debugging and profiling?

If you’re learning machine learning or coding online or computer science, a lot of these things might sound like complete unknowns. And then you get to an article or read a tutorial which mentions one or uses one as if it's a well-known prerequisite, except you’ve got no idea what’s going on.

The missing part of your Computer Science curriculum by MIT offers a look at 10 different tools you’ll likely spend thousands of hours using throughout your programming adventures.

It makes sense to not only learn what they are but how to use them effectively.

I plan on going through this myself in the coming weeks.

8. Natural Language Processing (NLP) for developers YouTube Series

If you’re a developer who wants to use NLP in your applications, how should you do it?

Hold on, what even is NLP?

Natural language processing (NLP) helps you get information out of text data.

If you’re interested in building applications which involve text, it’s worth knowing about.

This great and free series from Rasa (a platform for building AI-powered assistants) developer advocate Rachael has just started and plans to go through a series of NLP tools and techniques you can use to get more out of your text.

Check out the first video explaining what word embeddings are.

9. How to use Jupyter Notebooks in 2020

There are a bunch of new machine learning tools popping up, almost too many.

So which one should you use?

The short story is, Jupyter Notebooks remain king for experimentation.

Part 2 of Lj Miranda’s series on Jupyter Notebooks in 2020 discusses some simple ways your machine learning workflow could (and should) look like.

It’s very similar to the one I’ve been following in my latest project:

  1. Use Jupyter Notebooks and Goolge Colab to explore and build foundational functionality (free).
  2. Use Cloud providers such as GCP or AWS when the compute offered by my local machine or Google Colab isn’t enough.

That’s it.

Tools shouldn’t get in your way, they should enable you to make things.

See you next month!

And that's it for March.

As always, let me know if there's anything you think should be included in a future post. Liked something here? Leave a comment below.

In the meantime, keep learning, keep creating.

Daniel | YouTube

How did you like this post? Let me know if there are any changes or improvements you’d like to see. Please share the post on Twitter if you enjoyed it and want me to keep writing them! Also, if you haven't already, subscribe below to receive Machine Learning Monthly next month and other exclusive ZTM posts.

By the way, I'm a full time instructor with Zero To Mastery Academy teaching people Machine Learning in the most efficient way possible. You can see a couple of our courses below or see all Zero To Mastery courses by visiting the courses page.

More from Zero To Mastery

The Developer’s Edge: How To Become...

This is part 2 of a series of articles for programmers looking to upgrade their ...

Don't be a Junior Developer

Seriously, don’t be a junior developer. A junior developer puts this title in ...

Python Monthly 💻🐍 March 2020

4th issue of Python Monthly! Keeping you up to date with the Python industry eco...