Nehmen wir an, ich habe einen logistischen Regressionsklassifikator. Beim normalen Batch-Lernen hätte ich einen Regularizer-Term, um eine Überanpassung zu verhindern und meine Gewichte klein zu halten. Ich würde auch meine Funktionen normalisieren und skalieren.
In einer Online-Lernumgebung erhalte ich einen kontinuierlichen Datenstrom. Ich führe mit jedem Beispiel ein Gefälle-Update durch und verwerfe es dann. Soll ich beim Online-Lernen den Begriff "Feature-Skalierung und Regularisierung" verwenden? Wenn ja, wie kann ich das machen? Zum Beispiel habe ich keine Trainingsdaten zum Skalieren. Ich habe auch keine Validierung festgelegt, um meinen Regularisierungsparameter zu optimieren. Wenn nein, warum nicht?
In meinem Online-Lernen erhalte ich kontinuierlich einen Strom von Beispielen. Für jedes neue Beispiel mache ich eine Vorhersage. Im nächsten Zeitschritt erhalte ich dann das eigentliche Ziel und aktualisiere den Gefälleverlauf.
--power_t
und--initial_t
globale (nicht per feature) unabhängige optionen sind.--sgd
kehrt nur zum "klassischen" SGD zurück. IOW:--sgd
nur annulliert--invariant
,--normalized
und--adaptive
(die separate Lernraten pro Feature implizieren)In diesem Artikel wird eine Technik für die Online-Regularisierung beschrieben, die auf verschiedene Algorithmen einschließlich der logistischen Regression angewendet wird: http://ai.stanford.edu/~chuongdo/papers/proximal.pdf
quelle
ja, du brauchst auf jeden Fall Regularisierung ... es hilft auch beim Gefälle (und beim Initialisieren der Lernrate auf 1 / C)
siehe zB SGD-QN-Artikel http://leon.bottou.org/papers bottou's Artikel
du hast nicht wirklich erklärt, was du mit online lernen meinst: zb bekommst du für jeden punkt einen zielwert? Ich weiß nicht, wie Sie ... nach C suchen würden ... Ich schätze, Sie hätten mehrere Klassifikatoren mit unterschiedlichen Regularisierungsbegriffen und würden den Vorhersagefehler verfolgen (bevor Sie die Gewichte aktualisieren).
quelle