Permanent Hash/Position Learning

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

Moderators: hgm, Rebel, chrisw

corres
Posts: 3657
Joined: Wed Nov 18, 2015 11:41 am
Location: hungary

Re: Permanent Hash/Position Learning

Post by corres »

[quote="carldaman"]

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.

[/quote]

Stockfish is also an open source engine and Michael Sherwin is a talented programmer too....
User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: Permanent Hash/Position Learning

Post by Rebel »

Rodolfo Leoni wrote:
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:
Thanks for the kind words, I love strong opening books as a general enrichment for the engine playing against any opponent, I don't like an opening book that prepares against certain specific opponents which I consider as a form of cheating, hiding the true strength of the engine.

Having said that, it could be fun to create such books and compete in a new type of competition where everything is allowed but I am afraid the interest for that will be low for the reason as nentioned above.
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:
Rodolfo Leoni wrote:
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:
Thanks for the kind words, I love strong opening books as a general enrichment for the engine playing against any opponent, I don't like an opening book that prepares against certain specific opponents which I consider as a form of cheating, hiding the true strength of the engine.

Having said that, it could be fun to create such books and compete in a new type of competition where everything is allowed but I am afraid the interest for that will be low for the reason as nentioned above.
It seems interest is high... and it wouldn't be a book for only one engine specifically tuned against another. With a GUI all UCI engines could use the same learn/book file and that would allow to build it strong and varied. We can also take into an account the fact several engines could use personalities and ProDeo is one of them. Am I right?

About words, I really believe at them. :D
F.S.I. Chess Teacher
User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: Permanent Hash/Position Learning

Post by Rebel »

Rodolfo Leoni wrote:
Rebel wrote:
Rodolfo Leoni wrote:
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:
Thanks for the kind words, I love strong opening books as a general enrichment for the engine playing against any opponent, I don't like an opening book that prepares against certain specific opponents which I consider as a form of cheating, hiding the true strength of the engine.

Having said that, it could be fun to create such books and compete in a new type of competition where everything is allowed but I am afraid the interest for that will be low for the reason as nentioned above.
It seems interest is high... and it wouldn't be a book for only one engine specifically tuned against another. With a GUI all UCI engines could use the same learn/book file and that would allow to build it strong and varied. We can also take into an account the fact several engines could use personalities and ProDeo is one of them. Am I right?

About words, I really believe at them. :D
I have done several learning tries at the end of the 90's, book learning, position learning, even engine learning loading a different personality in case a certain opening had a very bad score. It all seem to work.

Recently (see here) I created an opening book from CCRL and CEGT games which gave good ELO. Isn't that not the more easier approach?
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: Permanent Hash/Position Learning

Post by Ovyron »

Rebel wrote:CCRL and CEGT won't allow such engines
But, why? Having engines of fixed elo and figuring it out makes no sense, when human rating lists have humans with fluctuating elo that learn, forget, get drunk and elo lists still work and are used for them, why not engines?
Rebel wrote:SSDF does
The last Stockfish version they have tested is Stockfish 6.

Houdini is an engine stronger than the latest Stockfish release, and it's missing from the list.

They have Hiarcs as the strongest 8th engine, I can name all these engines that are stronger than Hiarcs:

Fizbo
Andscacs
Booot
Chiron
Nirvana
Gull
Equinox
Critter
Hannibal
Texel

I'm afraid if Alpha Zero was released today and anybody at home could train it to be arbitrarily strong, we'd see it top the SSDF by 2023 :shock:, by then maybe AZ is top 8 engine and the whole thing loses relevance...

We need the top rating lists to change their outdated rules that would never include the potentially strongest chess entities that learn, or a new rating list like the SSDF, but that wouldn't miss Houdini 7, if it was released and topped the rest of the rating lists, but the SSDF wouldn't test it for years :shock:

It's not useful that the SSDF allows some engines to participate in theory, but never gets to test them...
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: Permanent Hash/Position Learning

Post by Ovyron »

Rebel wrote: I love strong opening books as a general enrichment for the engine playing against any opponent, I don't like an opening book that prepares against certain specific opponents which I consider as a form of cheating, hiding the true strength of the engine.
I think this is using different concepts for humans than for engines.

Suppose I played Magnus Carlsen my whole life, and I am able to defeat them in a 10 game match, from the way he plays alone.

Would you force me to play him without knowing it's him? So that I'm unable to play my tricks that beat him, because I think he's someone else?

If ProDeo can get a 51% performance against Komodo on the CCRL from the opening positions that they test, even though it would perform the same against the rest, I say, let them.

I'm now going to claim that all engines are crippled if they don't have learning and learning would allow them to play 200 elo stronger against the opposition that they face. If Stockfish, Komodo, and Houdini had this learning implemented, we could have engines going over 3600 elo when compared to the ones topping the ratings now.

