hi Jeff,

On 16.01.2014, at 06:44, Jeff Hawkins <[email protected]> wrote:

> Thank you for all these thoughts, I am still digesting them.  
> 
> Part of what is motivating me to tackle documentation this year is that I 
> might be closing in on a broader understanding of what all the layers in the 
> cortex are doing.  The CLA is just part of that.  I need to figure out the 
> best way(s) to communicate these new ideas.

This is great news (actually I was hoping and waiting for this message ;-). But 
this makes the issue even more urgent.

> 
> One question is what kind of language to use.  In the white paper we used 
> prose, pseudo-code, and neuroscience.  The pseudo-code was intended to be a 
> clear and somewhat formal description, immune to the messiness of the actual 
> code.  Yes, you need to have some programming skills but not much.  Do you 
> think that pseudo-code isn't sufficient as a formal description?

I would not say that pseudo-code is not formal but it might not be appropriate. 
As if we would like to draw a oil painting with chalk.
I am not sure if the CLA could really be seen as algorithm, to me it consists 
of components with inputs and outputs, some wiring and signals that run across 
them. 
By trying to model this with software, we do two things at the same time: we 
build an analog circuit simulator, and we build a parametrized (and serialized) 
schematic within. 
It took several decades of academic and industrial efforts to come up with 
reliable simulators. Why not use this achievement and focus on the components 
and the schematic of the CLA?
Another advantage would be the fact that circuits in these simulators can be 
operated and probed virtually. This would allow to actually test the behavior 
of the setup.
But don’t get me wrong, I am not claiming to build a “real” virtual brain using 
PSpice. Rather would I do the abstraction-step at the level of the components. 
One component could be for example a synapse with two switch inputs and a 
control-voltage input. Regardless how complicated a real synapse would be. 
Another component could be a “CLA-cell” also independent of how many neurons 
might be behind this concept in the real brain.
When the circuit is captured as schematic, it is much easier to collectively 
discuss it by pointing at it. There are also program generators that can 
convert such a circuit model into software. But the circuit could probably also 
be rendered as hardware …. at some point.  
And after all, a schematic of a CLA circuit would be an unambiguous model for 
deriving generic software versions of the CLA which could be directly compared 
to the signal response of the hardware-model.
> 
> The other question is where to publish.  We could just write a new white 
> paper, the current one is getting old anyway.  The nice thing about a white 
> paper is it can be as comprehensive as needed.  But I am also feeling some 
> pressure to publish in a peer reviewed journal.  Some people don't take you 
> seriously without peer review.  As you suggest we could do a white paper and 
> then a series of smaller papers.

In order to make the step towards a peer reviewed publication, it will be a 
prerequisite to also publish some data with it, that has been evaluated against 
a known (scientific) standard outcome, and that (if you target a high impact 
journal) the provided data should be reproducible by independent peers.
But this is only partially the reason why I am advocating to also consider the 
development of a reference-evaluation framework, for the continuous collective 
improvement of the CLAs.

all the best from Hong Kong

Francisco

