Wednesday, September 9, 2009

Speech Recognition

Speech or voice recognition is an artificial intelligence application related to natural language processing. It is the process of having the computer recognize normal human speech. When a speech recognition system is combined with a natural language processing system, the result is an overall system that not only recognizes voice input but also understands it.

While a tremendous amount of communications takes place by the written word, it is only a fraction of our daily communications by voice. Not only is this type of communication natural for us, but it is also faster. The average human speaking speed is approximately 150 words per minute. This is approximately twice as fast as an average typist.


One of the major benefits of voice input on a computer is that it prevents diversion of the eyes and hands. Typing in data on the keyboards keeps hands and the eyes busy. But with voice input, the eyes and the hands can concentrate on other activities. There are some computer applications where this advantage is major.

Wednesday, September 2, 2009

Developing An Expert System

There are 10 steps involved in the development of an expert system. They are :

1. Identify the problem and need

An expert system is a solution looking for a problem. To justify the creation of an expert system, there must be a real problem to solve or need to meet. The first step is to examine the situation and determine what the problem is, or why this system may be helpful.

2. Determine the suitability of the problem

Examine the problem in detail, and see if an expert system would be a solution to it. To take advantage of an expert system, the user must have a computer, or at least access to one.

3. Consider the Alternatives

If the problem can be solved without going for an expert system, then do consider that option. For instance, employee performance problems may be corrected by training. Or the employees may be provided with written information they need, in manuals or job aid. A DBMS Database management system can be an alternate solution to the problem.

4. Compute the ROI

If you still choose to go for an expert system, then the next step is to determine if it is economically feasible. You must compute the ROI, return on your investment, by performing a cost/benefit analysis. This will help you estimate the cost of creating the expert system and determine whether its cost can be justified in terms of the savings or other benefits it produces.

Developing an expert system is not a simple job. It is going to cost a considerable amount, not only in the purchase of software but in the hours it will take to create the system. Even the simplest of expert systems will take months to develop and cost thousands of dollars. Is the problem to be solved important enough to make the investment? To compute the ROI, estimate the expert system development cost. Then determine the savings that will result in using the expert system.

5. Select a Development tool

An expert system development tool is a software package that allows you to enter an expert's knowledge into the computer without having to program. Identify the available tools and select the one that fits your needs.

6. Perform the Knowledge Engineering

Development of an expert system begins with knowledge engineering. Knowledge comes in many forms. It can be standard text book knowledge that you can dig out of books, articles, and other references. However the real knowledge will come from individuals, or experts in that field. You must locate one or more experts, who are willing to spend their time on the project.
You will have to select a particular knowledge representation scheme, according to the format of the knowledge. Most knowledge can be represented in the production rule form.

7. Design the System

By now you would have acquired the knowledge and selected the tool, so you can now begin working on the design of the expert system. Create an outline, a hierarchy of a flow chart, a matrix, decision table that will help you organize and understand the knowledge. Now convert the knowledge into IF-THEN rules, using those aids. Once the basic design is complete, you can begin using the tool to create a prototype of one segment of the system. Translate a portion of the knowledge into rules and test the newly created segment. Test the concept before going ahead with the entire program.

8. Complete the Development

Once you are satisfied that the system will work correctly, you can begin expanding your prototype into the final project. Expand the prototype one segment at a time.
The knowledge will divide itself into logical "chunks", each with a block of rules. Test each new segment as it is added to see that it works with the original prototype.

9. Test and Debug the System

After developing the expert system, you will have to test and debug it. No expert system will be perfect the first time, and a considerable amount of work will be required to validate it. Try out your expert system on its intended users. User feedback will show you where to make final changes, corrections, and additions to get the desired performance.

10. Maintain the System

Domains are not always static. It is important to maintain, and update the expert system with new knowledge, and remove knowledge that is no longer applicable to the program.

How Expert Systems Work

The key components of an expert system are the knowledge base, the inference system, the data base, and the user interface.
The knowledge base is the heart of an expert system, and there are many different methods for representing knowledge in AI software. The designer can choose among predicate calculus, lists, frames, semantic networks, scripts, and production rules. On the other hand, it has been determined through considerable experience that one of the best methods of knowledge representation for expert systems is production rules. Most commercial and experimental expert systems use the popular IF-THEN rule format.

Production Rules are popular because their format is extremely flexible. Almost any kind of knowledge can be written to fit the IF-THEN rule format. Such rules are generally easy to write, and it is relatively easy to build an impressive knowledge base quickly.

