Do engines learn?

Sort:
Nicholas_Shannon80

I recently bought Chessking2 with the Houdini2 engine. I played it a little set on 1900 strength in blitz to work on my openings.

I noticed that when I played the second day, it started changing the lines it played to specifically respond to the openings I had been playing.

Does anyone here know about the programming? I was wondering if it's just randomness programmed into the engine, or if it is programmed to respond to the openings I have previously used that are stored in the database. It doesn't apper to be random as the changes have been seeming to meet my opening ideas head on.... Anyone know what's up?

ponz111

I think some engines learn.  A very long time ago I was playing my favorite opening against a chess computer.  After a month or so the computer started to avoid that opening.

Now this was one of the early chess engines and I do not know the situation now.

shepi13

Houdini 2 can not learn as far as I am aware. The normal algorithm for engines nowadays is to use a minimax search with a bunch of optimization as far as I am aware, which is not a learning algorithm.

However, the programmers of the GUI (chessKing I'm guessing) could have programmed it to choose openings that have scored better against you from its book.

I do know of one interesting chess engine that had an evaluation function of neural networks. Given hundreds of thousands of games, they taught it to evaluate a position, and by combining it with the searching algorithm, I believe it can play at about a 1200 level.

In general, learning algorithms are not good for chess. It is to difficult to show the computer that a pin here means you should calculate this line, or a sacrifice should be calculated here, etc. There are too many possible positions.

schlechter55

Learning means abstarction. No engine is even close to that.

Humans calculate at every situation variants that lead to a few dozen (rarely more than hundred) different positions that stand clearly before our eyes (I am talking about GMs, not for laymen chess players; for the latter it will be a dozen, rarely 3 dozen positions). Engines calculate from every position calulate variants that include Millions of positions.

Nevertheless, some humans played better than them until recently.

This is possible due to our abstraction.

Nicholas_Shannon80

Ah the time control. I bet that's what it was. I think I was playing with the computer having slightly more time.

ViktorHNielsen

I've found a hole in my computers opening book, and it wants to go into that variation since the game was won for black. It doesn't know that I have found a novelty in move 18, which changes the evaluation from -+ to +-, and 5 moves out of book, it resigns.

I do not have count for how many times I've won using that trick, but I will not fix it.

Scottrf

Yes, in a way. If you play through a line, it will change the evaluations of the initial position. Obviously not learning, but probably what you experienced.

EscherehcsE

Some engines use book learning. I don't know about Houdini 2, but Houdini 3 does use "position learning". (It can be switched on or off.) You could always try reading the fine manual. Wink

schlechter55

nonsense. Sorry, but machines do NOT learn.

The only thing I grant is, a misuse of the word 'learning'.

The only thing that is true is what was mentioned earlier here: The engine will evaluate a position immediatley, but change this evaluation the more variants have been calculated .

Nobody would call this 'learning'.

All engines (despite the big hope 20 years ago) were unable to modelize 'artificial intelligence'. Alle of them do nothing more than 'brute force'.

Scottrf

"The only thing that is true is what was mentioned earlier here: The engine will evaluate a position immediatley, but change this evaluation the more variants have been calculated .

Nobody would call this 'learning'."

Learning=Acquiring new or modifying existing knowledge. Fits pretty well. So not really nonsense.

Nobody was saying they learn in a living sense, that goes without saying for most of us.

EscherehcsE

It may well be a misuse of the word learning, but the fact remains that some engines will either modify the opening book or build a separate database of positions based on the games played against opponents. You can call it learning or you can call it something else, but the engine authors call it book learning, and Houdart calls it position learning.

schlechter55

The problem is, if you start a new game, with another, BUT SIMILAR variant, a human being will be able to use the previous game and play better, because he can UNDERSTAND the (changed) position through abstraction and intuition. Both techniques of the human mind are not accessible to machines.

Your definition from above is correct, but the engine who changes the evaluation WITHIN one and the same game has not learned . Because he is unable to extract from the Millions of variants that he has followed, a TRUTH that he would be able to apply in a slightly changed situation.

samir_naganaworkhere

My cpu is a neural net processor.  A learning computer made of magnetic polyalloys sent back in time from a future where machines have taken humanity to war and mass genocide, when skynet became self-aware and launched a nuclear assault, the date commonly known as judgment day.  You think Skynet hasn't figured out how to beat you at chess?

Scottrf

That's comprehension/application not learning.

ponz111

"Nobody would call this "learning"  Some would, it is learning but maybe not in the human sense.  It is acquiring new or modifying existing knowledge.

Is it not?

KvothDuval

TERMINATOR!!! A COMPUTER THAT LEARNS!!!

shepi13
Scottrf wrote:

That's comprehension/application not learning.

There are lots of ways to make computers "learn", just most of them aren't very applicable to chess. For example, genetic algorithms can make a computer learn how to solve specific problems, neural nets are useful in teaching computers to do image recognition, etc.

Neural nets work by changing weights to make the computer react differently. If it updates the weights itself based on information it gains, it learns, that is the idea.

I can't believe the complexity of neural net needed for a computer like Skynet to become self-aware. It is probably more than millions of nodes, and maybe even many times greater than that. (I heard of one researcher who tried to make a neural network of 2 million nodes to simulate the intelligance of a cat, and I believe that failed).

johnyoudell

no

Nicholas_Shannon80

Ok here's a side question to my original one. Are there engines that have a (for lack of a better word)- memory? It seems when I'm looking at the live analasys of mine I'll let it run for a few minutes in a position and when I go to the next move it sometimes takes a minute for the engine to re-learn the analysis it just made in the previous move.... Even when the game continuation is the move that was recommended!

I would think that if the next move was already anyalized, the engine would already include the power that was already used in that line when the move is played...

It's a bit of a technical issue and I'm definately not a computer person.

EscherehcsE

This memory effect you mentioned is handled by the engine's transposition table (commonly called the hash table). If the engine clears the hash table between moves, then it won't retain any memory between moves. A few engines use something called persistent hash, which attempts to save some of this information from move to move.