Where is the instruction stored in this conception?
In HTM you could imagine the NPU as hyper-column, having a functionality that allows it to predict spatio-temporelle patterns by learning.
The concept of “instruction” comes from the Turing conception of computing. This analogy seems inappropriate for a learning system. Turing’s model assumes an infinite instruction tape generated by something that is not part of the Turing machine. In an intelligent system learning is like have a loop from the output of the Turing machine to its input - as if it generates it’s own program. This is why I think a Turing model is inappropriate for building learning systems. For many people the definition of computable is a Turing model, which makes it is reasonable to claim learning systems are not computable in the classic sense.
The Turing machine manipulates symbols on a tape but the instructions are stored elsewhere.(unspecified). It was the von Neumann architecture that stored instructions in the same memory as data. The Turing machine could ‘learn’ by storing symbols on the tape, not by modifying its instructions.
If you want to express the concept in these terms, each NPU is a Turing machine, the symbols on the tape are SDRs and the instructions are what we need to find. This model seems highly appropriate.
Imagine for a moment that the instructions are encoded in (junk) DNA. Each NPU is executing a DNA program in the same way that a ribosome uses a DNA program to build a protein. The programs are developed by evolution, inherited as DNA on chromosomes, transcribed into mRNA for execution by the NPU. Why wouldn’t that work?
The input of the Turing machine is specified by a programmer. An assumption of Turning is that if you can provide a definition of the problem in terms that can be translated into (a potentially infinitely long) input tape then it can be computed. Note how this shifts the burden of implementing a learning system from Turing to the programmer. An intelligent system can’t be specified in this way.
The Turing model does not scale in the way you imagine. A network of Turing machines is still a Turing machine - it still needs a program at the input.
The symbols on the tape going into the Turing machine are the instructions. The Turing machine transforms the instructions into logical operations.
I really think you need to update your understanding of Turing machines. Wikipedia is as good as any: the original TM consists of a tape (for symbols), a read/write head, a state register and a table of instructions. Please read. [You may be thinking of a Universal TM, but that’s not what he wrote.]
Not that it matters: HTM tells us that an NPU takes SDRs as input and output, and that it can update local storage so it can learn sequences. All I claim is that this function is controlled by running a little program, and that the same NPU will perform a different function if given a different program. It really isn’t rocket science.
That’s why all the columns look the same: they are the same, bar the program and the accumulated state.
And yes, an intelligent system is specified by the program fed into the machine, not by the machine itself.
This is a fine hypothesis (and I always welcome a good prod from time to time, to remind me to check my assumptions), but of course the next step is for you to try and falsify it (versus arguing that it is obviously how the system works). For example, if you make the prediction that the programming might be controlled by “junk DNA”, the next step is to find evidence that supports that prediction (to make sure it can actually hold water), and then rigorously look for evidence that refutes it. When you find refuting evidence, then further refine your hypothesis.
Point of order:
One of the programs you can load into the turning machine is an instruction set.
At that point, it can manipulate its own program during program execution.
You can consider the basic Turing machine instruction set as microcode.
You could dive into the neuroscience literature. It doesn’t take a neuroscience degree to understand most of it besides methods. But I wouldn’t blame you for not spending that amount of time.
To figure out whether gene transcription could be the execution of an instruction, you could read about fast changes in gene transcription. It took like two minutes to find some possible starting points.
“Mechanisms of specificity in neuronal activity-regulated gene transcription”
“The neuronal stimulation–transcription coupling map”
“Different Neuronal Activity Patterns Induce Different Gene Expression Programs”
Google says junk DNA doesn’t get transcribed (maybe very rare transcription would go unnoticed?) although it contributes to controlling gene expression. That said, 1/3 of protein coding genes are primarily expressed in the brain, ~7000.
It probably can’t have an instruction which updates local storage if local storage means synaptic connections. Neurons fire at the same time as they learn. I don’t see how you could say one of those is step 1 and the other is step 2. Well, learning might happen slightly after they fire, but that’s triggered by the firing*, so there’s no reason to think a program executes an instruction which tells it to do plasticity.
*Plasticity happens in experiments which make two neurons fire.
Does it execute a series of instructions for each next SDR arriving from the sensory input? Does it execute just one instruction at a time, concerning all layers?
How does the hardware execute the instructions? There’s no single synaptic path through which information flows one step at a time, not by a long shot. What keeps the instructions ordered?
Are you not claiming that it executes instructions sequentially? I don’t see how it’s a program at that point. There are loads of differences between regions (and within regions, things like different types of columns), but I still think there’s such thing as generic cortex. The debate whether there is a general cortical algorithm/architecture has been around for a while.
The RAM of a computer would look identical in a “dead” computer. You believe that all the columns are the same but they are certainly all different. I would go so far as claiming no two neurons are the same, let alone entire columns. The amount of variance in columns will be huge once we know what to measure.
You are right I am referring to a hazy recollection of exactly how Turing describes one implementation - it is the principle of the universal Turing machine that is important in this thread. The essential point is that there are philosophical assumptions in Turing’s conception of computation and those assumptions are not taught to engineers.
Similar to what you said, in regards to the von Neumann architecture, what you call ‘normal’ is a reference to the Turing computational model, and there is no reason to believe brains use anything like that. So forget that whole line of reasoning, it doesn’t apply.
When people are commenting on comments the original post gets lost. I never said that the brain works anything like a computer and said this instead:
In “normal” computer programs you have data and the sequence of operations that are performed on that data. You have a collection of locations where the data is stored and you specify the sequence of those operations. Data in a stored-program computer is accessed sequentially and the operations performed are sequential with the output from one step being the input to the next step.
In the brain, data and operations are mixed together. The connection ARE part of that computation. As you indicated, the pipelines of data are all run at the same time. The processing is still sequential, but massively parallel.
Since the brain connections are essentially fixed, data is not accessed and stored, it flows from one processing stage to the next.
The connections are part of the algorithm.
For this reason, I see that understanding the connection scheme is a critical part of understanding the computation.
That’s not quite how science works. What I propose is a hypothesis: that NPUs exist, that they are ‘the same’ (interchangeable, equivalent), and they show different behaviour in response to some kind of ‘program’. The next step would be to gather all known knowledge on the subject, and refine the hypothesis. Then make predictions. Then devise experiment(s) to test those predictions and refine the hypothesis. Only if we get this far do we go into the formal phase of falsification.
Columns are consistent with NPUs, plasticity supports the idea of interchangeability. So find an experimental system (a small brain) with identifiable NPUs, destroy one, and watch another take over the role. Flip an NPU from one function to another by feeding it an extract from a different brain. Stuff like that, long before we get to falsification.
Right, my point is, you are unlikely to get a lot of support from the folks here who are working on a conflicting hypothesis (that there isn’t a separate “software” running on top of the “hardware”) until you have something more refined. Hopefully we can all be respectful of the angles that each other are working on this from.
All good comments. Yes, I don’t follow the literature closely, but there is a lot of DNA-ish stuff going on in the brain, and this is as good a hypothesis as any. But I’ll take a look at those. It’s not always easy to get to academic papers as an outsider.
I’m not prepared to speculate on neuroanatomy: that’s for others. If the NPU does computation then it’s either a pure function or a state machine, and my vote is for the latter. Reinforcement learning is a perfect candidate. It’s too early to speculate on how ‘programs’ might be organised. Plasticity is a strong argument in favour of interchangeable NPUs responding to changing software.
The NPU hypothesis proposes that all NPUs (at least within some region) are functionally equivalent and interchangeable, not that they’re identical. Plasticity supports that, and there is a wealth of literature on brain plasticity and gene transcription.
I have no theory of ‘normal’ or any particular model. Computation at its most basic separates the instructions from the data, and that’s what Turing was on about. If SDRs are the data and columns are the NPUs, then were are the instructions?
Personally, I suspect the instructions are intimately entangled with the the structure itself (not separate from it). I’m not much of a biologist myself either, but from what I have seen, there tends to be higher-order emergent behaviors teased out of simple, repeating local rules. That said, I am certainly open to being proven wrong, if you come across some strong evidence that indicates separable software and hardware.
I think it has been stated several times now but I will do it again - nerve cells are not like a computer. At best, they are like a logic gate. Consider this logic gate example:
There is no program, just a logical NOR of the input signal. If you go into the black box that is the or gate there are just a few transistors. I used to teach digital logic and most students have very little trouble understanding this OR logic - I assure you that no programming is involved. The cells in the HTM model are slightly more complicated but are still just logic gates. Note that in this diagram the blue and green dots are the SDRs. The connections on those dendrites at the logic this is gating the SDRs like a key in a lock.
The diagram on the right is a fairly close description of the logical function of the wetware on the left. The data flows through these logic gates. This is why I have been saying that the connections scheme is critical to understanding the operation of these systems. The output of this logic gate is that single line coming out of the grey triangle on the right, the same as the single axon (not shown) coming out of the cell body on the left.
Absolutely. This all started because I have always expected the columns in the brain to be processing units, and HTM gave me SDR, which is a credible data representation. To my eyes, that just leaves the software to be found. But you see only hardware?
I think you’re saying that all the different things the brain can do are a product of how it’s wired? In effect, you subscribe to the connectome model, or something like it? So you need to explain how all the different bits of wiring got there in the first place, and how the wiring gets updated (memory, plasticity). Right?
I’m not aware of any explicit support for a hardware-only model. Maybe you just didn’t get around to thinking about software yet?
@david.pfx
There are mountains of papers that detail how the connections are part of the functions. Much of HTM theory and practice revolves around copying those connections and functions in man-made hardware.
If you would like to learn more about this I would be delighted to point you to a few of them.
Likewise, there is a large body of work that described how the brain wires itself during the development process. I find this fascinating - huge populations of cells all hitting stages of development in unison and doing things like migrating & forming a new layer or sending axons to targets all the way across the brain and yet maintaining topology in the process. Amazing stuff. This is the very thing that DNA does.
And from logic gates we know how to build computers. Don’t you think evolution could do as much with neurones?
I’ve built logic boards, but never again. For a while we used to build boards with microprocessor, ROM, RAM, inputs, outputs, etc. Now we just pick up a Raspberry or two. Evolution can do that too.
The connection scheme is critical to understanding how neurones get together into an NPU. After that it’s SDRs and software.
We agree that the brain is NOT built like a computer. Why in the world would you think nature would use the techniques you use to build computers to make brains?
Different architecture - different technology.
I suspect that you have not been exposed to these concepts but there are many neuroscientists that have understood how the brain wires itself for decades. The limits of the technology are not defined by your lack of familiarity with the subject. Before you spend more time bashing wetware and the people that study it I think you should learn more about it. At a minimum, it would make your criticism more relevant.
Possibly the best place to start is this paper:
Read from the section heading “The ontogenesis of the neocortex” to see how the cortex wiring is established using living cells. This is a nice overview of the process; there are entire textbooks on this process. While you may not be versed in the technical jargon you should get a good idea of the overall process.
Please note, detailed point-to-point wiring is NOT how the brain does things. The structures form from dividing and migrating populations of cells.
At key points in the development process, the cells grow projections of axons and dendrites that form the “wiring” of the cortex.
The DNA program drives individual cell biology and specify what the cell behavior is at each cell division. At particular cell divisions numbers the behaviors may shift. Example: at division 20 the cell may migrate to some chemical marker. At division 25 it may put its energy into generating a growth code with a different chemical marker. The information “data buss” structures end points are coded in the DNA by chemical markers. The location in a given map is given by multiple gradients of chemical markers - you can think of this as an X and Y address inside that region. The DNA program generates proteins that are used for this chemical signalling - both as a beacon and as the template for “sniffing” in the cell seeking some target. I suspect that it is actually encoded in the same region of the DNA in both cell populations.
The connectome forms from entire regions sending axonal projections to find targets in roughly the same topological positions in the destination maps. The chemical gradient of markers is the homing beacon to guide the growth-cones on the axons; the cell literally grows an axon projection guided by the “smell” of the target patch of some very distant region in the brain.
One of the reasons that there is such uniformity of structure in the cortex is that the same basic development program is being executed in the entire cortex. The differentiation driven by the DNA program branches at key points in the process to make “this” population project to “that” population.
The result is sheets of cells that perform parallel operations on well defined streams of data.