Machine Learning – Basics – For Developers

This series of blogs and following blogs will be part of machine learning basics where will understand and implement machine learning algorithms.

These blogs will focus more one the practical aspect of ML rather going deep into the mathematical aspect. But to understand this topic of ML it is required to have a good understand of statistics, maths and python programming knowledge.

We will start ML learning with Keras as its a high level api written in python and makes things easier to understand.

Initially we will go through a bit of theory as its important to understand the basics. If we directly start coding, many things will not be clear.

What is Machine Learning?

Machine learning is a branch of AI, which provides a system the ability to learn from data without being explicitly programmed to do so.

To make this more literal when, programmers from traditional background program a system, they feed in logic explicitly. e.g let’s say we need to write a program to find if a new article is positive tone or negative tone. In traditional programming, an easy way to approach this would be take a list of words which are negative and another list which is positive. Run these words against the words in a news article, count the occurrence of these words and based on the occurrence i.e if more negative than positive we could define the tone of the article.

In ML approach, we would approach this problem differently. We would collect data on past news articles with proper labels (i.e positive/negative). Build a model and train it with data, and finally use it to predict out come on future data.

Basically, it’s a totally new approach to solving problems not with straight logic as we are used to but rather solving it with data.

What is Deep Learning?

Deep leaning is a sub-set of ML, with more emphasis of neural networks to solve problems.

You can read about these difference between the two here

But essentially most of the things will do in next blogs will be on Deep Learning.

What are Neural Networks?

Neural networks is basically a system which modeled on our understanding of working of our brain. Our brain comprises of millions of neurons that perform specific functions. We receive input from our environment though our senses to the brain (input) and our brain processes the data and produces the output. Mostly importantly our brain learns based on the output if correct or incorrect.

e.g if we take a baby her brain is not developed. suppose she is trying to learn alphabets, we would keep teaching the baby daily. we might show her different alphabets images, her brain would process the data and produce an output (right/wrong). we tell the baby, if the output is wrong or right, the brain would adjust accordingly and again the process continues again and again.

So we could summarize this as

input data -> brain processing -> output -> feedback -> re-configure -> repeat again

we will keep doing the above again and again until the brain is developer enough to always produce the right response. but there is an important thing to realize here, is that output from above system is always based on probability. If we train the brain enough there is a high probability that the brain is able to predict the right alphabet, but this doesn’t mean this is 100%. There can be mistakes.

This is exactly how the NN (neural networks) works. We will see this in much more detail in next blogs.

Why Keras?

Keras is high level framework for deep learning in python. By high level, it means it has lot of pre-build function’s to build NN’s easily without much complexity. I personally prefer to learn and start building NN for basic understanding using Keras. This doesn’t mean we will not use pytorch or tensorflow later on. Just that keras easier to learn and implement.

I would highly recommend these two series of to under Deep Learning and Keras, i personally learn from these a lot.