Integrate-and-Fire Neural Networks for Intelligent Agents

View Code

IAF Networks

An Integrate-and-fire (IAF) network is a neural network that functions in real-time and resembles the functionality of a biological neural network more closely than traditional ANNs. IAF networks are well-suited for applications involving online environments because they are unsupervised and learn continuously. Specifically, these networks are designed for intelligent agent applications in which the inputs to the network are sensory data and the outputs are motor commands. However, the total set of applications is far-reaching due to the generality of how the neurons of an IAF network function.

IAF Neurons

The behavior of an IAF neuron is driven by three variables: input, output, and value. Similar to typical neural networks, an input variable is the weighted sum of a neuron’s inputs, and the output is a binary indication as to whether or not the value surpasses the neuron’s threshold. The value of a neuron sets it apart functionally from other forms of neural networks, as it allows for behavior closely resembling biological models. A neuron’s value is accumulated over a short period of time and enables activity occurring at multiple time-steps to affect the response of a neuron.

neuron

Along with repolarization, which is caused by a neuron resetting its value back to zero following an action potential or spike, the behavior of each neuron introduces temporal dynamics to the network. A neuron cannot fire when repolarizing and is therefore briefly inhibited directly after activation. This results in self-organization of firing patterns between connected neurons, endowing the network with inherent time-sensitive attributes that give rise to certain predictive capabilities, apt for real-time applications.

Equations

* NOTE: these are handwritten as the free software I originally used plastering a logo across everything inch of my PDF irreversibly and only after I had saved following > 45 minutes of trying to figure out an unfriendly and disorganized user interface. Anyway, let me know if they are not understandable and I’ll figure out an alternative method.

Input

equations (2)

Output

equations (3)

Value Update

equations (4)

Threshold Update

equations (5)

Weight Update

equations (6)

 

Where xi(t) is the input of the ith neuron at time t,

yi(t) is the output of the ith neuron at t,

vi(t) is the value of the ith neuron at t,

hi is the threshold of the ith neuron,

wij is the weight between the ith and jth neuron,

alpha is the learning rate,

and beta is the decay rate.

Leave a comment