public class Synapse extends Object implements Writable
Synapse class 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
in Aika synapses 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 posses
a few more properties.
The properties relativeRid and absoluteRid determine either the relative difference between
the rid of 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 isRecurrent specifies 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 class SearchNode modifies these assumptions until the best interpretation
for this document is found.| Modifier and Type | Class and Description |
|---|---|
static class |
Synapse.Key |
| Modifier and Type | Field and Description |
|---|---|
Neuron |
input |
static Comparator<Synapse> |
INPUT_SYNAPSE_BY_WEIGHTS_COMP |
static Comparator<Synapse> |
INPUT_SYNAPSE_COMP |
InputNode |
inputNode |
Synapse.Key |
key |
double |
maxLowerWeightsSum |
Neuron |
output |
static Comparator<Synapse> |
OUTPUT_SYNAPSE_COMP |
double |
w |
| Constructor and Description |
|---|
Synapse() |
Synapse(Neuron input) |
Synapse(Neuron input,
Synapse.Key key) |
| Modifier and Type | Method and Description |
|---|---|
static int |
compareWeights(Double a,
Double b,
double tolerance) |
void |
link(Document doc) |
static Synapse |
read(DataInput in,
Document doc) |
void |
readFields(DataInput in,
Document doc)
Deserialize the fields of this object from
in. |
String |
toString() |
void |
write(DataOutput out)
Serialize the fields of this object to
out. |
public static final Comparator<Synapse> INPUT_SYNAPSE_BY_WEIGHTS_COMP
public static final Comparator<Synapse> INPUT_SYNAPSE_COMP
public static final Comparator<Synapse> OUTPUT_SYNAPSE_COMP
public Neuron input
public Neuron output
public InputNode inputNode
public Synapse.Key key
public double w
public double maxLowerWeightsSum
public Synapse()
public Synapse(Neuron input)
public Synapse(Neuron input, Synapse.Key key)
public void link(Document doc)
public void write(DataOutput out) throws IOException
Writableout.write in interface Writableout - DataOuput to serialize this object into.IOExceptionpublic void readFields(DataInput in, Document doc) throws IOException
Writablein.
For efficiency, implementations should attempt to re-use storage in the existing object where possible.
readFields in interface Writablein - DataInput to deseriablize this object from.IOExceptionpublic static Synapse read(DataInput in, Document doc) throws IOException
IOExceptionCopyright © 2017. All rights reserved.