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 >
