CCNBook/Sims/Networks/Necker Cube

From Computational Cognitive Neuroscience Wiki
Jump to: navigation, search
CCNBook/Sims/Networks/Necker Cube
Project Name necker_cube
Filename File:necker cube.proj Open Project in emergent
Author Randall C. O'Reilly
Publication OReillyMunakataFrankEtAl12
First Published Jul 28 2016
Tags Constraint Satisfaction, Settling, Harmony, Energy Minimization, Adaptation
Description Simulates the competition between two interepretations of the Necker Cube, and the constraint-satisfaction process of settling into one interpretation.
Updated 28 July 2016, 6 September 2016, 13 January 2017, 11 January 2018
Versions 8.0.0, 8.0.2, 8.0.3, 8.0.6
Emergent Versions 8.0.0, 8.0.4, 8.5.0
Other Files File:NeckerCubeNet.wts

Back to CCNBook/Sims/All or Networks Chapter.


The Necker cube -- panel a shows the ambiguous "transparent" version, while panels b and c show the two possible interpretations of the ambiguous version. If you stare at panel a long enough, you will alternate between these two versions.

This simulation explores the use of constraint satisfaction in processing ambiguous stimuli. The example we will use is the Necker cube, which is shown in the figure to the right, 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.

It is recommended that you click here to undock this document from the main project window. Use the Window menu to find this window if you lose it, and you can always return to this document by browsing to this document from the docs section in the left browser panel of the project's main window.
First, the units must be positioned to fit the necker cube diagram -- hit Position Units Run in the ControlPanel.

In the Network view, you should see two "cubes" having units at each vertex. Each cube represents one of the two possible interpretations (the left cube corresponding to panel b and the right to panel c in the adjacent figure). 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 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.

Try the following values of noise.var in the ControlPanel: 0, .1, .01, .001.

Question 3.5: Report what differences you observed in the settling behavior of the network for the different values of noise (0, .1, .01, .001), and explain what this tells you about how noise is affecting the process

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 or adaptation, and is a well established property of neurons that was covered in the Neuron Chapter of the textbook (see Temporal Dynamics for details).

To turn on adaptation (using the standard AdEx parameters), turn the on button in the adapt field on, and also set the quarter_cycles to 250 instead of 25 (gives it more cycles to run so you can see the effects).

You should observe a few oscillations from one cube to the next as the neurons get tired.

You may now close the project (use the window manager close button on the project window or File/Close Project menu item) and then open a new one, or just quit emergent entirely by doing Quit emergent menu option or clicking the close button on the root window.