Eigentlich eine einfache Frage:
Wenn Epsilon 1 ist sollten die Gewichte doch zu 100% angepasst werden oder.
d.h. wenn mein input 2-4-6 ist und meine gewichte 2-4-6 sind kommt ja normal 56 raus
wenn ich aber mit der Delta-Lernregel lerne mit dem soll von 2F und Epsilon von 1F
kommt -2968 raus WTF???? Es sollte doch dann genau 2 rauskommen....
Weiß jemand warumm?
PS: Die Implementierung sollte stimmen (99.999%) 😄
Wenn die Implementierung stimmt, dann stimmt auch das Ergebnis.
Da nützen auch noch so viele Fragezeichen und WTFs nichts. Wenn du in einem Forum Hilfe bekommen willst, dann solltest du schon zeigen und erklären, was du gemacht hast. Siehe dazu [Hinweis] Wie poste ich richtig?
Weeks of programming can save you hours of planning
okey,
erstmal denke ich das die implementation stimmt da ich sie mit einigen beispielen getestet habe in diesen beispielen war epsilon halt immer 0.4 oder 0.01.
Meine Frage war ja eher: ist das so, dass wenn epsilon 1 ist das ergebnis=soll ist. //Gramatik on flieg
Aber hier noch die implementation
public void DeltaLerning(float epsilon, float should) //<<<<< Diese methode wird (für jedes output neuron) aufgerufen
{
float smalDelta = should - GetValue();//output des outputneurons
foreach (Connection c in connections)//connections = liste aller verbindungen
{
c.DeltaLerning(epsilon, smalDelta);//Anpassen aller connections
}
}
//Function in Connection
public void DeltaLerning(float epsilon, float smalDelta)
{
float deltaWeight = epsilon * smalDelta * neuron.GetValue();//neuron = inputneuron
Weight += deltaWeight;
}
Ich kann auch gerne noch den kompletten code des netzes posten