An Apical Depolarization for Numenta: How to Generate the Allocentric Location Signal

Hi Paul,

Thanks for your interest in the theory! i am quite excited to see your implementation, and the understanding you accomplish as a result of it. over the last couple of weeks, I have been hard at work creating the single algorithm (in the C programming language) for every single layer in a cortical region, and it is going very well. i am currently coding the final stage, and when i finish it, i will be making another forum post which contains the code. this should be up soon.

some interesting things i realized when trying to test my theory is that, because the whole theory rests on the idea that there are only two possible connectivity schemes in a layer of cells in terms of distal connections, (t), and (t-1), you only have to code those two types of algorithms in code, and then you just have to wire up all the layers according to the proximal connections described in the theory, and allow for a decent amount of potential connectivity for the distal and apical connections.

furthermore, i have found out that the code for an inference layer (numentas temporal memory + sensory-motor prediction ability) and a pooling layer (a more biologically accurate version of numentas temporal pooler) are actually virtually identical in their code, apart from a single variable: (t), or (t-1). (whether you are connecting to the cells at the current timestep, or the previous one.)

coding the connections between layers requires a very well thought through software architecture, which i have created, and will be implementing after i finish the inference/pooling layer algorithm.

oh yeah, i also figured out how to multithread a single layer of cells, which was pretty helpful for speed.

2 Likes

well, in your description of the hypothetical situation, one thing i can see that is missing in your specification, is the idea that the robot has a perfect model of the orientation of the object, as well. this is crucial for either predicting features on an object, or predicting what motor movement the robot will take on the object (or producing a new motor command). i think this may be whats missing from your understanding. hopefully that helps a little bit in your comprehension? :slight_smile:

2 Likes

Do you mind describing your pooling strategy in more detail?

This idea is especially interesting to me. If you generate activity from more than one source, it allows you to form associations of different signals within a single time step (whereby one of the signals can predict the other in the future).

This is actually quite a bit different than what I am used to thinking of as pooling, whereby the active cells depicting a whole object are stable over multiple time steps. Assuming I am understanding this part of the theory correctly, it is only the predictive cells in this case which are stable, while which of them specifically are active potentially changes each time step.

OK, but what predicts the next motor movement? A goal? In your theory, I can understand what the input is - the sensory information from all the objects, and from the body, and also the history of movements up to now. I can also understand that given all this info, plus a known future motor command, the robot can predict a sensory input. The part I can’t understand is how a robot could predict the next motor command to take, without a goal. If the robot has a goal such as “reach out and touch the Rubik’s cube”, then a predicted motor command makes sense.
OTOH, If the robot has no goal whatsoever, then either it will make no motor command at all, or it will make a totally random one.

1 Like

I refrained from asking a similar question until my understanding of the theory is more solid (I’m not entirely clear at this juncture if decision making was even meant to be within the scope of this theory – the focus is definitely squarely on egocentric to allocentric processing). But since you brought it up… what appears to be missing is an ability to predict next possible motor commands within the current context, and rank them based on past experience. I figure this type of system can always be incorporated later…

1 Like

More likely, a motor command that it has done in this context before.

2 Likes

Ok, here is my first specific question. I am curious about the differences or interactions between distal signals versus apical signals. Are these essentially the same in function (i.e. put cells into predictive state) or would a cell in a predictive state from distal input become active upon receiving simultaneous apical input?

One reason I ask, is that there are places where you have depicted both distal and apical signals flowing in the same direction between the same two layers. For example:
image

In this case, does this mean the weight of the signal from 4 to 6a is greater than the weight of the signal from 6a to 4? Or is 4 generating active states in 6a? Or is the apical input coming from different cells in 4 than the distal input is?

your thoughts on pooling layer mechanism and function are really close! i talked a little about the neuronal pooling layer mechanism towards the end of my recent video explaining the theory’s details, but ill elaborate.

Basically, the concept is that, because of a (hypothesized) phenomenon in neurons, called “competitive ion uptake inhibition” (CIUI), cells which have distal input connections coming from other cells in the same layer, and other cells don’t have these distal connections, the cells that have the distal connections are the ones that dominate over the activity of the other ones. this is actually hypothesized to the exact same neuronal mechanism for the phenomenon in the spatial pooler, where there is a inhibition step (step 2, usually done as global inhibition) as well as being the same mechanism which happens in the temporal pooler, (when a cell is predictive in a column, it inhibits other cells in the column because of CIUI).

