learning

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

Moderators: bob, hgm, Harvey Williamson

Forum rules
This textbox is used to restore diagrams posted with the [d] tag before the upgrade.
jim

learning

Post by jim » Sun Feb 03, 2008 2:21 am

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: Wed Mar 08, 2006 11:57 pm
Location: van buren,missouri

Re: learning

Post by gerold » Sun Feb 03, 2008 2:41 am

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: 2701
Joined: Tue Jul 03, 2007 2:30 am

Re: learning

Post by Ovyron » Sun Feb 03, 2008 7:34 am

Romichess, ProDeo, Shedder 11, Spike and Frenzee come to mind.
Great spirits have always encountered violent opposition from mediocre minds.

Henrik Dinesen
Posts: 876
Joined: Wed Mar 08, 2006 8:52 pm
Location: Denmark

Re: learning

Post by Henrik Dinesen » Sun Feb 03, 2008 10:05 am

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: 2701
Joined: Tue Jul 03, 2007 2:30 am

Re: learning

Post by Ovyron » Sun Feb 03, 2008 10:17 am

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?
Great spirits have always encountered violent opposition from mediocre minds.

User avatar
smirobth
Posts: 2307
Joined: Wed Mar 08, 2006 7:41 pm
Location: Brownsville Texas USA

Re: learning

Post by smirobth » Sun Feb 03, 2008 10:25 am

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 4:33 am

Re: learning

Post by Mike S. » Sun Feb 03, 2008 11:55 am

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: 876
Joined: Wed Mar 08, 2006 8:52 pm
Location: Denmark

Re: learning

Post by Henrik Dinesen » Sun Feb 03, 2008 12:10 pm

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: 410
Joined: Fri Dec 15, 2006 8:46 pm
Location: Philippines
Contact:

Re: learning

Post by Denis P. Mendoza » Sun Feb 03, 2008 6:57 pm

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 12:03 am

Re: learning

Post by shiv » Sun Feb 03, 2008 10:00 pm

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.

Post Reply