[comp.ai] Verification of KB Systems

mullen@evax.arl.utexas.edu (Dan Mullen) (01/05/91)

I'm interested in information regarding any tools or techniques being
used to verify requirements for knowledge based systems.  This is not
something I intend to undergo personally, it is more of an informal 
survey and I'm curious if anyone actually does this.  Please don't 
inundate me standard V&V material.  I am specifically interested in 
verification of KB systems or expert systems.

In the proceedings from WESTEX-87 Green and Keyer say that nobody does
V&V of expert systems because nobody knows how to do it. And nobody knows
how to do it because nobody ever asks for it to be done.  This was three
years ago - has anything changed?  Does anybody work for a someone who
actually requires that specifications and requirements for expert systems 
be formally verified before implementation.  If so, how do you do it? 
IDEF? OOA? Structured Analysis? I'm not asking for trade secrets, just
general comments. Or would anyone like to offer a proof that verification
of KB systems is impossible?

Thanks for reading this, d.m.

wdavis@x102c.harris-atd.com (davis william 26373) (01/07/91)

In article <1991Jan4.180056.20917@evax.arl.utexas.edu> mullen@evax.arl.utexas.edu (Dan Mullen) writes:
>In the proceedings from WESTEX-87 Green and Keyer say that nobody does
>V&V of expert systems because nobody knows how to do it. And nobody knows
>how to do it because nobody ever asks for it to be done.  ...
 (some lines deleted)
>... Or would anyone like to offer a proof that verification
>of KB systems is impossible?

This is not exactly a proof, but think about what you are asking for
and it seems impossible.  For a non-expert system, you can specify
requirements rigorously.  They may not be the correct requirements,
but they can be clear.  A system claiming to implement those requirements
can be validated, to some extent, against those requirements.
Maybe something useful is produced in the process, maybe not.
Usually new requirements are discovered during or after implementation
(I have not seen a project yet that did not involve some derived
requirements during the project or a market driven change).

How would we specify the precise requirements for an expert system?
Start with the fuzzy "It should be an expert" or "It should be
as expert as possible within the budget and time constraints" or
even "It should know what these experts know".  Now take two experts
and put them in a room and see if they agree on everything in their
area of expertise.  If not, then which knowledge is correct for
the expert system?

It may be possible to check all the rules against experts to see
if they agree and it may be possible to check the inference
engine with validation techniques, but is this sufficient to
validate an expert system?  What about knowledge that is learned
as the system evolves?

I don't know how to completely validate a person's knowledge of
a subject.  So, I don't feel confident that a computer's knowledge
of a subject can be any better validated.  Even more problematic
is that the computer may have missing knowledge - how is that to
be validated (that none is missing)?

almond@lisbon.stat.washington.edu (Russel Almond) (01/08/91)

I'm comming in from left field on this issue, but let me describe my
approach to this problem.  As far as I know it has never been
implimented.

I tend to view an expert system as a giant probabilistic model.
Certain variables are observed and on the basis of those others (of
importance to some decision) are predicted.  This view arrises
naturally from the graphical model/belief net concept supported by
Judea Pearl or David Spiegelhalter.  It can even be used for models
based on logic or other inference principles.

As a statistician, I reguard the proof of a probabilistic model as its
predictive ability.  The proof of a knowledge based system would
therefore be its ability to make the same decisions as the "expert."
A validation set of possible inputs would be selected and the KB
system's predictions or decisions would be compared with the expert's
decisions or, in the cases where it was known, the true state of
nature.  Various statistical methods, such as log-linear modelling or
logistic regression could be brought to bear on the problem of
estimating the program's predictive error rate.

Of course such a procedure would be sensitive to the choice of
validation set.  The validation set could easily miss a sample input
for which the system would make erronious and irrelevant predictions.
There is no simple way to deterimine this.  On the other hand, I don't
feel that an expert system is robust unless it can throw up its
hands and say it doesn't know when it reach a point in its input space
about which it has no knowledge and can learn from its mistakes.

I hope these ideas are of some help.

	--Russell Almond
	University of Washington
	Department of Statistics
	almond@stat.washington.edu