this mechanism is vital to implementing a pooling layer, and actually simplifies the code for the inference layer, to where they have virtually identical code. i wont give the exact pseudocode for the implementation of CIUI yet, as my code will probably explain it alot better than i can. :stuck_out_tongue:

welllllll… not quite. actually, yes, the cells which are in a predictive state will become stable over time, at each successive timestep of sensing an object, but actually, the proximally active cells will also become stable over time. its best to think of it like this:

the connections with a layer (which you can think as the object model itself) are actually forming a predictive-state-union of all features we have seen on a particular object, however, the actual proximally-active presentation of the object would only be intersection (or the logical AND) of all the features of a object. the more features there are, the more specific the object is, and subsequently probably the less cells will be present in the representation.

now how does a layer acheive this proximal-intersection? well, through CIUI. the cells that have the most distal connections within the layer will receive the highest depolarizations, which will cause them to the be the representation for the object, and others without this initial depolarizations metaphorically be “inhibited” and i say that because:

its not that they are actually being inhibited through GABA connections or anything like that, they are just trying to intake sodium ions at the same time as their more depolarized neighbors, and because they are slow to the race, the neighbors will actually fire before them, and soak up all of the local sodium ions they were using to eventually become active. this all results in the cells with the biggest depolarizations becoming the representation of the object.

so, you can see, that after a while of forming distal connections with the cells that are usually active along with a cell (lets call it “cellX”), if cellX develops a bunch of distal connections with its frequently co-active neighbors, it will begin to become distally depolarized from the activity of its neighbors in the previous timestep, which allows them to become even more active on the next time step, possibly even to the point of “inhibiting” its neighbors using CIUI.

after a lot of this, cellX (and any other cell that managed to develop robust distal connections) will become the static representation for the object being sensed.

i hope that all made sense!

1 Like

very VERY good question! i havent actaually talked about the difference between apical and distal inputs to a neuron, and their characteristics. you are completely right when you say:

you are spot on. in fact, i have formulated this into an inequality, which describes the nature of the action potential threshold, the depolarization due to proximal, distal, and apical, seperately, and together. this is the following.

P >= A + D > T > A > D

where:
P = depolarization due to proximal input,
D = depolarization due to distal input,
A = depolarization due to apical input,
T = threshold for an action potential.

this essentially tells you what happens when a neuron is depolarized or fires because of P, D or A inputs, and is actually modelled in my (almost finished) code in full detail.


moving on to your beautiful picture,

you are exactly right. it is actually a must greater depolarization due to the additional apical input. but what you might wonder now is, if A + D > T, then wouldnt that mean that the activity in 4 could actually stimulate activity in 6a, even if 6a is getting no other inputs other than this A + D input?

well, the answer to that is actually a little complicated, due to this fact of 6a being a “facilitating layer”. this essentially means that its properties of the production of its action potentials are a little bit different than canonical “depressing” cells, which are sorta the default. from my understanding, facilitating cells essentially means that the action potential is actually harder to get to, give a set depolarization. there actually has to be many frequent depolarizations in order for cells in 6a to fire at all. i may be wrong on this, though. essentially, this means that the activity coming as A and D from 4, is actually maybe the same sorta of resultant depolarizations as 6a gave to 4, because of the fact 6a has harder-to-get-to threshold. im really not 100% sure though, and its an open problem of this theory.

i figured, in my testing of this theory, if i power the whole thing on, and it seems that 6a is going bonkers, then i can try doing some action-potential-threshold-parameters magic and take it from there. :stuck_out_tongue:

1 Like

very good point, @gidmeister. you are getting st something very fundamental, which is the fact it is impossible to produce a new motor command without a goal.

however, you bring up the idea that a goal is needed to predict a next motor movement, and i would actually say that this is not the case. i have an idea that, just as you can have a good prediction of what a feature will be (given its LA) for a given an object if you have see that feature here in the past at this LA, if a motor command has been executed in the past based on a particular location of an object, and it’s particular orientation, then the motor-command-predicting-layer, (E.6a), will successfully predict what motor command will be executed based on that sensory input, without the help from a goal.

