diff --git a/Runtime/Scripts/Core/Synapse.cs b/Runtime/Scripts/Core/Synapse.cs index a0bf74d..5cca04a 100644 --- a/Runtime/Scripts/Core/Synapse.cs +++ b/Runtime/Scripts/Core/Synapse.cs @@ -1,5 +1,6 @@ using System; using UnityEngine; +using Unity.Mathematics; namespace NanoBrain { @@ -31,6 +32,20 @@ namespace NanoBrain { this.weight = weight; } + public virtual void BasicBackPropagation(float error, float learningRate) { + float derivative = error; + switch (neuron.activator) { + case Neuron.ActivationType.Linear: + derivative *= 1; + break; + default: + break; + } + derivative *= math.length(neuron.activation); + + float deltaWeight = learningRate * derivative; + this.weight += deltaWeight; + } } } \ No newline at end of file