learning

Discussion of anything and everything relating to chess playing software and machines.

Moderators: hgm, Rebel, chrisw

jim

learning

Post by jim »

Are there any chess programs that learn---that get better as they play. Is it possible to make a program that learns from its mistakes? :?:
best, Jim
gerold
Posts: 10121
Joined: Thu Mar 09, 2006 12:57 am
Location: van buren,missouri

Re: learning

Post by gerold »

jim wrote:Are there any chess programs that learn---that get better as they play. Is it possible to make a program that learns from its mistakes? :?:
best, Jim
Hiarcs for one. :)
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: learning

Post by Ovyron »

Romichess, ProDeo, Shedder 11, Spike and Frenzee come to mind.
Your beliefs create your reality, so be careful what you wish for.
Henrik Dinesen
Posts: 877
Joined: Wed Mar 08, 2006 9:52 pm
Location: Denmark

Re: learning

Post by Henrik Dinesen »

You mention Shredder 11... I think i'm not the only, that is a bit mystified about the lack of a learningfile, like the previous versions has.

Any clue about where it's hidden, in case it exists?!
Henrik
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: learning

Post by Ovyron »

Henrik Dinesen wrote:You mention Shredder 11... I think i'm not the only, that is a bit mystified about the lack of a learningfile, like the previous versions has.

Any clue about where it's hidden, in case it exists?!
There's this 56KB file called "shredder.pl2" in:

C:\Documents and Settings\user\Datos de programa\ShredderChess\Shredder 11

I wonder if this is the one?
Your beliefs create your reality, so be careful what you wish for.
User avatar
smirobth
Posts: 2307
Joined: Wed Mar 08, 2006 8:41 pm
Location: Brownsville Texas USA

Re: learning

Post by smirobth »

jim wrote:Are there any chess programs that learn---that get better as they play. Is it possible to make a program that learns from its mistakes? :?:
best, Jim
Several people have already pointed out that there are programs that "learn". However I think it is important to point out that when a program "learns" it is very different from how a human learns; programs only learn about a specific position and not general concepts. Programs just don't learn the same way people learn.

For example a program might learn to avoid a particular move that it has had bad results with in a specific opening position. Or when analyzing a position with a very deep search it may store that analysis and pull it up later when the exact same position arises. What programs never do when they "learn" is to incorporate new concepts. For example if a program doesn't know that a rook pawn and wrong colored bishop ending is frequently drawn, or that it can often be a bad idea to push passed pawns when their rook is in front of the pawn, no amount of "learning" from mistakes will teach the program these concepts. Thus while a program might "learn" not to trade down into a rook pawn and bishop ending in one specific position, and avoid doing so, in a very slightly different position the program will make that mistake.
- Robin Smith
User avatar
Mike S.
Posts: 1480
Joined: Thu Mar 09, 2006 5:33 am

Re: learning

Post by Mike S. »

The size of the file will grow if you use an engine which learns, longer.

What the engines try to do is this (simplified example!!):

1. At position X, the (presumably!) best move gets a specific evaluation, and is done (moved).

2. The opponent replies.

3. At position X+2 plies, the eval sudddenly is much worse!

4. The engine will save that position, and the now much different eval, and the search depth this is based on, to the learning file. In future games - as long as the search depth is not bigger - it will use the eval from the learning file, for this position.

(It could also be that engines learn if the eval gets much better, but that is not urgent if the engine found the best move anyway.)

I ask programmers who made learning engines, to add their comment to mine and correct it if required.
Regards, Mike
Henrik Dinesen
Posts: 877
Joined: Wed Mar 08, 2006 9:52 pm
Location: Denmark

Re: learning

Post by Henrik Dinesen »

There's this 56KB file called "shredder.pl2" in:

C:\Documents and Settings\user\Datos de programa\ShredderChess\Shredder 11

I wonder if this is the one?
After you've pointed to it, I'd say: It must be it ;)
Henrik
User avatar
Denis P. Mendoza
Posts: 415
Joined: Fri Dec 15, 2006 9:46 pm
Location: Philippines

Re: learning

Post by Denis P. Mendoza »

jim wrote:Are there any chess programs that learn---that get better as they play. Is it possible to make a program that learns from its mistakes? :?:
best, Jim
Good question. Better google-up programs like Morph and Evochess which fits this category, though not considered Chess engines. Winboard engines like Alice and BACE (Boo's Chess Engine or BACE - Bowron Abernethy Chess Engine) uses a form of temporal difference learning algorithm.

ChesterfieldCL by Matthias Lüscher is one interesting chess engine to start yoo, but not that strong. It has a separate chess learning utility. Jim Ablett has the latest on his website. As stated:
ChessterfieldCL has learned ALL its positional chess knowledge from games played against other WinBoard engines and from analysing some endgame databases
You can use ChessterfieldEN to train ChessterfieldCL with your own chess games
Romichess, Naum, Aristarch, Crafty, Crafty Cito, Obender, Greko, Spike, The Baron and many others have this learning option too (though some varies on their approach). Of all these, only Romichess (AFAIK) is the only active engine that justifies an advantage for chess learning.

Maybe others are not that open as Romichess. But I still believe that this development could be an advantage in some ways. We just have to run more tests, modify code, build a compatible book for learning, till the engine makes use of this in his favor. Who knows, maybe some engines was packaged using "Molebox" to hide its learn files and other accessories unnoticed.

Ever heard of LearningToga :wink: The possibilities are endless!
shiv
Posts: 351
Joined: Sat Apr 01, 2006 2:03 am

Re: learning

Post by shiv »

Glad that morph was mentioned. It IS a chess playing engine. Though not a very strong one. I worked a little on the morph source code in the past.

It is based on neural networks. Each square was seen as a node of the network. Of course, there were other elements to it.

One of the problems was that the professor in charge did not want to add piece material values because he felt this was cheating. He instead wanted these to be derived.

In practice this meant that the program had a rating of 1400-1600 instead of 2000-2200+.

Sadly, not much work was done on improving the program as the professor did not have funding for work on this program! It still plays on ICC. I will see if a version of the engine can be available for public download. It does perform learning (not by position, but also its evaluation).

In terms of other programs which adaptively tune their evaluation function, KnightCap comes to mind.