I am often asked about Diffblue’s “AI for Code”. To explain it properly, we first need to start with AI. Artificial Intelligence (AI) is an area of computer science that is popular in the press and the technology industry but is often misunderstood.
AI is a discipline to understand and create reasoning. The research on this runs back many years, but I’ll summarize some key points. There are a number of different approaches to do reasoning that are described in AI work. Two of these, inductive reasoning and deductive reasoning, are particularly important to AI for Code:
Inductive reasoning
Inductive reasoning attempts to infer an answer from a set of data points. This is very similar to how humans often make decisions, either with incomplete knowledge or when the answer is likely but perhaps not always true. A computer might reason that rain follows thunder, lightning, and clouds, but I’m sure meteorologists would tell us that this is typically—but not always—the case. For this type of reasoning, it is popular to use a variety of machine learning algorithms, employing things like predictive analytics and unsupervised learning to test and train datasets and to infer a result based on data. While popular and quite useful, machine learning is not the only type of AI used in the real world today.
Deductive reasoning
This is reasoning that arrives at a definitive and absolute conclusion. This process is not based on a correlation, regardless of statistical significance. For example, if we are considering the English alphabet, we know for certain that C always follows B. Our team at Oxford and Diffblue have done important work in the area of deductive reasoning about code bases in order to help software developers be more productive.
So should AI approximate human-like decisions? If so, is it all about inductive reasoning?
In order for machines to make productive and intelligent choices, they must use a variety of reasoning patterns, much like humans. And we stand to learn and gain a lot from each of these types of reasoning and their combination.
Take, for instance, the work by Google’s DeepMind. DeepMind famously defeated the world champion at the game Go with their AlphaGo platform. To do this, they used a combination of inductive and deductive reasoning to arrive at answers.
Similarly, autonomous cars, game simulations or speech recognition all utilize a variety of AI methods. Each is specific to the data and models to solve these problems.
At Diffblue, we’re solving problems to make software developers wildly more efficient. And like the industry as a whole, AI for Code is just getting started. For more information on AI for Code, download our eBook.