public class LeakyIntegratorModule extends Module implements java.io.Serializable
Modifier and Type | Class and Description |
---|---|
static class |
LeakyIntegratorModule.SilentInhibition |
Modifier and Type | Field and Description |
---|---|
protected java.util.Map<java.lang.Double,java.util.Set<java.lang.Integer>> |
activeCliqueEvolution |
protected java.util.Set<java.lang.Integer> |
lastActiveClique |
protected java.util.List<java.lang.Double> |
leaks |
protected java.util.List<java.lang.Double> |
membranePotentials |
activities, biases, changeListeners, elapsedTime, elapsedTimeSteps, forwardModules, GENERALIZED_HEBBIAN_LEARNING, HEBBIAN_LEARNING, OJAS_RULE_LEARNING, receptors
Constructor and Description |
---|
LeakyIntegratorModule()
Creates an empty network.
|
LeakyIntegratorModule(double[][] adjacencyMatrix,
double[] activities,
double[] leaks)
Creates a network corresponding to the given adjacency matrix with given
activities and leaks.
|
LeakyIntegratorModule(double[][] adjacencyMatrix,
java.util.Random random)
Creates a network corresponding to the given adjacency matrix with random
activities and leaks.
|
LeakyIntegratorModule(java.io.File file)
Creates a network according to the specified file.
|
LeakyIntegratorModule(int size,
double linkProbability)
Creates an Erdos-Renyi network of size $n$ and edge probability $p$.
|
LeakyIntegratorModule(int size,
double linkProbability,
java.util.Random random)
Creates an Erdos-Renyi network of size $n$ and edge probability $p$.
|
Modifier and Type | Method and Description |
---|---|
void |
addNeuron(double activity) |
protected double |
calculateMembranePotential(int i,
double timeDelta) |
protected void |
calculateOneTimeStep(double deltaTime)
calculates one time step of the simulation calculation
This method has to be implemented by subclasses.
|
static LeakyIntegratorModule |
fromXML(java.io.File file) |
double |
getLeak(int i) |
java.util.List<java.lang.Double> |
getLeaks() |
double |
getMembranePotential(int index)
Gets the membrane potential of a given node.
|
java.util.List<java.lang.Double> |
getMembranePotentials()
Gets the membrane potentials of all nodes.
|
LeakyIntegratorModule.SilentInhibition |
getSilentInhibition() |
void |
normalizeLinks()
Weight edges according the the node’s in-degree: w_{i j} = 1 / deg^-(j)
|
void |
printLogFileHeader(java.io.PrintWriter out)
Prints a file header for the log files.
|
void |
removeNeuron(int index) |
void |
reset() |
void |
setActivities(java.util.List<java.lang.Double> activities)
Sets the activities of all node.
|
void |
setActivity(int index,
double activity)
Sets the activity of a given node.
|
void |
setLeak(int neuron,
double leak) |
void |
setLeaks(double leak)
Sets the leak for the whole network.
|
void |
setMembranePotential(int index,
double membranePotential)
Sets the membrane potential of a given node.
|
void |
setMembranePotentials(double membranePotential)
Sets the membrane potentials of all nodes.
|
void |
setMembranePotentials(java.util.List<java.lang.Double> membranePotentials)
Sets the membrane potentials of all nodes.
|
void |
setSilentInhibition(LeakyIntegratorModule.SilentInhibition silentInhibition) |
double |
transferFunction(double potential,
int neuron)
Maps the membrane potential x ∈ [0, ∞) to the rate coding activity y ∈ [0,
1].
|
java.util.List<java.lang.Double> |
transferFunction(java.util.List<java.lang.Double> potentials)
vectorial form of @see transferFunction
|
double |
transferFunctionInverse(double activity,
int neuron)
inverse of @see transferFunction
|
java.util.List<java.lang.Double> |
transferFunctionInverse(java.util.List<java.lang.Double> activities)
vectorial form of @see transferFunctionInverse
|
void |
updateActivities()
Updates the activities directly.
|
void |
updateActivity(int neuron)
Updates the activities directly.
|
addAfferentModule, addAfferentModule, addBias, addBias, addChangeListener, addForwardModule, addReceptor, exportGraphMLGraph, exportGraphvizGraph, exportGraphvizGraph, exportTGFGraph, exportXfigCircle, exportXfigLattice, getActiveClique, getActivities, getActivity, getAfferentLink, getAfferentLinks, getAfferentModules, getAverageCoordinationNumber, getBias, getBiases, getCliqueGraph, getCliques, getConnectedComponents, getDegreeDistribution, getElapsedTime, getElapsedTimeSteps, getForwardModules, getLearningRate, getLearningRates, getLearningType, getLink, getLinkProbability, getLinks, getName, getNeighbors, getNeighbors, getNodeDegree, getNodeDegrees, getNodeInDegree, getNodeInDegrees, getNodeOutDegree, getNodeOutDegrees, getPositiveLinkAverage, getReceptor, getReceptors, getSize, hasAfferentModule, hasForwardModule, isClique, isLearning, learning, multiplyExhibitoryAndInhibitoryLinksSeparately, notifyStateChanged, performOneTimeStep, removeAfferentModule, removeAfferentModules, removeChangeListener, removeForwardModule, removeForwardModules, setActivities, setAfferentLink, setAfferentLinks, setAfferentLinks, setBias, setBias, setLearning, setLearningRates, setLearningRates, setLearningType, setLink, setLink, setLinks, setName, setNegativeLinks, setPositiveLinkAverage, setPositiveLinks, setSize, toString, writeGraphvizSubgraph, writeGraphvizSubgraph
protected java.util.List<java.lang.Double> leaks
protected java.util.List<java.lang.Double> membranePotentials
protected transient java.util.Set<java.lang.Integer> lastActiveClique
protected transient java.util.Map<java.lang.Double,java.util.Set<java.lang.Integer>> activeCliqueEvolution
public LeakyIntegratorModule(double[][] adjacencyMatrix, double[] activities, double[] leaks)
adjacencyMatrix
- activities
- leaks
- public LeakyIntegratorModule(double[][] adjacencyMatrix, java.util.Random random)
adjacencyMatrix
- public LeakyIntegratorModule(int size, double linkProbability)
size
- The size $n$.linkProbability
- The edge probability $p$.public LeakyIntegratorModule(int size, double linkProbability, java.util.Random random)
size
- The size $n$.linkProbability
- The edge probability $p$.public LeakyIntegratorModule()
public LeakyIntegratorModule(java.io.File file) throws java.io.IOException
file
- java.io.IOException
public static LeakyIntegratorModule fromXML(java.io.File file) throws java.io.IOException
java.io.IOException
protected double calculateMembranePotential(int i, double timeDelta)
i
- timeDelta
- time delta $\Delta t$protected void calculateOneTimeStep(double deltaTime)
Module
calculateOneTimeStep
in class Module
public double transferFunction(double potential, int neuron)
potential
- public java.util.List<java.lang.Double> transferFunction(java.util.List<java.lang.Double> potentials)
public double transferFunctionInverse(double activity, int neuron)
public java.util.List<java.lang.Double> transferFunctionInverse(java.util.List<java.lang.Double> activities)
public void removeNeuron(int index)
removeNeuron
in class Module
public void setActivity(int index, double activity)
setActivity
in class Module
public void setActivities(java.util.List<java.lang.Double> activities)
setActivities
in class Module
public void updateActivity(int neuron)
public void updateActivities()
public double getMembranePotential(int index)
public java.util.List<java.lang.Double> getMembranePotentials()
public void setMembranePotential(int index, double membranePotential)
public void setMembranePotentials(double membranePotential)
public void setMembranePotentials(java.util.List<java.lang.Double> membranePotentials)
public void setLeak(int neuron, double leak)
public void setLeaks(double leak)
leak
- public double getLeak(int i)
public java.util.List<java.lang.Double> getLeaks()
public LeakyIntegratorModule.SilentInhibition getSilentInhibition()
public void setSilentInhibition(LeakyIntegratorModule.SilentInhibition silentInhibition)
public void normalizeLinks()
public void printLogFileHeader(java.io.PrintWriter out)
Module
printLogFileHeader
in class Module