Frage

Einer der diskutierten netten Aspekte des Verfahrens, die Vowpal Wabbit für Aktualisierungen für SGD verwendetPDF ist eine sogenannte Gewichtsinvarianz, beschrieben in der Verbindung als:

"Unter diesen Updates konzentrieren wir uns hauptsächlich auf eine neuartige Reihe von Aktualisierungen, die eine zusätzliche Invarianzeigenschaft erfüllen: Für alle Wichtigkeitsgewichte von H entspricht das Update zwei Updates mit H/2. Wir nennen diese Aktualisierungen Wichtigkeitsinvariante."

Was bedeutet das und warum ist es nützlich?

War es hilfreich?

Lösung

Oft haben verschiedene Datenproben eine unterschiedliche Gewichtung (z. B. die Kosten des Fehlklassifizierungsfehlers für eine Datengruppe sind höher als für andere Klassen). Die meisten Fehlermetriken stammen aus dem Formular $ sum_i e_i $, wobei E_I der Verlust (z. B. quadratische Fehler) auf Datenpunkt $ i $ ist. Daher sind die Gewichtungen des Formulars $ sum_i w_i e_i $ gleichwertig der Duplikation der Daten w_i -Zeiten (z. B. für W_I Ganzzahl).

Ein einfacher Fall ist, wenn Sie wiederholte Daten haben - anstatt alle doppelten Datenpunkte beizubehalten, "Gewicht" Ihre einzige wiederholte Probe nach der Anzahl der Instanzen.

Während dies in einer Stapeleinstellung einfach zu tun ist, ist es in Vowpal Wabbits Online -Big -Data -Einstellung schwierig: Da Sie einen großen Datensatz haben, möchten Sie nicht nur die Daten n -mal darstellen, um mit der Gewichtung umzugehen (weil Es erhöht Ihre Rechenlast). In ähnlicher Weise multiplizieren Sie den Gradientenvektor mit der Gewichtung - was bei der Stapelgradientenabstieg korrekt ist - große Probleme bei stochastischen/Online -Gradientenabstiegungen: Im Wesentlichen schießen Sie in eine Richtung (denken Sie an große Ganzzahlen), dann schießen Sie in die Andere - verursacht erhebliche Instabilität. SGD stützt sich im Wesentlichen auf alle Fehler in ungefähr der gleichen Reihenfolge (so dass die Lernrate angemessen festgelegt werden kann). Sie schlagen also sicher, dass das Update für das Training Sample X_I mit Gewicht N gleichbedeutend mit der Präsentation der Trainingsprobe X_I n -mal nacheinander entspricht.

Die Idee ist, dass das Präsentieren nacheinander das Problem reduziert, da der Fehlergradient (für dieses einzelne Beispiel $ x_i $) für jede aufeinanderfolgende Präsentation und das Update reduziert wird (da Sie für dieses bestimmte Beispiel näher und näher an das Minimum kommen). Mit anderen Worten, die aufeinanderfolgenden Updates bieten eine Art Feedback -Kontrolle.

Für mich hört sich es so an, als hätten Sie immer noch Instabilitäten (Sie haben auf X_I auf Null, dann werden Sie auf X_I+1, ...). Die Lernrate muss angepasst werden, um die Größe der Gewichte zu berücksichtigen.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit datascience.stackexchange
scroll top