Expert Systems & Knowledge-Based AI

Manu Cohen-Yashar
My journey in the land of AI
4 min readApr 22, 2019

In my last article, I wrote about the confusion I had when thinking about expert systems implementation using machine learning technics. Now I know that the source of that confusion was my misunderstanding about the role of machine learning in the domain of AI. By definition, we know that AI (Artificial Intelligence) deals with intelligence, but it turns out that there are many types of intelligences, and machine learning only deals part of that spectrum. I am not talking about Gardner’s theory of multiple intelligences, but a distinction between different types of intelligent tasks that an AI agent has to implement to become “intelligent”. There is so much traction around machine & deep learning but still, I haven’t seen a clear explanation that describes what can machine learning agents do, and most importantly what not.

I came across an interesting definition of the different schools of AI given by Ashok Goel from Georgia Tech. Ashok says that artificial intelligence can be divided into four groups based on the outcome and the style of behavior.

From some AI agents, we want an optimal answer to a question such as “What is the shortest path from point A to point B”. We expect the AI agent to use some sort of fancy algorithm to find the answer, so we will act accordingly. From other agents we expect to act autonomously, for example, an iRobot cleans our house, but it does that based on a very specific algorithm with which it maps the surface and finds the optimal route. You and I would clean the room in a very different manner, but we are happy with the way the robot does its job. From an autonomous car, we expect to drive similarly to the way we do. It should reason about the world around it like us and understand how to operate the car safely. Finally, from personal assistants such as Alexa or Google Home we expect to understand us as a human friend does, answers to simple questions and help us with our everyday tasks. Of course, these four domains do overlap but still, I find the distinction useful.

I am interested in expert systems that think like humans (the top right). On the contrary machine learning & deep learning, systems are designed to “think” in a very different manner by using statistical algorithmics (top left). Which brings me to the conclusion that to implement expert systems we need to take a very different approach. That was the source of my confusion. Now I understand that what I was looking for was: “Knowledge-based AI” or “Cognitive systems”. Methods of automating human-like cognition.

The twin goals of knowledge-based AI are to build AI agents capable of human-level intelligence and gain insights into human cognition.

knowledge-based AI involves the definition and relationship between knowledge representation, reasoning and learning methods that mimic the way we think.

Knowledge represents perceptions, concepts, relations, and past experiences. Objects, tables, trees, ontology, script, and semantic models are just some of the methods to represent knowledge.

Learning is the process to obtain knowledge. Recording cases, incremental concept learning, decision trees, version spaces, explanation-based learning, and classification are just some of the methods of learning. Unlike in machine learning training where we have a large dataset to train from, in knowledge-based AI we might have very few examples and they might be introduced to the system incrementally.

Reasoning is the process of using both knowledge and learning to understand the world and solve a problem while contributing the knowledge and learning processes. As shown in the diagram all three tenants of knowledge-based AI are dependent and correlated. We use reasoning and prior knowledge in a learning process and the result can be more knowledge etc. Case-based reasoning, constraint propagation, means-end analysis, generate and test, analogical reasoning, and problem reduction are just some of the methods to reason about the world and solve problems. It’s important to note that some of these reasoning methods use internally machine learning algorithmics for tasks such as classification, but the core state of mind is very different from the one we know in machine learning.

When I think of a smart bot that can help me deal with a simple task such as cooking dinner, I need a bot that has a rich set of cognitive services in the backend that can understand my needs, flavor, history, inventory, tools, time, cooking expertise, etc. and come out with a good plan. Maybe cooking dinner is not that simple after all.

In machine learning, we deal with a very specific set of problems. Classification, regression, clustering, and recommendation. For those kinds of problems, there is a wealth of frameworks and open source solutions that we can use to solve a problem. It’s not easy because there is a lot to tune and optimize, but still, at a high level, we know how to solve the problem.

Unfortunately, I cannot say the same about cognitive systems. Until today I found no framework that I can use to implement the ideas of knowledge-based AI. It does not mean they don’t exist, I just did not find them. This is my next challenge.

Stay tuned.

If you are interested to learn more about Knowledge based AI, I recommend watching this course.

--

--