11 April 2018

Understanding differences between Artificial Intelligence, Machine Learning, and Deep Learning

Why this matters?

Most of us are familiar with the term "Artificial Intelligence", and probably have seen movies like Terminator, The Matrix, I Robot. But nowadays people recently use terms like "Machine Learning" and "Deep Learning", sometimes used interchangeably with Artificial Intelligence.

As a result, the difference between Artificial Intelligence, Machine Learning, and Deep Learning can be very unclear and confusing.

So, if you are a developer, soon you will see that customers will ask you to integrate some AI, ML or DL API into his app, and this is very important step. In order to understand what customer really means, you should understand differences between these terms.

What Artificial Intelligence (AI), Machine Learning (ML), and Deep Learning (DL) actually means and how they differ

Artificial Intelligence

We can put AI in two categories, general and narrow. General AI would have all of the characteristics of human intelligence, including the capacities mentioned above. Narrow AI exhibits some facet(s) of human intelligence, and can do that facet extremely well, but is lacking in other areas.

Example - Narrow AI:

A machine that’s great at recognizing images, but nothing else.

Machine Learning

Machine learning is a method of achieving Artificial Intelligence.

That`s basically means you can get AI without using machine learning, but this would require building millions of lines of codes with complex rules and decision-trees. So instead of hard coding software routines with specific instructions to accomplish a particular task, machine learning is a way of "training" an algorithm so that it can learn how.

To train we need to feed huge amounts of data to the algorithm allowing the algorithm to adjust itself and improve.

To give an example, machine learning has been used to make drastic improvements to computer vision (the ability of a machine to recognize an object in an image or video). You gather hundreds of thousands or even millions of pictures and then have humans tag them.

Example:

The humans might tag pictures that have a cat in them versus those that do not. Then, the algorithm tries to build a model that can accurately tag a picture as containing a cat or not as well as a human. Once the accuracy level is high enough, the machine has now “learned” what a cat looks like.

Deep Learning

Deep learning is one of many approaches to machine learning.

Deep learning was inspired by the structure and function of the brain, namely the interconnecting of many neurons. Artificial Neural Networks (ANNs) are algorithms that mimic the biological structure of the brain.

In ANNs, there are "neurons" which have discrete layers and connections to other "neurons". Each layer picks out a specific feature to learn, such as curves/edges in image recognition. It’s this layering that gives deep learning its name, depth is created by using multiple layers as opposed to a single layer.

Examples:

Automatic Colorization of Black and White Images

Automatic Colorization of Black and White Images
Image taken from Richard Zhang, Phillip Isola and Alexei A. Efros

Automatic Machine Translation

Automatic Machine Translation
Image taken from the Google Blog

Object Classification and Detection in Photographs

Object Classification and Detection in Photographs
Image taken from the Google Blog

Automatic Handwriting Generation

Automatic Handwriting Generation
Image taken from http://blog.otoro.net/2015/12/12/handwriting-generation-demo-in-tensorflow/

Automatic Text Generation

Automatic Text Generation
Image  taken from Andrej Karpathy blog post

Automatic Image Caption Generation

Automatic Image Caption Generation
Image taken from Andrej Karpathy, Li Fei-Fei

To sum up…

Being able to differentiate these terms is important for both - developers and other IT specialists, as it may encourage not to be afraid of doing AI, ML, DL integrations. It appears confusing until you have the knowledge.

Further reading

http://tinyclouds.org/colorize/

https://research.googleblog.com/2015/07/how-google-translate-squeezes-deep.html

https://research.googleblog.com/2014/09/building-deeper-understanding-of-images.html

http://www.cs.toronto.edu/~graves/handwriting.html