Operatoren Error sum?

dreckKopf

Mitglied
Was berechnet das?

Java:
    private static double calc(double... ds) {
    double squaredErrorSum = 0.0;
    double weightSum = 0.0;
    int valueCount = ds.length;

    for (int t = 0; t < valueCount; t++) {
      double error = ds[t];
      double weight = t + 1.0;
      squaredErrorSum += weight * error * error;
      weightSum += weight;
    }
    return squaredErrorSum / weightSum;
  }
 
Das Quadrat eines Mittelwerts von Fehlern mit Gewichtung.
Formel Mittelwert = (x1 + x2 + .. xn)/n.
Hier werden die Fehler aber gewichtet.
(e1*1+e2*2+e3*3)/(1+2+3)
Das bedeutet der erste Fehlerwert zählt einfach der 2te Fehlerwert zweifach usw.
Da die Abweichung aber auch negativ sein kann wird der Fehler zuvor quadriert damit sich negative und positive Fehler in der Summe nicht gegenseitig aufheben.
 
So weit bin ich:
Eine Loss Function (Verlustfunktion oder Kostenfunktion) misst die Abweichung zwischen den Vorhersagen eines künstlichen neuronalen Netzes (ANN) und den tatsächlichen Zielwerten. Sie liefert eine einzelne Zahl (den Fehlerwert), die dem Netz signalisiert, wie schlecht oder gut es aktuell performt.

Ziel des gesamten Lernprozesses ist es, diesen Fehlerwert durch Anpassung der Gewichte im Netz so nah wie möglich an 0 zu bringen.
 
Anhand dieser Bewertung müsste man dann die Gewichtungen und bias der Knoten wiederholt einstellen und wieder prüfen - dein Gehirn lernt. Zumindest verstehe ich das grad so. Wie man das alles umsetzt muss ich mir aber auch erst noch erarbeiten - das Thema ist neu für mich. ☕
 
Zuletzt bearbeitet:
Ziel des gesamten Lernprozesses ist es, diesen Fehlerwert durch Anpassung der Gewichte im Netz so nah wie möglich an 0 zu bringen.
Nein, Ziel ist, ein ideales Lernplateau zu erreichen und dann abzubrechen. Ein ideales Lernplateau liegt zwischen +Infinity (kein Lernen, unterfüttert) und 0 (1:1-Kopie der Wiedergabe des Gelernten, überfüttert). Es gibt dafür keinen festen Wert. Man muss sich den Verlauf ansehen, also den Gradienten der Lernfehler, und dann die bestmögliche Trainingsepoche auswählen...

Beispiele:
Training: Wenn es regnet, ist die Straße nass.
Prompt: Wenn es nicht regnet, dann?
Antwort bei Überfütterung: Dann ist die Straße trocken.
Antwort bei idealem Lernplateau: Dann ist die Straße wahrscheinlich trocken. Sie kann aber auch nass sein, wenn es kürzlich geregnet hat.

Der Rest ist aber richtig...
 
Nen intelligentes künstliches Gehirn würde bei solch einer Frage die Gegenfrage stellen ob der Fragesteller halluziniert.👊😃

Aber das Konzept ist erstmal jetzt klar soweit 😸
 
Zuletzt bearbeitet:
Jedenfalls, was ich sagen wollte, gilt die Closed-World Assumption (CWA) im Allgemeinen bei Implikationen bzw. bei der Umkehrung von Implikation (wenn nicht A, dann auch nicht B) nicht... Das sollte ein ANN also erkennen bzw. lernen... Das Regen-Straße-Nass-Szenario war hierbei nur ein Beispiel, worunter sich alle etwas vorstellen können.
 
Gut das du das erwähnst. Die Prinzipien von CWA (nicht zu verwechseln mit Convolutional Weight Vector) und OWA(Open-World Assumption) sind sehr interessant.
 
Zuletzt bearbeitet:
Ja, besonders interessant ist, dass in der Logik bzw. Aussagenlogik aus: Wenn A, dann B, i.d.R. nicht automatisch: Wenn nicht A, dann nicht B (Kontraposition), folgt - aber hingegen: Wenn nicht B, dann nicht A, schon...

A -> B
¬A v B (Implikationsauflösung oder Materiale Implikation)
B v ¬A (Kommutativgesetz)
¬B -> ¬A (Modus Tollens)

qed

Richtig spannend wird es, politische Reden oder Vorträge auf Widersprüchlichkeit hin zu untersuchen... also das, was allgemein hin nicht sofort wahrgenommen wird, aber wenigstens schön klingt.
 
Convolutional Weight Array bzw. Convolutional Weight Vector in einem ANN

Ja, so ergibt die Abkürzung im ANN-Kontext Sinn: bei Convolutional Layers spricht man praktisch von Gewichten/Kernels/Filtern, also z.B. einem Weight Array oder Tensor. „Vector“ passt je nach Darstellung auch, wenn man die Gewichte flach zieht.

Nur zur Trennung der Begriffe: CWA als Closed-World Assumption kommt eher aus Logik/Wissensrepräsentation, während Convolutional Weights aus neuronalen Netzen kommen. Gleiche Abkürzung, völlig andere Baustelle — daher besser beim ersten Auftreten einmal ausschreiben, sonst redet man schnell aneinander vorbei.
 
Ja gut beschrieben. Closed-World Assumption macht für mich im ANN Bereich auch Sinn - wie das Regenbeispiel zeigt. Es sind aber wie du auch sagst völlig verschiedene Dinge - aber beide für ANN-Programmierung wichtig.
 

Zurück
Oben