Could a neuroscientist understand a microprocessor?
biorxiv.org
biorxiv.org
http://www.cell.com/cancer-cell/fulltext/S1535-6108(02)00133...
I'll bookmark both those papers - and I rarely bookmark anything (instead relying on Google and the eternal onslaught of ever newer links and issues).
That paper is real fun to read, an excerpt:
> How would we begin? First, we would secure funds to obtain a large supply of identical functioning radios in order to dissect and compare them to the one that is broken. We would eventually find how to open the radios and will find objects of various shape, color, and size (Figure 2). We would describe and classify them into families according to their appearance. We would describe a family of square metal objects, a family of round brightly colored objects with two legs, round-shaped objects with three legs and so on. Because the objects would vary in color, we would investigate whether changing the colors affects the radio's performance. Although changing the colors would have only attenuating effects (the music is still playing but a trained ear of some can discern some distortion) this approach will produce many publications and result in a lively debate.
If you need a real good laugh, do read it now, it gets even more funny after the quoted paragraph! It's almost as good as that (much shorter) paper on PubMed where they examined the sterility of farts in operating rooms (http://www.ncbi.nlm.nih.gov/pmc/articles/PMC1121900/).
>"Even if a diagram makes overall sense (Figure 3A), it is usually useless for a quantitative analysis, which limits its predictive or investigative value to a very narrow range. The language used by biologists for verbal communications is not better and is not unlike that used by stock market analysts. Both are vague (e.g., “a balance between pro- and antiapoptotic Bcl-2 proteins appears to control the cell viability, and seems to correlate in the long term with the ability to form tumors”) and avoid clear predictions."
Exactly! As soon as you start trying to attach numbers to this stuff you realize we haven't figured out much of anything about it, and these "theories" haven't ever really been tested. It is honestly a waste of time to approach the problem like that. Even assuming the info is accurate (yet vague), future generations will have to redo all of it anyway to see what is is really going on. In reality it seems to be both inaccurate and vague...
Worse, we don't seem to care a lot about this lack, largely because it isn't perceived. A lot of devs think that we're in the space age when it comes to software, instead of virtually the stone age. And then we wonder why our software tends towards the "big ball of mud" model oh so often.
I think the reason is that computer programs are documents -- things constructed in a language. Someone might conceivably write a good summary of, say, _War and Peace_, but a diagram of the book would only be useful for illuminating certain aspects of the story.
It's not immature, it's delivering serious value to most of the world.
Just as when building a car one would use a word like 'engine' rather than carry around a 5000 word description of an 'engine'.
By compressing highly complex machines into single words we're able to build much large machines by treating that complex machine as a single component of the much large machine.
Furthermore, I fail to see how whether one can describe nginx in 5000 words or less means that our industry lacks the vocabulary to describe components of more complex machines built from those components.
If your developer requires a 5000 word description of nginx to type
apt-get install nginx
then they are a tool and need to be fired.Most of the problems with our industry stem from exactly this kind of problem, rather than look at the vast array of components that do the exact same thing they are about to implement, they use something like nginx to make nginx, except instead of installing nginx they made a 5000 line nginx config file to reimplement most of what nginx already does.
If you've ever seen
{ "key" : "23", "value": "Michael Jordan" }
then you know what I'm talking about in regards to the stupidity of this industry using components to make the component it already is.This question is like when someone says they are intelligent then someone gives them a wrote memorization test about the agreed upon symbols we use to encode those words on paper. While memory is required for intelligence, not having memorized a particular encoding of a particular word is not an indication that one does not possess intelligence.
Do not mistake the source code, for the program itself! The documents programmers spend all our time working on are really just specs; the actual program is an artifact produced by a compiler.
You see comp sci is so advanced we don't even bother writing descriptions of our creations, we allow the software we've written previously create those descriptions for us, along with the dictionary used to understand the description, and then use another program to understand that description for us.
It's easy to have a formal language and tools when you start with the language and build everything on top of that. When you're trying to look at a complex system that was entirely built by some unknown process, according to unknown rules, and you have to figure out the language from observation, it's obviously going to be a very different ballgame.
There is hope however, as there are now optical and molecular methods that make it possible to observe , activate, and inactivate individual neurons, which allows making causal inferences[2].
1: http://compneuro.uwaterloo.ca/files/publications/eliasmith.2...
2: https://www.sciencedaily.com/releases/2015/05/150528142815.h...
I am sympathetic to the angle this is coming from. Yes, the field has a serious problem with shoddy statistics and post-hoc theories optimized for sexiness. But this paper vastly oversimplifies the problem domain to the point of trivializing it.
The approach of this paper is to take techniques from a largely mysterious domain, apply them to a vastly different domain that we understand much better, and conclude that because we can't replicate our prior understanding of the known domain there must be a problem with the tools. My guess is that this approach looks less ridiculous on the surface because of how entrenched the brain-computer metaphor is--but don't forget it is just an anology: a knowingly incorrect abstraction. As the authors admit, lesioning a circuit board is totally different from lesioning a brain. So why on earth should we be talking about how much we can learn from brain lesions based on our understanding of microprocessor lesions? (not a rhetorical question--I am genuinely curious if I am missing something here because this absolutely confounds me)
As for lesion studies, I wonder why there was no mention of single and double dissociation? Only single dissociation was discussed, and although it is tempting to say lesioned area X is uniquely responsible (a combination of necessary and sufficient) for behaviour Y, it only tells you something about its necessity, and nothing about its sufficiency. This is generally known in Psychology & Neuroscience, which is why almost all studies base themselves on double dissociation. It allows you to say sensible stuff about differences between behaviours at the same level of description (Space invaders vs Donkey Kong being different, for example), due to differences in a lower level of description.
Also, I feel like the importance of topology is somewhat disregarded in discussion of these lesion studies? As we go lower down in levels of description - systems, to clusters, to individual neurons or even molecules, topology of the units of description becomes more and more important. Imagine enumerating every transistor on the chip and switching their connectedness around to the point where behaviour Y can still be performed, but lesioning transistor X no longer makes behaviour Y impossible. So we don't actually obtain a "large number of identical radios", we obtain a large number of functionally identical, but topologically different, radios, and then shoot metal particles at them to understand under which conditions area X does produce behaviour Y. This, to me, seems a lot less futile and a lot more informing then what the section on lesion studies leads me to believe?
One way I tried to conceive of it was that when the neurons in your brain fire, they compose patterns. These patterns -- the orders and timing of neurons firing -- might be likened against something like a hash table, wherein you represent data as a serialized pattern.
For instance, when I think of a dog, my brain fires some base neurons that are associated with the size of a normal dog, and some of its most basic attributes: 4 legs, fur. These could also be the same regions of the brain that would fire when I think of a cat, or a raccoon.
Does this in any way represent how the brain actually works?
The general principle in the brain is that the individual neurons (there are 25 billion in the cerebral cortex) represent statistically frequent occurrences of experienced phenomena. So if you know a lot about dogs and interact with dogs a lot, you will have a lot of neurons that "represent" different things about dogs (dog categories, dog behaviors, aspects of dog appearances, etc.).
The neurons "represent" perceptual experiences in a collective way called a population code. In one study on humans, a neuron was found that fired when viewing pictures of Jennifer Aniston but only when Brad Pitt was not in the photo. This does not mean the neuron had the sole job of representing Jennifer Aniston, but only that it was "tuned" to this perceptual occurrence. The tunings of neurons are distributed to "cover" in a statistical fashion the range and components of experiences. This particular human subject had perhaps watched many episodes of Friends.
What is still unknown is how the structure of a visual scene is represented. Neurons have been found for edges, contours, shapes, motion, depth, and objects. The mystery is how they all work together to parse and compose the scene. This is hard to determine because it is usually only possible to "listen" in on a few neurons at a time with electrodes, whereas it takes hundreds of millions to represent the visual world.
Regarding how visual mental imagery works, here is a post I made on Quora about that in case it is of interest: https://www.quora.com/How-can-we-see-images-in-our-minds
Let's start with a large matrix operation, something a deep neural net neuron would do. Let's imagine that matrix is a sheet with colored dots instead of numbers.
We don't care so much about the order of the rows, but the direction of the columns holds some meaning. So we can connect the top of the matrix to the bottom, like a tube. Now the left side isn't exactly a beginning, and the right side isn't exactly the end, but there's this sort of polarity.
These ends of our tube (which was a sheet) are rings, and those rings can be reduced to points, something like Grothendieck's point with a different perspective at every direction (or in this case, many directions, one direction per row). But the left point and the right point are still different.
Now I have a polarized bag.
Like a neuron.
I could be silly and imagine the gates and channels on the neuron surfaces could be mapped to elements in the matrix like those colored dots, but I rather doubt the analogy extends quite that far...
And neurons don't absorb many giant tensors and emit one giant tensor. But they do receive their signals at many different points on the surface. So there is this spatial element to it. And there are many different kinds of signals (electrical, neurochemical, all the way to simple biochemical, like glucose). So there's this complexity that an inbound tensor would represent nicely. And they do in fact emit a single signal sent to many neighbors.
Anyway, that's my personal matrix-to-neuron conversion.
Is that sensical?
The results of those tensor operations (not in their total, but each particular output number) may have some very rough analogy to the changes in a particular single synapse "connection strength" caused by various biochemical factors as a result of neuron operation, but the whole tensor operation doesn't map to any biological concept smaller than e.g. "this is a bit similar to how a layer of brain cells changes its behavior over weeks/months of learning". A machine learning iteration updating all of the NN weights is a rough correspondence to the changes that, over time, appear in our brains as a result of experience and learning (and "normal operation" as well).
I have seen an interesting hypothesis on how the particular layout of a dendritic tree and it's synapses can encode a complicated de facto "boolean-like" formula out of all the "input" synapses (e.g. a particular chain of and/or/not operations on a 100+inputs), instead of essentially adding all the inputs together as much of artificial neural networks assume, but I'm not sure about if how such hypothetical "calculations" actually are used in our brains.
I have the idea what gets lost in the various hypothetical models of neuron/brain mechanisms is the sheer magnitude of neuronal circuit complexity. Not only are there a vast number of "nodes" in human brain circuits, something like 100 trillion synapses, but that each node/synapse is itself enormously complex.
It's hard to quantify the number and variety of receptors "owned" by each neuron, but consider that while neurons work by communicating with certain "partner" neurons, they also are connected by very complex channels to all parts of the body. Furthermore neuron signal transmission involves the cascade of intracellular "downstream" effects mediated by intricate genomic events.
We know something about some of these channels, others not so much. "I/O" occurs through nerves, hormones and immune system signalling. In isolation each of these systems is highly complex, but considering the nature and meaning of interactions among these systems is overwhelming.
Given the immense scale of complexity it's unsurprising that we have only a primitive understanding of how neuronal systems work. I don't anticipate science will "figure it out" in my lifetime.
OTOH no doubt science will continue to discover intriguing clues in the coming decades, and that will be valuable. But I think it's important to appreciate just how vast the "problem space" is when it comes to grasping how brains actually work.
He has been working on AI in a system which he terms Hierarchical Temporal Memory which he describes in his book. The interesting point is that his algorithms and data structures are based on existing neuroscience research and "reverse engineering the neocortex". It sounds very buzzwordy but I found the book an excellent cross-disciplinary read.
[1]: https://en.wikipedia.org/wiki/Grid_cell
[2]: https://en.wikipedia.org/wiki/Place_cell
[3]: https://en.wikipedia.org/wiki/Grandmother_cell
[4]: https://en.wikipedia.org/wiki/Neural_coding#Population_codin...
Anatomy also helps with the brain, but not nearly as much. People are still trying to figure out how the nematode C. elegans does its relatively simple thing even though the full connectome of its 302 neurons was published 30 years ago. But in larger brains, the fact that neurons are clustered according to what they do and projections are clustered according to organization in the places that they project from provides at least some level of knowledge. We are not merely applying Granger causality willy-nilly to random neural activity. We know what's connected to what (at a gross level) and in 6-layer cortex we even have an idea of the hierarchy based on the layers in which projections terminate (which is how Felleman and Van Essen got Fig. 13b in the paper).
OTOH, I think our failure to understand many neural networks at a conceptual level is quite disturbing, and perhaps a sign that the kind of conceptual understanding we seek will be forever beyond our reach. The authors mention this toward the end of the paper, although I think they overstate our understanding of image classification networks; I've never seen a satisfying high-level conceptual description of how ImageNet classification networks actually see. One possibility is that we simply don't have the right concepts or tools to form this kind of high-level description. Another possibility is that there simply is no satisfying high-level way to describe how these networks; there are only the unit activation functions, connectivity, weights, training data, and learning rule. We can find some insights, e.g., we can map units' receptive fields and determine the degree to which different layers of the network are invariant to various transformations, but something with the explanatory power of the CPU processor architecture diagram in Fig. 2a may very well not exist.
I hope that the brain's anatomical constraints provide some escape from this fate. Unlike most convolutional neural networks, the brain has no true fully connected layers, and this may serve to enforce more structure. We know that there is meaningful organization at many different scales well beyond early visual areas. At the highest levels of the visual system, we know that patches of cortex can be individuated by their preferences for different types of objects, and similar organization seems to be present even into the "cognitive" areas in the frontal lobe. It remains to be seen whether it's possible to put together a coherent description of the function of these different modules and how they work together to produce behavior, or whether these modules don't turn out to be modules at all.
I sure hope a brain does not have as many abstraction layers as a microprocessor (there are half a dozen of such layers between truth tables and applications). I think that it would be much harder to reverse engineer a microprocessor than a human brain if you're equally clueless about them.
My guess would be that they might make progress in the direction of physics but not in the direction of higher order abstractions further up the stack. Those would just be interpreted as rules of the universe or background noise.