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:
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.
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.
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.
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.
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.
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.
Exercise 11: Calculate a1 and
a2 and explain how the network oscillates.
Back to the Jets and Sharks Network