Have you ever wondered what artificial intelligence really is?
Recently I found a great blog from a Cambridge Professor that addresses AI. Reading it got me thinking. What do we really mean by artificial intelligence in the context of software testing? I thought I’d share some of my thoughts with you…
What do we mean by AI?
AI is a fairly broad term, and it has been loosely applied to a large number of approaches. However, most people agree that the following are all examples of AI.
Machine Learning or ML
In Machine learning, we train a computer to recognize certain patterns. Once it is good enough at this task (but not too good…), it can use this pattern recognition to trigger appropriate actions.
Deep learning is a subset of machine learning. It uses things such as artificial neural networks to process large volumes of data. It can then learn to identify patterns within the data. The difference here is that the machine repeatedly tries to improve its own algorithms in order to get better. This is unlike standard machine learning where it is trained once.
In machine perception, we train the computer to perceive or understand audio, video or still images. There are a few standard applications of this. OCR or optical character recognition allows a machine to "read" text. Image recognition, i.e. learning to tell the difference between a cat or a dog in an image. Speech to text, where a computer learns the phonemes in speech and accurately renders them as text.
NLP is where a computer is trained to understand how human speech works. The computer can then parse it and extract the actual meaning. This is the basis of systems such as Amazon Alexa and Apple Siri.
This is a new form of AI where a computer uses a large number of images to generate a new image. The aim is for the new image to be indistinguishable from the training set. This allows AI to create paintings, such as the one that recently sold for $432,500 at Christies.
What do we actually mean by intelligence?
According to Merriam Webster, intelligence is:
1. the ability to learn or understand or to deal with new or trying situations. Also : the skilled use of reason 2. the ability to apply knowledge to manipulate one's environment or to think abstractly as measured by objective criteria (such as tests)
However, Wikipedia states that:
Intelligence has been defined in many ways to include the capacity for logic, understanding, self-awareness, learning, emotional knowledge, reasoning, planning, creativity, and problem solving. It can be more generally described as the ability to perceive or infer information, and to retain it as knowledge to be applied towards adaptive behaviors within an environment or context.
What both these have in common is the idea that intelligence is about taking knowledge and applying it in some different manner to solve a new problem.
So, is AI actually intelligent?
In his blog, Professor Jon Crowcroft explains that most things we think of as artificial intelligence are certainly artificial. However, very few of them are actually intelligent. Usually, they are simply clever applications of data science. Even advanced concepts such as adversarial generative nets or deep learning aren’t properly intelligent. As he puts it:
claiming that a classifier trained on zillions of human-labelled images containing cats and no cats, is recognizing cats is just stupid - a human can see a handful of cats, including cartoons of pink panthers, and lions and tigers and panthers, and then can not only recognize many other types of cats, but even if they lose their sight, might have a pretty good go at telling whether they are holding their moggy or their doggy
He then goes on to explain that humans have evolved a whole plethora of advanced “tools”. These help us interpret the world around us and keep ourselves safe. As he says:
these tools operate at many levels - some may just be context/recall, some may effectively be analogue programmes that model gravity or other physics things (stuff games software writers call "physics models"), and some may very well look like artificial neural nets (things to de-noise complex signals, and to turn moving images (the retina has gaps and doesn't refresh infinitely fast) into representations that let you find objects and name them.
Intelligence is more than recognizing patterns!
According to Jon Crowcroft, these tools enable us to truly recognize objects and representations of objects in ways that are far more advanced than any machine learning AI classifier. For instance, if we see a handful of pictures of cats sleeping on a chair we will be able to intuitively guess many things about cats that make it easy for us to identify them without the need to be trained. Our knowledge of the scale of most furniture will allow us to accurately guess that a cat is smaller than a tiger. Our experience of animals will suggest that its fur is soft. Even if it's sitting with its tail curled up, we can recognize that cats have long tails. If we are then shown a picture of a cat stalking through the grass, we will still recognize it as a cat.
Furthermore, there is the sort of intelligence that helps us stay alive. This intelligence helps us find food, assess things that might harm us, and use our imagination to predict the result of our actions. He goes on to point out that there are higher levels of intelligence still such as self-awareness, consciousness, belief, esthetics, and ethics. Many of these concepts are unique to humans, though some rudimentary forms of them have been identified in other species. As an example, take tool-making. To a human, making a tool to achieve a task comes instinctively. This is also true of a tiny number of other species. At present, it is hard to imagine a robot learning how to make a tool. Yet a crow can take a piece of wire to fashion a hook and lift food out of a bottle.
Why do we say AI is intelligent?
Given the above, why do we insist on calling standard AI tools “intelligent”? Part this is because we love science fiction. Humans have long been talking about artificial intelligence and sentient robots or computers. From a marketing viewpoint, humans are already geared to respond well to the concept. It is no secret that one way to make your new product “sexy” is to claim it exhibits some form of AI.
In his 1950 paper "Computing Machinery and Intelligence", Alan Turing presented what he called the Imitation Game, but which is more widely known now as the Turing Test. During a Turing Test, a human communicates in writing with two other entities. One of these entities is another human, the other is a computer. If the human is unable to distinguish between them when asking a series of questions, then the computer can claim to be intelligent.
We are all familiar with the concept of chat-bots. These crop up routinely on dating sites or appear on our shopping screens offering us help. Many of these are transparently-obviously not human. But some of the best, such as Mitsuku, can now routinely beat the Turing test. But are these truly showing intelligence? Or are they showing how predictable human conversations are? After all, conversation is often about understanding social norms and following certain conventions. It isn’t an innate human skill per se but is rather something we learn and develop over time by interacting with others.
“I'm sorry dave I can't let you do that…”
AI is starting to show signs of true intelligence when you have machines that can teach themselves. Take how Google’s Deep Mind learned to win at Go. This is getting close to real intelligence since it applied knowledge, learned by its mistakes and taught itself to become a better player. However, it is still possible to argue that learning how to play a game that has a fixed set of rules is not true intelligence. Essentially, most things that we describe as artificial intelligence are just some form of learning. As yet computers aren’t truly capable of self-awareness, invention, art or philosophy. We are still, thankfully, a long way from the 2001 Space Odyssey dystopia where a computer murders someone to save itself!
What do people mean by AI testing?
So, what do we actually mean by intelligent testing? Gartner gives one set of definitions. Interestingly, they distinguish between Intelligent Testing Automation and Self-Healing Testing. In Intelligent Testing, machines automatically respond to changes in real-time and run tests to flag changes in product quality. The ultimate level, Self-healing Testing, is the ability of the system to define, create, run and analyze tests. This effectively eliminates the need for human input in regression testing and test maintenance. Humans will still be needed for exploratory testing and manual testing. But you will be freed from the dull, routine and repetitive aspects of the job.
Here at Functionize, our latest advances are already capable of constructing new test cases with little direct human input. Automated canary testing, scenario-based testing, and autonomous template recognition are already achieving Test Automation. Our tests are capable of self-healing and can identify (and repair) the root cause of most test failures. Hence, we feel happy to use the term artificial intelligence when talking about our products!