what’s important to note, though, that it doesn’t need a goal only after other regions of cortex (or the hippocampus, et all) have produced a motor command, and that was executed on the body. this is getting at something alittle bigger than all of this, which is: where does the first motor command start?

if every region of cortex works like this theory proposes, and at birth, all of these regions don’t have the capacity to make any motor commands because they don’t have distal connections that encode such, how do they start modeling what motor commands are supposed to be executed for a given set of egocentric locations and object orientations? i think that’s where hierarchy, the hippocampus, and the idea of an apically depolarizing goal are necessary.

it’s interesting that this topic of “decision making” was brought up. although i am not to say that this theory puts forth a mechanism for decision making in the brain, what this theory does do is formulate the problem into a much, much smaller problem than before, by essentially providing a means by which the cortex can produce a complex motor command, in based on semantic sensory stimuli in its environment, (LE, LA, and FA).

what is this new, much much smalller problem, though? it is simply the “decsion making” structure in the hippocampus— CA2, or CA3, depending on whether a descion should be made. this is ultimately what makes the first goal, which travels down the cortical hierarchy to inform each region about the goal that is being made.

what my current neuroscience research is entailing now, is how this apical depolarization can travel from the hippocampus, (which is technically on the top of the cortical hierarchy, “the last place sensory input goes it”) and all the way down through the cortical hierarchy, to essentially drive every cortical region on about whether to actually to do a motor command or not, based on the high level stimuli that it is getting (after being abstracted so deeply from the work of the cortical hierarchy). the hippocampus essentially is “the structure which makes the first motor commands”, although not actually, because i don’t think it has any direct connection to the basal ganglia or the spinal cord. (i could be wrong on that, though)

but anyways, that’s some details about my current “cutting-edge" theories about the brain, that were related to the answer of your question.

…if it all didn’t make that much sense yet, don’t worry, i will be constructing another paper describing it all, after i finish my hippocampus theory, and the code for a cortical region.

2 Likes

hi guys
I reading your conversation with great interest. I have an input:

An organism can:
start/stop achieving a goal
start/stop achieving a target
start/stop moving

What has to be described is the relations between movement and goals and targets.

If there are no goals or no targets, the organism can freeze or move at random (to avoid visiting the same location again with the lowest probability).
But an organism can search for targets without a goal, and then decide to associate a goal with these targets. This is explorative behavior or curiosity…
An organism can also and normally search for targets to achieve goals…
So every organism probably have a goal list that are constantly updated and prioritized using feelings (positive=attraction negative=repulsion)…and sometimes this list is empty or not arousing at least…and the organism is resting…some goals are recurrent and some goals are new, and some goals are impulsive or planned…etc…

Your discussion makes me ask again how you will handle the doubt/entropy in the system? because it is not only controlled by external stimuli but also by internal stimuli…so in some way a system must have internal stimuli connected to both some salience functions and some resource function -…:slight_smile: ?

The doubt can be handled by qualifying it into questions:

  • where - the allocentric
  • what? the target
  • which? the goal and the salience function
  • why? the goal-target combination and the resource function
  • when? the goal-target combination and the timing function

If there is a timelag there must be a planning component that runs the sequence of plans to execute.

Rgds
Finn

1 Like

hi Daniel

One question do you mean by ciui that neurons share a ion pool? My neuroscience on this level is missing this fact…if that is what you mean? Because some sharing must take place if they compete…

1 Like

I don’t think there necessarily needs to be a computational difference between goal, target, or moving. A sequence of small motor commands can be pooled into a higher-level “object”, and a sequence of those can be pooled, and so-on. A feature higher up in a hierarchy might be “grab that cup”, a level lower in the hierarchy might be “reach right arm out”, a level lower might be “flex right bicep”, and so-on.

I suspect the same circuitry can be used for all of these (only difference is in the level of abstraction at a particular hierarchical level). The decision of what to do in a particular context is learned from past experience via the reward system.

