Advantages and Disadvantages of Machine Learning

Machine Learning doesn't work out every-time. It is not the ultimate way to build good software systems. Depending upon the problem, you should adopt machine learning only if you really need.
The advantages and disadvantages of machine learning over traditional rule-based system are as follows:

Advantages

#1 Solve unprogrammable tasks:
Tasks such as face recognition and language translation can be achieved using machine learning which are impossible to hard-code by programming.
#2 Discover trends and patterns in data and make predictions based on that:
Machine learning is used to identify trends and patterns in historical data and make future prediction/inference based on those patterns. For example, facebook uses machine learning to show targeted ads based on your past activity on facebook.
#3 Get insights from unstructured data:
Machine learning allows to get valuable insights from unstructured data by mapping complex relationship. Object detection in an image and voice recognition systems are great examples of unstructured data processing using machine learning.
#4 Grow over time:
Software applications build using machine learning can grow over time. ML algorithms can be regularly trained with updated data to continuously improve the performance of such systems. For example, if you have already built English-French translation system then with some certain tuning and retraining with more data you can make it work for other language translations.
#5 Automation:
Repetitive tasks can be automated with the use of machine learning. Train the machine for one time and then use it for rest of the time in order to save time and increase efficiency of workflow. For example, once you train machine to inspect defected products in factory then after human can involve in other more logical tasks.

Disadvantages

#1 Requires Big Data:
Machine Learning is all about learning from data. It requires more training data to produce more accurate model. So, if there is not enough data to train machine learning algorithm then there is no point of using machine learning.
#2 Lacks Reasoning:
Machine learning under the hood is extracting mathematical relationships between data points. It can collect patterns from data but can't provide logical reasoning as we human are capable of.
#3 Requires Supervised Data:
Until now, supervised machine learning is the one which is widely used. Unsupervised learning is yet to explore except than clustering. As I already mentioned that to produce good machine learning model it needs to be trained with lots of data. All the training data should be properly labelled by human. Preparing supervised data is very time consuming and requires more human manpower.
#4 Hyperparameter Tuning:
There are various machine learning algorithms and one algorithm doesn't work or all kinds of tasks. Algorithms like: random forests, CNN, RNN, etc have various of hyperparamets which need to be perfectly tuned. Hyperparameters include: learning rate, batch-size, number of layers, loss function, optimizer, etc. Several algorithms with various sets of hyperparameters need to be trained. It takes lots of time to figure out which model and sets of hyperparameters is best for the desired task.


Comments