Getting Started with Machine Learning: A Learning Path that will Take you From Zero to Hero
Getting Started with Machine Learning!
For more than three months, I have been writing consistently every week on my blog and Medium about machine learning ideas. This week, I want to share my thoughts on how someone can get started with machine learning.
We are fortunate to have many and freely available learning resources, but most of them won't help because they skip the fundamentals or start with moonshots.
How does someone get started?
Get Excited First
The first step to learning a hard topic is to get excited first.
Machine learning is a demanding field and it will take time to start understanding concepts and connecting things.
With that said, if machine learning is a new vocabulary to you, here is a great talk by Laurence Moroney that will introduce to you what machine learning really is from a programming perspective.
Start Small
If you do not have a former programming background, it makes sense that you would want to learn how to code. Python is the go-to programming language in machine learning.
You can either dedicate enough time to learn Python especially if you are completely new to programming, or take this small crash intro to Python course on Kaggle to kind of test the type of Python skills you need.
For a far more intensive Python course, you can take a free Intro to Python Programming on Udacity.
Right after you have got the basics of Python, it's time to get started with popular ML tools.
Get Started with Popular ML Tools
Keeping things simple, you can also follow with learning the basics of the tools that you will always need as a machine learning engineer. At this point, I recommend learning NumPy for data computation, Pandas for data analysis and manipulation, Seaborn for data visualization, and Scikit-Learn for classical machine learning.
Here are quick links for resources to learn these tools:
- A visual intro to NumPy for data computation by Lev Maximov on Medium.
- Intro to Pandas for data analysis and cleaning.
- Intro to data visualization with Seaborn.
- Intro to machine learning.
Kaggle is a pool of all kinds of datasets. The best advantage of using those crash courses is that you get to apply what you learn to real-world datasets that are in such a pool.
By learning these 5 tools (Python, NumPy, Pandas, Seaborn, Scikit-Learn), you can already do a lot and it's best to do enough practice before going further.
Graduating from Crash Courses to Learning the Fundamentals of Machine Learning and Deep Learning
The tools we talked about above are pretty useful and you will likely use them day today. But that was only the basics.
If there is a course that is very rich in the foundations of machine learning, it is Machine Learning by Andrew Ng, available on Coursera.
The courses will teach you the foundations of the following machine learning algorithms/techniques/applications:
- Linear and Logistic Regression.
- Regularization.
- Support Vector Machines.
- Neural Networks.
- Machine Learning System Designs.
- Recommender Systems.
- Dimension Reduction.
- Anomaly Detection.
The course is taught in Matlab, but because it's more of learning the fundamentals, you will learn things that will be useful throughout your career.
A Stanford Machine Learning course is more about classical learning algorithms. To learn more about the foundations of neural networks, you can take Deep Learning specialization. Same platform, same instructor, same best-in-class curriculum.
Here are what you learn in Deep Learning specialization:
- Neural Networks and Deep Learning.
- Hyperparameter Tuning, Regularization, and Optimization.
- Structuring Machine Learning Projects.
- Convolutional Neural Networks.
- Sequence Models.
Both Machine Learning and Deep Learning specialization are quite demanding and you should give them enough time to complete the assignments without cheating.
After completing these two courses, you will have all the fundamental knowledge about nearly all machine learning algorithms and techniques. But these are just only the fundamentals.
Going from Fundamentals to Building Actual ML Applications
So far, my assumptions would be that you know almost many things and you want to apply them in real-world settings.
After scanning the internet, there are two great courses that will allow you to do that: TensorFlow Developer Professional Certificate and TensorFlow: Advanced Techniques Specialization.
The first course will introduce you to TensorFlow. TensorFlow is an industrial leading deep learning framework.
Below are what you will learn in the TensorFlow Developer Professional course:
- Introduction to TensorFlow for Artificial Intelligence, Machine Learning, and Deep Learning.
- Convolutional Neural Networks.
- Natural Language Processing.
- Sequences, Time Series, and Prediction.
To test the skills that this course will give you, you can also take the TensorFlow Developer Certificate Exam. The certificate exam will be a sure way to differentiate yourself from others and get an opportunity of being on the certificate network.
For more about the certificate exam, check out this article that I wrote a while back.
With the above course, you can already do a lot of things with TensorFlow. But there are more advanced scenarios that need far more techniques(like object detection and style transfer). This is where TensorFlow: Advanced Techniques Specialization comes into the picture.
The Advanced Techniques Specialization will teach you the following:
- Custom Models, Layers, and Loss Functions.
- Custom and Distributed Training.
- Advanced Computer Vision.
- Generative Deep Learning.
Those two TensorFlow courses are all taught by Laurence Moroney, someone that you will never get bored learning from. He is AI Lead at Google and he has authored fantastic books: AI and Machine Learning for On-Device Developers and AI and Machine Learning for Coders.
Up to this point, you have already learned about building both simple and sophisticated learning algorithms. But how do you make them useful?
Shipping Machine Learning Models
You will need to learn how to build effective learning algorithms and making them useful or deploying them in real-world applications.
Two of the courses that I recommend in learning how to ship machine learning models are TensorFlow: Data and Deployment Specialization and Machine Learning Engineering for Production (MLOps) Specialization.
In Data and Deployment course, you will learn:
- Browser-based Models with TensorFlow.js.
- Device-based Models with TensorFlow Lite.
- Data Pipelines with TensorFlow Data Services.
- Advanced Deployment Scenarios with TensorFlow.
In MLOps Specialization, you will learn:
- Introduction to Machine Learning.
- Machine Learning Data Lifecycle.
- Machine Learning Modeling Pipelines.
- Deploying Machine Learning Models.
MLOps course is taught by Andrew Ng., Robert Clue, and Laurence Moroney.
Like we said earlier, any course listed on this learning path is quite demanding and the time it will take will depend on your learning capability. Regardless of the time it will take you, make sure you enjoy the journey.
Putting All Things Together
To summarize a machine learning path:
- Get excited about machine learning first.
- Start small. Get the basics of Python.
- Learn basics of machine learning tools: NumPy, Pandas, Seaborn, Scikit-Learn.
- Get fundamentals first: Stanford Machine Learning and Deep Learning.
- Get the basics of TensorFlow: TensorFlow Developer Professional course.
- Bonus: get TensorFlow certified.
- Learn to implement advanced techniques in TensorFlow with Advanced Techniques Specialization.
- Learn to ship models with TensorFlow: Data and Deployment Specialization and MLOps Specialization.
Thanks for reading.
Each week, I write one article about machine learning techniques, ideas, or best practices. You can help the article reach many people by sharing it with friends or tech communities that you are a part of.
And connect with me on Twitter!
P.S. Confusion matrix can be confusing