Indeed, I don't want to teach it rules at all. All it should need is a
rich history of game board states.

I've started a little project, and I'm up to the point of creating a
chess board encoder:

https://github.com/nupic-community/nupic.chess

Anyone want to try building an encoder based on chess FEN board states?

---------
Matt Taylor
OS Community Flag-Bearer
Numenta


On Tue, Apr 14, 2015 at 9:04 AM, David Wood <[email protected]> wrote:
> Hi all,
>
> It seems to me that people learn chess by watching, studying or playing 
> games. Sometimes they learn the rules experientially like that as well. So, 
> perhaps a way to teach NuPIC to learn chess is by simply feeding it the 
> patterns of real games so it can learn those patterns. It might not need to 
> have the actual rules encoded at all…
>
> Regards,
> Dave
> --
> http://about.me/david_wood
>
>
>
>> On Apr 14, 2015, at 09:56, Ralf Seliger <[email protected]> wrote:
>>
>> @Matt:
>> Well, that's what I call a coincidence! Nice piece of code, btw. You (or 
>> your son) missed en passant and castling, however ;-)
>>
>> @Matt, @David:
>> SDR encoding of chess positions: I guess the real problem is capturing the 
>> semantics. Imagine for instance all positions allowing "mate in one". Those 
>> position will look wildly different from each other on the board, but would 
>> have to have a similar SDR, wouldn't they?
>>
>>
>> Am 13.04.2015 um 20:52 schrieb David Ray:
>>> I have an idea for the encoding!
>>>
>>> How about this:
>>> 1. There are 32 different pieces, so you need 5 bits for a piece. (W)
>>> 2. There are 64 squares on a chess board, so you need 64 * 5 bits to be 
>>> able to place any piece on any square.
>>> 3. Amend the above (#1) to have 6 bits - you need to encode a "empty" piece 
>>> - making #2 64 * 6 bits.
>>>
>>> So now you can express the entire chess board with all pieces having a 
>>> square plus missing piece squares (empty squares). You should probably have 
>>> topography using 64 * 6 bits so you might have to fudge to get an even root 
>>> by upping the number of bits encoding a piece?
>>>
>>> Does that make sense?
>>>
>>> Another option is to use  a MultiEncoder with a GeoSpatial and scalar 
>>> encoder inside. Make a dimple coordinate system for the 64 squares of the 
>>> chess board.
>>>
>>> David
>>>
>>> Sent from my iPhone
>>>
>>>> On Apr 13, 2015, at 1:14 PM, Matthew Taylor <[email protected]> wrote:
>>>>
>>>>> On Mon, Apr 13, 2015 at 11:07 AM, Ralf Seliger <[email protected]> wrote:
>>>>> For an example have a look at https://web.chessclub.com which is a web
>>>>> interface to the Internet Chess Club servers written in JavaScript/jQuery
>>>>> (client) and node.js (server).
>>>> Wow, that looks familiar... I created this (client-only) chessboard
>>>> with my son while trying to teach him some programming concepts:
>>>>
>>>> http://rhyolight.github.io/chesster/
>>>> https://github.com/rhyolight/chesster
>>>>
>>>> On another note, I'm interesting in figuring out how to encode the
>>>> state of a chessboard into an SDR so I can train a model on a database
>>>> of history chess games.
>>>>
>>>> ---------
>>>> Matt Taylor
>>>> OS Community Flag-Bearer
>>>> Numenta
>>>>
>>>
>>
>>
>
>

Reply via email to