Class Synapse
- java.lang.Object
-
- network.aika.neuron.Synapse
-
- All Implemented Interfaces:
Writable
public class Synapse extends Object implements Writable
TheSynapseclass connects two neurons with each other. When propagating an activation signal, the weight of the synapse is multiplied with the activation value of the input neurons activation. The result is then added to the output neurons weighted sum to compute the output activation value. In contrast to a conventional neural network synapses in Aika do not just propagate the activation value from one neuron to the next, but also structural information like the text range and the relational id (e.g. word position) and also the interpretation to which the input activation belongs. To determine in which way the structural information should be propagated synapses in Aika possess a few more properties.The properties
relativeRidandabsoluteRiddetermine either the relative difference between theridof the input activation and the rid of the output activation or require a fixed rid as input.The properties range match, range mapping and range output manipulate the ranges. The range match determines whether the input range begin or end is required to be equal, greater than or less than the range of the output activation. The range mapping can be used to map for example an input range end to an output range begin. Usually this simply maps begin to begin and end to end. The range output property is a boolean flag which determines whether the input range should be propagated to the output activation.
Furthermore, the property
isRecurrentspecifies if this synapse is a recurrent feedback link. Recurrent feedback links can be either negative or positive depending on the weight of the synapse. Recurrent feedback links kind of allow to use future information as inputs of a current neuron. Aika allows this by making assumptions about the recurrent input neuron. The classSearchNodemodifies these assumptions until the best interpretation for this document is found.- Author:
- Lukas Molzberger
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classSynapse.BuilderTheBuilderclass is just a helper class which is used to initialize a neuron.classSynapse.InvalidInhibitoryNeuronSynapsestatic classSynapse.Statestatic interfaceSynapse.SynapseFactory
-
Field Summary
Fields Modifier and Type Field Description static Comparator<Synapse>INPUT_SYNAPSE_COMPstatic intOUTPUTstatic Comparator<Synapse>OUTPUT_SYNAPSE_COMPstatic doubleTOLERANCE
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description voidcommit()doublecomputeMaxRelationWeights()doublecomputeRelationWeights(Link l)static SynapsecreateOrReplace(Document doc, Integer synapseId, Neuron inputNeuron, Neuron outputNeuron, Synapse.SynapseFactory synapseFactory)booleanexists()IntegergetId()NeurongetInput()doublegetLimit()doublegetLimit(Synapse.State s)doublegetLimitDelta()doublegetMaxInputValue()doublegetNewLimit()doublegetNewWeight()NeurongetOutput()RelationgetRelationById(Integer id)Map<Integer,Relation>getRelations()doublegetWeight()doublegetWeight(Synapse.State s)doublegetWeightDelta()booleanisIdentity()booleanisInactive()booleanisInactive(Synapse.State s)booleanisNegative(Synapse.State s)booleanisRecurrent()booleanisWeak(Synapse.State state)booleanisWeakIntern(Synapse.State state)booleanisZero()voidlink()booleanlinksAnyOutput()voidreadFields(DataInput in, Model m)Deserialize the fields of this object fromin.voidsetIdentity(boolean identity)voidsetInactive(Synapse.State s, boolean inactive)voidsetRecurrent(boolean recurrent)voidsetRelations(Map<Integer,Relation> relations)StringtoString()voidunlink()voidupdate(Document doc, double weight, double limit)voidupdateDelta(Document doc, double weightDelta, double limitDelta)voidwrite(DataOutput out)Serialize the fields of this object toout.
-
-
-
Field Detail
-
OUTPUT
public static final int OUTPUT
- See Also:
- Constant Field Values
-
TOLERANCE
public static double TOLERANCE
-
INPUT_SYNAPSE_COMP
public static final Comparator<Synapse> INPUT_SYNAPSE_COMP
-
OUTPUT_SYNAPSE_COMP
public static final Comparator<Synapse> OUTPUT_SYNAPSE_COMP
-
-
Method Detail
-
getInput
public Neuron getInput()
-
getOutput
public Neuron getOutput()
-
getId
public Integer getId()
-
isRecurrent
public boolean isRecurrent()
-
setRecurrent
public void setRecurrent(boolean recurrent)
-
isIdentity
public boolean isIdentity()
-
setIdentity
public void setIdentity(boolean identity)
-
isInactive
public boolean isInactive()
-
isInactive
public boolean isInactive(Synapse.State s)
-
setInactive
public void setInactive(Synapse.State s, boolean inactive)
-
getWeight
public double getWeight()
-
getLimit
public double getLimit()
-
getNewWeight
public double getNewWeight()
-
getNewLimit
public double getNewLimit()
-
getWeight
public double getWeight(Synapse.State s)
-
getLimit
public double getLimit(Synapse.State s)
-
getWeightDelta
public double getWeightDelta()
-
getLimitDelta
public double getLimitDelta()
-
link
public void link()
-
unlink
public void unlink()
-
getMaxInputValue
public double getMaxInputValue()
-
exists
public boolean exists()
-
commit
public void commit()
-
isZero
public boolean isZero()
-
computeRelationWeights
public double computeRelationWeights(Link l)
-
computeMaxRelationWeights
public double computeMaxRelationWeights()
-
isWeak
public boolean isWeak(Synapse.State state)
-
isWeakIntern
public boolean isWeakIntern(Synapse.State state)
-
updateDelta
public void updateDelta(Document doc, double weightDelta, double limitDelta)
-
update
public void update(Document doc, double weight, double limit)
-
isNegative
public boolean isNegative(Synapse.State s)
-
write
public void write(DataOutput out) throws IOException
Description copied from interface:WritableSerialize the fields of this object toout.- Specified by:
writein interfaceWritable- Parameters:
out-DataOuputto serialize this object into.- Throws:
IOException
-
readFields
public void readFields(DataInput in, Model m) throws IOException
Description copied from interface:WritableDeserialize the fields of this object fromin.For efficiency, implementations should attempt to re-use storage in the existing object where possible.
- Specified by:
readFieldsin interfaceWritable- Parameters:
in-DataInputto deseriablize this object from.- Throws:
IOException
-
createOrReplace
public static Synapse createOrReplace(Document doc, Integer synapseId, Neuron inputNeuron, Neuron outputNeuron, Synapse.SynapseFactory synapseFactory)
-
linksAnyOutput
public boolean linksAnyOutput()
-
-