> 
> -----Original Message-----
> From: nupic [mailto:[email protected]] On Behalf Of Stewart 
> Mackenzie
> Sent: Tuesday, January 14, 2014 8:58 PM
> To: NuPIC general mailing list.
> Subject: Re: [nupic-discuss] Hong Kong meeting outcome
> 
> please read responses inline:
> 
> Francisco Webber <[email protected]> wrote:
>> Jeff, Steward,
>> I think what is actually missing is a formal description of the 
>> algorithm that allows non software programmers to understand and 
>> analyze it in full detail. Fergal and I were even thinking of an 
>> electronic wiring schematic to try and capture the full detail of CLA 
>> in a concrete formal way. I fear that without a central formal model 
>> the theoretical research, the practical implementation and the 
>> documentation will slowly drift apart without anyone noticing.
>> Having a software-development-independent formal description of the 
>> algorithm will also help to avoid the mix-up of code-parts that are 
>> there because the CLA algorithm says so, parts that are there because 
>> no better engineering solution has been found yet for a specific system 
>> behavior and even parts that might be there because of the specific 
>> expressiveness of a programming language.
> 
> We're designing and developing a flow-based programming environment on Mozart 
> Oz.
> 
> -To get to the point quickly: this tool allow us to expose a 'box-and-line' 
> user interface to the non-programmer that can be programmed by dragging a 
> finger on the screen. One box might be a neuron, another a dendrite another a 
> synapse and one can 'drill down' and open up components within components (ie 
> composite components). This allows high level display of logic without 
> getting bogged down in implementation code.
> - the programming language (oz) used to program components has some 30 odd 
> different language concepts and is _more_ that expressive enough for this 
> challenge. 
> 
> The example below is in 'flow-based programming' for the AND logic gate, it 
> is executable:
> 
> a => a nand(nand) out -> in not(not) out => out b => b nand()
> 
> The above represents the application's logic graph.
> the Nand is a component and is implemented in Oz.
> the Not gate on the other hand looks like this on the inside:
> 
> The not gate is a composite-component. 
> NOT gate:
> 
> in => a nand(nand) out => out
> in => b nand()
> 
> In the above example the 'in' on the left of the => is the input interface, 
> the out to the right of the => is the output interface. The stuff between the 
> => and => is the logic of the graph. nand(nand) equates to 
> 'name_of_component(type_of_component)'. The second 'nand()' does not need a 
> type as it has already been instantiated.
> Again the nand gate is implemented in Oz.
> 
> Now the above representation is very easy to create a high level application 
> logic specific view that is _executable!_ most importantly, the components 
> are being designed so that we may create a GUI:
> 
>               ---------                         --------
> a -----> a|           |                       |         |
>              | nand | out -------->in |  not  | out ---------> out
> b -----> b|          |                       |          |
>               ---------                         --------
> 
> We are currently tying this together with an HTML implementation. So it'll be 
> interactable with a finger. 
> 
> So writing the paper, then implementing it in this interface one creates an 
> executable specification that non-programmers can easily change. This serves 
> as a perfect highly flexible example for implementers to reference for more 
> optimal implementations in say c++ (ie nupic-core).
> 
> Francisco is this what you imagined?
> 
> While you're still in town you should come over for dinner so I can demo this 
> to you ;-)
> 
>> - The “language” of the formal model should allow people from different 
>> (maybe even VERY different) areas to gain full insight into the
>> fundamental algorithm.   
>> - The formal model should also allow to think, discuss and communicate 
>> concepts at different scales of resolution (from the birds-eye 
>> perspective down to the synapse level)
>> 
>> I am well aware that this is not an easy thing to do, but I think it is 
>> indispensable for the development of any theoretic research field to 
>> have its own formal notation framework.
>> 
>> Francisco
>> 
>> On 15.01.2014, at 07:33, Stewart Mackenzie <[email protected]> wrote:
>> 
>>> Very good point Jeff, I suspect this material is ready for peer
>> review (in the idealistic sense of the phrase peer review). I'll admit 
>> I've lost faith in the peer review process of today. For many reasons, 
>> too many to go into at the moment. Though despite my tangible dislike 
>> for journals which needs to be disrupted off the face of the earth, 
>> publishing with them most likely brings more academics onboard.
>>> 
>>> The main driver for this paper is to get everyone on the same page.
>> I'd prefer seeing a comprehensive (white) paper, with a series of 
>> smaller papers focusing on smaller areas being published in the 
>> journals. All the detail is in the comprehensive. The smaller papers 
>> are to move academia along using a language and publication process 
>> they are familiar with. I suspect new names should be made to describe 
>> newly discovered phenomenon, with as emphasis on describing the right 
>> 'altitude' one needs to approach this problem. This conditions the 
>> academics to start adjusting the mindset to a certain level. Eventually 
>> causing a resonance which hopefully can be conducted into and through 
>> NuPIC. So we as a community had better be sure NuPIC is in shape such 
>> that the resonance won't shatter it.
>>> 
>>> Jeff Hawkins <[email protected]> wrote:
>>>> When you say "canonical paper" are you thinking a peer reviewed
>> paper
>>>> or an
>>>> updated white paper?  Is it more important to be comprehensive
>> (white
>>>> paper)
>>>> or published in peer reviewed journals?  Or are you thinking
>> something
>>>> else?
>>>> Jeff
>>> 
>>> Kind regards
>>> Stewart
>>> 
>>> --
>>> Please excuse my typos and brevity
>>> 
>>> _______________________________________________
>>> nupic mailing list
>>> [email protected]
>>> http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org
>> 
>> 
>> _______________________________________________
>> nupic mailing list
>> [email protected]
>> http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org
> 
> Kind regards
> Stewart
> 
> --
> Please excuse my typos and brevity
> 
> _______________________________________________
> nupic mailing list
> [email protected]
> http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org
> 
> 
> _______________________________________________
> nupic mailing list
> [email protected]
> http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org


_______________________________________________
nupic mailing list
[email protected]
http://lists.numenta.org/mailman/listinfo/nupic_lists.numenta.org

Reply via email to