Package network.aika.neuron
Class INeuron
- java.lang.Object
-
- network.aika.AbstractNode<Neuron>
-
- network.aika.neuron.INeuron
-
public class INeuron extends AbstractNode<Neuron> implements java.lang.Comparable<INeuron>
TheINeuronclass represents a internal neuron implementation in Aikas neural network and is connected to other neurons through input synapses and output synapses. The activation value of a neuron is calculated by computing the weighted sum (input act. value * synapse weight) of the input synapses, adding the bias to it and sending the resulting value through a transfer function (the upper part of tanh).The neuron does not store its activationsBySlotAndPosition by itself. The activation objects are stored within the logic nodes. To access the activationsBySlotAndPosition of this neuron simply use the member variable
nodeor use the methodgetFinalActivations(Document doc)to ge the final activationsBySlotAndPosition of this neuron.- Author:
- Lukas Molzberger
-
-
Nested Class Summary
Nested Classes Modifier and Type Class Description static classINeuron.ActKeystatic classINeuron.SynapseSummarystatic classINeuron.Type
-
Field Summary
Fields Modifier and Type Field Description static booleanALLOW_WEAK_NEGATIVE_WEIGHTSstatic INeuronMAX_NEURONstatic INeuronMIN_NEURONjava.util.Set<java.lang.Integer>slotHasInputsjava.util.Set<java.lang.Integer>slotRequiredstatic doubleWEIGHT_TOLERANCE-
Fields inherited from class network.aika.AbstractNode
lastUsedDocumentId, modified, provider
-
-
Constructor Summary
Constructors Constructor Description INeuron(Model m, java.lang.String label, java.lang.String outputText, INeuron.Type type, ActivationFunction actF)
-
Method Summary
All Methods Static Methods Instance Methods Concrete Methods Modifier and Type Method Description booleanaddActivation(Activation act)ActivationaddInput(Document doc, Activation.Builder input)Propagate an input activation into the network.voidaddRequiredSlot(int slot)booleancheckRequiredSlots(Document doc, java.util.SortedMap<java.lang.Integer,Position> slots)voidclearActivations()voidclearActivations(int threadId)voidclearActivations(Document doc)voidcommit(java.util.Collection<Synapse> modifiedSynapses)intcompareTo(INeuron n)ActivationFunctiongetActivationFunction()java.util.stream.Stream<Activation>getActivations(Document doc)java.util.stream.Stream<Activation>getActivations(Document doc, boolean onlyFinal)java.util.stream.Stream<Activation>getActivations(Document doc, int slot, Position pos, boolean onlyFinal)java.util.stream.Stream<Activation>getActivations(Document doc, int fromSlot, Position fromPos, boolean fromInclusive, int toSlot, Position toPos, boolean toInclusive)java.util.Collection<Activation>getActivations(Document doc, java.util.SortedMap<java.lang.Integer,Position> slots)doublegetBias()<T extends Writable>
TgetExtension()Provider<OrNode>getInputNode()java.util.Collection<Synapse>getInputSynapses()java.lang.StringgetLabel()doublegetNewBias()intgetNewSynapseId()Provider<InputNode>getOutputNode()java.util.Map<java.lang.Integer,Relation>getOutputRelations()java.lang.StringgetOutputText()java.util.Collection<Synapse>getPassiveInputSynapses()INeuron.SynapseSummarygetSynapseSummary()INeuron.TypegetType()booleanisEmpty(Document doc)booleanisPassiveInputNeuron()ActivationlookupActivation(Document doc, java.util.SortedMap<java.lang.Integer,Position> slots, java.util.function.Predicate<Activation.Link> filter)voidpropagate(Activation act)voidreactivate()voidreadFields(java.io.DataInput in, Model m)Deserialize the fields of this object fromin.static INeuronreadNeuron(java.io.DataInput in, Neuron p)voidregister(Activation act)voidregisterPassiveInputSynapse(Synapse s)voidregisterSynapseId(java.lang.Integer synId)voidremove()voidsetBias(double b)voidsetOutputNode(Provider<InputNode> node)voidsetOutputText(java.lang.String outputText)intsize(Document doc)voidsuspend()java.lang.StringtoString()java.lang.StringtoStringWithSynapses()voidupdateBiasDelta(double biasDelta)voidwrite(java.io.DataOutput out)Serialize the fields of this object toout.-
Methods inherited from class network.aika.AbstractNode
getProvider, read, setModified
-
-
-
-
Field Detail
-
ALLOW_WEAK_NEGATIVE_WEIGHTS
public static boolean ALLOW_WEAK_NEGATIVE_WEIGHTS
-
WEIGHT_TOLERANCE
public static double WEIGHT_TOLERANCE
-
MIN_NEURON
public static final INeuron MIN_NEURON
-
MAX_NEURON
public static final INeuron MAX_NEURON
-
slotHasInputs
public java.util.Set<java.lang.Integer> slotHasInputs
-
slotRequired
public java.util.Set<java.lang.Integer> slotRequired
-
-
Constructor Detail
-
INeuron
public INeuron(Model m, java.lang.String label, java.lang.String outputText, INeuron.Type type, ActivationFunction actF)
-
-
Method Detail
-
getLabel
public java.lang.String getLabel()
-
getType
public INeuron.Type getType()
-
getSynapseSummary
public INeuron.SynapseSummary getSynapseSummary()
-
getOutputRelations
public java.util.Map<java.lang.Integer,Relation> getOutputRelations()
-
getInputSynapses
public java.util.Collection<Synapse> getInputSynapses()
-
getPassiveInputSynapses
public java.util.Collection<Synapse> getPassiveInputSynapses()
-
addRequiredSlot
public void addRequiredSlot(int slot)
-
getActivationFunction
public ActivationFunction getActivationFunction()
-
getExtension
public <T extends Writable> T getExtension()
-
addActivation
public boolean addActivation(Activation act)
-
getActivations
public java.util.stream.Stream<Activation> getActivations(Document doc)
-
isEmpty
public boolean isEmpty(Document doc)
-
size
public int size(Document doc)
-
clearActivations
public void clearActivations(Document doc)
-
getActivations
public java.util.stream.Stream<Activation> getActivations(Document doc, int slot, Position pos, boolean onlyFinal)
-
clearActivations
public void clearActivations()
-
clearActivations
public void clearActivations(int threadId)
-
getActivations
public java.util.stream.Stream<Activation> getActivations(Document doc, int fromSlot, Position fromPos, boolean fromInclusive, int toSlot, Position toPos, boolean toInclusive)
-
getActivations
public java.util.stream.Stream<Activation> getActivations(Document doc, boolean onlyFinal)
-
getActivations
public java.util.Collection<Activation> getActivations(Document doc, java.util.SortedMap<java.lang.Integer,Position> slots)
-
setOutputText
public void setOutputText(java.lang.String outputText)
-
getOutputText
public java.lang.String getOutputText()
-
addInput
public Activation addInput(Document doc, Activation.Builder input)
Propagate an input activation into the network.- Parameters:
doc- The current documentinput-
-
commit
public void commit(java.util.Collection<Synapse> modifiedSynapses)
-
checkRequiredSlots
public boolean checkRequiredSlots(Document doc, java.util.SortedMap<java.lang.Integer,Position> slots)
-
lookupActivation
public Activation lookupActivation(Document doc, java.util.SortedMap<java.lang.Integer,Position> slots, java.util.function.Predicate<Activation.Link> filter)
-
remove
public void remove()
-
getNewSynapseId
public int getNewSynapseId()
-
registerSynapseId
public void registerSynapseId(java.lang.Integer synId)
-
propagate
public void propagate(Activation act)
-
compareTo
public int compareTo(INeuron n)
- Specified by:
compareToin interfacejava.lang.Comparable<INeuron>
-
write
public void write(java.io.DataOutput out) throws java.io.IOExceptionDescription copied from interface:WritableSerialize the fields of this object toout.
-
readFields
public void readFields(java.io.DataInput in, Model m) throws java.io.IOExceptionDescription 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:
java.io.IOException
-
suspend
public void suspend()
- Overrides:
suspendin classAbstractNode<Neuron>
-
reactivate
public void reactivate()
- Overrides:
reactivatein classAbstractNode<Neuron>
-
setBias
public void setBias(double b)
-
updateBiasDelta
public void updateBiasDelta(double biasDelta)
-
getBias
public double getBias()
-
getNewBias
public double getNewBias()
-
register
public void register(Activation act)
-
readNeuron
public static INeuron readNeuron(java.io.DataInput in, Neuron p) throws java.io.IOException
- Throws:
java.io.IOException
-
isPassiveInputNeuron
public boolean isPassiveInputNeuron()
-
registerPassiveInputSynapse
public void registerPassiveInputSynapse(Synapse s)
-
toString
public java.lang.String toString()
- Overrides:
toStringin classjava.lang.Object
-
toStringWithSynapses
public java.lang.String toStringWithSynapses()
-
-