Defining AI Terms

Precisely defining artificial intelligence is tricky. John McCarthy proposed that AI is the simulation of human intelligence by machines for in 1956. Others have defined AI as the study of intelligent agents, human or not, that can perceive their environments and take actions to maximize their chances of achieving some goal. Jerry Kaplan wrestles with the question for an entire chapter in his book Artificial Intelligence: What Everyone Needs To Know before giving up on a succinct definition.

Rather than try to define AI precisely, we’ll simply define AI’s goals and techniques:

  • AI has a set of goals such as recognizing what’s in a picture (computer vision, or more specifically, object recognition), converting a recording of your voice into the words you meant (automated speech recognition, a subfield of natural language processing), or finding the best way to get to grandmother’s house (route planning). In this guide, we’ll cover natural language processing, vision, and pattern recognition. But there are many goals, including autonomy, knowledge representation, logical reasoning, planning, learning, manipulating objects, classifying documents, and so on.
  • We have a toolkit of computer science techniques (think algorithms and data structures) we use in trying to achieve those goals. In this guide, we’ll use techniques, such as supervised learning, with a special emphasis on deep learning. There are many other AI techniques, including search, planning, reinforcement learning, symbolic computation, mathematical optimization, and many others.

Artificial Intelligence, Machine Learning, and Deep Learning

Some people use Artificial Intelligence and Machine Learning interchangeably. In this guide, we’ll treat Artificial Intelligence as the broadest term which includes all Machine Learning techniques, and we’ll treat Deep Learning as a subset of Machine Learning techniques.

  • Machine Learning refers to a broad set of computer science techniques that let us give computers, as Arthur Samuel put it in 1959, “the ability to learn without being explicitly programmed.” There are many different types of machine learning algorithms, including reinforcement learning, genetic algorithms, rule-based machine learning, learning classifier systems, and decision trees. The Wikipedia article has many more examples. The current darling of these machine learning algorithms are deep learning algorithms, which we’ll discuss in detail (as well as code) later in this guide.
  • Artificial Intelligence comprises all ML techniques, but it also includes other techniques such as search, symbolic reasoning, logical reasoning, statistical techniques that aren’t deep learning based, and behavior-based approaches.

While deep learning is deservedly enjoying its moment in the sun, we’re particularly excited about ensemble techniques that use a wide variety of machine learning and non-machine learning approaches to solve problems. Google’s AlphaGo program, for instance, uses Monte Carlo tree search in addition to convolutional neural networks (a special type of neural network) to guide the search process. We expect most autonomous driving systems to use traditional search techniques for route planning and deep learning for “safe path detection”.

Strong vs weak AI, or narrow vs deep AI

One other distinction you might see as you continue your AI journey is between hard/soft, strong/weak, and deep/narrow AI. All of them basically distinguish between systems that work in a specific domain (soft, weak, narrow), such as vision recognition and language translation, with systems (hard, strong, deep) that can generalize across many specific problems and continuously learn. Google’s DeepMind and OpenAI (in general) are working on hard/strong/deep AI. Google Brain (in general) is working on concrete capabilities that make all Google products better (e.g., better Gmail smart replies, better face and object detection in photos, better search results, etc.).

With that in mind, let’s give your software some AI superpowers.

A Little History
Giving Your Software AI Superpowers