Another important part of an expert system is the database. It is sometimes called a global database because it contains a broad range of information about the current status of the problem being solved. The database is a portion of the working memory where the current status of the problem-solving process is stored.
It is also referred to as the fact base because it records facts about the problem. Knowledge facts are stored there initially. Then new facts as they are gleaned from the inference process, are added. The fact base keeps track of all that is known during the inferencing operations.
Among the important things stored in the database are the initial conditions of the problem to be solved. Usually the expert system asks the user for some beginning input. It may ask questions for which answers must be typed in, or it may present a menu of options from which the user must choose. This information gives the expert system a starting point to begin the search process.
The inference engine begins its search, matching the rules in the knowledge base against the information in the data base. As each rule is examined, actions caused when a rule fires may change the content of the database, thereby updating the status of the problem. New facts become available to use in the decision-making process. In addition, special functions such as a request for additional information from the user, may be triggered,
The database also stores a list of rules that have been examined, fired and in what sequence. This helps to keep track of the process. The rule sequence can be given later if the user requires an explanation of the reasoning process.

The function of the inference engine is hypothesis proving. When the hypothesis is given to the expert system, the inference engine first checks to see if the hypothesis is stored in the database. If it is, the hypothesis is considered to be a proven fact, and no further operation is necessary. Usually the hypothesis is not there and must be proven by inferencing. As the various rules are fired, new facts are derived and ultimately the hypothesis is either proved or disproved.

User Interface is the remaining of the expert system, which is a piece of software that lets the user communicate with the system. The user interface asks questions or presents menu choices for entering initial information in the database. It provides a means of communicating the answer or solution once it has been found. Any intermediate communication during the problem-solving process are taken care of by the user interface.

Expert System

An expert system is an artificial intelligence program that makes use of a knowledge base and an inference system. It is a highly specialized piece of software that attempts to duplicate the function of an expert in some field of expertise. The program acts as an intelligent consultant or advisor in a particular domain, capturing the knowledge of one or more experts. Non-experts can then tap the expert system to answer questions, solve problems, and make decisions in the domain.

The expert system is a way to capture and package knowledge. It's strength lies in its ability to be put to practical use when an expert is not available. Expert systems will make knowledge more widely available and will help overcome the problem of translating knowledge into practical, useful results.

Expert systems are a special type of knowledge-based systems because they contain heuristic knowledge. It is knowledge that comes directly from those people who have worked for years within the domain. It is knowledge derived from learning by doing. It is the most useful kind of knowledge, related especially to everyday problems, that works for us by producing solutions, decisions, and other positive outcomes.

Knowledge is power, but in a practical sense, it becomes power only when it is applied. Expert systems are a way to achieve results faster.

Expert Systems --- The Down Side

1. Developing of an expert system is extremely difficult, more difficult than creating more conventional software. Good experts are hard to find. Extracting their knowledge is a long, tedious job and coding that knowledge into software is a major chore.

2. Expert systems are expensive. It costs a lot to develop one, test it and deliver it to the end-user.

3. Most expert systems still must be implemented and delivered on a big mainframe or minicomputer. Expert systems can b developed and used on personal computers, of course, but these are smaller, less sophisticated, and often less useful systems. The memory size and speed of a personal computer limits its usefulness.

4. Expert systems are not 100% reliable. Even with the best experts contributing to their design, expert systems aren't perfect or infallible. For that reason their output recommendation must be weighed, tested, and otherwise, scrutinized before it is used. A human being should always provide the final judgement.

There disadvantages however are not impossible to overcome. With further advancements in technological hardware and software, these disadvantages will gradually lessen or disappear.

Benefits of Expert Systems

Expert Systems offer the following advantages:

1. Permit non-experts to do the work of experts 2. Improve productivity by increasing work output by improving efficiency 3. Save time in accomplishing a specific objective 4. Simplify some operations 5. Automate repetitive, tedious, or overly complex processes

Expert systems also offer some additional benefits over conventional softwares, such as:

1. Permit new kinds of problems to be solved thereby making the computer more useful 2. Capture and store valuable knowledge that might be lost due to the resignation, retirement, or death of an expert 3. Make expert knowledge available to a wider audience, thus increasing the problem solving ability of more people

Cost saving is not listed, because expert systems, like most other software, rarely save money. They cost money to develop and use, but the benefits derived usually justify the cost.

Search Techno Talk

Google Groups
Subscribe to Techno Talk
Email:
Visit this group