Notes about Expert Systems (Rules Engines) from Wikipedia and other sources
"...a computer program that contains some of the subject-specific knowledge of one or more human experts."
Developed by AI researchers in the 60's and 70's, applied commercially throughout the 80's.
Commonly structured as a set of rules that analyze information about a specific class of problems, and optionally recommend a course of action in order to implement corrections.
"It is a system that utilizes what appear to be reasoning capabilities to reach conclusions."
The Value Proposition...
Most valuable to organizations that have a high level of know-how experience and expertise that cannot be easily transferred to other members
The problems to be solved are the the sort that would normally be tackled by an expert in that domain.
These domain experts provide "rules-of-thumb" on how they evaluate and solve the problem.
This knowledge extraction can be done explicitly by interaction with system developers or implicitly by getting the experts to evaluate test cases and then examining the test data to derive rules from that.
Problem related expertise is encoded in data structures only not in any program.
The programs of an expert system are independent of the problem domain and serve to process the data structures without regard to the nature of the problem area they describe.
- there are programs to acquire the described data values through user interaction
- programs to represent and process special organizations of description
- programs to process the declarations that represent semantic relationships within the problem domain and an algorithm to control the processing sequence and focus
Architecture consists of 2 main components.
- A problem dependent set of data declarations called the knowledge or rule base
- A problem independent program called the inference engine
Primary User Types
- End user
- Problem domain expert
- Knowledge Engineer
- Concerned with
- Representation of rule declaration
- Inference Engine
- Should be independent of problem domain
- May be specific to a particular task
- Always specific to the knowledge (rule) structures
- Identifies processing techniques (Forward or Backward chaining)
Forward chaining starts with data and uses inference rules to conclude more data until a goal is reached.
Backward chaining starts with a list of goals and works backwards to see if it can derive any data to conclude one of the goals.
Expert Systems allow for human-mimicking confidences, that is probabilities without the mathematical impact.
Example: Expert system has derived that the fruit is yellow, 50% confident it is a banana.
Example: Expert system has derived that the fruit is yellow and round, 95% confident it is a lemon.
Interactive dialogs are not pre-planned, there is not fixed control structure.
It is possible to implement an explanation system answering questions like "How?" or "Why?"
This uses a rule that is a set of antecendant conditions, which, if true, allow th assertion of a consequent. This rule references values that can be tested against constraints or have constraints asserted onto them.
The sequence of steps to reach a conclusion is dynamic in every case.
Permits more than one line of reasoning to be pursued, and partially determined reasoning to be presented.
Problem solving occurs by applying specific knowledge rather than specific technique.
Advantages:
- Provide consistent answers for repetitive decisions, processes and tasks
- Hold and maintain significant levels of information
- Reduce employee training costs
- Centralize the decision making process
- Create efficiencies and reduce time needed to solve problems
- Combine multiple human expert intelligences
- Reduce the amount of human errors
- Give strategic and comparative advantages creating entry barriers to competitors
- Review transactions that human experts may overlook
Disadvantages:
- The lack of human common sense needed in some decision makings
- The creative responses human experts can respond to in unusual circumstances
- Domain experts not always being able to explain their logic and reasoning
- The challenges of automating complex processes
- The lack of flexibility and ability to adapt to changing environments
- Not being able to recognize when no answer is available
One important feature of expert systems is the way they (usually) separate domain specific knowledge from more general purpose reasoning and representation techniques. The general purpose bit (in the dotted box in the figure) is referred to as an expert system shell.
...the shell will provide the inference engine (and knowledge representation scheme), a user interface, an explanation system and sometimes a knowledge base editor.
There are numerous commercial expert system shells, each one appropriate for a slightly different range of problems. (Expert systems work in industry includes both writing expert system shells and writing expert systems using shells.) Using shells to write expert systems generally greatly reduces the cost and time of development (compared with writing the expert system from scratch).
Reference:
http://www.cee.hw.ac.uk/~alison/ai3notes/subsection2_5_2_1.html