Hello,
Some engines have Books, Positions and perhaps even engine learning functions ?
Some people just don't care about learning, but others love to train their engines.
What do Programmers think about learning ? I guess their are many ways to implement it.
Some people like to find Eval or Search parameters, what about if the engines was trying to find by itself the best parameters ?
Gab
Learning
Moderators: hgm, Rebel, chrisw
-
- Posts: 1334
- Joined: Sun Jul 17, 2011 11:14 am
Re: Learning
That was the technique that Deep Blue used - and look what happened to it!
I think that that would be possible - but probably not worth the effort.
Matthew:out
I think that that would be possible - but probably not worth the effort.
Matthew:out
Some believe in the almighty dollar.
I believe in the almighty printf statement.
I believe in the almighty printf statement.
-
- Posts: 1033
- Joined: Sat Feb 04, 2012 10:03 pm
Re: Learning
Your answer is about only my last questions ?ZirconiumX wrote:That was the technique that Deep Blue used - and look what happened to it!
I think that that would be possible - but probably not worth the effort.
Matthew:out
Gab
-
- Posts: 4367
- Joined: Fri Mar 10, 2006 5:23 am
- Location: http://www.arasanchess.org
Re: Learning
Following is a description of Arasan's learning support (from the programr.txt file I distribute with the source):
Arasan starts its book learning from a pretty big pre-built opening book, but some engines have started from an empty book and built up their opening repertoire entirely from learning from their opponents. Andrew Tridgell's KnightCap program did this. I think Rookie by Marcel van Kervinck does this too. In addition Marcel told me Rookie can select opening lines based on what has worked well in the past against a specific opponent, which is a form of learning I don't have so far.Arasan has two forms of book learning.
One form is called "score learning". If enabled, this feature will
look at the score several moves after Arasan has gone "out of book".
If it is significantly high and rising, or low and falling, then
Arasan will update the book with a learning value (it also backs up to
previous book nodes that lead to this position and updates those as
well. How much adjustment is done depends on the number of book
alternatives available).
With score learning, Arasan will tend to play moves that lead to a
position either more often (if the score is high) or less often (if
the score is low). This facility is somewhat crude at present but it
will at least steer the program away from obviously "busted" book
lines.
Crafty uses a form of learning similar to Arasan's score learning.
Arasan also has "result learning". When it wins or loses a game,
or manages to draw against a higher-rated opponent, it will update
a counter in the book file. Then it looks to see if there are
alternative book moves at the same position. If not, it backs up
one move and also updates the counter at that position, and so
on.
Book moves that repeatedly lead to losses will gradually be played
less often, while those that win will be played more often.
Arasan also has positional learning (a.k.a "permanent brain"). It is
basically a persisent hashtable. If a search returns an unexpectedly
high or low score, the position and its score are stored in a text file
called arasan.lrn, which is located in the same directory as the
Arasan executable. When the next game is started, stored positions
from this file are read into memory and stored in the hash table,
enabling the program to detect danger or opportunity sooner
than it did previously.
Arasan learning does not work in UCI mode at present, for several
reasons. For example, UCI does not send the program the game result,
so result learning is made difficult.
-
- Posts: 1033
- Joined: Sat Feb 04, 2012 10:03 pm
Re: Learning
Thanks Jon ! Sounds great !
Gab
Gab