Updated: Sep 26, 2019
A few months ago, I have decided to start to learn “machine learning (ML)”. Why? Because it is the new era of software and technology. Nearly every technology company these days is using this technology to improve its service or product. And in my opinion, any technology company that is not planning to use this technology will not survive for so long.
For me, giving computers the ability to make decisions is very exciting and I’ve always wondered about that idea since I was a child. I never thought that it could be possible in my life.
But it was really hard to get started with all the materials and videos on the internet. It can be overwhelming sometimes to learn new skill especially if you have no idea about it before until I think I have made a good plan and assembled good resources to learn about this amazing technology.
If you stick around, I will take you to step by step to learn everything you need to know to master “machine learning” and “artificial intelligence”.
So, how are we going to learn ML?
I’ll put a series of blogs with every step I’ve taken to learn about ML. But I will try not to go into a lot of unnecessary math and writing the whole algorithm code to show off like every book and video I have read or watched.
I will explain the math as simple as possible and move on. I will explain the algorithms as simple as I can. But again I will not write the algorithms, you can find every algorithm I used all over the internet.
After all, I am an engineer, I want to use the tools and understand the concept to actually build something useful out of it. I don’t want to waste my time learning every little detail behind why it will work and how it works. It has been proven already and many tools are created for us to use.
I will be using Python 3 in my next tutorials but I am not going to explain how to program in Python however I will explain the code that I will write. I think it could be enough if you have a programming background but feel free to stop at any part of the code and ask in the comments or the forum or search google to get more understanding.
If you don’t have a programming background, don’t worry. Python is a really easy programming language, you can learn the basics in two or 3 weeks maximum. And then come back and join our journey.
What is “Machine Learning”?
Machine learning is a subfield of Artificial intelligence that involved self-learning algorithms that derive knowledge from data in order to make predictions.
Instead of requiring humans to manually derive rules and build models from analyzing large amounts of data, machine learning offers a more efficient alternative for capturing the knowledge in the data to gradually improve the performance of predictive models and make data-driven decisions.
If you need to understand the main differences between Artificial intelligence, machine learning, and data science, I have found this good blog post for you, here is the link.
There are three types of machine learning: supervised learning, unsupervised learning and reinforcement learning.
Supervised learning is a type of machine learning when you have labeled data and you need to drive a predictive model for unseen or future data. For example, Let's say that we have a big amount of emails were labeled as spam and not spam. We can train a model to make a predict whether a new email belongs to either the two categories.
In unsupervised learning, we are dealing with unlabelled data or data of unknown structure. Using unsupervised learning techniques, we are able to explore the structure of our data to extract meaningful information without the guidance of a known outcome. For example, we can use unsupervised learning to discover customer groups based on their interests. This is called clustering where we organized data into meaningful information without having any prior knowledge of the outcome.
Reinforcement learning is a little bit tricky to define. But consider this situation, you have a mouse (Agent) inside a maze (environment) and the mouse needs to decide to go left or right (action) to find more food (reward) and each time the mouse take action inside the maze remembers how it took decision in order to find more food. We will get more details in the future. But in general, you define an environment where your agent will continuously try to take new actions through trial and error and through a rewarding system the agent will get feedback about how their decision affected the environment.
Long term plan…
We will learn popular tools like Scikit-Learn, Tensorflow, Pytorch and a lot more. The goal I aim for is that you’ll be able to take freelancing jobs and actually earn money from already existing free tools on the internet.
Short term plan…
Next blog post, we will explore machine learning algorithms for classification using Scikit-learn. And understand the basic concept behind ML for classification.
If you have a question, leave a comment and I will answer it. Don’t forget to subscribe to receive new blog posts and join our forum.