So You Want To Learn Machine Learning
A lot of people have asked me how to get started with AI and Machine Learning? And I have answered more than hundreds of them. Now I started receiving messages on a daily basis with the same question. So, this time I thought let's write a blog on How to get started with Machine learning and become a PRO.😎
My Life Journey 🚶
I came from an Electronics background.⚡ My undergrad was in Electronics & Communication Engineering (ECE) and I was an out and out Hardcore Hardware Engineer 🧰, I did Circuit Designs, PCBs, Microcontrollers, Embedded Programming, C, C++, working with wires, breadboards and stuff.🔌💡
And then I did Networking (CCNA)🖧, then Web development (HTML, CSS, JS, Php)🌐 and Wireless Sensor Networks. It already seemed a lot for me.😫 Finally college was over (2015) and I had no idea what to do.🤷♂️
My friends and I joined my professor's startup and were working on IoT (The Internet of Things). As AI is a buzz today, IoT was a buzz then.🐝 People were working with Arduinos, RaspberryPis, ESPs (these are for kids👶 u knw LOL 😜), we were building industry standard IoT systems (ARM, Microchip, TI) with Sensors and Radios (GHz).📡
காலத்தின் கட்டாயம் (force of time), I joined MS (by research)🎓 at Center for Research, Anna University and got to work with cutting edge IoT(LoRa, Thread, Cognitive Radio, NB-IoT and 5G).👨💻 Life seemed to be going hard, but interesting.
🤔 Why am I telling this? This isn't my biopic right? Who cares🤷♂️
OK, lets get back to the story, even though I had already switched career many times from Electronics -> Embedded -> Networking -> Web Development -> Internet of Things, 🤷why in the world did I want to become an AI developer🤖
I forgot a few other things - I was doing Freelancing during my MS (Java, Spring, NodeJs, REST, Angular, ReactJs, GCP, AWS, Ionic, Android, Docker) to make money🤑💲
How I got into AI ? 🧠
One fine day (2018) I was watching a YouTube video🎬 and they were discussing on How to land a Drone🚁 on a Moving Car🚗. I was amazed, I even tried to fly a remote controlled drone and broke one. It seemed like an impossible task for me but they had done it...!! They said it's using Machine Learning.😮 And before I could even realize, I was already watching tutorials.
I began looking into Machine Learning (ML) and Artificial Intelligence (AI). There was so much going on. 📢 Too much. 📢📢📢 Every week it seemed like Google or Facebook were releasing a new kind of AI to make things faster or improve our experience. Self-driving cars🚗 were popping out and the world's first robot citizen Sophia🤖 was showing-off.
Even with all this happening, there was still yet to be an agreed definition of what exactly Artificial Intelligence is. Some argued that Deep Learning can be considered AI, whereas others were saying it’s not AI unless it passes the Turing Test.✔️
This lack of definition really stunted my progress in the beginning. It was hard to learn something which had so many different definitions.
“The computer learns things for you?” I couldn’t believe it.😮
My Self-Created AI Master's Degree
I didn’t plan on going back to university anytime soon. I didn’t have $100,000 for a proper Master's Degree anyway. So I did what I did in the beginning. Asked my mentor, Google, for help.
I knew online courses had a high drop out rate. I wasn’t going to let myself be a part of this number. I had a mission.🚀
As my entire AI education is online, I have never been to any institution but now I am teaching Faculties, Phd Scholars and also doing corporate trainings. It is Mostly from free MOOCs and YouTube videos, I don't prefer books, but I read a lot online (coz they are updated often). Google, Stackoverflow, Quora, Medium, Github and Communities helped me a lot in my learning journey.
How do you start ?
Where do you go to learn these skills? What courses are the best? There’s no best answer. Everyone’s learing style would be different. Some prefer books, whereas others like me prefer videos (It saves time u knw, in 2X, even 3X⏩ sometimes).
What’s more important than HOW you start is WHY you start 🤔
Ask yourself a why? before a how? ❓
Why do you want to learn these skills? 🤹
Wanna make money? 💰
Wanna build things? 🏗️
Wanna make a difference? ➖
Or you are just bored doing the same stuff? (like me 😎)
"Everything is fair in love, war and learning".⚖️ There’s no right or wrong reason.
Start with why because having a why means when it gets hard and it will get hard, you’ve got something to turn to. Something to remind you why you started. Got a why? Good. Time for some hard skills.
Now comes the Technical part
If you’re an absolute beginner, start with some introductory Python🐍 courses and when you’re a bit more confident, move into Data Science, Machine Learning and AI. DataCamp is great for beginners wanting to learn Python with a Data Science and Machine Learning focus.
I highly recommend Python Programming Tutorials by Socratica🦉
If you prefer some online course like MOOCs, Coursera offers a more official version Programming for Everybody (Getting Started with Python). It includes the videos from the free course, but with the addition of extra readings, quizzes, and a certificate.
Is watching these videos and completing these courses enough?
Nooooooooooo🙅♂️
Go to HackerRank or LeetCode and solve 50 problems. Then you get into AI and ML, coz 50% in Machine Learning is actually software engineering. If you don't know basic data structures & algorithms and struggle to iterate over a simple array, things don't work that way.
Is Python enough ?
Yeah it can do most of the job, but you need some handy tools and libraries to make life easier.
They are Numpy (Matrix and Linear Algebra), Pandas(Dataframes and Data Manipulation), Matplotlib (Plotting and Visualizing) and scikit-learn (?? - we'll get back to it).
Resources for learning them
- A Visual Intro to NumPy and Data Representation📙
- Python Numpy Tutorial by freeCodeCamp.org▶️
- A Gentle Visual Intro to Data Analysis in Python Using Pandas📙
- Data analysis in Python with pandas by Data School▶️
- Matplotlib Tutorial: Python Plotting by Datacamp📙
Now we are done 👍 Python (Data Structure and Algorithms included), and Numpy, Pandas and Matplotlib.
Finally coming to Machine Learning
Machine learning is learning📚 from data, it's that simple. You don't have to write hard coded rules for every edge case, the algorithm is gonna learn for you and derive all the rules from the data. You just have to choose a proper Algorithm and feed your data and your AI dish🍲 is ready.
Nows let's come to the salt🧂 of our dish - Maths🧮
It doesn’t matter what catches your fancy, machine learning, artificial intelligence, or deep learning; you need to know the basics of math and stats—linear algebra, calculus, optimization, probability—to get ahead.
If you want to apply machine learning and AI techniques to a problem, you don’t necessarily need an in-depth understanding of the math to get a good result. Libraries such as TensorFlow and PyTorch allow someone with a bit of Python experience to build state of the art models whilst the math is taken care of behind the scenes.
If you’re looking to get deep into machine learning and AI research, through means of a PhD program or something similar, having an in-depth knowledge of the math is paramount.
Math is a specific, powerful vocabulary for ideas; and giving a structure to the way you learn it will empower you to absorb much more of it much faster.
Here👇 I have added links to MOOCs🎓, YouTube▶️ Playlists and Free e-books📚.
🔗Mathematics for Machine Learning
Now that we have seen most of the ingredients🥗, here's the masala🍛 to it.
Know the top 10 Algorithms in Machine Learning
This is a good order to learn it,
- Linear Regression
- Logistic Regression
- Decision Trees
- Random Forest
- Naive Bayes
- SVM
- KNN
- K-Means Clustering
- Principal component analysis (PCA)
- XG Boost
Wonder how you implement all these things, that's where . scikit-learn (Machine Learning Library for Python) comes in.
You can find THE BEST✔️ resources for the above Algorithms (Theory, Math, Code) in the below link 👇
🔗An Ultimate Compilation of AI Resources for Mathematics, Machine Learning and Deep Learning
Next lets move on to Deep Learning
Deep Learning is a subfield of machine learning concerned with algorithms inspired by the structure and function of the human brain called artificial neural networks. Given enough data and computing power, it out-performs all other traditional Machine Learning Algorithms.
Google's language translation, Image classification, Tesla Self Driving cars - all of these are a product of Deep Learning.
In Machine Learning you have to select the features, whereas in Deep Learning feature extraction is also done by the Algorithm without human intervention. Ofcourse that kind of independene comes at the cost of having a much higher volume of data to train our machine.
Below are the popular Deep Learning Techniques
This is a good order to learn it,
- Perceptron
- Neural Network
- Convolutional Neural Network
-
Recurrent Neural Network
- Gated Recurrent Units (GRU)
- Long Short Term Memory (LSTM)
- Attention
- Transformer
- Auto-encoders
- Generative Adversarial Networks
For Deep Learning you need a different set of libraries like TensorFlow (Keras), PyTorch, Microsoft CNTK, Caffe and Theano.
Things to do
- Keep Track of your progress (Trello)📝
- Track your time (Toggl)🕒
- Find a mentor (Friends, Senior, LinkedIn)👨🏫
- Join a Community (TFUG, School of AI)👥
- Keep coding everyday (LeetCode, Kaggle)👨💻
- Build a project portfolio (GitHub)📂
Final Thoughts
There is no specified route🛣️ to learn anything at all.
There’s no right✔️ or wrong❌ way to get into AI or ML.
The coolest😎 thing about today's world🌎 is we have access to some of the best technologies in the world, all we’ve got to do is learn📚 how to use them.
You could start by learning Python🐍 code.
You could start by studying calculus and statistics.📈
You could start by learning about the philosophy📙 of decision-making.
You could start by learning about brain🧠 and computational Neuroscience.
The fascinating thing about Machine learning and AI is that they meet at the intersection♾️ of all of these.
Learning is awesome, coz the more I learn, the more I realise there’s plenty more to learn. And it gets me excited.🤩
Sometimes you get frustrated😤 when your code doesn’t run or you don’t understand a concept. Don't worry listen to Einstein.👇
It's not that I'm so smart, it's just that I stay with problems longer. - Albert Einstein
There’s so much happening in the field it can be daunting to get started. Too many options lead to no options. So, take your first step Now.
Computers are smart but they still need your help.
Kickstart🏁 your ML journey now, Happy Learning Training (U'll understand it later) !!
Show some love ❤️, leave your comments below!👇