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
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 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.Builder
The
Builder class is just a helper class which is used to initialize a neuron. |
static class |
Synapse.Key |
| Modifier and Type | Field and Description |
|---|---|
double |
bias |
double |
biasDelta |
Neuron |
input |
static Comparator<Synapse> |
INPUT_SYNAPSE_COMP |
Provider<InputNode> |
inputNode |
boolean |
isConjunction
The synapse is stored either in the input neuron or the output neuron
depending on whether it is a conjunctive or disjunctive synapse.
|
Synapse.Key |
key |
MetaSynapse |
meta |
Neuron |
output |
static Comparator<Synapse> |
OUTPUT_SYNAPSE_COMP |
boolean |
toBeDeleted |
double |
weight
The weight of this synapse.
|
double |
weightDelta
The weight delta of this synapse.
|
| Constructor and Description |
|---|
Synapse() |
Synapse(Neuron input,
Neuron output) |
Synapse(Neuron input,
Neuron output,
Synapse.Key key) |
| Modifier and Type | Method and Description |
|---|---|
void |
changeBias(double bd) |
static Synapse |
createOrLookup(Synapse.Key synapseKey,
Neuron inputNeuron,
Neuron outputNeuron) |
boolean |
exists() |
double |
getNewBias() |
double |
getNewWeight() |
boolean |
isConjunction(boolean v) |
boolean |
isNegative() |
void |
link() |
static Synapse.Key |
lookupKey(Synapse.Key k) |
static Synapse |
read(DataInput in,
Model m) |
void |
readFields(DataInput in,
Model m)
Deserialize the fields of this object from
in. |
void |
setBias(double b) |
String |
toString() |
void |
unlink() |
void |
write(DataOutput out)
Serialize the fields of this object to
out. |
public static final Comparator<Synapse> INPUT_SYNAPSE_COMP
public static final Comparator<Synapse> OUTPUT_SYNAPSE_COMP
public Neuron input
public Neuron output
public Synapse.Key key
public double weight
public double weightDelta
public double bias
public double biasDelta
public boolean toBeDeleted
public boolean isConjunction
public MetaSynapse meta
public Synapse()
public Synapse(Neuron input, Neuron output, Synapse.Key key)
public void link()
public void unlink()
public boolean exists()
public boolean isConjunction(boolean v)
public boolean isNegative()
public void changeBias(double bd)
public void setBias(double b)
public void write(DataOutput out) throws IOException
Writableout.write in interface Writableout - DataOuput to serialize this object into.IOExceptionpublic void readFields(DataInput in, Model m) 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, Model m) throws IOException
IOExceptionpublic static Synapse.Key lookupKey(Synapse.Key k)
public static Synapse createOrLookup(Synapse.Key synapseKey, Neuron inputNeuron, Neuron outputNeuron)
public double getNewWeight()
public double getNewBias()
Copyright © 2018. All rights reserved.