A program that uses artificial intelligence to emulate the knowledge of a human expert to run programs and problem solve. When human knowledge is limited, expert systems offer a reliable, accurate system that can run on large amounts of data continue to and solve "problems."
They emerged in the 1970-1980's through the efforts of Stanford's computer science professor, Edward Feigenbaum, embracing the shift from 'data processing to knowledge process' (https://www.techtarget.com/searchenterpriseai/definition/expert-system).
Knowledge Base:
This is where the data is stored to be drawn for problem-solving and decision-making in a specific field. It is comprised of two different types of knowledge:
Factual Knowledge (Facts)
This is a type of data that includes numbers, facts, relationships, and concepts that describe the specific domain
Procedural Knowledge (How-to Steps)
This type of data encompasses different logical systems (algorithms, decision trees, rules), which is useful for knowing how to act/respond to different situations and make the best decisions.
Inference Engine
Once all the rules have been established via the knowledge base, the inference engine extracts, interprets,, and works on the problem-solving aspect. It works as a search engine, so when a certain problem needs to be solved, it can do so by extracting data from the knowledge base. They work through 2 main techniques:
Forward Chaining:
The system will begin with known facts and apply rules step by step to match a rule with results and reach a final conclusion.
Backward Chaining:
As inferred by its name, this works backwards; it starts with potential answers and will look for facts and rules that confirm, working back until it can confirm or deny the answer.
Acquisition Component:
This ensures the inference enginer can continue to collect data and update the system with data coming from the knowledge base accurately. It enhances the decision-making process.
User Interface
This allows users to interact with the system where they can input data, ask questions, and receive answers. There are 3 main types of user interfaces:
Text Based: Communicate via text, such as a chatbot.
Graphical UI: Includes buttons, menus and visual components.
Natural Language Interface: Works as a conversation expert system where users can receive answers and communicate back and forth.
Explanation Component
This shows the reasoning process of the system, showing how conclusions are reached and making the system easier to trust.
Expert systems can mimic human knowledge, so the system can make field-specific decisions that are accurate, adaptable, and consistent. Compared to traditional systems (includes humans, machine learning, etc) which are error-prone, dependent on human experts, and expensive, expert systems are much more efficient. They can decrease the number of errors being made so they can operate efficiently with any amount of data, whereas quantity of data is a limitation to traditional systems. Expert systems can run more advanced problems, giving simpler solutions to users and showing the process of how they got there.
CaDet: This system helps doctors and the medical industry diagnose/detect cancer early on. It analyzes patient data and generates reports - which are then used as guiding rules to help determine the risk of cancer.
MYCIN: This expert system is designed to diagnose and recommend treatment for bacterial infections, especially blood infections like meningitis. It’s built on several rules that help narrow down the diagnosis and suggest appropriate antibiotics.
DENDRAL: This was one of the first expert systems every used and helped organic chemists in predicting molecular structures from a knowledge base that consisted of unknown structures.
Building a Better Engine Using AI
This project is focused on leveraging AI to make one of the most common engines used in boats, ships, airplanes, and most vehicles more efficient and environmentally friendly. They focus on internal combustion engines and use expert systems to study combustion processes (such as deep combustion) and fuel use within the engine. Traditional systems have limited capability in this area of focus since they are time-consuming and expensive, making it challenging to optimize engines for cleaner combustion.
MATLAB is used to develop simulation models to test the engine through different turbulence and combustion systems. With MATLAB's programming capabilities, it creates different neural networks to achieve this and integrates ML algorithms within the existing computational fluid dynamics solvers (the simulations that test the engine).
The data being given on engine behaviour, physics principles (mass, momentum, energy conservation) form the knowledge base which is used to create the neural networks.
The neural network itself acts as the inference engine as it predicts engine performance using the data given. It also corrects the data from the traditional system.
Lastly, the user interface in this project includes the output the user receives via matlab and automl on the different neural networks that show engine simulation data.
Workflow for calculating turbulence and combustion from https://www.mathworks.com/company/mathworks-stories/speeding-up-engine-development-with-deep-learning.html
Akbari, A. A., Hashemi, R. H., and McGowan, L. J. “Design of Expert Systems for Medical Diagnosis.” Medical Decision Making, vol. 19, no. 1, 1999, pp. 81–83. PubMed, https://pubmed.ncbi.nlm.nih.gov/9892994/.
“Expert Systems in Artificial Intelligence: What, Why, and How?” Great Learning, 10 Feb. 2023, https://www.mygreatlearning.com/blog/expert-systems-in-artificial-intelligence/.
“What Are the Different Components of an Expert System?” GeeksforGeeks, https://www.geeksforgeeks.org/what-are-the-different-components-of-an-expert-system/. Accessed 09 Sept. 2024.
“Expert Systems.” Expertise Finder, https://expertisefinder.com/expert-systems/. Accessed 11 Sept. 2024.