The Interactive Activation and Competition Mechanism

The activations of each of the units can be thought of as the "degree of belief" in that hypothesis or the existence of that feature. The weights are then an indication of how strongly belief in one hypothesis or feature implies belief in another hypothesis or feature. The Interactive Activation and Competition mechanism, embodied primarily in the activation function, is a cyclic process of updating the belief in a hypothesis according to existing evidence.

Consider a single unit. The evidence on whether it should increase or decrease its activation comes from its incoming weights. If most of the active units in the network (i.e. the hypotheses that the net believes are true) are connected to this unit with positive weights, then we should increase its activation. If most of the active units are connected to this unit with negative weights then its activation should be decreased. The net input function does this by multiplying each of the incoming weights by the level of activation of its unit and adding these values [1]. So the net input for unit i is:

neti = wijaj

where wij is the weight from unit j to unit i and aj is the activation of unit j.

Once the net input has been calculated for all units, activations are updated according to the following equation:

if (neti > 0)
ai = (max - a i) neti - decay (ai - rest)
Otherwise,
ai = (a i - min) neti - decay (ai - rest)

where ai is the amount by which we change ai.

The most important part of this equation is neti which determines whether the activation of unit i will increase or decrease. If neti is positive the evidence that this unit should be on is strong and the activation will increase. If it is negative the activation will decrease.

If the activation of a unit is equal to max then the net believes the hypothesis completely. If it is equal to min then the net disbelieves the hypothesis completely. The rest corresponds to an "I don't know state". The (max - a i) or (a i - min) terms ensure that the activation remains between min and max and doesn't continue to either grow or shrink without bound [2]. The -decay (ai - rest) part of the equation forces the activation to return to the rest value in the absence of external input.

Typically, we choose max > 0 >= rest >= min. By default max is set to 1, min is set to -0.2, rest is set to -0.1 and decay is 0.1. To change any of these parameters you first create a global value for that parameter by selecting the appropriate item from the Actions menu. Using the arrow tool you can select that global value and alter its value in the parameter panel at the bottom of the screen. Make sure that you hit return to make the value change.

IAC networks exhibit a number of interesting dynamics including:

  1. Decay: the tendency for a unit to return to the rest value.
  2. Boundaries: the tendency for a unit to remain between the max and min values.
  3. Equilibrium: the point to which a network will settle.
  4. Competition: the tendency for units connected by negative weights to turn each other off. A unit that begins with a small advantage eventually "wins" the competition and becomes active at the expense of the other units in the pool.
  5. Resonance: the tendency for units connected by positive weights to make each other active and keep each other active in the face of external competition.
  6. Blocking and Hysteresis: the ability of one active unit to stop a unit to which it is connected with a negative weight from becoming active.
  7. Oscillation: the ability of some networks turn on and off on consecutive timesteps and never settle to a stable point.
In the next section we will examine these dynamics. Readers wishing to by pass the mathematical detail at this point might like to skip to the section entitled "Back to the Jets and Sharks Network".

The Dynamics of IAC Networks

We can get a feel for the dynamics outlined above by considering a number of special cases:

Decay: Consider what happens when the net input to a unit is zero (i.e. neti = 0) so that a unit is only subject to the effect of decay. The "otherwise" clause of the if is taken which reduces to -decay (ai - rest). If the current activation is above rest then ai is a negative value which moves the activation down. If the current activation is below rest then ai is positive moving the value up. If ai = rest then there will be no change, that is, the activation will have settled on the rest value.


Figure 2: IAC network demonstrating decay.
Exercise 3: To see decay in action consider an IAC network with just one unit (see figure 2). Activate the unit and run 50 cycles. Describe how the value of the unit decreases and record the level at which it asymptotes.

Boundaries: The activation function is designed to automatically constrain the activation to be between max and min. To see why suppose the decay value is set to zero. Since it has the effect of moving the activation towards rest which lies between min and max ignoring it will not affect the argument. Now, if the net input is positive and ai is greater than max then ai = (max - a i) neti which will be negative forcing the activation down below max. If the the net input is negative and ai is less than min then ai = (a i - min) neti which will be positive forcing the activation above min.


Figure 3: IAC network demonstrating boundaries.
Exercise 4: To see how the boundaries operate, consider a network with two units connected by a weight (see figure 3). The "from" unit is set to 1.0 and the "to" unit to 2.0 (outside the boundaries). Run 10 cycles one at a time. How long does it take for the activation to move within the boundaries?

Equilibrium: If the net input to an IAC unit is held fixed the unit will eventually settle to an equilibrium point. We can see where this equilibrium point is by setting ai to zero and solving for ai. Lets suppose that neti is positive.

0 = (max - ai) neti - decay (ai - rest)
decay ai + neti ai = max neti + decay rest
ai = (max neti + decay rest) / (decay + neti)

Assuming max = 1 and rest = 0:

ai = neti / (decay + neti)

or

ai = (neti / decay) / (neti/decay +1)

The later expression shows how decay acts as a scaling factor on the equilibrium point. Note also that regardless of how large the net input becomes the activation at equilibrium is below one. An equivalent analysis is possible when neti is negative (see exercise 6).

Exercise 5: Calculate the equilibrium point when neti = 1, max = 1, min = -0.2, rest = -0.1 and decay = 0.1. Now rerun the previous simulation. Does it settle at the appropriate equilibrium point?

