Newsgroups: comp.ai.neural-nets
Path: cantaloupe.srv.cs.cmu.edu!das-news2.harvard.edu!news2.near.net!howland.reston.ans.net!ix.netcom.com!netcom.com!park
From: park@netcom.com (Bill Park)
Subject: Re: He who knows what he does not know is wise
Message-ID: <parkCz487K.sL@netcom.com>
Followup-To: comp.ai.neural-nets
Organization: Netcom Online Communications Services (408-241-9760 login: guest)
References: <parkCyxFB0.5Ko@netcom.com>
Date: Fri, 11 Nov 1994 18:18:56 GMT
Lines: 79

In article <parkCyxFB0.5Ko@netcom.com> park@netcom.com (Bill Park)
     -- that's me -- wrote:

> What are some good ways to get a neural network to report that the inputs
> you gave it are too different from its training set to permit it to
> give you an accurate answer?

I have been surprised at how little seems to have been done on this
problem, to judge from the responses so far.  I thought I was going to
be referred to a standard solution in the FAQ.  After all, if a
potential client asks you how reliable your neural net is, and you
say, "It does great, as long as nothing unusual happens," you're going
to be shown the door.

How about radial basis functions (RBFs), such as the kind implemented
by Nestor's software?  The idea behind those approaches seems to be to
try to cover the input space with a set of nonoverlapping regions, and
just store an answer for each region.  Nestor, for example, uses
"circular" regions (e.g., spheres in a 3D space of inputs).  Quadtrees
in computer graphics are a similar idea, heirarchically decomposing a
solid object in (usually) a 3-D space into ever-smaller rectangular
prisms (or hyperprisms).  Except the graphics people develop their
quaadtrees systematically and algorithmically based on some other kind
of geometric model of the object's shape, rather than by a sampling
approach, the way neural net people develop their nets.  You could
call quadtrees an RBF decomposition by defining a distance metric in
the input space that makes the unit ball (a generalized "sphere" of
unit radial "distance") a rectangular parallelopiped.  Square balls.
Why not?  This is Science.

Each time you present a new training example, the radial basis system
readjusts the locations and sizes of some of the regions, and may add
new regions.  This gives perfect accuracy in a single pass over the
training set.  Generalization is another question, though.  If the net
gives the same answer anywhere in a given region, there will be step
discontinuities at the region boundaries.  So, I guess these systems
interpolate answers among the nearest regions in the multidimensional
input space to learn a smooth response surface.  I suppose that's the
"Coulomb energy" business the Nestor literature talks about.

A "neuron" is associated with each region in these RBF methods,
although that seems to me to be a gratuitous adherence to the
biological metaphor to describe what is more simply understood as a
trivial geometric exercise.

Of course, If what you're trying to learn isn't a smooth function
almost everywhere, you're licked before you start.  A neural net can't
learn a fractal, eh?

Anyway, if you put an upper bound on the "radius" of your covering
regions, you may end up with a portion of the input space that is not
covered by any region after processing all the training examples.
Then we could say that that "outside" region contains all the examples
on which the net has not yet been trained.  Easy to test for: If an
example lies outside each region trained, then it hasn't been trained
yet.  So, you tell the user "I dunno," instead of giving the answer
for the region that is "closest" in some sense.  Hmmmm ... if you are
using non-rectangular regions, there will be little odd-shaped gaps
between them.  So, I guess it would be better to let such regions
overlap a little to eliminate those "inside" gaps.  Tricky to decide
how much overlap in general, though -- depends on how the examples are
distributed in input space whether a gap is "inside" or "outside" the
part of input space the training data covers.

So, I guess I'm merely converging to Warren Sarle's earlier suggestion
in this thread to cluster the examples: Then, if a new example falls
outside all the clusters, we shouldn't trust what the net says about
it.

Are there any Nestor users who have had to deal with this problem in
fielding a real system?  Is it a built-in feature of that product?
I'd love to hear from you privately or in this newsgroup about your
solutions.

Thanks,

Bill Park
=========
-- 
Grandpaw Bill's High Technology Consulting & Live Bait, Inc.
