This post is part of “AI education”, a series of posts that review and explore educational content on data science and machine learning. (In partnership with Paperspace)
When it comes to software development education, I’m a classical type: I prefer books over video tutorials, and I like to manually write every single line of code instead of copy-pasting from sample files and Stack Exchange. My early experience with online artificial intelligence and machine learning courses had mostly left me disappointed.
So, when Udemy gave me access to their online course “Machine Learning A-Z: Hands-On Python & R In Data Science,” I was a bit skeptical. But after going through the course, I must say that the instructors, Kirill Eremenko and Hadelin de Ponteves, have done a great job to make machine learning, a fairly complicated topic, accessible to a wide audience. Equally important is Udemy’s effort to keep the course material up to date with the ever-changing landscape of Python machine learning libraries.
To be clear, Machine Learning A-Z probably won’t make you an AI and data science guru. But it will be an excellent first step in your journey to mastering machine learning, giving you a solid foundation to move on to more complicated tasks.
Bring your own math and programming skills
Before getting started with Machine Learning A-Z, know that you need to have a background in math and programming. The instructors have done an excellent job to minimize the course’s engagement in formulas and math. But at the end of the day, data science and machine learning are about statistics and probabilities, and if you haven’t been around math for too long, you should blow the dust off your high school math book and keep it handy.
The course also won’t take you through the basics of Python and R, which in my opinion is a wise choice. Data science and machine learning are not for the uninitiated, and if you don’t feel comfortable around Python code, then you should probably start with a Python intro.
If you come from another programming language such as C/C++, C#, or Java, then I still recommend that you take a Python crash course before delving into Machine Learning A-Z. Python’s coding conventions are very different to the semi-colon- and bracket-based programming languages, and it takes a little practice to get the hang of it.
On the coding side, I was very much pleased with the template-based approach that Hadelin develops in the course. The instructor breaks down the steps of creating, training, and testing each category of machine learning algorithms into distinct steps (e.g., loading the data, splitting the training and test sets, scaling the data, creating and training the model, etc.). For every new machine learning algorithm, you only need to plug in new code into the template. The idea is that the process for creating most machine learning is very similar, and you only need to tweak the steps.
That said, I do think that the coding examples left a bit to be desired when it comes to structure and modularity. As a person with a long background in object-oriented analysis and design (OOA/D), I’m always looking to refactor my code into class hierarchies and interfaces that can maximize flexibility and reuse under different conditions. You’ll find no such thing in Machine Learning A-Z (or in most other machine learning courses, for that matter), which is a bit disappointing. After all, sample code is good when you’re trying them out for fun in Jupyter Notebooks, but when you want to build end-to-end solutions and real-world applications, you’ll need to break your code into different components and modules.
Then again, it is understandable that adding such elements would probably make the code examples complicated for people who aren’t comfortable with modular and object-oriented programming.
A taste of everything and not too much of anything
One of the things I always look at when reviewing a machine learning book or course is the range of algorithms it covers. In this regard, Udemy’s Machine Learning A-Z does not disappoint. The course goes through a wide assortment of supervised machine learning algorithms for regression and classification tasks such as linear and logistic regression, support vector regression (SVR) and machines (SVM), decision tree predictors and classifiers, and random forests. You also get a taste of unsupervised learning with k-means clustering and later on with principal component analysis (PCA).
First, Kirill takes you through the idea behind each machine learning algorithm, displaying the mechanics and process with charts, photos and other visuals. And he does a marvelous job at doing it, especially on some of the topics that can be hard to grasp without visualization, such as dummy variables and one-hot encoding. But I wish some of the fundamental concepts of data science and machine learning such as standard deviations and z scores would also be included in the intuition sections.
Once you go through the theory, Hadelin provides a step-by-step guide of coding each machine learning algorithm, and in the process, he introduces relevant libraries and coding techniques. You’ll get to work with all the main Python libraries, including NumPy, Pandas, and Scikit Learn.
Machine Learning A-Z has a chapter on natural language processing. While the course doesn’t go too deep in NLP and only introduces the “bag-of-words” technique, it does provide a solid foundation on the special nuances of preparing textual data for machine learning algorithms.
The section on deep learning provides a very intuitive introduction to the concepts behind the most popular branch of AI. Kirill gives an overview of artificial neural networks and then takes you through convolutional neural networks and computer vision. You’ll get to use deep neural nets both for processing tabular data as well as classifying images. The authors have chosen the Keras library for the deep learning coding section, which is a good choice since it abstracts away much of the complexities of PyTorch and Tensorflow, the two leading deep learning frameworks.
To their credit, the authors also introduce papers and blog posts that elaborate on the topics they teach in the course. This is one of the things I liked the most about the course, since there are literally thousands of AI papers and blog posts being published every year, and it’s very hard to zero in on a post that best explains a topic.
The authors have taken care to keep the sample code and data within the processing capabilities of most desktop and laptop computers. This is another plus for the course, because not everyone has access to expensive server clusters and GPU racks. An exception is the computer vision chapter, where you’ll have to train your deep learning algorithm on 8,000 images (not a big dataset by DL standards), but that too is manageable by most computers if you can wait for a few hours.
An excellent and responsive community
Where Machine Learning A-Z really shines is its support and community features. First of all, if you’re new to machine learning with Python, know this: tutorials and textbooks get old very fast. If you come with a background of coding for standard C/C++ libraries and popular APIs such as the Windows and Sockets APIs, you’re probably used to plugging your 20-year-old code into a new project and see it run smoothly with the latest versions of these libraries.
In Python, there’s no such thing. The machine learning and data science libraries you’ll use are often undergoing much change. If you pick up a Python machine learning book from, say, 2015, there’s a great probability that the code will have many errors if you try to run it on the latest versions of its corresponding libraries.
The folks at Udemy have taken care to constantly update the instructions and code samples to make sure you’re always up to date with the latest versions of the machine learning libraries. In some cases where the videos have become outdated, a slide provides instructions on how to code properly.
But even if you run into a new problem while trying to run the code, the course has a very useful Q&A section where you can see questions by the community answered by the instructors. This is a very active community with dozens of questions being filed every day. As of this writing, more than 40,000 questions had been registered for Machine Learning A-Z.
I filed one question about slow training times for the CNN example. Although I did not receive an answer in the first 20 hours (except one from a bot that said that it could not answer that question and a teacher assistant would respond), the community Q&A was filled with plenty of useful information. After filtering the questions to the lesson I was having trouble with, I was able to find several interesting discussions that contained potential solutions.
Where do you go from here?
Udemy’s Machine Learning A-Z course will demystify artificial intelligence, and you’ll have a much stronger grasp of the kind of technology you use every day.
But don’t stop here. This is just the beginning of your journey in artificial intelligence. Many of the topics mentioned in this course have much more depth to explore. NLP and computer vision each have their own separate courses and books, which will teach you many of the exciting applications you can build.
Machine Learning A-Z will whet your appetite for more.