In einem Artikel "Genaue Berechnung der Laufabweichung" unter http://www.johndcook.com/standard_deviation.html wird gezeigt, wie der Laufmittelwert, die Laufabweichung und die Standardabweichungen berechnet werden.
Gibt es Algorithmen, bei denen die Parameter eines linearen oder logistischen Regressionsmodells ähnlich "dynamisch" aktualisiert werden können, wenn neue Trainingsaufzeichnungen bereitgestellt werden?
Antworten:
Die linearen Regressionskoeffizienten vony=ax+b sind a=cov(x,y)/var(x) und b=mean(y)−a⋅mean(x) .
Alles, was Sie wirklich brauchen, ist eine inkrementelle Methode zur Berechnung voncov(x,y) . Aus diesem Wert und der Varianz von x und dem Mittelwert von y und x Sie die Parameter a und b berechnen . Wie Sie im folgenden Pseudocode sehen werden, ist die inkrementelle Berechnung von cov(x,y) der inkrementellen Berechnung von var(x) sehr ähnlich . Dies sollte keine Überraschung sein, da var(x)=cov(x,x) .
Hier ist der Pseudocode, den Sie wahrscheinlich suchen:
Ich fand diese Frage, als ich nach einem äquivalenten Algorithmus suchte, der inkrementell eine Multi-Variate-Regression alsR=(X′X)−1X′Y berechnet , so dass XR=Y+ϵ
quelle
Für Ihre zwei spezifischen Beispiele:
Lineare Regression Die Arbeit "Online Lineare Regression und ihre Anwendung auf das modellbasierte Verstärkungslernen" von Alexander Strehl und Michael Littman beschreibt einen Algorithmus namens "KWIK Lineare Regression" (siehe Algorithmus 1), der eine Annäherung an die lineare Regressionslösung unter Verwendung von inkrementellen Aktualisierungen bietet . Beachten Sie, dass dies nicht geregelt ist (dh es handelt sich nicht um eine Ridge-Regression). Ich bin mir ziemlich sicher, dass die Methode von Strehl & Littman nicht auf diese Einstellung ausgedehnt werden kann.
Logistische Regression
Dieser Thread bringt Licht in die Sache. Zitat:
Es gibt jedoch auch andere Online- (oder inkrementelle) Methoden für die Regression, die Sie sich möglicherweise ansehen möchten, z. B. die lokal gewichtete Projektionsregression (LWPR).
quelle
Grundsätzlich gilt:
0) Sie behalten die ausreichenden Statistiken und die aktuellen ML-Schätzungen bei
1) Wenn Sie neue Daten erhalten, aktualisieren Sie die ausreichenden Statistiken und die Schätzungen
2) Wenn Sie nicht über ausreichende Statistiken verfügen, müssen Sie alle Daten verwenden.
3) Normalerweise haben Sie keine geschlossenen Lösungen. Verwenden Sie die vorherigen MLEs als Ausgangspunkt, und verwenden Sie eine geeignete Optimierungsmethode, um das neue Optimum von dort aus zu finden. Möglicherweise müssen Sie ein wenig experimentieren, um herauszufinden, welche Ansätze die besten Kompromisse für Ihre speziellen Arten von Probleminstanzen darstellen.
Wenn Ihr Problem eine spezielle Struktur hat, können Sie es wahrscheinlich ausnutzen.
Einige potenzielle Referenzen, die möglicherweise einen Wert haben oder nicht:
McMahan, HB und M. Streeter (2012),
Offenes Problem: Bessere Grenzen für die logistische Online-Regression ,
JMLR: Workshop and Conference Proceedings , Band 23, 44.1–44.3
Penny, WD und SJ Roberts (1999),
Dynamic Logistic Regression ,
Proceedings IJCNN '99
quelle
Zusätzlich zu der Antwort von tdc gibt es keine bekannten Methoden, um exakte Schätzungen der Koeffizienten zu irgendeinem Zeitpunkt mit nur konstanter Zeit pro Iteration zu berechnen. Es gibt jedoch einige Alternativen, die vernünftig und interessant sind.
Das erste zu betrachtende Modell ist die Online- Lerneinstellung. In dieser Einstellung kündigt die Welt zuerst einen Wert von x an, Ihr Algorithmus sagt einen Wert für y voraus, die Welt kündigt den wahren Wert y 'an und Ihr Algorithmus erleidet einen Verlust l (y, y'). Für diese Einstellung ist bekannt, dass einfache Algorithmen (unter anderem Gradientenabstieg und potenzierter Gradient) sublineares Bedauern hervorrufen. Dies bedeutet, dass, wenn Sie mehr Beispiele sehen, die Anzahl der zusätzlichen Fehler, die Ihr Algorithmus macht (im Vergleich zum bestmöglichen linearen Prädiktor), nicht mit der Anzahl der Beispiele wächst. Dies funktioniert auch in Gegnern. Es gibt ein gutes Papier , das eine beliebte Strategie erklärt, um diese Grenzen des Bedauerns zu belegen. Nützlich sind auch die Vorlesungsunterlagen von Shai Shalev-Schwartz .
Es gibt eine Erweiterung der Online-Lerneinstellung, die als Banditeneinstellung bezeichnet wird, bei der Ihrem Algorithmus nur eine Zahl zugewiesen wird, die angibt, wie falsch er war (und kein Zeiger auf die richtige Antwort). Beeindruckend ist, dass viele Ergebnisse des Online-Lernens auf diese Umgebung übertragen werden, mit der Ausnahme, dass hier sowohl Exploits als auch Exploits durchgeführt werden müssen, was zu allen möglichen interessanten Herausforderungen führt.
quelle
Andere Antworten haben auf die Welt des maschinellen Lernens hingewiesen, und dies ist sicherlich ein Ort, an dem dieses Problem angegangen wurde.
Ein weiterer Ansatz, der möglicherweise besser auf Ihre Bedürfnisse zugeschnitten ist, ist die Verwendung der QR-Faktorisierung mit Updates mit niedrigem Rang. Ansätze dazu und zur Lösung von Problemen der kleinsten Fehlerquadrate finden Sie in:
Aktualisierung der QR-Faktorisierung und des Problems der kleinsten Fehlerquadrate durch Hammerling und Lucas.
quelle
quelle
Dies ist zu @chmike Antwort hinzuzufügen.
Die Methode scheint dem Online-Algorithmus von BP Welford für die Standardabweichung zu ähneln, der auch den Mittelwert berechnet. John Cook gibt eine gute Erklärung hier . Tony Finch im Jahr 2009 bietet eine Methode für einen exponentiellen gleitenden Durchschnitt und eine Standardabweichung:
Schauen Sie sich die zuvor gepostete Antwort an und erweitern Sie sie um ein sich exponentiell bewegendes Fenster:
In dem obigen "Code" könnte gewünschtes Alpha auf 0 gesetzt werden, und wenn dies der Fall ist, würde der Code ohne exponentielle Gewichtung arbeiten. Es kann vorgeschlagen werden, "desiredAlpha" auf "1 / desiredWindowSize" zu setzen, wie von " Modified_moving_average" für eine sich bewegende Fenstergröße vorgeschlagen.
Nebenfrage: Welche der obigen alternativen Berechnungen sind vom Standpunkt der Präzision aus besser?
Verweise:
chmike (2013) https://stats.stackexchange.com/a/79845/70282
Cook, John (nd) Genaue Berechnung der Laufvarianz http://www.johndcook.com/blog/standard_deviation/
Finch, Tony. (2009) Inkrementelle Berechnung von gewichtetem Mittelwert und Varianz. https://fanf2.user.srcf.net/hermes/doc/antiforgery/stats.pdf
Wikipedia. (nd) Welfords Online-Algorithmus https://en.wikipedia.org/wiki/Algorithms_for_calculating_variance#Online_algorithm
quelle