Note that the above example can be taken to even higher levels of abstraction. Grabbing the cup could be a feature of “drink coffee”, which could be a feature of “get going in the morning”, which could be a feature of “get ready for work”, which could be a feature of “make money”, which could be a feature of “buy the new iPhone”. We humans can take advantage of very deep levels of abstraction.

2 Likes

Hi Paul

Hm I don´t quite agree…here is why:

A target might be a cup
The goal is to grab the cup
The movement are the commands that grab the cup

These are three processes that have nothing in common other than they need to be integrated in a time frame. I agree that there are lowers layers and higher layers of integration…but this does not change the fact that the three processes are each necessary to make a movement that is not “random”, that is a movement initiated without a known target, a known goal or both before the movement started.

About the reward function: The brain has in fact two “reward” functions:
One is salience which satisfy the need (prioritized as feelings)
The other is more like “reward - punishment”…it is the accumulation of degrees of freedom from any type of resources. These can be used to create salience.
It is like having money in the bank and spending them on food and fun…money is a net reward and food and fun i salience…both functions must be present if a decision to move should have any biological purpose related to survival for the next NOW.

I hope what i write is understandable, else ask me questions, so I can explain in more detail.
Regards
Finn

1 Like

Think we can agree to disagree… I don’t want to take the conversation off topic :slight_smile:

Or we could request to have it split into a separate topic about goal-oriented behavior. I’m happy to discuss further when it is not detracting from the discussion about generating allocentric location signal.

@fine2100, and @Paul_Lamb, you guys are generating some amazing thoughts on goal orientated behavior! i’d love to see where this might go, in the event that someone wishes to break it out into a separate forum post! :slight_smile:

(Side note: from reading both of your discussions, i’d have to agree with paul. i’d love to give my rationale in a separate thread if you guys are interested.)

1 Like

good question, @fine2100. from the neuroscience i know, all neurons in a local neighborhood “share an ion pool” with their neighbors, by nature of being close to one another. (this causes the cells with the highest depolarizations value to fire before its neighbors, and inhibit them.) i might be wrong on this little detail, though.

for the neuroscience junkies out there, another idea parallel, but contrasting, to the mechanism of CIUI, is one of GABA (an inhibitory neurotransmitter) input connections to all cells within a layer, which could be the mechanism for the inhibition required in both the inference and pooling layer.

…the reason i haven’t been completely on board with this explanation yet, is mainly the appearance of Cajal-Rezues cells (or whatever they are called, i forget their exact name), which are GABAergic cells in layer 1. (in fact these are the only cells in layer 1) because of their unique location, i would personally be inclined to pin them as a “timing/synchronization” mediator. given this, it is quite possible that all GABAergic neurons in the cortex have mainly to do with “timing/synchronization” (where “timing/synchronization” simply means that the brain is trying to make cortical neuron fire roughly at the same time, so that everything works. this is sorta like the function of a clock in a computer).

1 Like

While this is within the realm of possibility, for what it’s worth, the majority opinion in the field is that inhibitory neurons do contribute significantly to the regulation of activity activity levels (active gain control), and many consider that their main function. And given how hard it is to balance the activity of simulated spiking networks with passive measures like ion pools, I’m inclined to agree with the consensus. However, the diversity of different types of inhibitory cells in the cortex is staggering, so it’s certainly possible that some might serve a timing role.

It’s possible to chemically neutralize GABA activity in vivo, so I’m sure looking through the literature will suggest specific details on the roles of different types of GABA cells. If I recall correctly, the main result of large-scale GABA neutralization is uncontrolled seizure activity, in line with the active gain control hypothesis.

1 Like

very good points! actually, based on what you said, i will have to agree with your opinion, actually. with the abundance of the types of GABA neurons in the cortex, its probable that some serve the role of timing/synchronization, (such as the cajal-retzius cells) whereas others, (perhaps the majority) serve a role in gain control.

however, in terms of a very minimal and very local effect, i still have a hunch that CIUI plays a (possibly small) role in the local "inhibition"of neurons to the extent that “unpredicted inputs will have more cells active than predicted ones”. this, i feel is where CIUI has a place, as opposed to the large scale balancing of spiking networks, and/or gain control, which as you correctly said, is a bit beyond the scope of the capabilities of CIUI.

1 Like