The point is not that these engines with inflated rating would be cheating because against a new opponent they wouldn't play as strong, the point is that in fact, they can play with this performance against this new opponent once learnig how to defeat it.

The GUI Rodolfo is proposing means that we don't need anymore the authors of Komodo, Houdini, or Stockfish to implement learning into their engines, because the GUI would do it for them, so it's like a shortcut that when taken, instead of having to wait for each and every engine developer to implement learning into their engines, we have a GUI that implements learning for all of them in one shot.

But, anyway, about now I'd just be happy if the next version of ProDeo had Romi Learning, the concept is just so that ProDeo has an internal book that it updates itself, and plays instantly moves that it has won with in the past, and plays instantly moves that have defeated it in the past, and adds positions from the book into its hash to benefit once out of book. A remaining problem with the current approach is that the UCI protocol doesn't have a way for the engine to know a game is over and its result, and most GUIs never tell the engine what happened, so ProDeo would need a way to detect when it has played a game, and the outcome, on its own, but after a few thousands training games it should perform hundreds of elo stronger against any opponent (that... it has trained against.)

You improved 78 ELO with a custom book, how would you keep increasing this ELO by not modifying the engine? Romi learning and training is an idea.
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: If ProDeo can get a 51% performance against Komodo on the CCRL from the opening positions that they test, even though it would perform the same against the rest, I say, let them.
Not exactly, IMO. Every opponent has a different style, different books, and all of them behave different when changing TCs. So in all of the cases above the new opponent/book/setting would go out of the learning book file soon. The secret would be to play as many games as possible against as many opponents as possible.
Ovyron wrote: The GUI Rodolfo is proposing means that we don't need anymore the authors of Komodo, Houdini, or Stockfish to implement learning into their engines, because the GUI would do it for them, so it's like a shortcut that when taken, instead of having to wait for each and every engine developer to implement learning into their engines, we have a GUI that implements learning for all of them in one shot.
Absolutely correct! :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 »

corres 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.
Stockfish is also an open source engine and Michael Sherwin is a talented programmer too....
You seem to have (conveniently?) left out his age and health condition. Perhaps you were not aware of it, otherwise that sounds like a very insensitive comment.
User avatar
Ovyron
Posts: 4556
Joined: Tue Jul 03, 2007 4:30 am

Re: Permanent Hash/Position Learning

Post by Ovyron »

Rodolfo Leoni wrote:Not exactly, IMO. Every opponent has a different style, different books, and all of them behave different when changing TCs. So in all of the cases above the new opponent/book/setting would go out of the learning book file soon. The secret would be to play as many games as possible against as many opponents as possible.
But then the effect would be blurred out.

The secret of Romi learning is focusing, and it requires extensive training.

Against strong engines, the engine will lose no matter what, the only thing we can expect is that thanks to learning, it doesn't lose as bad.

So, it would be more productive to learn to beat some strong opponent, and hope that the advantageous positions it gets against this opponent is going to help against opposition of your same level (the concept here is that if ProDeo learns to beat Komodo, it's going to play the moves that defeated Komodo and Komodo's moves themselves against this strong opposition.)

If you do it backwards, and start learning to beat several engines that play moves weaker than Komodo, it's those moves that will be learned, and that will be added and played by ProDeo. But remember those are the same poor moves that have these engines hundreds of elo weaker than Komodo, you'd rather avoid including them in the learning because winning with poor moves isn't going to work against the best.

ProDeo already has a fully developed and mature book learning, though, the main problem is it's unable to add moves to its own book automatically.

But Romi learning is a concept so simple that we can emulate it manually, just play ProDeo's book learning against Romi's learning, but when Romi is about to make a move, you bait and switch to another ProDeo without book learning. It's expected that the second ProDeo will eventually match and surpass the first ProDeo, but if it's going to take thousands of games, and the first ProDeo can surpass Romi learning again by just using a database of stronger opponents, perhaps Rebel is right in that the easier approach is just learning from what other programs are already playing, instead of playing the games yourself...
User avatar
Rebel
Posts: 6991
Joined: Thu Aug 18, 2011 12:04 pm

Re: Permanent Hash/Position Learning

Post by Rebel »

Ovyron wrote:
Rebel wrote:CCRL and CEGT won't allow such engines
But, why? Having engines of fixed elo and figuring it out makes no sense, when human rating lists have humans with fluctuating elo that learn, forget, get drunk and elo lists still work and are used for them, why not engines?
I wasn't around when CCRL and CEGT were founded. I assume they want to measure raw engine strength only. With Giraffe they both allowed a (one time) exception. When the first ZERO versions will see the daylight they must rethink their policy.