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
learning
Moderators: hgm, Rebel, chrisw
-
- Posts: 10121
- Joined: Thu Mar 09, 2006 12:57 am
- Location: van buren,missouri
Re: learning
Hiarcs for one.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
-
- Posts: 4556
- Joined: Tue Jul 03, 2007 4:30 am
Re: learning
Romichess, ProDeo, Shedder 11, Spike and Frenzee come to mind.
Your beliefs create your reality, so be careful what you wish for.
-
- Posts: 877
- Joined: Wed Mar 08, 2006 9:52 pm
- Location: Denmark
Re: learning
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?!
Any clue about where it's hidden, in case it exists?!
Henrik
-
- Posts: 4556
- Joined: Tue Jul 03, 2007 4:30 am
Re: learning
There's this 56KB file called "shredder.pl2" in: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?!
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.
-
- Posts: 2307
- Joined: Wed Mar 08, 2006 8:41 pm
- Location: Brownsville Texas USA
Re: learning
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.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
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
-
- Posts: 1480
- Joined: Thu Mar 09, 2006 5:33 am
Re: learning
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.
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
-
- Posts: 877
- Joined: Wed Mar 08, 2006 9:52 pm
- Location: Denmark
Re: learning
After you've pointed to it, I'd say: It must be itThere'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?
Henrik
-
- Posts: 415
- Joined: Fri Dec 15, 2006 9:46 pm
- Location: Philippines
Re: learning
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.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
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:
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.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
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 The possibilities are endless!
-
- Posts: 351
- Joined: Sat Apr 01, 2006 2:03 am
Re: learning
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.
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.