Maybe you heard a lot the word “Machine Learning” in news and articles in recent years and wonder to know what it exactly is. Machine learning is a subset of “Artificial Intelligence” and it refers to the ways a machine can learn something. Before talking about machine learning, it is good to think about, “How a human learns”? Imagine you are walking in a street and you see a lot of stores and shopping centers and etc. Next time, because you learned this street has lots of stores, you go there for shopping. If you didn’t walk in this street and nobody told you about this street, have you any idea this street has stores or not?! That’s exactly the way we learn: by providing related info about a subject somehow. If we want a machine to learn something, we should provide a lot of related info to machine and expect the machine to predict the new thing which is related to info we already provided to machine.
Let’s talk a little more scientific about machine learning. In general, we can divide Machine Learning to two main section: “Supervised Learning” and “Unsupervised Learning”.
Supervised learning includes two main sub-section: “regression” and “classification”. In regression problems, we provide a lot of info to machine and we expect the machine provide us a “model” which can predict for new input, its output. For example, we provide the info of a million home in USA to machine. The features which are inputs for learning are for example: Area of House, Age of House, Number of bedrooms, City of house and etc. The output for learning is price of house. By training the machine with this one million house info, we expect the machine provide us a model which can predict the new houses prices. This was a sample for “Regression Problem” which is subset of “Supervised Learning”.
A sample for “Classification Problem” which is subset of “Supervised Learning”, could be classification of emails to “Spam” and “Not Spam”. Maybe you see in your email inbox which some emails directly sent to spam folder by algorithms of email company like gmail or yahoo and etc. Their machine learning algorithms, provided a lot of samples of spam emails and not-spam emails to machine and derived a model which can predict a new email is spam or not?!
In supervised Learning problems, we always provide a lot of samples to machine to provide a model which can predict. Imagine you have a lot of data which has no label and want the machine divide this data to 2 or more cluster which its members have almost same specifications. This problem is “Clustering Problem” and is subset of “Unsupervised Learning”. Notify that we didn’t provide any former data to machine and at first time we give machine a bunch of data and we expect the machine divide the data to some clusters. Below image can be more descriptive about clustering problems:
In all of above problems, we need to find a “cost function” which its inputs are our features by some coefficients or weights. The common problem is to optimize the cost function and find the weight of each feature. There are a lot of mathematics behind the scene and if you love to learn about “Machine Learning”, you should be prepared for that mathematically.