Tuesday, August 6, 2019
The expert system
The expert system Abstract The title for this report is Expert System. Statistically, the percentage of current organizations implementing expert systems for their usage is very minimal. This is due to the restraining forces of implementing expert system outweigh its driving force. Yet, as the technologies are frequently being upgraded, the constraints of implementing expert systems are getting easier to overcome. Hence, the reason I chose this title for my report is due to my strong interest in the future of expert system where it may potentially be used domestically for providing the best solutions for complex problems. Also, the knowledge gained from this research will contribute a lot for my final year project which will include in a simple expert system. This report will be explaining what an expert system is, the components of expert system, what a knowledge-based expert system is, the features of expert system, the advantages of using expert system, the drawbacks of using expert system and finally suggestions of implementing expert system into e-commerce systems. In the appendix part, the pictures which I have found from the Internet will be included in for providing better understanding regarding the details of expert system. What is Expert System? According to Wikipedia, an expert system is an advanced computer application that is implemented for the purpose of providing solutions to complex problems, or to clarify uncertainties through the use of non-algorithmic programs where normally human expertise will be needed. Expert systems are most common in complex problem domain and are considered as widely used alternatives in searching for solutions that requires the existence of specific human expertise. The expert system is also able to justify its provided solutions based on the knowledge and data from past users. Normally expert systems are used in making business marketing strategic decisions, analyzing the performance of real time systems, configuring computers and perform many other functions which normally would require the existence of human expertise. The difference between an expert system with a normal problem-solving system is that the latter is a system where both programs and data structures are encoded, while for expert system only the data structures are hard-coded and no problem-specific information is encoded in the program structure. Instead, the knowledge of a human expertise is captured and codified in a process known as knowledge engineering. Hence, whenever a particular problem requires the assistance of a certain human expertise to provide a solution, the human expertise which has been codified will be used and processed in order to provide a rational and logical solution. This knowledge-based expert system enables the system to be frequently added with new knowledge and adapt accordingly to meet new requirements from the ever-changing and unpredictable environment. Components of Expert System An expert system has many core system components to function and interfaces with individuals of various roles. In the appendix area, there will be a diagram (Figure 1.1) displaying expert system components and human interfaces. The major components are: Knowledge base a set of rules as representation of the expertise, mostly in IF THEN statements. Working storage the data which is specific to a problem being solved. Inference engine the code at the core of the system which derives recommendations from the knowledge base and problem-specific data in working storage. User interface the code that controls the dialog between the user and the system. There are certain major roles of individuals who interact with the expert system to fully exploit its functionality and capability. They are the: Domain expert the individual or individuals whose expertises are solving the problems the system is intended to solve; Knowledge engineer the individual who encodes the experts knowledge in a form that can be used by the expert system; User the individual who will be consulting with the system to get advice which would have been provided by the expert. Majority of the expert systems are built with expert system shells which contains an inference engine and user interface. The shell will be used by a knowledge engineer to build a system catered for specific problem domain. Sometimes expert systems are also built with custom developed shells for certain applications. In this scenario, there will be another additional individual System engineer the individual who builds the user interface, designs the declarative format of the knowledge base, and implements the inference engine. Depending on the size of the project, the knowledge engineer and the system engineer might be the same person. For a custom built system, the design of the format of the knowledge base and the coding of the domain knowledge are closely related. The format has a significant effect on the coding of the knowledge. One of the major hurdles to overcome in building expert systems is the knowledge engineering process. The process of the codifying the expertise into a required rule format can be a challenging and tedious task. One major advantage of a customized shell is that the format of the knowledge base can be designed to facilitate the knowledge engineering process. Since the major challenge in expert system development is the building of the knowledge base, it is encouraged that gap and difference between the experts representation of the knowledge and the representation in the knowledge base should be minimized. With a customized system, the system engineer can implement a knowledge base whose structures are as close as possible to those used by the domain expert. Knowledge-based Expert Systems Not all expert systems have learning components to adapt in new environments or to meet new requirements. But a common element each expert system possesses is that once the system is fully developed it will be tested and be proven by being placed in the same real world problem solving situation, typically as an aid to human workers or a supplement to some information system. Although reference books are able to provide a tremendous amount of knowledge, users have to read, comprehend and interpret the knowledge for it to be used. Conventional computer programs are built to perform functions using conventional decision-making logic having only little knowledge along with the basic algorithm for performing the specific functions and fulfill the necessary boundary conditions. The so-called knowledgebase was created in purpose of utilizing some knowledge representation formalism to capture and store the Subject Matter Experts (SME) knowledge. The process includes gathering that knowledge from the SME and codifying it according to a standardized format. Knowledge-based expert systems collect the small segments of human knowledge and combined into a set of knowledge-base which is used to aid in solving a complex problem. Any other problem that is within the range and domain of the knowledge-base can also be solved using the same program without reprogramming. Knowledge-based expert systems solve problems which normally require human intelligence. These said expert systems represent the expertise knowledge as data or rules within a system. These rules and data can be used and called upon for reference when needed to solve complex problems. When compared to conventional programming, the system has the ability to reason the process with explanations by back-traces and calculate the levels of confidence and deal with uncertainty. The knowledge has to be codified into programming code, hence as the knowledge changes, the program has to be changed accordingly as well and then rebuilt. Expert System Features There are a number of features which are commonly used in expert systems. These features allows the users to fully utilize the expert systems capability conveniently in providing the most logical and reasonable decision in a problematic situation. Backward chaining an inference technique which continuously break a goal into smaller sub-goals which are easier to prove via IF THEN rules Dealing with uncertainties the system has the capability to handle and reason with conditions that are uncertain and data which are not precisely known Forward chaining an inference technique which deduce a problem solution from initial data via IF THEN rules Data representation the method where the specific problem data is stored and accessed in the system User interface that portion of the code which creates an easy to use system; Explanations the ability of the system to explain the reasoning process that it used to reach a recommendation. Inference rule An inference rule is a statement that has two parts, antecedent which is an if clause and consequent which is a then clause. This rule is what the expert systems rely on and provides the capability to find solutions to diagnose and prescribe problems. An example of an inference rule is: If the song choice is in Latin, and the singers are in a group, Then the song choice is definitely from Il Divo. An expert systems rule base stores many inference rules such as this. They are stored in as separate rules and the inference engine will draw conclusions by going through all of them. Rules can be removed and added without affecting others since they are non-connected, yet it will subsequently affect which conclusions are to be reached. Inference rules has the better upper hand compared with traditional programming due to the fact that inference rules are able to imitate human reasoning and justify the solutions given. Thus, when a conclusion is drawn, the system is able to justify its course of solution and convince the user. Furthermore, since the expert system uses knowledge in a form identical to a certain expert, the solution provided will be not so different from an actual experts advice. Chaining When using inference rules, two main methods of reasoning used are backward chaining and forward chaining. Forward Chaining Forward chaining begins under the condition that the data is available and inference rules are used to conclude more data until a desired goal is reached. An inference engine using forward chaining searches the inference rules until it finds one in which the if clause is known to be true. It then concludes the then clause and adds this information to its data. It would continue to do this until a goal is reached. Due to the reason that the data available determines which inference rules are used, this method is also called data driven. A large number of expert systems require the use of forward chaining. The data driven approach is practical when combinatorial explosion creates a seemingly infinite number of possible right answers where no definite answer is specified. Forward chaining starts with the available data and uses inference rules to extract more data until a goal is reached. An inference engine using forward chaining searches the inference rules until it finds one where the antecedent (If clause) is known to be true. When found it can conclude, the consequent (Then clause), resulting in the addition of new information to its data. Inference engines will iterate through this process until a goal is reached. For example, suppose that the goal is to conclude the color of a pet named Fritz, given that he croaks and eats flies, and that the rule base contains the following four rules: If X croaks and eats flies Then X is a frog If X chirps and sings Then X is a canary If X is a frog Then X is green If X is a canary Then X is yellow This rule base would be searched and the first rule would be selected, because its antecedent (If Fritz croaks and eats flies) matches our data. Now the consequents (Then X is a frog) is added to the data. The rule base is again searched and this time the third rule is selected, because its antecedent (If Fritz is a frog) matches our data that was just confirmed. Now the new consequent (Then Fritz is green) is added to our data. Nothing more can be inferred from this information, but we have now accomplished our goal of determining the color of Fritz. Due to the fact that the data determines which rules are selected and used, this method is called data-driven, in contrast to goal-driven backward chaining inference. One of the advantages of forward-chaining over backward-chaining is that the reception of new data can trigger new inferences, which makes the engine better suited to dynamic situations in which conditions are likely to change. Backward Chaining Backward chaining starts with a list of goals or hypothesis and works backwards from the consequent (Then clause) to the antecedent (If clause) to see if there is data available that will support any of these consequents. An inference engine using backward chaining would search the inference rules until it finds one which has a consequent that matches a desired goal. If the antecedent of that rule is not known to be true, then it is added to the list of goals. In order for ones goal to be confirmed one must also provide data that confirms this new rule. An example of a system that uses backward chaining will be Google search engine. The aim of the system is to pick the best choice from many enumerated possibilities. For example, an identification problem falls in this category. Diagnostic systems also fit this model, since the aim of the system is to pick the correct diagnosis. The knowledge is structured in rules which describe how each of the possibilities might be selected. The rule breaks the problem into sub-problems. For example, the following top level rules are in a system which identifies birds. IF family is albatross and color is white THEN bird is laysan albatross. IF family is albatross and color is dark THEN bird is black footed albatross. The system would try all of the rules which gave information satisfying the goal of identifying the bird. Each would trigger sub-goals. In the case of these two rules, the sub-goals of determining the family and the color would be pursued. The following rule is one that satisfies the family sub-goal: IF order is tubenose and size large and wings long narrow THEN family is albatross. The sub-goals of determining color, size, and wings would be satisfied by asking the user. By having the lowest level sub-goal satisfied or denied by the user, the system effectively carries on a dialog with the user. The user sees the system asking questions and responding to answers as it attempts to find the rule which correctly identifies the bird. Note that the goals always match the affirmed versions of the consequents of implications and even then, their antecedents are then considered as the new goals which ultimately must match known facts which are usually defined as consequents whose antecedents are always true. Due to the reason that the list of goals determines which rules are selected and used, this method is called goal-driven, in contrast to data-driven forward-chaining inference. The backward chaining approach is often employed by expert systems. For a data driven system, the system must be initially populated with data, in contrast to the goal driven system which gathers data as it needs it. Figure 1.2 illustrates the difference between forward and backward chaining systems for two simplified rules. The forward chaining system starts with the data of a=1 and b=2 and uses the rules to derive d=4. The backward chaining system starts with the goal of finding a value for d and uses the two rules to reduce that to the problem of finding values for a and b. Uncertainty Often times in structured selection problems the final answer is not known with complete certainty. The experts rules might be vague, and the user might be unsure of answers to questions. This can be easily seen in medical diagnostic systems where the expert is not able to be definite about the relationship between symptoms and diseases. In fact, the doctor might offer multiple possible diagnoses. For expert systems to work in the real world they must also be able to deal with uncertainty. One of the simplest schemes is to associate a numeric value with each piece of information in the system. The numeric value represents the certainty with which the information is known. There are numerous ways in which these numbers can be defined, and how they are combined during the inference process. Data Representation For all rule based systems, the rules refer to data. The data representation can be simple or complex, depending on the problem. The most fundamental scheme uses attribute-value pairs. Examples are color-white, and size-large. When a system is reasoning about multiple objects, it is necessary to include the object as well as the attribute-value. For example the furniture placement system might be dealing with multiple chairs with different attributes, such as size. The data representation in this case must include the object. Once there are objects in the system, they each might have multiple attributes. This leads to a record-based structure where a single data item in working storage contains an object name and all of its associated attribute-value pairs. Frames are a more complex way of storing objects and their attribute-values. Frames add intelligence to the data representation, and allow objects to inherit values from other objects. Furthermore, each of the attributes can have associated with it procedures (called demons) which are executed when the attribute is asked for, or updated. In a furniture placement system each piece of furniture can inherit default values for length. When the piece is placed, demons are activated which automatically adjust the available space where the item was placed. User Interface The acceptability of an expert system depends to a great extent on the quality of the user interface. The easiest to implement interfaces communicate with the user through a scrolling dialog as illustrated in figure 1.4. The user can enter commands, and respond to questions. The system responds to commands, and asks questions during the inferencing process. More advanced interfaces make heavy use of pop-up menus, windows, mice, and similar techniques as shown in figure 1.5. If the machine supports it, graphics can also be a powerful tool for communicating with the user. This is especially true for the development interface which is used by the knowledge engineer in building the system. Providing Explanations One of the more interesting features of expert systems is their ability to explain themselves. Given that the system knows which rules were used during the inference process, it is possible for the system to provide those rules to the user as a means for explaining the results. This type of explanation can be very dramatic for some systems such as the bird identification system. It could report that it knew the bird was a black footed albatross because it knew it was dark colored and an albatross. It could similarly justify how it knew it was an albatross. At other times, however, the explanations are relatively useless to the user. This is because the rules of an expert system typically represent empirical knowledge, and not a deep understanding of the problem domain. For example a car diagnostic system has rules which relate symptoms to problems, but no rules which describe why those symptoms are related to those problems. Explanations are always of extreme value to the knowledge engineer. They are the program traces for knowledge bases. By looking at explanations the knowledge engineer can see how the system is behaving, and how the rules and data are interacting. This is an invaluable diagnostic tool during development. Why Use Expert System? In this section, the advantages and disadvantages of implementing the expert systems are provided. Then, the pros and cons will be reviewed according to my viewpoint and I will conclude as to why expert system SHOULD be implemented as a wiser alternative in obtaining the best solutions in overcoming complex problems. The Advantages of Using Expert System Expert system has been reliably used in the business world to gain tactical advantages and forecast the markets condition. In this globalization era where every decision made in the business world is critical for success, the assistance provided from an expert system is undoubtedly essential and highly reliable for an organization to succeed. Examples given below will be the advantages for the implementation of an expert system: Providing consistent solutions It can provide consistent answers for repetitive decisions, processes and tasks. As long as the rule base in the system remains the same, regardless of how many times similar problems are being tested, the final conclusions drawn will remain the same. Provides reasonable explanations It has the ability to clarify the reasons why the conclusion was drawn and be why it is considered as the most logical choice among other alternatives. If there are any doubts in concluding a certain problem, it will prompt some questions for users to answer in order to process the logical conclusion. Overcome human limitations It does not have human limitations and can work around the clock continuously. Users will be able to frequently use it in seeking solutions. The knowledge of experts is an invaluable asset for the company. It can store the knowledge and use it as long as the organization needs. Easy to adapt to new conditions Unlike humans who often have troubles in adapting in new environments, an expert system has high adaptability and can meet new requirements in a short period of time. It also can capture new knowledge from an expert and use it as inference rules to solve new problems. The Disadvantages of Using Expert System Although the expert system does provide many significant advantages, it does have its drawbacks as well. Examples given below will be the disadvantages for the implementation of an expert system: Lacks common sense It lacks common sense needed in some decision making since all the decisions made are based on the inference rules set in the system. It also cannot make creative and innovative responses as human experts would in unusual circumstances. High implementation and maintenance cost The implementation of an expert system will be a financial burden for smaller organizations since it has high development cost as well as the subsequent recurring costs to upgrade the system to adapt in new environment. Difficulty in creating inference rules Domain experts will not be able to always explain their logic and reasoning needed for the knowledge engineering process. Hence, the task of codifying out the knowledge is highly complex and may require high May provide wrong solutions It is not error-free. There may be errors occurred in the processing due to some logic mistakes made in the knowledge base, which it will then provide the wrong solutions. Summary It is entirely subjective as to whether the advantages of expert system overweigh the disadvantages of implementing it. It depends on the organizations viewpoint as to which objectives have the higher priority, whether in cutting cost or in producing a higher quality decision-making. However, in my opinion, the implementation of expert system is critical in providing the better service towards customers as well as possessing the competitive advantages over strong competitors. Cutting Cost VS Better Quality of Services If an organization is financially stable, the expert system is worth spending money and resources on, based on its fame and history of delivering many positive results. Though some organizations may have the cost-cutting objective as the top priority, if a wrong decision is made, it could lead to heavier financial loss. Adding insult to injury, the organizations reputation will be tarnished and customers may lose confidence towards the services of the organization. Expert System VS Human Experts Another main constraint of implementing the expert system would be the process of capturing the knowledge and codifying it into the system. However, an expert will not be available to provide his expertise around the clock. Hence, the importance of having the knowledge available all the time for critical decision-making far overweighs the difficulty that the organization will face in capturing the said knowledge. Humans also have limitations as to how much knowledge a human is able to digest and comprehend. As for expert system, it is able to store as much knowledge as possible base on its storage space. Hence, in terms of performance, expert system is capable to perform as good if not better then human. Implementing Expert System into e-Commerce System It has yet to be common for e-commerce systems to be implementing expert system to enhance its capability and experience for web users. There are still not many web developers willing to embed an expert system into their e-commerce system, mainly due to its difficulty in the knowledge engineering process to codify the human expertise. Yet, it is plausible to have a less complex expert system embedded in an e-commerce system to aid customers make decisions. The appropriate inference technique to be used in an e-commerce system will be forward chaining method, since customers will be providing part by part of data which will then be compared with the rule base to finally draw a conclusion. Providing questionnaires Through forward chaining method, the properly organized questionnaires will be able to obtain parts of small information from customers who couldnt make their decision upon which item to be bought. Every single question will have its purpose in determining the condition of the customers thoughts and liking, and then the answer provided will be compared with the rule base in the expert system to draw a final conclusion. This data-driven method is simple and productive since the process of codifying the human expertise of recommending an item that suits the customers liking isnt that complex. Example of Questionnaire The questionnaire below is used for the purpose of attaining small parts of information from the customer and the answers provided will be compared to the rule base in order to generate a decision for him Question 1 What is your budget range? (Determining the range of performance from the desktop) A. < RM 2000 B. lt RM 3000 C. > RM 5000 Inference Rules If X budget is less than RM2000 Then X needs no NVIDIA graphic card If X budget is less than RM3000 Then X needs NVIDIA graphic card(s) If X budget is more than RM5000 Then X needs NVIDIA graphic card(s) with better computer accessories Note: If user chose < RM 2000 Question 2 will be skipped. Question 2 What are the games you mostly play? (Determining the graphic card requirements) A. Massive Multiplayer Online Role Playing Games (MMORPG) B. First-Person-Shooting (FPS) C. All Inference Rules If X needs NVIDIA graphic card(s) AND X plays MMORPG Then X needs NVIDIA GTX 260 If X needs NVIDIA graphic card(s) with better computer accessories AND X plays MMORPG Then X needs NVIDIA GTX 260 and High Resolution Monitor If X needs NVIDIA graphic card(s) AND X plays FPS Then X needs NVIDIA GT 9600 If X needs NVIDIA graphic card(s) with better computer accessories AND X plays FPS Then X needs NVIDIA GT 9600 and Gaming Laser Mouse Question 3 How frequent do you download files such as songs and movies from the internet? (Determining the needed storage space) A. Seldom B. Often Inference Rules If X seldom download files Then X needs 320GB storage space If X often download files Then X needs 500GB storage space Providing Explanations Based on the questionnaire above, if a customer selects C, B, and B, the explanation will be given: The user selects NVIDIA GT 9600, Gaming Laser Mouse and 500 GB storage space. User plays First-Person-Shooting games which require middle-performance of graphic card and a gaming laser mouse to increase precision of mouse-controlling. User often downloads files and requires large storage space. If a customer selects C, A, and A, the explanation will be given: The user selects NVIDIA GTX 260, High Resolution Monitor and 320GB storage space. User plays MMORPG which require high-performance of graphic card and a high resolution monitor to enhance the gaming experience. User seldom downloads files and requires moderate storage space. Conclusion To conclude this report, expert system is undeniably reliable in terms of providing reasonable and highly valuable decisions. Knowledge and experiences from a human expert can lead to the critical decision-making in achieving success. Yet, as humans have limitations in terms of how much of knowledge is comprehendible by a person and the possible fatigue of dealing with too much work, the expert system doesnt have any. As knowledge is a valuable asset to an organization, retaining the experts knowledge is critical for the future of the organization. The expert system can play a vital role in storing and retaining the knowledge from a human expert. This saves the trouble of having the need to hire experts within the same domain for years. The rapid change and improvement of technologies will gradually decrease the cost for implementing an expert system. This will significantly reduce the financial burden for small companies in deciding the implementation of expert system. In the business world, organizations often faced trouble in making tough decisions and overcome complex problems. Customers often require computerized systems to support their decision-making. All these criteria can be met with the implementation of the expert system.