Permanent Hash/Position Learning

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

Moderators: hgm, Rebel, chrisw

Rodolfo Leoni
Posts: 545
Joined: Tue Jun 06, 2017 4:49 pm
Location: Italy

Re: Permanent Hash/Position Learning

Post by Rodolfo Leoni »

Ovyron wrote:Rodolfo, for elo points I think RomiChess's method is the best, as it eventually can learn how to beat anyone from a given position, doing it from starting position would just take a while...

The problem is Romi reaching won positions and losing them, then avoiding them because it lost...

For this conundrum I propose the following solutions:

1. Implement Romi Learning into Stockfish! It could potentially be 200 elo stronger than any opponent after a few thousand training games. The main elo would come from being ahead of the clock as Stockfish would learn what the opponent plays and just move instantly, deeper and deeper, what won in the past. This is also Michael's dream, given Romi is open source, the only reason this hasn't happened is lack of interest.

2. Have an adapter that uses Romi as book, then switches to Stockfish to play the game, then sends the pgn to Romi with game result so it learns. The adapter could be simple, and could be used to make any engine a book for another engine: just play engine A's moves if they're played in less than a second (book assumed), otherwise (A took longer than 1 second) fire up engine B (assumes out of book) for the rest of the game.
Absolutely agreeable. But a dedicated GUI can handle it easier without even modifying SF. I would suffice to give the Romi learning algorythm to the GUI for having SF playing with a learning book (and saving pgn games as well). Then, Romi can just import the games into her learning file.

(I say "her" because Romi is a woman!)

:D
F.S.I. Chess Teacher
carldaman
Posts: 2283
Joined: Sat Jun 02, 2012 2:13 am

Re: Permanent Hash/Position Learning

Post by carldaman »

Ovyron wrote:Rodolfo, for elo points I think RomiChess's method is the best, as it eventually can learn how to beat anyone from a given position, doing it from starting position would just take a while...

The problem is Romi reaching won positions and losing them, then avoiding them because it lost...

For this conundrum I propose the following solutions:

1. Implement Romi Learning into Stockfish! It could potentially be 200 elo stronger than any opponent after a few thousand training games. The main elo would come from being ahead of the clock as Stockfish would learn what the opponent plays and just move instantly, deeper and deeper, what won in the past. This is also Michael's dream, given Romi is open source, the only reason this hasn't happened is lack of interest.

2. Have an adapter that uses Romi as book, then switches to Stockfish to play the game, then sends the pgn to Romi with game result so it learns. The adapter could be simple, and could be used to make any engine a book for another engine: just play engine A's moves if they're played in less than a second (book assumed), otherwise (A took longer than 1 second) fire up engine B (assumes out of book) for the rest of the game.
There's a lack of interest in making SF 200 Elo stronger. Try to digest that for a while. It really 'speaks volumes' about the current state of computer chess.
Rodolfo Leoni
Posts: 545
Joined: Tue Jun 06, 2017 4:49 pm
Location: Italy

Re: Permanent Hash/Position Learning

Post by Rodolfo Leoni »

carldaman wrote: There's a lack of interest in making SF 200 Elo stronger. Try to digest that for a while. It really 'speaks volumes' about the current state of computer chess.
I suspect many SF developers feel a bit... "stalemated" after the AlphaZ event.

But think at it: a GUI could perform that task in the same way, with the advantage you could build learning books with SF, Komodo, Houdini, and whatever engine you want. But the adapted code for the GUI should contain all the useful infos of Romi learn file, and the code should contain the decreasing bonus/penalty formula (huge bonus/penalty at end position, light one at startposition). So I guess the only one who could build it is Mike.
F.S.I. Chess Teacher
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: Permanent Hash/Position Learning

Post by Ovyron »

Yeah! This would also work. You could also implement opponent modeling on the GUI side, that is, openings that lose to Komodo but win against Houdini are played accordingly, which should help with the elo boost.
Rodolfo Leoni
Posts: 545
Joined: Tue Jun 06, 2017 4:49 pm
Location: Italy

Re: Permanent Hash/Position Learning

Post by Rodolfo Leoni »

Ovyron wrote:Yeah! This would also work. You could also implement opponent modeling on the GUI side, that is, openings that lose to Komodo but win against Houdini are played accordingly, which should help with the elo boost.
And now the question is, Does Mike feel healthy and strong enough to do it? I don't wish to see my old good friend doing such an effort while feeling bad. I could try to do something similar, but only with VB and I lack the time right now. In any case, it could be useless without the right code and formula. Mike's supervision should be a must.

Could someone else start with this project? :wink:

Another point is that Romi imports subtrees into hashes and this could be impossible with official SF... but it's possible with Daniel's SF savehash version and with some other derivetes as SugaR. They have the "Import EPD" feature and it could be a substitute for hashing subtrees.
F.S.I. Chess Teacher
carldaman
Posts: 2283
Joined: Sat Jun 02, 2012 2:13 am

Re: Permanent Hash/Position Learning

Post by carldaman »

