[Date Prev] [Date Next] [Thread Prev] [Thread Next] Date Index Thread Index Search archive:
Date:Mon Jul 22 00:48:39 2000 
Subject:Neural net package (WAS Re: lib connect) 
From:A . Sloman 
Volume-ID:1000722.02 

David,

> You can fix it by changing the lines
>
> define learnbit(patterns);
>    vars input_lines output_lines correct_output trials input output;
>
> to
>
> define learnbit(patterns);
>    vars patterns input_lines output_lines correct_output trials input output;

I have installed the modified version of LIB CONNECT with the fixes
mentioned in

    http://www.cs.bham.ac.uk/research/poplog/lib/connect.p

I have not checked that it is correct, except to note that it compiles
and the "learn" procedure seems to do something....

[DY]
> The reason is that the matcher arrow does not work with lexical
> variables, and in more recent versions of Pop-11 the default for
> procedure arguments is lexical unless otherwise stated. (This was a
> sensible change in my opinion, but I think it was known that a few
> libraries would be broken by it.) It is probably the case that a better
> fix would be to use one of the more modern matching operators and make
> all the variables lexical, but this may not be worth the effort.

If my matcher prefix "!" is used, available from
    http://www.cs.bham.ac.uk/research/poplog/lib/readpattern.p
with documentation in
    http://www.cs.bham.ac.uk/research/poplog/help/readpattern

Then all you have to do to make lvars work in patterns is put "!" before
the pattern.

E.g. replace

        patterns --> [[?input_lines ?correct_output] ??patterns];

with
        patterns --> ![[?input_lines ?correct_output] ??patterns];

This is far less trouble than converting to the new more general pattern
matcher, though that may be desirable in the long run.

All the Birmingham pop-11 teaching materials use this now, which means
that students don't have to learn to use "vars" for pattern variables
as they used to, causing endless confusion.

> By the way, if you are interested in having a much more powerful NN
> package, my LIB MLP (multilayer perceptron) is available from the
> Birmingham ftp site as part of the popvision package - though it's
> pretty much independent of the rest of popvision. This is a very
> flexible library incorporating the backpropagation algorithm for
> learning, and is well up to the speed and reliability needed for
> research. It doesn't have rule78 built in as LIB CONNECT does, though it
> would be easy enough to add a routine to do this.
>
> For teaching, I recently produced a little library built on top of LIB
> MLP which uses a neural net to see whether a sequence of letters looks
> like an english word or not - it's got a graphical interface of sorts
> (and in fact you can make it solve fairly arbitrary problems). It's
> local at Sussex at present but I can make it available more widely if
> you or anyone else is interested.

If you make it available I'll be happy to install it at
    http://www.cs.bham.ac.uk/research/poplog/

either as a stand alone package or as part of popvision.tar.gz

Do you, or does anyone reading this, have a Hebbian learning package
written in Pop-11, or accessible from Pop-11?

A colleague wants this for some agents that learn in a simulated
environment. He'll probably write one if there isn't such a package
already available.

Aaron
===
Aaron Sloman, ( http://www.cs.bham.ac.uk/~axs/ )
School of Computer Science, The University of Birmingham, B15 2TT, UK
EMAIL A.Sloman AT cs.bham.ac.uk   (ReadATas@please !)
PAPERS: http://www.cs.bham.ac.uk/research/cogaff/
TOOLS: http://www.cs.bham.ac.uk/research/poplog/freepoplog.html