views:

208

answers:

5

Does anyone know how to emulate an Expert Systems using Neural Networks? An example of this is the 20q.net website.

I'm more curious to how the network would be designed; ie how many inputs, what the input represents, what outputs from the network, how these outputs point to an answer. Very interesting stuff.

A: 

This is somewhat of an open ended question, or at least a difficult one to answer here. Check out http://www.cs.waikato.ac.nz/ml/weka/ and http://marsyas.sness.net/ for some interesting documentation and implementation of data mining and machine learning algorithms.

darren
+4  A: 

Expert Systems are very different systems from Neural Networks

These systems differ in many ways, both with regard to their architectures and to their uses.

Expert Systems (at least in the traditional understanding of the word) are driven by [typically] high-level rules which the engine uses, along some input, to infer some conclusions about the input. Rules are typically entered explicitly, essentially translating some statements made by experts in a particular domain, into whatever predicate representation is implemented in the Expert System.

Neural Networks (NN), on the other hand, may have their topology manually/explicitly set, but otherwise are typically able to learn, automatically, how to associate some inputs or input sequences with particular outputs.

The above descriptions are certainly reductive of both concepts, maybe particularly of Neural Nets which come in many different forms and flavors (with many different usages, well beyond pattern recognition), but, I hope, will help you understand how very different these systems are.

One salient difference may be with regards to "transparency", whereby Expert Systems can typically output some "explanation" for their deductions ("Input 1 and Rule #3 indicate conclusion A, with a probabilty of 81%"), while NNs tends to be black boxes. This is not to say that NNs cannot come to a very precise "understanding" of their world (and such understanding gets encapsulated in the topology of the network and the relative weights associated with various inputs and/or neurons), it's just that this expertise about their world is not so readily translated into plain English. With regards to transparency, and in very broad terms, an NN compares a bit to a mathematical formula, whereby an Expert System is more like a recipe book.

Another notable difference, as hinted above, is that an expert system requires the translation and loading of explicit rules ("If the temperature exceeds 200 degrees, the safety valve starts opening"), whereby the Neural Network discovers such "rules" based on the training sets supplied to it (such as labeled input sets).

mjv
couldn't a neural network be used as the decision logic for an expert-system?
darren
@darren Not in the traditional understanding of an expert system. In a specific domain or task, a neural network could emulate an expert system (although it may not be so transparent/explicit), but the inner working of these two system is quite different.
mjv
Sorry, I did mean a sort of emulation not explicitly an Expert System. But as darren says; a way to user a neural network as the decision logic. I was more wondering how a database of conclusions would be chosen from a network. I assume this is how 20q works.
Louis
A: 

These are quite incompatible topics.

An expert system relies on a set of rules and an inferential engine; the set of rules is given by the knowledge engineer. The rules are "if-then" statements, easy to be read/corrected/maintained etc.

A neural network, on the other hand, is rather perceived as a black box. The weights and neurons adapt based on the input/output patterns, but these weights are not represented as rules. There is no inferential engine, as the input is used in various computations to provide the output.

There are few cases in which you can extract some rules from NN (see for example rule extraction for Fuzzy ARTMAP); but, from what I know, such approaches are rarely encountered in practice. It is about to reverse engineering of knowledge embedded into NNs, a process highly dependent on the concrete architecture of the network.

Another big difference: a NN can be used exclusively for numerical input (non-numeric input must be converted to numbers, but this is sometimes a non-natural process) while an expert system accepts nominal values.

lmsasu
I know the differences. But as I said: emulate.
Louis
+1  A: 

I don't know how the Q20 neural network works, but you can use neural networks to train the connections in a Belief Network. Essentially, every question has a "desire to be asked" which is modified based upon the output of the previously-asked question. In other words, the 3 questions with the highest initial "desire" might be "Is it animal?" "Is it vegetable?" or "Is it mineral?" Let's just say that you split the tie and go with "Is it animal?" If the person answers "Yes", you increase the probability / desire of asking questions such as "Does it have hair?" and decrease the probability of questions such as "Is it a legume?"

In this scheme, it would be the parameters of the delta probability function that could be done with a neural net. In other words, the decision as to how much to increase or decrease the probability of next asking "Does it have hair?" could be done based on the success or failure of "Is it animal?"-> TRUE, "Does it have hair->"...[Result] over a very large number of games. Note that while this is possible to do with a NN, it's not at all intuitive that a NN would be efficient -- statistical methods going all the way back to Bayes and up to "Support Vector Machines" would be alternative ways of modifying the linkage between questions to learn better.

Based on my experience with AI, I would suspect that you wouldn't have success just throwing all the questions into a pot and completely cross-connecting them, but would rather have to have a series of sub-nets that achieved goals. I don't know for sure, though. One of the things that's striking about the Q20 algorithm is that it doesn't seem to have discrete sub-goals -- I think you can see any question at any time. It's very impressive.

Larry OBrien
A: 

How do you decide between expert system and neural network?

kris