bug-gnubg
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: [Bug-gnubg] User training of the Neural Nets


From: Joseph Heled
Subject: Re: [Bug-gnubg] User training of the Neural Nets
Date: Thu, 24 Aug 2006 14:58:54 -0600

would be nice if you make this a google spreadsheet, so we can all
have a look on the Internet.

-Joseph

On 8/24/06, Albert Silver <address@hidden> wrote:
I'm not sure why, but I'm not getting all the e-mails from the mailing list.
The one below that is quoted, never got to me for example. Anyhow, I'm doing
some tests that may be of help to the developers, as well as users. Some
time ago, Michael Depreli selected positions from a long money game seesion
between Snowie 3.2 and GNU 0.13, in which one bot thought a mistake had been
played. There were 626 positions in all, tested with GNU 0.12, 0.13, 0.14,
and Snowie 3 and 4 for example. He rolled the results out to see who was
right, and then compiled a table showing the respective results of each bot,
at their normal full playing strength.

        Overall Ch Errors       Cube Errors     Total Cube Errors
                        MD      WD      WT      WP
G14     11.009 (193)    8.175 (159)     0.728 (10)      0.489 (5)
1.226 (16)      0.391 (3)       2.834 (34)
G13     11.905 (204)    8.949 (170)     0.728 (10)      0.342 (4)
1.631 (18)      0.255 (2)       2.956 (34)
S4      12.531 (200)    8.744 (163)     1.030 (14)      0.862 (4)
1.530 (16)      0.365 (3)       3.787 (37)
G12     14.530 (229)    10.571(180)     0.964 (12)      0.960 (15)
1.344 (15)      0.691 (7)       3.959 (49)
S3      20.256 (286)    14.292(226)     2.092 (24)      0.404 (5)
2.613 (26)      0.855 (5)       5.964 (60)
J       28.674 (371)    20.109(293)     2.602 (32)      1.074 (14)
4.291 (30)      0.598 (2)       8.565 (78)

The number in parentheses is the number of positions gotten wrong. If you
want the original table (easier to read), just e-mail me. In any case, I am
entering the positions in GNU in order to test the other plies. Meaning, I
will test the very same positions, but also at GNU's 0-ply, 1-ply, 3-ply,
and 4-ply. I think the results may be interesting. I am keeping track of the
results in an Excel document, identifying the type of positions tested as
well (checker play, missed double, etc.). Be patient as it takes time, and
I'm doing about 25 a day.

                                                Albert


> -----Original Message-----
> From: address@hidden [mailto:bug-gnubg-
> address@hidden On Behalf Of Joseph Heled
> Sent: Thursday, August 24, 2006 2:24 PM
> To: Øystein Johansen
> Cc: bug-gnubg
> Subject: Re: [Bug-gnubg] User training of the Neural Nets
>
> <personal opinion>
> Using the current setup, as is, you may get better net(s), but not
> anything significantly better. To go to the next level requires
> "programatical" changes suggested by Øystein, either in the inputs,
> the number of nets, the way nets interact, a new way to train, and so
> on. one worthwhile addition that we know to work but was not
> implemented in the 1+0 ply evaluation, which has the same
> computational cost as 1 ply but is better. (some like to cal it 0.5
> ply, some 1.5 ply, but neither name make sense to me) .basically it is
> simply averaging the 0 and 1 ply equities (i think the best weights
> were .6 something). I don't remember if I implemented or tested this
> for cubefull evaluations. perhaps I only did that for cubeless. this
> can be a fun project for someone to get proficient in the setup,
> python and all the toolchain in developing nets for gnubg.
>
> -Joseph
>
> On 8/23/06, Øystein Johansen <address@hidden> wrote:
> > Christian Anthon wrote:
> > > Okay then what level of programming skills would be needed and what
> > > should a programmer do?
> >
> > 1. Get the gnubg-nn code
> >    cvs -d:something:blah co gnubg-nn
> >
> > 2. make it compile
> >    If I remeber correctly it was:
> >    cd py
> >    gmake safe
> >
> >    I believe there is some documentation on how to compile it.
> >    (Maybe a linux system makes it easier ?)
> >
> > 3. Before you start training anything:
> >    Steal the neural net evaluation code from gnubg, the code
> >    that uses SSE, and apply it to the code ing gnubg-nn.
> >    This step will save you a lot of time in the traing.
> >    (commit the changes back to the cvs)
> >
> > 4. Get the reference databases and the neural nets. It's on
> >    a ftp somewhere. I'll find the address when you need it.
> >
> > 5. Use the training scrips provided.
> >    train.py - trains a net
> >    buildnet.py - builds a net from scratch... really slow.
> >    getth.py - finds post that eval mismatch from n-ply to 0-ply
> >    referr.py - finds the error of a new breeded net against the
> >    reference database.
> >
> > Here's where I stranded... It worked it worked! I could breed
> > new nets, but none of the nets I trained was significantly
> > better than the original onem no matter how long I trained.
> >
> > 6. A programmer can now try out different things, like further
> >    splitting of neural nets, or altering the inputs, or guessing
> >    other algorithms thar might work.
> >
> >    Look at the different hand crafted inputs, can anyone be
> >    removed? Can anything be added? I believe there is code to
> >    dynamically add and remove nn inputs. If you add a input
> >    make sure you add a new 'concept' and not just something
> >    that's linearly depending on some other inputs.
> >
> > I would love to see someone taking the training further.
> >
> > -Øystein
> >
> >
> >
> > _______________________________________________
> > Bug-gnubg mailing list
> > address@hidden
> > http://lists.gnu.org/mailman/listinfo/bug-gnubg
> >
> >
> >
> >
>
>
> _______________________________________________
> Bug-gnubg mailing list
> address@hidden
> http://lists.gnu.org/mailman/listinfo/bug-gnubg
>








reply via email to

[Prev in Thread] Current Thread [Next in Thread]