Machine Learning
As per Wikipedia: Machine learning (ML) is the study of computer algorithms that improve automatically through experience. It is seen as a subset of artificial intelligence. Machine learning algorithms build a mathematical model based on sample data, known as “training data“, in order to make predictions or decisions without being explicitly programmed to do so.[3] Machine learning algorithms are used in a wide variety of applications, such as email filtering and computer vision, where it is difficult or infeasible to develop conventional algorithms to perform the needed tasks.
Steps of Machine Learning:
Gathering the data
- Preparing that data
- Choosing a Model
- Training the data
- Evaluation
- Parameter Tuning
- Prediction
Machine Learning Advantages:
It allows us to do these things better:
Gives us a tool to reduce time programming:
If we are given a task to write a program to correct spelling errors, we could come up with software after weeks of hard work that does this with lots of rules. The other alternative is to go for an off the shelf machine learning tool , feed it with some examples and get a more reliable application in a small fraction of time.
Customize and Scale products:
With the application of building a tool for spelling check, if we are able to spell check for the English language and it becomes so popular that we would like to make it work for 50 more languages, with software development, each of these will become a new application. With machine learning, the task becomes much simpler, how? In the first approximation, it will amount to just collecting data in those other languages and feeding them to the same machine learning model.
Carry out Seemingly Unprogrammable Tasks:
One can carry out tasks with machine learning that are practically impossible to carry out with normal software programming. Facial and speech recognition tasks can be carried out with ML as a routine, which will baffle the developers if asked to write a program in the conventional ways. With ML, we don’t need to write the algorithm but show lots of examples to train the model to do these tasks.
There is philosophical reasoning about adopting machine learning, in that it changes the way we think about solving a problem. Software developers think about a problem logically and mathematically. However, the focus shifts in machine learning from a mathematical/logical science to more of natural science. We make observations in an uncertain world, running experiments, using statistics (not logic) to analyze the results of those experiments. Our ability to think like a scientist opens up new horizons.
Ref: Introduction to Machine Learning https://developers.google.com/machine-learning/crash-course/ml-intro