Rodolfo Leoni wrote:
carldaman wrote: There's a lack of interest in making SF 200 Elo stronger. Try to digest that for a while. It really 'speaks volumes' about the current state of computer chess.
I suspect many SF developers feel a bit... "stalemated" after the AlphaZ event.

But think at it: a GUI could perform that task in the same way, with the advantage you could build learning books with SF, Komodo, Houdini, and whatever engine you want. But the adapted code for the GUI should contain all the useful infos of Romi learn file, and the code should contain the decreasing bonus/penalty formula (huge bonus/penalty at end position, light one at startposition). So I guess the only one who could build it is Mike.
Isn't RomiChess open source? I can't see why any talented younger programmer, with sufficient interest in accomplishing something, would not want to give this a shot.
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: Permanent Hash/Position Learning

Post by Ovyron »

carldaman wrote:Isn't RomiChess open source? I can't see why any talented younger programmer, with sufficient interest in accomplishing something, would not want to give this a shot.
The story has been, that talented younger programmers, with sufficient interest in accomplishing something, give a shot at programming their own chess engines from scratch.

And then, what happens? Well, they're welcomed by the community with open arms. However, what they find is the community is full of people eager to test their engine against other engines of similar strength. Their new program is assigned a number called "elo rating", and it increases as they perform better.

Some people even have engines separated in "divisions", and if your program gets strong enough, it'll advance to the next division, where it will do exactly what has done before, but with programs of a higher elo number.

This is called "progress", the community will go on and congratulate the programmer for getting a stronger program, and they will have successfully converted the young person into yet another elo chaser...

Welcome to the hamster wheel.

So, instead of adding features to the program, and marking something truly new and innovative, all programming efforts will be spent chasing Houdini, Stockfish and Komodo, because topping the rating lists becomes the ultimate goal, for some reason.

I would really welcome a programmer to prove me wrong on this, and implement something actually useful. Alas, sometimes I think engine testers are doing us a disfavor, with their endless tournaments and matches of new engines and their infectious happiness whenever a program increases in strength, they create the persistent illusion that this is what Computer Chess is about.
BrendanJNorman
Posts: 2526
Joined: Mon Feb 08, 2016 12:43 am
Full name: Brendan J Norman

Re: Permanent Hash/Position Learning

Post by BrendanJNorman »

Ovyron wrote:
carldaman wrote:Isn't RomiChess open source? I can't see why any talented younger programmer, with sufficient interest in accomplishing something, would not want to give this a shot.
The story has been, that talented younger programmers, with sufficient interest in accomplishing something, give a shot at programming their own chess engines from scratch.

And then, what happens? Well, they're welcomed by the community with open arms. However, what they find is the community is full of people eager to test their engine against other engines of similar strength. Their new program is assigned a number called "elo rating", and it increases as they perform better.

Some people even have engines separated in "divisions", and if your program gets strong enough, it'll advance to the next division, where it will do exactly what has done before, but with programs of a higher elo number.

This is called "progress", the community will go on and congratulate the programmer for getting a stronger program, and they will have successfully converted the young person into yet another elo chaser...

Welcome to the hamster wheel.

So, instead of adding features to the program, and marking something truly new and innovative, all programming efforts will be spent chasing Houdini, Stockfish and Komodo, because topping the rating lists becomes the ultimate goal, for some reason.

I would really welcome a programmer to prove me wrong on this, and implement something actually useful. Alas, sometimes I think engine testers are doing us a disfavor, with their endless tournaments and matches of new engines and their infectious happiness whenever a program increases in strength, they create the persistent illusion that this is what Computer Chess is about.
+1
User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: Permanent Hash/Position Learning

Post by Rebel »

Ovyron wrote:1. Implement Romi Learning into Stockfish! It could potentially be 200 elo stronger than any opponent after a few thousand training games. The main elo would come from being ahead of the clock as Stockfish would learn what the opponent plays and just move instantly, deeper and deeper, what won in the past. This is also Michael's dream, given Romi is open source, the only reason this hasn't happened is lack of interest.
CCRL and CEGT won't allow such engines, SSDF does.
Rodolfo Leoni
Posts: 545
Joined: Tue Jun 06, 2017 4:49 pm
Location: Italy

Re: Permanent Hash/Position Learning

Post by Rodolfo Leoni »

Rebel wrote:
Ovyron wrote:1. Implement Romi Learning into Stockfish! It could potentially be 200 elo stronger than any opponent after a few thousand training games. The main elo would come from being ahead of the clock as Stockfish would learn what the opponent plays and just move instantly, deeper and deeper, what won in the past. This is also Michael's dream, given Romi is open source, the only reason this hasn't happened is lack of interest.
CCRL and CEGT won't allow such engines, SSDF does.
Hey Ed,

Carl said a young, talented chess programmer was needed. You have the heart of a boy and your talent can't be discussed... So you could be that one! :D

The project is to build a GUI that handles Romi learning file as a book. Romi is open source so the exact format and formulas for learning can be extrapolated. As a GUI platform Pychess could be used, as it's open source too.

The goal is to have the possibility to run any UCI engine both in autoplay and in match mode for building a learn file. Not for money, but for a lot of glory. Is it a deal? :wink:
F.S.I. Chess Teacher