Exercise 6: In the text above the equilibrium point is calculated when neti is fixed and positive. Perform the same calculation for the case where neti is negative.

So far we have been considering single units with fixed net input. As the name suggests, the Interactive Activation and Competition (IAC) network becomes most interesting when multiple units interact. Different dynamics can be established through the interconnection structure and the values of the weights and in the following sections we will examine some of these.

Competition: Placing units in pools where each unit in the pool is connected to each of the other members by negative weights (with no self weights) sets up a competitive dynamic. Small differences in the net input to units in such a pool become amplified as time progresses. Such a dynamic is useful when the units in the pool represent mutually exclusive hypotheses. For instance, in the Jets and Sharks example a gang member cannot be in their 20s and in their 30s or 40s. Consequently, the units in the "Age" pool are connected by negative weights and as processing continues one of them will eventually win.

To see how competition operates suppose that we have two units connected with weights of -1. Unit 1 receives external input (i.e. input from units other than unit 2) of I1 and unit 2 receives external input of I2. Furthermore, lets suppose that decay is zero, the initial activations of the units are zero and max = 1 > I1 > I2 > 0 = min.

At the first time step:

ai = (max - a i) neti - decay (ai - rest)
= (1 - 0) Ii

So a1 = I1 and a2 = I2

At the second timestep:

net1 = I1 - a2 = I1 - I2 and net2 = I2 - a1 = I2 - I1

So: a1 = (1 - I1)(I1 - I2) and a2 = I2 (I2 - I1)

Because 1 - I1 and I2 are positive and I1 > I2: a1 > 0 and a2 < 0. So a1 grows while a2 dies. The stronger a1 becomes the more it inhibits a2. The weaker a2 becomes the less it inhibits a1.


Figure 4: IAC network demonstrating competition between units.
Exercise 7: To see the competitive dynamic in action consider an IAC network with four units (see figure 4). The top two units are connected with weights of -1. The bottom two units provide external input to the top units. The one on the left is set to 0.51 while the one on the right is set to 0.5. So unit 1 has a slight advantage. Do one cycle at a time (for a total of ten cycles) and record how the activations of the two units change.

Resonance: If units are connected by mutually excitatory weights they will tend to make each other active and to keep each other active in the face of decay. This phenomena is called resonance (an analogy to the resonance of waves).

For instance, suppose we have two units connected by excitatory connections with strength 2 x decay. Furthermore, suppose that rest is set to 0 and each unit has an activation of 0.5. How will they change?

ai = (1 - a i) neti - decay ai
= (1 - 0.5) x 0.5 x 2 x decay - decay 0.5
= 0

So the activations will remain at 0.5 indefinitely, that is, the units will resonate. The above example might leave one with the impression that resonance occurs only when the parameters are carefully selected. This is not the case, although usually the units will not come to have exactly the same values as the next exercise demonstrates.


Figure 5: IAC network demonstrating resonance of units.
Exercise 8: Figure 5 shows the the two unit network discussed above. The decay is set to 0.5 and the weights to 1. Rest is set to 0 and the activations of the units are 0.5. Note that he weight from the bottom unit to unit 2 is set to zero, so unit 2 is not receiving input from that unit at this point. Now cycle. The units should retain their initial activations. Now increase the weight from the bottom unit to 1. Now cycle for 40 timesteps. What happens to the activations of the two units?

Blocking and Hysteresis: The initial state of a network can have long term consequences for the way that the units respond to external input. A unit which is initially active can slow down the response of another unit (hysteresis) or in extreme cases block it completely.

Suppose we have two units with mutually inhibitory connections of -2 decay. Unit 1 begins with an activation of 0.5 and both units have external input of decay. Supposing rest is 0:

a1 = (1 - a 1) net1 - decay a1
= (1 - 0.5) decay - decay x 0.5
= 0

a2 = (a 1 - min) net2 - decay a2
= (a 2 - min) (-2 decay x 0.5 + decay) - decay x 0
= 0

The activation of unit 1 will be maintained at 0.5, but despite a positive external input the activation of unit 2 will remain at zero. Unit 2 is being blocked by the activation of the unit 1.


Figure 6: IAC network demonstrating blocking.
Exercise 9: Figure 6 shows network outlined above with rest set to zero, and decay set to 0.3 - so the negative weights are set to -0.6. The bottom unit is set to 0.3 and connected with weights of 1 to both unit 1 and 2. Cycle to demonstrate that unit 2 is blocked by unit 1. Now delete the weight from unit 3 to unit 1 and cycle. What happens to the activation of unit 2?

Oscillation: Up to this point we have concentrated on networks which settle to a steady state of activation. While this is often the case, IAC networks can oscillate (i.e. enter a limit cycle) given the appropriate parameters. Figure 7 shows such a network and Exercise 10 outlines how to construct it.


Figure 7: IAC network demonstrating oscillation.
Exercise 10: The two units in Figure 7 are connected with positive weights of 1 and have self weights of -1. The decay was set to 0 and the minimum to 0. Run 20 cycles. Describe the behaviour of the units.

Exercise 11: Calculate a1 and a2 and explain how the network oscillates.

Back to the Jets and Sharks Network


The BrainWave homepage.