CECN1 Necker Cube

From Computational Cognitive Neuroscience Wiki

Jump to: navigation, search

The Necker Cube

Back to CECN1 Projects

Project Documentation

(note: this is a literal copy from the simulation documentation -- it contains links that will not work within the wiki)

Now, lets explore the use of constraint satisfaction in processing ambiguous stimuli. The example we will use is the Necker cube, which is shown in figure 3.28, and can be viewed as a cube in one of two orientations. People tend to oscillate back and forth between viewing it one way versus the other. However, it is very rare that they view it as both at the same time -- in other words, they tend to form a consistent overall interpretation of the ambiguous stimulus. This consistency reflects the action of a constraint satisfaction system that favors interpretations that maximize the constraints imposed by the possible interpretations. Alternatively, we can say that there are two stable attractors, one for each interpretation of the cube, and that the network will be drawn into one or the other of these attractor states.

  • To start, it is usually a good idea to do Object/Edit Dialog in the menu just above this text, which will open this documentation in a separate window that you can more easily come back to. Alternatively, you can always return by clicking on the ProjectDocs tab at the top of this middle panel.

You should see something like Figure 3.29 in the network view, with two "cubes"' having units at each vertex. Each cube represents one of the two possible interpretations (the left cube corresponding to figure 3.28b, and the right to figure 3.28c). All of the units are within one layer, which has the basic kWTA inhibition operating with a k parameter of 8. Thus, only one of the two cubes can be active at any given time under these constraints.

  • As usual, let's examine the weights (select r.wt, click on the units).

Notice that each unit is connected to its local neighborhood of vertices. Thus, when one vertex gets active, it will tend to activate the others, leading to the activation of a consistent interpretation of the entire cube. However, at the same time, the other interpretation of the cube is also activating its vertices, and, via the inhibition, competing to get active.

  • Return to viewing act in the network, and we'll run it. Press Init and Run in the .PanelTab.ControlPanel to view the competition process in action.

During running, both interpretations receive equal but weak amounts of excitatory input. You should see that as the network settles there is some flickering of the units in both cubes, with some wavering of strength back and forth until one cube eventually wins out and is fully active while the other remains inactive.

  • Try Running many times, to see which way it tends to go.

You should note that which cube wins is random. If you are persistent, you should eventually observe a case where part of each cube is activated, instead of one entire cube being active and the other not (warning, this could take hundreds of tries, depending on how fortuitous your random seeds are). When this happens, note the plot of the harmony value in the graph log. It should be substantially below all the other traces that correspond to a consistent solution on one cube. Thus, an inconsistent partial satisfaction of the weight constraints has lower harmony than full satisfaction of the constraints in one cube.

Noise added to the membrane potential is playing an important role in this simulation -- without it, there is nothing to "break the tie" between the two cube interpretations. To see this, let's manipulate the level of noise.


Question 3.16 (a) Report what differences you observed in the settling behavior of the network for these different values. (b) What does this tell you about how noise is affecting the process?


You might also try playing with different activation functions by setting the act_fun parameter.

Finally, one of the important psychological aspects of the Necker cube stimulus is that people tend to oscillate between the two possible interpretations. This probably occurs because the neurons that are activated for one interpretation get tired eventually, allowing the other competing units to become active. This process of neurons getting tired is called accommodation, and is a well established property of neurons that was covered in section 2.9 of the textbook.

  • To turn on accomodation, turn the on button in the acc field on, and also set the cycle_max to 500 instead of 60 (gives it more cycles to run so you can see the effects).

You should observe at least two oscillations from one cube to the next as the neurons get tired.

Personal tools