Hey habe wieder einmal Lust bekommen mich mit Neuronalen Netzwerken zu beschäftigen und würde gerne für ein zwei Spielereien LSTM implementieren dabei kam mir folgende Idee für ein Memory Neuron.
Es gibt zwei Weight-Sets für den vorstehenden Layer eines für die Aktivierungsfunktion und das zweite für das „Update Gate“.
Es wird geprüft ob die erste Aktivierungsfunktion > 0 ist falls ja wird der Wert(T) des Neuron mit einer zweiten Funktion aktualisiert und ausgegeben bis das „Update Gate“ wieder schaltet.

Also an sich funktioniert das Konstrukt auch jedoch werden bei regulären LSTM die Werte noch mit einander Addiert oder Multipliziert (Aktueller Input und Gespeicherter Input) oder gemeinsam für Aktivierungsfunktionen genutzt.
Ich würde gerne wissen welche konkreten Vorteile ergeben sich bei der Nutzung einer regulären LSTM Zelle besonders weshalb es sich lohnt den gespeicherten Wert zusammen mit dem Aktuellen zu Nutzen um den neuen Output zu bilden.
Es gibt zwei Weight-Sets für den vorstehenden Layer eines für die Aktivierungsfunktion und das zweite für das „Update Gate“.
Es wird geprüft ob die erste Aktivierungsfunktion > 0 ist falls ja wird der Wert(T) des Neuron mit einer zweiten Funktion aktualisiert und ausgegeben bis das „Update Gate“ wieder schaltet.

C#:
double activationValue = 0;
for (int i = 0; i < parentLayer.Length; i++)
activationValue += parentLayer[i].Delta * weightSecondGate[i] * biasSecondGate[i];
if (System.Math.Tanh(activationValue) > 0)
{
activationValue = 0;
for (int i = 0; i < parentLayer.Length; i++)
activationValue += parentLayer[i].Delta * Weight[i] * Bias[i];
delta = System.Math.Tanh(activationValue);
}
Ich würde gerne wissen welche konkreten Vorteile ergeben sich bei der Nutzung einer regulären LSTM Zelle besonders weshalb es sich lohnt den gespeicherten Wert zusammen mit dem Aktuellen zu Nutzen um den neuen Output zu bilden.