Ben Goertzel wrote:
> Hi all,
> 
> Well, this list seems more active than it has been for a while, but
> unfortunately this increased activity does not seem to be correlated
> with a  more profound intellectual content ;-)
> 
> So, I'm going to make a brazen attempt to change the subject, and
> start a conversation about an issue that perplexes me.
> 
> The issue is: how might NNs effectively represent abstract knowledge?
> 
> [Note that I do not pick a discussion topic related to my own
> Novamente AGI project.  That is because at the present time there is
> nothing about Novamente that really perplexes me... we are in a phase
> of (too slowly, due to profound understaffing) implementing our design
> and experimenting with it, and at the present time don't see any need
> to re-explore the basic concepts underlying the system.  Perhaps
> experimentation will reveal such a need in time...]
> 
> There are a number of reasons that I chose to use a largely
> logic-based knowledge representation in the Novamente system:
> 
> 1)
> This will make it easier to import knowledge from DBs or from the
> output of rule-based NLP systems, when the system is at an
> intermediate stage of development.  [When the Novamente system is
> mature, it will be able to read DB's and NLP itself without help; and
> now when it is very young and incomplete it would be counterproductive
> to feed it DB or NLP knowledge, as it lacks the experientially learned
> conceptual habit-patterns required to interpret this knowledge for
> itself.]
> 
> 2)
> While I considered using a more centrally neural net based knowledge
> representation, I got stuck on the problem of how to represent
> abstract knowledge using neural nets.
> 
> So, Novamente's KR has the following aspects:
> -- explicit logic-type representation of knowledge
> -- knowledge-items and their components are tagged with numbers
> indicating "importance levels", which act slightly like time-averages
> of Hopfield net activations
> -- implicit knowledge can be represented as patterns of
> activity/importance across the network
> 
> This is all very well for Novamente -- which is not intended to be
> brainlike -- BUT, I am still perplexed by the question of how the
> brain (or a brain-emulating formal neural net architecture) represents
> abstract knowledge.
> 
> So far as I know none of the brain-emulating would-be-AGI
> architectures I have seen address this issue very well.  Hawkins'
> architecture, for instance, doesn't really tell you how to represent
> and manipulate an abstract function with variables...
> 
> Say, a category like "people who have the property that there is
> exactly one big scary thing they are afraid of."  How does the brain
> represent this?  How would a useful formal neural net model represent
> this?
> 
> I am aware that this is in principle representable using neural net
> mathematics, as McCullough and Pitts showed long about that simple
> binary NNs are Turing-complete.  But this is not the issue.  The issue
> is how such knowledge can/should be represented in NNs in a way that
> supports flexible learning and reasoning...
> 
> It seems to me that simple probabilistic logical inference can be seen
> as parallel to Hebbian learning, for instance
> 
> A implies B
> B implies C
> |-
> A implies C
> 
> is a lot like Hebbian learning which given the connections
> 
> A --> B --> C
> 
> may cause the reinforcement of
> 
> A --> C
> 
> But I know of no similarly natural mapping from the logic of more
> complex (e.g. quantified) predicates into neural-net structures and
> operations.
> 
> Anyone have any special knowledge, or any interesting ideas, on this topic?

Yes!  Very much so.  (And thanks for asking a question that raises the
level of discussion so dramatically).

Back in the early connectionist days (1986/7) - when McClelland and
Rumelhart had just released their two PDP books - there was a lot of
variation in how the "neural net" idea was interpreted.  In particular, you
will find in the PDP books some discussion of the concept of a "neurally
inspired" architecture was very much on everyone's mind:  in other words,
we don't have to take the simulated neurons too literally, because what was
really important was having systems that worked in the general way that NNs
seemed to work:  lots of parallelism, redundancy, distributed information
in the connections, active computing units, relaxation, etc.

More importantly, there were some (Don Norman's name comes to mind: I think
he wrote the concluding chapter of the PDP boks) who specifically cautioned
against ignoring some important issues that seemed problematic for simple
neural nets.  For example, how does a neural net represent multiple copies
of things, and how does it distinguish instances of things from generic
concepts?  These are particularly thorny for distributed representations of
course:  can't get two concepts in one of those at the same time, so how
can we represent anything structured?

