Chandan, exactly.

Regards,
Dave
--
http://about.me/david_wood



> On Apr 15, 2015, at 12:26, Chandan Maruthi <[email protected]> wrote:
> 
> :-)
> @David
> If you have read the book "Blink" by Malcom Gladwell. It talks about snap 
> judgement. While snap judgements seem random. They are actually a result of 
> scoring across several possible out comes. So, There may be just "one" step 
> selected. But it considers several possibilities before comming up with the 
> one which is not a very apparent. 
> 
> chandan
> 
> On Wed, Apr 15, 2015 at 9:19 AM, David Wood <[email protected] 
> <mailto:[email protected]>> wrote:
> Yes, I think Matt is correct about this. I recall a chess master from the 
> 1970s or 1980s being asked how many moves he thought ahead. His answer was, 
> “One. But it is always the right one.”
> 
> Regards,
> Dave
> --
> http://about.me/david_wood <http://about.me/david_wood>
> 
> 
> 
> > On Apr 15, 2015, at 12:14, Matthew Taylor <[email protected] 
> > <mailto:[email protected]>> wrote:
> >
> > To be very clear about this, I have no idea whether NuPIC will be
> > decent at this. This task of chessboard prediction is not really
> > well-suited for NuPIC, because it is not a temporal problem. It seems
> > like one, but think about it. A temporal problem requires that you
> > have a historical memory of the past in order to make good decisions.
> > For a chess game, you don't need to know the past to make a decision.
> > You only need to know the current state of the board.
> >
> > Basically, we'll just be training NuPIC on a sequence of past board
> > states and asking it to predict the next state. I doubt strongly that
> > it will come up with a state that represents a legal move. But, I'm
> > still really interested in pursuing this problem because I'm not
> > really sure what will happen. And because I've never built an encoder
> > before.
> >
> > I also think it would be cool to visualize the board states that are
> > being encoded and the vectors the encoder is producing.
> >
> > ---------
> > Matt Taylor
> > OS Community Flag-Bearer
> > Numenta
> >
> >
> > On Tue, Apr 14, 2015 at 1:13 PM, Matthew Taylor <[email protected] 
> > <mailto:[email protected]>> wrote:
> >> Gotcha. Sounds good to me.
> >> ---------
> >> Matt Taylor
> >> OS Community Flag-Bearer
> >> Numenta
> >>
> >>
> >> On Tue, Apr 14, 2015 at 1:07 PM, cogmission (David Ray)
> >> <[email protected] <mailto:[email protected]>> wrote:
> >>> Yes, so was I. I assumed my comments above would be "tacked on" to the
> >>> technique outlined in my previous post where I designated the 64 squares 
> >>> of
> >>> the board as part of the encoding? Then you would simply have one encoding
> >>> for an "empty" piece, thus using 6 bits times 64 squares? The discussion
> >>> above was just comparing/contrasting the separate encoding of types of
> >>> pieces and colors of pieces against encoding each actual piece (thus using
> >>> less bits also). It seems the result would be the same without losing the
> >>> transition history of each piece? But hey, its just a thought...
> >>>
> >>> On Tue, Apr 14, 2015 at 2:59 PM, Matthew Taylor <[email protected] 
> >>> <mailto:[email protected]>> wrote:
> >>>>
> >>>> I'm not thinking of a piece-centric encoding scheme, more of a board
> >>>> cell-centric scheme. A cell might have a piece occupying it, and the
> >>>> representation the encoder creates will have sections for each cell,
> >>>> not each piece.
> >>>> ---------
> >>>> Matt Taylor
> >>>> OS Community Flag-Bearer
> >>>> Numenta
> >>>>
> >>>>
> >>>> On Tue, Apr 14, 2015 at 11:50 AM, cogmission (David Ray)
> >>>> <[email protected] <mailto:[email protected]>> wrote:
> >>>>> Interesting, so I wasn't that far off?
> >>>>>
> >>>>> If you assign bits to each piece (irrespective of color and type) then
> >>>>> you
> >>>>> can get the "history" of movement of each piece no?
> >>>>>
> >>>>> In other words if each piece has its own encoding (the color and type
> >>>>> become
> >>>>> implicit) and you know that from one state to another pieces moved but
> >>>>> you
> >>>>> **keep** the information about how the pieces moved rather than simply
> >>>>> that
> >>>>> there's a color and type of piece here, and now there is one (never mind
> >>>>> which one) that is here. The latter loses transition information,
> >>>>> doesn't
> >>>>> it?
> >>>>>
> >>>>>
> >>>>>
> >>>>> On Tue, Apr 14, 2015 at 12:07 PM, Matthew Taylor <[email protected] 
> >>>>> <mailto:[email protected]>>
> >>>>> wrote:
> >>>>>>
> >>>>>> Also, this may be relevant when encoding a board state:
> >>>>>> http://erikbern.com/?p=841 <http://erikbern.com/?p=841>
> >>>>>>
> >>>>>> I'd like our first try to be just encoding the board state, with no
> >>>>>> information about attacking, defending, moves till check, etc. It
> >>>>>> would be great if all these attributes of the board can be inferred,
> >>>>>> so let's start as simple as possible.
> >>>>>>
> >>>>>> We brainstormed at lunch a bit about this, and I think we could have
> >>>>>> 64*7 bits in the encoding.
> >>>>>>
> >>>>>> 64 cells, and each cell has 7 bits.
> >>>>>> 1. color of piece
> >>>>>> 2-7. one bit for each piece type (pawn, rook, knight, bishop, queen,
> >>>>>> king)
> >>>>>>
> >>>>>> I believe we'll need to mix up the cells so no false associations are
> >>>>>> made like we do in the Coordinate encoder. Otherwise there will be a
> >>>>>> local semantic association between H8 and A7 (for example) that
> >>>>>> doesn't actually exist. Using a random order might be a solution (I
> >>>>>> haven't asked Chetan about this yet, but he'd know better).
> >>>>>>
> >>>>>> ---------
> >>>>>> Matt Taylor
> >>>>>> OS Community Flag-Bearer
> >>>>>> Numenta
> >>>>>>
> >>>>>>
> >>>>>> On Tue, Apr 14, 2015 at 9:21 AM, Matthew Taylor <[email protected] 
> >>>>>> <mailto:[email protected]>>
> >>>>>> wrote:
> >>>>>>> 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 
> >>>>>>> <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] 
> >>>>>>> <mailto:[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 <http://about.me/david_wood>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>>>> On Apr 14, 2015, at 09:56, Ralf Seliger <[email protected] 
> >>>>>>>>> <mailto:[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] 
> >>>>>>>>>>> <mailto:[email protected]>>
> >>>>>>>>>>> wrote:
> >>>>>>>>>>>
> >>>>>>>>>>>> On Mon, Apr 13, 2015 at 11:07 AM, Ralf Seliger <[email protected] 
> >>>>>>>>>>>> <mailto:[email protected]>>
> >>>>>>>>>>>> wrote:
> >>>>>>>>>>>> For an example have a look at https://web.chessclub.com 
> >>>>>>>>>>>> <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/ 
> >>>>>>>>>>> <http://rhyolight.github.io/chesster/>
> >>>>>>>>>>> https://github.com/rhyolight/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
> >>>>>>>>>>>
> >>>>>>>>>>
> >>>>>>>>>
> >>>>>>>>>
> >>>>>>>>
> >>>>>>>>
> >>>>>>
> >>>>>
> >>>>>
> >>>>>
> >>>>> --
> >>>>> With kind regards,
> >>>>>
> >>>>> David Ray
> >>>>> Java Solutions Architect
> >>>>>
> >>>>> cortical.io <http://cortical.io/>
> >>>>> Sponsor of:  HTM.java
> >>>>>
> >>>>> [email protected] <mailto:[email protected]>
> >>>>> http://cortical.io <http://cortical.io/>
> >>>>
> >>>
> >>>
> >>>
> >>> --
> >>> With kind regards,
> >>>
> >>> David Ray
> >>> Java Solutions Architect
> >>>
> >>> cortical.io <http://cortical.io/>
> >>> Sponsor of:  HTM.java
> >>>
> >>> [email protected] <mailto:[email protected]>
> >>> http://cortical.io <http://cortical.io/>
> >
> 
> 
> 
> 
> 
> -- 
> Regards
> Chandan Maruthi
> 

Reply via email to