What happened after that, in my opinion, was that *because* some types of
neural net (backprop, basically) offered a way to rigorously prove the
convergence of their behavior towards a well defined optimum, everyone
leapt on the backprop bandwagon and tried to find other NNs that would have
the same convergence guarantees.  Result?  All those early ideas about
adopting the general ideas of neural network functioning and organisation
got thrown out the window in favor of applying stupid old backprop (plus a
few others) to everything.

Indeed, the entire field of neural networks, the way it is defined by the
likes of NIPS and IEEE, is nothing but mathematical explorations that
completely ignore the spirit of those early connectionists.

With all of that said, I was always in favor of that broad interpretation
of what neural nets are about, so when you ask your question about how to
represent abstract knowledge in a neural net, my response is mixed.  If you
interpret "neural net" as something like close-to-the-biological-neurons,
or neurons-as-mathematical-systems, then my answer is quite simple:  those
systems are and always have been a disaster.  Just because a couple of
thousand researchers decided to ignore Donald Norman's strictures does not
mean that what he had to say is irrelevant, or has been adequately answered.

But if you take a more liberal view, there some good answers to your question.

My own approach is to design a cognitive architecture that has "elements"
that look somewhat like neurons in some respects, but which have some
properties that make it easy for them to combine in such a way as to
represent abstract knowledge.  The simplest way to understand that is to
see them as atoms that can make transient links to one another:  the
overall design of teh system is rather like a molecular soup in which
concepts (elements) can combine to represent complex, strauctured ideas,
and in which the ways that they combine (the bonds) are mediated by other
concepts that represent relationships.  There are simple mechanisms that
allow the system to elaborate these representations in various ways,
according to context, so for example a new concept can form from an
existing simple concept by allowing one or more of the relationships in the
structure to become slippable:  a bachelor is an unmarried man (simple
definition), but then if someone were to stretch the concept to breaking
point by referring to a woman as a bachelor, my existing bachelor element
is allowed to unpack itself (= retrieve the original, extended set of
elements and relationship out of which it was formed) and substitute for
one of the main concepts a new one that in some sense plays the same role
(and role-playing in this sense is just a matter of being able to form
similar relationships to the old).  Thus:  "man" gets ripped out and
replaced by "woman", but with a hint of the idea that the speaker was
trying to imply some other features of bachelorhood that would normally be
characteristic of a man but which in this case are true of the woman.

It is difficult to give a good feel for this kind of formalism in a short
message:  apologies for that, but I am working as hard as I can right now
to get all of this written up in an accessible form.

The important point (coming back to your original question) is that I see
these "elements" as being extended circuits of neurons, with (probably) no
identification whatsoever between individual neurons and concepts. 
Although a circuit made of neurons can in principle be used to design any
kind of architecture (including architectures that are completely and
utterly non-neural), my own philosophy is that the likely design of those
circuits will neveretheless retain many characteristics of the behavior of
neurons themselves ... relaxation, for instance.

So my "neurons" are not neurons, but collections of neurons.  Those
collections are still neuron-like, however, and because of that I am able
to have my connectionist cake and still eat the rich fruit of structured,
abstract representations.

It is important to understand that *if* a person decides to do what I did
and use a neural circuit to represent structured knowledge, then it matters
how they do it.  Because I am constraining the higher level to be neurally
inspired, it is an answer to your question.  If I were not trying to be
neurally inspired, but allowing any old representation, then that would not
address your question because I could build absolutely anything (a Bayesian
logic engine, a GOFAI symbolic processor, an actor system, whatever) with a
suitably designed circuit, and in that case the answer would simply be "it
could be whatever you wanted to to be".

Myself, I am only interested in principled solutions that address the high
level issues of how to represent all kinds of knowledge, how that knowledge
can be learned, and used to produce real cognitive behavior, etc.  Merely
getting neurons to do something, with no clear high-level agenda, is of no
interest to me.

Richard Loosemore



---------------------------------------------
This message was sent using Endymion MailMan.
http://www.endymion.com/products/mailman/


-------
To unsubscribe, change your address, or temporarily deactivate your 
subscription, 
please go to http://v2.listbox.com/member/[EMAIL PROTECTED]

Reply via email to