Technologieaustausch

[Deep Learning] Grundlagen des grafischen Modells (7): Varianzreduktionsmethode bei der Optimierung des maschinellen Lernens (1)

2024-07-12

한어Русский языкEnglishFrançaisIndonesianSanskrit日本語DeutschPortuguêsΕλληνικάespañolItalianoSuomalainenLatina

Zusammenfassung

Die stochastische Optimierung ist ein wesentlicher Bestandteil des maschinellen Lernens. Ihr Kernstück ist der stochastische Gradientenabstiegsalgorithmus (SGD), eine Methode, die seit ihrer ersten Einführung vor mehr als 60 Jahren weit verbreitet ist. In den letzten acht Jahren haben wir eine aufregende neue Entwicklung erlebt: Varianzreduktionstechniken für stochastische Optimierungsmethoden. Diese Varianzreduktionsmethoden (VR-Methoden) funktionieren gut in Szenarien, die mehrere Iterationen der Trainingsdaten ermöglichen, und zeigen sowohl in der Theorie als auch in der Praxis eine schnellere Konvergenz als SGD. Diese Geschwindigkeitssteigerung verdeutlicht das wachsende Interesse an VR-Methoden und die rasch wachsende Forschungsleistung in diesem Bereich. In diesem Artikel werden die wichtigsten Prinzipien und großen Fortschritte bei VR-Methoden zur Optimierung begrenzter Datensätze besprochen, mit dem Ziel, auch nicht fachkundige Leser zu informieren. Wir konzentrieren uns hauptsächlich auf konvexe Optimierungsumgebungen und bieten eine Referenz für Leser, die an Erweiterungen zur Minimierung nichtkonvexer Funktionen interessiert sind.

Schlüsselwörter |. Maschinelles Lernen; Varianzreduzierung

1. Einleitung

Im Bereich der maschinellen Lernforschung ist eine grundlegende und wichtige Frage die Frage, wie Modelle an große Datenmengen angepasst werden können. Beispielsweise können wir den typischen Fall eines linearen Modells der kleinsten Quadrate betrachten:

x ∗ ∈ arg ⁡ min ⁡ x ∈ R d 1 n ∑ i = 1 n ( ai T x − bi ) 2 x^* in argmin_{x in mathbb{R}^d} frac{1}{n} sum_{i=1}^{n} (a_i^T x - b_i)^2XarGXRDMindestN1ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1N(AichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchTXBichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch)2

In diesem Modell haben wir ddD Parameter, die durch Vektoren dargestellt werden x ∈ R dx in mathbb{R}^dXRD gegeben.In der Zwischenzeit haben wir zur Hand neinN Datenpunkte, einschließlich Merkmalsvektoren ai ∈ R d a_i in mathbb{R}^dAichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchRD und Zielwert bi ∈ R b_i in mathbb{R}BichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchR .Der Anpassungsprozess des Modells besteht darin, diese Parameter so anzupassen, dass sie der vorhergesagten Ausgabe des Modells entsprechen ai T x a_i^T xAichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchTX im Durchschnitt möglichst nah am Zielwert liegen bi b_iBichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch

Im weiteren Sinne könnten wir eine Verlustfunktion verwenden fi ( x ) f_i(x)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X) Um die Modellvorhersagen zu messen und die iiichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch Wie nah sind die Datenpunkte:

x ∗ ∈ arg ⁡ min ⁡ x ∈ R df ( x ) : = 1 n ∑ i = 1 nfi ( x ) x^* in argmin_{x in mathbb{R}^d} f(x) := frac{1}{n} sum_{i=1}^{n} f_i(x)XarGXRDMindestF(X):=N1ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1NFichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X)

verlustfunktion fi ( x ) f_i(x)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X) Wenn es größer ist, bedeutet dies, dass die Vorhersagen des Modells stark von den Daten abweichen fi ( x ) f_i(x)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X) Bei einem Wert von Null passt das Modell perfekt zu den Datenpunkten.Funktion f ( x ) f(x)F(X) Spiegelt den durchschnittlichen Verlust des Modells über den gesamten Datensatz wider.

Probleme wie Form (2) oben gelten nicht nur für lineare Kleinste-Quadrate-Probleme, sondern auch für viele andere Modelle, die im maschinellen Lernen untersucht werden. In einem logistischen Regressionsmodell lösen wir beispielsweise nach:

x ∗ ∈ arg ⁡ min ⁡ x ∈ R d 1 n ∑ i = 1 n log ⁡ ( 1 + e − biai T x ) + λ 2 ∥ x ∥ 2 2 x^* in argmin_{x in mathbb{R}^d} frac{1}{n} sum_{i=1}^{n} log(1 + e^{-b_i a_i^T x}) + frac{lambda}{2} |x|_2^2XarGXRDMindestN1ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1NsieheG(1+tBichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchAichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchTX)+2λX22

Hier geht es um bi ∈ { − 1 , + 1 } b_i in {-1, +1}Bichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch{1,+1} Bei einem binären Klassifizierungsproblem basiert die Vorhersage auf ai T x a_i^T xAichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchTX Symbole.In die Formel wird auch ein Regularisierungsterm eingeführt λ 2 ∥ x ∥ 2 2 frac{lambda}{2} |x|_2^22λX22 um eine Überanpassung der Daten zu vermeiden, wo ∥ x ∥ 2 2 |x|_2^2X22 äußern xxX Das Quadrat der euklidischen Norm von .

In den meisten überwachten Lernmodellen kann der Trainingsprozess als Form (2) ausgedrückt werden, einschließlich L1-regularisierter kleinster Quadrate, Support Vector Machine (SVM), Hauptkomponentenanalyse, bedingter Zufallsfelder und tiefer neuronaler Netze usw.

Eine zentrale Herausforderung bei modernen Problemfällen ist die Anzahl der Datenpunkte neinN Wahrscheinlich extrem groß. Wir haben es oft mit Datensätzen zu tun, die weit über den Terabyte-Bereich hinausgehen und aus so unterschiedlichen Quellen wie dem Internet, Satelliten, Fernsensoren, Finanzmärkten und wissenschaftlichen Experimenten stammen können. Um solch große Datensätze zu verarbeiten, besteht ein gängiger Ansatz darin, den stochastischen Gradientenabstiegsalgorithmus (SGD) zu verwenden, der in jeder Iteration nur eine kleine Anzahl zufällig ausgewählter Datenpunkte verwendet. Darüber hinaus ist in letzter Zeit das Interesse an stochastischen Gradientenmethoden zur Varianzreduktion (VR) stark gestiegen, die schnellere Konvergenzraten aufweisen als herkömmliche stochastische Gradientenmethoden.
Fügen Sie hier eine Bildbeschreibung ein
Abbildung 1. Das logistische Regressionsproblem basiert auf dem Pilzdatensatz [7], dem Gradientenabstieg (GD), dem beschleunigten Gradientenabstieg (AGD, beschleunigter GD in [50]), dem stochastischen Gradientenabstieg (SGD) und der ADAM-Methode [30]. verglichen mit den Varianzreduktionsmethoden (VR) SAG und SVRG, wobei n = 8124, d = 112.

1.1. Gradienten- und stochastische Gradientenabstiegsmethoden

Der Gradientenabstieg (GD) ist ein klassischer Algorithmus zur Lösung des obigen Problems (2) und seine iterative Aktualisierungsformel lautet wie folgt:
xk + 1 = xk − γ 1 n ∑ i = 1 n ∇ fi ( xk ) x_{k+1} = x_k - gamma frac{1}{n} sum_{i=1}^{n} nabla f_i(x_k)Xk+1=XkγN1ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1NFichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xk)

Hier, γ-Gammaγ ist ein fester Schrittwert größer als Null.Während jeder Iteration des GD-Algorithmus muss jeder Datenpunkt vorhanden sein iiichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch Steigung berechnen ∇ fi ( xk ) ist f_i(x_k)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xk), was bedeutet, dass GD alles erfordert neinN Führen Sie eine vollständige Durchquerung der Datenpunkte durch.Wenn die Größe des Datensatzes neinN Wenn es sehr groß wird, werden die Kosten jeder Iteration des GD-Algorithmus sehr hoch, wodurch seine Anwendung eingeschränkt wird.

Als Alternative können wir die Methode des stochastischen Gradientenabstiegs (SGD) in Betracht ziehen, die erstmals von Robbins und Monro vorgeschlagen wurde und deren iterative Aktualisierungsformel wie folgt lautet:
xk + 1 = xk − γ ∇ fik ( xk ) x_{k+1} = x_k - gamma nabla f_{i_k}(x_k)Xk+1=XkγFichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk)

Der SGD-Algorithmus funktioniert, indem er in jeder Iteration nur den Gradienten eines zufällig ausgewählten Datenpunkts verwendet. ∇ fik ( xk ) nabla f_{i_k}(x_k)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk) um die Kosten jeder Iteration zu reduzieren. In Abbildung 1 können wir sehen, dass SGD in den frühen Phasen des Optimierungsprozesses größere Fortschritte erzielt als GD (einschließlich beschleunigter GD-Methoden).Die Grafik zeigt den Fortschritt der Optimierung in Bezug auf Epochen, die als Berechnung aller definiert sind neinN Die Anzahl der Farbverläufe für Trainingsbeispiele. Der GD-Algorithmus führt in jeder Runde eine Iteration durch, während der SGD-Algorithmus in jeder Runde eine Iteration durchführt neinN Iterationen.Wir verwenden Runden als Grundlage für den Vergleich von SGD und GD, da davon ausgegangen wird neinN In sehr großen Fällen konzentrieren sich die Hauptkosten beider Methoden auf den Gradienten ∇ fi ( xk ) ist f_i(x_k)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xk) Berechnung.

1.2. Varianzproblem

Betrachten wir die zufällige Indizierung ich weiß, ich_kichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk aus der Sammlung { 1 , … , n } {1, ldots, n}{1,,N} Im Falle einer einheitlichen Zufallsauswahl bedeutet dies: für alle iiichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch,wählen ik = ich i_k = ichichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk=ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch Die Wahrscheinlichkeit P [ ik = i ] P[i_k = i]P[ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk=ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch] gleich 1 n frac{1}{n}N1 . in diesem Fall, ∇ fik ( xk ) nabla f_{i_k}(x_k)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk) als ∇ f ( xk ) und f(x_k)F(Xk) Der Schätzer von ist erwartungstreu, weil wir nach der Definition der Erwartung Folgendes haben:
E[∇fik(xk)∣xk] = 1 n∑i = 1 n∇fi(xk) = ∇f(xk) (6) E[nabla f_{i_k}(x_k) | x_k] = frac{1}{n} sum_{i=1}^{n} nabla f_i(x_k) = nabla f(x_k) quad (6)E[Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk)Xk]=N1ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1NFichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xk)=F(Xk)(6)

Obwohl die SGD-Methode (Stochastic Gradient Descent) nicht die Funktion in jeder Iteration garantiert ffF Der Wert von wird abnehmen, aber im Durchschnitt bewegt er sich in Richtung des negativen Vollgradienten, der die Abwärtsrichtung darstellt.

Allerdings reicht ein unverzerrter Gradientenschätzer nicht aus, um die Konvergenz der SGD-Iterationen sicherzustellen. Um diesen Punkt zu veranschaulichen, zeigt Abbildung 2 (links) den iterativen Verlauf von SGD bei Anwendung einer logistischen Regressionsfunktion mit einer konstanten Schrittgröße auf den von LIBSVM bereitgestellten Datensatz mit vier Kategorien [7].Die konzentrischen Ellipsen in der Abbildung stellen die Konturen der Funktion dar, also den Funktionswert f ( x ) = cf(x) = cF(X)=C entsprechenden Punkt xxX versammeln, ccC ist eine bestimmte Konstante in der Menge der reellen Zahlen.verschiedene konstante Werte ccC Entspricht verschiedenen Ellipsen.

Die iterative Trajektorie von SGD konvergiert nicht zur optimalen Lösung (in der Abbildung durch ein grünes Sternchen gekennzeichnet), sondern bildet eine Punktwolke um die optimale Lösung. Im Gegensatz dazu zeigen wir in Abbildung 2 die iterative Trajektorie einer Varianzreduktionsmethode (VR), des stochastischen Durchschnittsgradienten (SAG), unter Verwendung derselben konstanten Schrittgröße, die wir später vorstellen werden. Der Grund dafür, dass SGD in diesem Beispiel nicht konvergiert, liegt darin, dass der stochastische Gradient selbst nicht gegen Null konvergiert und daher die SGD-Methode mit konstantem Schritt (5) niemals stoppt.Dies steht in krassem Gegensatz zu Gradientenabstiegsmethoden (GD), die natürlicherweise aufhören xk x_kXk Ansätze x ∗ x^*X,Gradient ∇ f ( xk ) und f(x_k)F(Xk) wird gegen Null tendieren.
Fügen Sie hier eine Bildbeschreibung ein
Abbildung 2. Level-Set-Diagramme für die zweidimensionale logistische Regression unter Verwendung der iterativen Methoden SGD (links) und SAG (rechts) mit festem Schritt. Ein grüner Stern zeigt x anlösen.

1.3. Klassische Varianzreduktionsmethode

Verarbeitung aufgrund ∇ fi ( xk ) ist f_i(x_k)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xk) Es gibt mehrere klassische Techniken für Nichtkonvergenzprobleme, die durch die Varianz von Werten verursacht werden.Beispielsweise verwenden Robbins und Monro [64] eine Reihe abnehmender Schritte γ k gamma_kγk Um das Varianzproblem zu lösen, stellen Sie sicher, dass das Produkt γ k ∇ fik ( xk ) gamma_k nabla f_{i_k}(x_k)γkFichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk) gegen Null konvergieren kann. Es ist jedoch ein schwieriges Problem, diese Abfolge abnehmender Schritte anzupassen, um zu vermeiden, dass der Algorithmus zu früh oder zu spät gestoppt wird.

Eine weitere klassische Technik zur Reduzierung der Varianz ist die Verwendung mehrerer ∇ fi ( xk ) ist f_i(x_k)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xk) Durchschnitt, um den vollen Gradienten zu erhalten ∇ f ( x ) nabla f(x)F(X) eine genauere Schätzung. Dieser Ansatz wird Minibatch genannt und ist besonders nützlich, wenn mehrere Gradienten parallel ausgewertet werden können. Dies führt zu einer Iteration der Form:
xk + 1 = xk − γ 1 ∣ B k ∣ ∑ i ∈ B k ∇ fi ( xk ) ( 7 ) x_{k+1} = x_k - gamma frac{1}{|B_k|} sum_{i in B_k} nabla f_i(x_k) quad (7)Xk+1=XkγBk1ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchBkFichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xk)(7)
In B k B_kBk ist ein zufälliger Indexsatz, ∣ B k ∣ |B_k|Bk äußern B k B_kBk die Größe von.Wenn B k B_kBk Bei gleichmäßiger Probenahme und Ersetzung hängt die Varianz dieser Gradientenschätzung mit der „Chargengröße“ zusammen. ∣ B k ∣ |B_k|Bk ist umgekehrt proportional, sodass die Varianz durch Erhöhen der Chargengröße verringert werden kann.

Allerdings sind die Kosten solcher Iterationen proportional zur Stapelgröße, sodass diese Form der Varianzreduzierung mit einem erhöhten Rechenaufwand verbunden ist.

Eine weitere gängige Strategie zur Verringerung der Varianz und zur Verbesserung der empirischen Leistung von SGD besteht darin, „Momentum“ hinzuzufügen, einen zusätzlichen Begriff, der auf der in den vorherigen Schritten verwendeten Richtung basiert. Insbesondere ist die Form von SGD mit Impuls wie folgt:
xk + 1 = xk − γ mk ( 9 ) x_{k+1} = x_k - gamma m_k quad (9)Xk+1=XkγMk(9)
wo der Impulsparameter β betaβ Liegt im Bereich (0, 1).Wenn der anfängliche Schwung m 0 = 0 m_0 = 0M0=0, und erweitern Sie in (8) mk m_kMk Für Updates erhalten wir mk m_kMk ist der gewichtete Durchschnitt vorheriger Farbverläufe:
mk = ∑ t = 0 k β k − t ∇ fit ( xt ) ( 10 ) m_k = Summe_{t=0}^{k} beta^{kt} nabla f_{i_t}(x_t) quad (10)Mk=T=0kβkTFichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchT(XT)(10)
daher, mk m_kMk ist die gewichtete Summe stochastischer Gradienten.Weil ∑ t = 0 k β k − t = 1 − β k + 1 1 − β Summe_{t=0}^{k} beta^{kt} = frac{1 - beta^{k+1}}{1 - beta}T=0kβkT=1β1βk+1, wir können konvertieren 1 − β 1 − β kmk frac{1 - beta}{1 - beta^k} m_k1βk1βMk Wird als gewichteter Durchschnitt stochastischer Gradienten betrachtet.Vergleichen wir dies mit dem Ausdruck für den gesamten Gradienten ∇ f ( xk ) = 1 n ∑ i = 1 n ∇ fi ( xk ) nabla f(x_k) = frac{1}{n} sum_{i=1}^{n} nabla f_i(x_k)F(Xk)=N1ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1NFichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xk) Zum Vergleich können wir 1 − β 1 − β kmk frac{1 - beta}{1 - beta^k} m_k1βk1βMk(sowie mk m_kMk ) wird als Schätzung des gesamten Gradienten interpretiert. Während diese gewichtete Summe die Varianz verringert, wirft sie auch wichtige Fragen auf.Da die gewichtete Summe (10) den kürzlich abgetasteten Gradienten mehr Gewicht verleiht, konvergiert sie nicht zum vollständigen Gradienten ∇ f ( xk ) und f(x_k)F(Xk) Letzteres ist ein einfacher Durchschnitt. Die erste Varianzreduktionsmethode, die wir in Abschnitt II-A sehen werden, löst dieses Problem, indem sie einen einfachen Durchschnitt anstelle eines gewichteten Durchschnitts verwendet.

1.4. Moderne Varianzreduktionsmethoden

Im Gegensatz zu klassischen Methoden verwenden sie direkt eine oder mehrere ∇ fi ( xk ) ist f_i(x_k)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xk) als ∇ f ( xk ) und f(x_k)F(Xk) Als Näherungswert verwenden moderne Methoden zur Varianzreduktion (VR) eine andere Strategie.Diese Methoden verwenden ∇ fi ( xk ) ist f_i(x_k)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xk) um die Gradientenschätzung zu aktualisieren gk g_kGk, dessen Ziel es ist, zu machen gk g_kGk Ansatz ∇ f ( xk ) und f(x_k)F(Xk) .Konkret hoffen wir gk g_kGk befriedigen können gk ≈ ∇ f ( xk ) g_k ungefähr nabla f(x_k)GkF(Xk) . Basierend auf solchen Gradientenschätzungen führen wir dann einen ungefähren Gradientenschritt der Form durch:
xk + 1 = xk − γ gk ( 11 ) x_{k+1} = x_k - gamma g_k quad (11)Xk+1=XkγGk(11)
Hier γ > 0 gamma > 0γ>0 ist der Schrittgrößenparameter.

Um sicherzustellen, dass eine konstante Schrittgröße verwendet wird γ-Gammaγ Wenn Iteration (11) konvergieren kann, müssen wir sicherstellen, dass der Gradient geschätzt wird gk g_kGk Die Varianz tendiert gegen Null. Mathematisch lässt sich dies wie folgt ausdrücken:
E [ ∥ gk − ∇ f ( xk ) ∥ 2 ] → 0 als k → ∞ ( 12 ) Eleft[ | g_k - nabla f(x_k) |^2 right] rightarrow 0 quad text{als } k rightarrow infty quad (12)E[GkF(Xk)2]0alsk(12)
Erwartungen hier EEE basiert auf dem Algorithmus bis zum k.k.k Alle Zufallsvariablen werden für Iterationen berechnet. Eigenschaft (12) sorgt dafür, dass die VR-Methode gestoppt werden kann, wenn die optimale Lösung erreicht ist. Wir betrachten diese Immobilie als charakteristisches Merkmal des VR-Ansatzes und bezeichnen sie daher als VR-Immobilie. Es ist erwähnenswert, dass der Ausdruck „reduzierte“ Varianz irreführend sein kann, da die Varianz tatsächlich gegen Null tendiert. Eigenschaft (12) ist ein Schlüsselfaktor, der es VR-Methoden ermöglicht, in der Theorie (unter geeigneten Annahmen) und in der Praxis (wie in Abbildung 1 dargestellt) eine schnellere Konvergenz zu erreichen.

1.5. Erstes Beispiel einer Varianzreduktionsmethode: SGD²

Eine einfache Verbesserungsmethode kann dazu führen, dass die rekursive SGD-Formel (5) Konvergenz erreicht, ohne die Schrittgröße zu verringern, dh jeden Gradienten zu übersetzen. Die spezifische Methode besteht darin, zu subtrahieren ∇ fi ( x ∗ ) ist f_i(x^*)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X), diese Methode ist wie folgt definiert:
xk + 1 = xk − γ ( ∇ fik ( xk ) − ∇ fik ( x ∗ ) ) ( 13 ) x_{k+1} = x_k - gamma (nabla f_{i_k}(x_k) - nabla f_{i_k}(x^*)) quad (13)Xk+1=Xkγ(Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(X))(13)
Diese Methode wird SGD² genannt [22].Obwohl wir normalerweise nicht alles genau wissen können ∇ fi ( x ∗ ) ist f_i(x^*)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X) , aber SGD² kann als Beispiel die grundlegenden Eigenschaften der Varianzreduktionsmethode gut veranschaulichen.Darüber hinaus können viele Varianzreduktionsmethoden als Näherungsform der SGD²-Methode angesehen werden; diese Methoden basieren nicht auf dem Bekannten ∇ fi ( x ∗ ) ist f_i(x^*)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X), sondern verwenden Sie stattdessen eine Methode, die näherungsweise möglich ist ∇ fi ( x ∗ ) ist f_i(x^*)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X) geschätzter Wert.

Es ist erwähnenswert, dass SGD² eine unvoreingenommene Schätzung des gesamten Gradienten verwendet.Weil ∇ f ( x ∗ ) = 0 nabla f(x^*) = 0F(X)=0,F:
E [ ∇ fik ( xk ) − ∇ fik ( x ∗ ) ] = ∇ f ( xk ) − ∇ f ( x ∗ ) = ∇ f ( xk ) E[nabla f_{i_k}(x_k) - nabla f_{i_k}(x^*)] = nabla f(x_k) - nabla f(x^*) = nabla f(x_k)E[Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(X)]=F(Xk)F(X)=F(Xk)
Wenn SGD² außerdem die optimale Lösung erreicht, wird es für jeden natürlich gestoppt iiichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch,haben:
( ∇ fi ( x ) − ∇ fi ( x ∗ ) ) ∣ x = x ∗ = 0 (nabla f_i(x) - nabla f_i(x^*)) bigg|_{x=x^*} = 0(Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X)) X=X=0

Bei weiterer Beobachtung mit xk x_kXk nahe x ∗ x^*X(für aufeinanderfolgende ∇ fi nabla f_iFichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch), SGD² erfüllt die Varianzreduktionseigenschaft (12), weil:
E[∥ gk − ∇ f(xk) ∥ 2] = E[∥ ∇ fik(xk) − ∇ fik(x∗) − ∇ f(xk) ∥ 2] ≤ E[∥ ∇ fik(xk) − ∇ fik ( x ∗ ) ∥ 2 ] Elinks[ | g_k - nabla f(x_k) |^2 rechts] = \Elinks[ | nabla f_{i_k}(x_k) - nabla f_{i_k}(x^*) - nabla f(x_k) |^2 rechts] leq Elinks[ | nabla f_{i_k}(x_k) - nabla f_{i_k}(x^*) |^2 rechts]E[GkF(Xk)2]=E[∥∇Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(X)F(Xk)2]E[∥∇Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(X)2]
Hier verwenden wir Lemma 2, let X = ∇ fik ( xk ) − ∇ fik ( x ∗ ) X = nabla f_{i_k}(x_k) - nabla f_{i_k}(x^*)X=Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(X), und ausgenutzt E [ ∇ fik ( xk ) − ∇ fik ( x ∗ ) ] = ∇ f ( xk ) E[nabla f_{i_k}(x_k) - nabla f_{i_k}(x^*)] = nabla f(x_k)E[Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(X)]=F(Xk) Natur. Diese Eigenschaft weist darauf hin, dass SGD² eine schnellere Konvergenzgeschwindigkeit aufweist als herkömmliche SGD-Methoden, die wir in Anhang B detailliert beschrieben haben.

1.6. Schnelle Konvergenz der Varianzreduktionsmethode

In diesem Abschnitt stellen wir zwei Standardannahmen vor, die zur Analyse der Varianzreduktionsmethode (VR) verwendet werden, und diskutieren den Beschleunigungseffekt, der unter diesen Annahmen im Vergleich zur herkömmlichen SGD-Methode erzielt werden kann. Zunächst gehen wir davon aus, dass der Gradient Lipschitz-Stetigkeit aufweist, was bedeutet, dass die Änderungsrate des Gradienten endlich ist.

Annahme 1 (Lipschitz-Stetigkeit)

Wir gehen davon aus, dass die Funktion ffFist differenzierbar und ist LLM- glatt, für alle xxX Und JJj und jemand 0 &lt; L &lt; ∞ 0 &lt; L &lt; unendlich0<M<,Die folgenden Bedingungen:
∥ ∇ f ( x ) − ∇ f ( y ) ∥ ≤ L ∥ x − y ∥ ( 14 ) |nabla f(x) - nabla f(y)| leq L|x - y| quad (14)∥∇F(X)F(j)MXj(14)
Das bedeutet, dass jeder fi : R d → R fi: mathbb{R}^d rightarrow mathbb{R}Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch:RDR ist differenzierbar, L ich L_iMichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch- glatt, wir definieren L max L_{text{max}}Mmax für max ⁡ { L 1, . . . , L n } max{L_1, . . . , L_n}max{M1,...,MN}

Obwohl dies im Allgemeinen als schwache Annahme angesehen wird, werden wir in den folgenden Kapiteln VR-Methoden diskutieren, die für nicht glatte Probleme geeignet sind. Für eine zweifach differenzierbare univariate Funktion gilt: LLM-Glätte kann intuitiv verstanden werden als: Dies entspricht der Annahme, dass die zweite Ableitung vorhanden ist LLM Obergrenze also ∣ f ′ ′ ( x ) ∣ ≤ L |f''(x)| leq LF′′(X)M für alle x ∈ R dx in mathbb{R}^dXRD .Für zweimal differenzierbare Funktionen mehrerer Variablen entspricht dies der Annahme einer Hesse-Matrix ∇ 2 f ( x ) nabla^2 f(x)2F(X) Der singuläre Wert von LLM Höchstgrenze.

Annahme 2 (starke Konvexität)

Die zweite Hypothese, die wir betrachten, ist, dass Funktion (f) ist μ muμ-Stark konvex, was mit Sicherheit bedeutet μ &gt; 0 mu &gt; 0μ>0,Funktion x ↦ f ( x ) − μ 2 ∥ x ∥ 2 x wird auf f(x) - frac{mu}{2}|x|^2 abgebildet.XF(X)2μX2 Es ist konvex.Darüber hinaus für jeden ich = 1, . . . , ni = 1, . . . , Nichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1,...,N fi : R d → R fi: mathbb{R}^d rightarrow mathbb{R}Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch:RDR Es ist konvex.

Dies ist eine starke Annahme.Beim Problem der kleinsten Quadrate ist jedes (fi$ konvex, aber die Gesamtfunktion (f) ist nur in der Entwurfsmatrix enthalten A : = [ a1 , . . . , an ] A := [a_1, . . . , a_n]A:=[A1,...,AN] Es ist nur dann stark konvex, wenn es einen perfekten Zeilenrang hat. Das Problem der regulierten logistischen L2-Regression erfüllt diese Annahme aufgrund der Existenz des Regularisierungsterms wo μ ≥ λ mu geq lambdaμλ

Eine wichtige Klasse von Problemen, die diese Annahmen erfüllen, sind Optimierungsprobleme der Form:
x ∗ ∈ arg ⁡ min ⁡ x ∈ R df ( x ) = 1 n ∑ i = 1 n ℓ i ( ai T x ) + λ 2 ∥ x ∥ 2 ( 15 ) x^* in argmin_{x in mathbb{R}^d} f(x) = frac{1}{n} sum_{i=1}^{n} ell_i(a_i^Tx) + frac{lambda}{2}|x|^2 quad (15)XarGXRDMindestF(X)=N1ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1Nichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(AichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchTX)+2λX2(15)
wo jede „Verlust“-Funktion ℓ i : R → R ell_i : mathbb{R} rightarrow mathbb{R}ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch:RR ist zweimal differenzierbar und seine zweite Ableitung ℓ ich ′ ′ ell_i''ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch′′ ist auf 0 und eine gewisse Obergrenze beschränkt MMM zwischen. Dazu gehören eine Vielzahl von Verlustfunktionen mit L2-Regularisierung beim maschinellen Lernen, wie z. B. kleinste Quadrate, logistische Regression, Probit-Regression, robuste Huber-Regression usw.In diesem Fall für alle iiichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch,Wir haben L i ≤ M ∥ ai ∥ 2 + λ L_i leq M|a_i|^2 + lambdaMichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchMAichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch2+λ Und μ ≥ λ mu geq lambdaμλ

Unter diesen Annahmen wird die Konvergenzrate der Gradientenabstiegsmethode (GD) durch die Bedingungszahl bestimmt κ : = L / μ kappa := L/muκ:=M/μ Entscheiden. Die Bedingungszahl ist immer größer oder gleich 1, und wenn sie deutlich größer als 1 ist, werden die Konturen der Funktion sehr elliptisch, was dazu führt, dass die Iterationen der GD-Methode oszillieren.Im Gegenteil, wann κ kappaκ Wenn es nahe bei 1 liegt, konvergiert die GD-Methode schneller.

Unter den Annahmen 1 und 2 konvergiert die VR-Methode linear.Wir sagen, dass der Funktionswert einer Zufallsmethode ({f(x_k)}) gegeben ist durch 0 &lt; ρ ≤ 1 0 &lt; rho leq 10<ρ1 Die Rate der linearen Konvergenz (unter Erwartung), sofern eine Konstante vorhanden ist C &gt; 0 C &gt; 0C>0 Macht:
E [ f ( xk ) ] − f ( x ∗ ) ≤ ( 1 − ρ ) k C = O ( exp ⁡ ( − k ρ ) ) ∀ k ( 16 ) E[f(x_k)] - f(x^*) leq (1 - rho)^k C = O(exp(-krho)) quad für alle k quad (16)E[F(Xk)]F(X)(1ρ)kC=Ö(exp(kρ))k(16)
Dies steht im Gegensatz zu klassischen SGD-Methoden, die nur auf unvoreingenommenen Schätzungen des Gradienten bei jeder Iteration basieren und unter diesen Annahmen nur sublineare Raten erhalten:
E[f(xk)]−f(x∗)≤O(1/k) E[f(x_k)]−f(x^*)leqO(1/k)E[F(Xk)]F(X)Ö(1/k)
Das Minimum, das diese Ungleichung erfüllt k.k.k Sie wird als iterative Komplexität des Algorithmus bezeichnet. Im Folgenden sind die iterative Komplexität und die Kosten einer Iteration für Grundvarianten der GD-, SGD- und VR-Methoden aufgeführt:

AlgorithmusAnzahl der IterationenKosten einer Iteration
GD O ( κ log ⁡ ( 1 / ϵ ) ) O(kappa log(1/epsilon))Ö(κsieheG(1/ϵ)) Aus AusÖ(N)
SGD O ( κ max max ⁡ ( 1 / ϵ ) ) O(kappa_{text{max}} max(1/epsilon))Ö(κmaxmax(1/ϵ)) O ( 1 ) O(1)Ö(1)
VR O ( ( κ max + n ) log ⁡ ( 1 / ϵ ) ) O((kappa_{text{max}} + n) log(1/epsilon))Ö((κmax+N)sieheG(1/ϵ)) O ( 1 ) O(1)Ö(1)

Die Gesamtlaufzeit eines Algorithmus wird durch das Produkt aus Iterationskomplexität und Iterationslaufzeit bestimmt.hier verwendet κ max : = max ⁡ i L i / μ kappa_{text{max}} := max_i L_i/muκmax:=maxichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchMichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch/μ .Beachten κ max ≥ κ kappa_{text{max}} geq kappaκmaxκ; Daher ist die Iterationskomplexität von GD kleiner als die der VR-Methode.

Da jedoch die Kosten pro Iteration von GD denen der VR-Methode entsprechen neinN Mal ist die VR-Methode hinsichtlich der Gesamtlaufzeit überlegen.

Der Vorteil klassischer SGD-Methoden besteht darin, dass ihre Laufzeit und Konvergenzrate nicht davon abhängen neinN, aber es hat eine Toleranz ϵ Epsilonϵ Die Abhängigkeit von ist viel schlimmer, was die schlechte Leistung von SGD erklärt, wenn die Toleranz gering ist.

In Anhang B liefern wir einen einfachen Beweis, der zeigt, dass die SGD²-Methode die gleiche iterative Komplexität aufweist wie die VR-Methode.

2. Grundlegende Varianzreduktionsmethode

Die Entwicklung von Varianzreduktionsmethoden (VR) hat mehrere Phasen durchlaufen, und die ersten Methoden führten zu deutlich verbesserten Konvergenzraten. Den Anfang dieser Methodenreihe bildet der SAG-Algorithmus. Anschließend kamen nacheinander der stochastische Dual-Koordinaten-Aufstiegsalgorithmus (SDCA), der MISO-Algorithmus, der stochastische Varianzreduktionsgradienten-Algorithmus (SVRG/S2GD) und der SAGA-Algorithmus (was „verbesserter“ SAG) bedeutet.

In diesem Kapitel werden wir diese bahnbrechenden VR-Methoden detailliert beschreiben. In Kapitel 4 werden wir einige neuere Methoden untersuchen, die in bestimmten Anwendungsszenarien überlegene Eigenschaften im Vergleich zu diesen Basismethoden aufweisen.

2.1. Stochastische Durchschnittsgradientenmethode (SAG)

Unsere Untersuchung der ersten Methode zur Varianzreduktion (VR) beginnt mit der Nachahmung der vollständigen Gradientenstruktur.Da das komplette Gefälle ∇ f ( x ) nabla f(x)F(X) ist Alles ∇ fi ( x ) ist f_i(x)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X) Ein einfacher Durchschnitt der Gradienten, dann unsere Schätzung des gesamten Gradienten gk g_kGk Es sollte auch der Durchschnitt dieser Gradientenschätzungen sein. Aus dieser Idee entstand unsere erste VR-Methode: die SAG-Methode (Stochastic Average Gradient).

Die SAG-Methode [37], [65] ist eine randomisierte Version der frühen inkrementellen aggregierten Gradientenmethode (IAG) [4]. Die Kernidee von SAG besteht darin, für jeden Datenpunkt zu sorgen iiichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch einen Kostenvoranschlag beibehalten vik ≈ ∇ fi ( xk ) v_{ik} ungefähr nabla f_i(x_k)gegenich kFichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xk) .Dann nutzen Sie diese vik v_{ik}gegenich k Der Durchschnitt der Werte wird als Schätzung des gesamten Gradienten verwendet, das heißt:
g ˉ k = 1 n ∑ j = 1 nvjk ≈ 1 n ∑ j = 1 n ∇ fj ( xk ) = ∇ f ( xk ) ( 18 ) bar{g}_k = frac{1}{n} sum_{j=1}^{n} v_{jk} approximativ frac{1}{n} sum_{j=1}^{n} nabla f_j(x_k) = nabla f(x_k) quad (18)Gˉk=N1J=1NgegenjkN1J=1NFJ(Xk)=F(Xk)(18)

In jeder Iteration von SAG aus dem Satz { 1 , … , n } {1, ldots, n}{1,,N} Extrahieren Sie einen Index aus ich weiß, ich_kichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk, und dann gemäß den folgenden Regeln aktualisiert vjk v_{jk}gegenjk
vjkk + 1 = { ∇ fik ( xk ) , falls j = ikvjkk , falls j ≠ ik ( 19 ) v_{jk}^{k+1} ={Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk),WennJ=ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchkgegenkJk,WennJichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk Quad (19)gegenjkk+1={Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk),gegenjkk,WennJ=ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchkWennJ=ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(19)
Unter ihnen jeder v 0 ich v_{0i}gegen0ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch Kann auf Null oder initialisiert werden ∇ fi ( x 0 ) ist gleich f_i(x_0)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X0) ungefährer Wert.Mit der Lösung x ∗ x^*X Annäherung, jeweils vik v_{ik}gegenich k wird sich allmählich annähern ∇ fi ( x ∗ ) ist f_i(x^*)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X), wodurch die VR-Eigenschaft (12) erfüllt wird.

Um SAG effizient umzusetzen, müssen wir auf die Berechnung achten g ˉ k Strich{g}_kGˉk um zu vermeiden, dass die Summe jedes Mal von vorne beginnt neinN Vektor, denn das ist neinN Die Kosten sind hoch, wenn es groß ist.Zum Glück, da jede Iteration nur eine hat vik v_{ik}gegenich k Die Bedingungen ändern sich und wir müssen nicht jedes Mal die gesamte Summe neu berechnen.Nehmen Sie insbesondere an, dass dies beim Iterieren der Fall ist k.k.k Index extrahiert aus ich weiß, ich_kichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk, dann ist da:
g ˉ k = 1 n ∑ j = 1 j ≠ iknvjk + 1 nvikk = g ˉ k − 1 − 1 nvikk − 1 + 1 nvikk ( 20 ) bar{g}_k = frac{1}{n} sum_{substack{j=1 \ j neq i_k}}^{n} v_{jk} + frac{1}{n} v_{i_k}^k = bar{g}_{k-1} - frac{1}{n} v_{i_k}^{k-1} + frac{1}{n} v_{i_k}^k quad (20)Gˉk=N1J=1J=ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchkNgegenjk+N1gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchkk=Gˉk1N1gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchkk1+N1gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchkk(20)

Da zusätzlich zu vik v_{i_k}gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk alles außer vjk v_{jk}gegenjk Die Werte bleiben alle gleich, wir speichern sie einfach jjJ Ein Vektor, der entspricht v_jgegenJ . Algorithmus 1 zeigt die spezifische Implementierung der SAG-Methode.

SAG ist die erste stochastische Methode, die eine lineare Konvergenz erreicht, und ihre Iterationskomplexität ist hoch O ( ( κ max + n ) log ⁡ ( 1 / ϵ ) ) O((kappa_{text{max}} + n) log(1/epsilon))Ö((κmax+N)sieheG(1/ϵ)), unter Verwendung der Schrittweite γ = O ( 1 / L max ) gamma = O(1/L_{text{max}})γ=Ö(1/Mmax) . Diese lineare Konvergenz ist in Abbildung 1 zu beobachten.Es ist erwähnenswert, dass aufgrund L max L_{text{max}}Mmax-Smooth-Funktion für alle L ′ ≥ L max L' geq L_{text{max}}MMmax Zu LL'M- Glatte SAG-Methoden erreichen lineare Konvergenzraten für ausreichend kleine Schrittgrößen, im Gegensatz zu klassischen SGD-Methoden, die nur sublineare Raten mit Sequenzen abnehmender Schrittgrößen erreichen, die in der Praxis schwer anzupassen sind.

Zu dieser Zeit stellte die lineare Konvergenz von SAG einen erheblichen Fortschritt dar, da in jeder Iteration nur ein stochastischer Gradient (Verarbeitung eines einzelnen Datenpunkts) berechnet wurde. Der von Schmidt et al. [65] bereitgestellte Konvergenznachweis ist jedoch sehr komplex und basiert auf computerverifizierten Schritten. Ein wesentlicher Grund, warum SAG schwierig zu analysieren ist, ist dieser gk g_kGk ist eine voreingenommene Schätzung des Gradienten.

Als Nächstes stellen wir die SAGA-Methode vor, eine Variante von SAG, die das Konzept der Kovariaten nutzt, um eine unvoreingenommene Variante der SAG-Methode zu erstellen, die eine ähnliche Leistung bietet, aber einfacher zu analysieren ist.


Algorithmus 1: SAG-Methode

  1. Parameter: Schrittgröße γ &gt; 0 gamma &gt; 0γ>0
  2. Initialisierung: x 0 x_0X0 vi = 0 ∈ R d v_i = 0 in mathbb{R}^dgegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=0RD für i = 1, …, ni = 1, ldots, nichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1,,N
  3. Rechts k = 1 , … , T − 1 k = 1, ldots, T - 1k=1,,T1 implementieren:
    a. Zufällige Auswahl ik ∈ { 1 , … , n } i_k in {1, ldots, n}ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk{1,,N}
    b. Berechnen g ˉ k = g ˉ k − 1 − 1 nvikk − 1 bar{g}_k = bar{g}_{k-1} - frac{1}{n} v_{i_k}^{k-1}Gˉk=Gˉk1N1gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchkk1
    c. Aktualisieren vikk = ∇ fik ( xk ) v_{i_k}^k = nabla f_{i_k}(x_k)gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchkk=Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk)
    d. Gradientenschätzung aktualisieren g ˉ k = g ˉ k + 1 nvikk bar{g}_k = bar{g}_k + frac{1}{n} v_{i_k}^kGˉk=Gˉk+N1gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchkk
    e. Aktualisieren xk + 1 = xk − γ g ˉ k x_{k+1} = x_k - gamma bar{g}_kXk+1=XkγGˉk
  4. Ausgabe: x T x_TXT

2.2.SAGA-Methode

Eine reduzierte grundlegende unvoreingenommene Gradientenschätzung ∇ fik ( xk ) nabla f_{i_k}(x_k)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk) Der Varianzansatz erfolgt durch die Verwendung sogenannter Kovariaten oder Kontrollvariablen.für i = 1, …, ni = 1, ldots, nichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1,,N,aufstellen vi ∈ R d v_i in mathbb{R}^dgegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchRD ist ein Vektor.Mithilfe dieser Vektoren können wir den gesamten Farbverlauf umwandeln ∇ f ( x ) nabla f(x)F(X) Umgeschrieben als:
∇ f ( x ) = 1 n ∑ i = 1 n ( ∇ fi ( x ) − vi + vi ) = 1 n ∑ i = 1 n ∇ fi ( x ) − vi + 1 n ∑ j = 1 nvj nabla f(x) = frac{1}{n} sum_{i=1}^{n}(nabla f_i(x) - v_i + v_i) = frac{1}{n} sum_{i=1}^{n} nabla f_i(x) - v_i + frac{1}{n} sum_{j=1}^{n} v_jF(X)=N1ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1N(Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X)gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch+gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch)=N1ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1NFichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X)gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch+N1J=1NgegenJ
: = 1 n ∑ i = 1 n ∇ fi ( x , v ) ( 21 ) := frac{1}{n} sum_{i=1}^{n} nabla f_i(x, v) quad (21):=N1ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1NFichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X,gegen)(21)
was definiert ∇ fi ( x , v ) : = ∇ fi ( x ) − vi + 1 n ∑ j = 1 nvj nabla f_i(x, v) := nabla f_i(x) - v_i + frac{1}{n} sum_{j=1}^{n} v_jFichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X,gegen):=Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X)gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch+N1J=1NgegenJ .Jetzt können wir a zufällig auswählen ∇ fi ( x , v ) ist f_i(x, v)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X,gegen) um den vollständigen Gradienten zu konstruieren ∇ f ( x ) nabla f(x)F(X) Eine unvoreingenommene Schätzung von i ∈ { 1 , … , n } i in {1, ldots, n}ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch{1,,N}, können Sie die SGD-Methode anwenden und die Gradientenschätzung verwenden:
gk = ∇ fik ( xk , v ) = ∇ fik ( xk ) − vik + 1 n ∑ j = 1 nvj ( 22 ) g_k = nabla f_{i_k}(x_k, v) = nabla f_{i_k}(x_k) - v_{i_k} + frac{1}{n} sum_{j=1}^{n} v_j quad (22)Gk=Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk,gegen)=Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk)gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk+N1J=1NgegenJ(22)

zur Beobachtung vi v_igegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch Der Auswahlpaarunterschied gk g_kGk Einfluss nehmen können wir gk = ∇ fik ( xk , v ) g_k = nabla f_{i_k}(x_k, v)Gk=Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk,gegen) Ersetzen und verwenden E i ∼ 1 n [ vi ] = 1 n ∑ j = 1 nvj E_i sim frac{1}{n}[v_i] = frac{1}{n} sum_{j=1}^{n} v_jEichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchN1[gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch]=N1J=1NgegenJ Um den Erwartungswert zu berechnen, erhalten wir:
E [ ∥ ∇ fi ( xk ) − vi + E i ∼ 1 n [ vi − ∇ fi ( xk ) ] ∥ 2 ] ≤ E [ ∥ ∇ fi ( xk ) − vi ∥ 2 ] ( 23 ) E links[ |nabla f_i(x_k) - v_i + E_i sim frac{1}{n}[v_i - nabla f_i(x_k)]|^2 rechts] leq E links[ |nabla f_i(x_k) - v_i|^2 rechts] quad (23)E[∥∇Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xk)gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch+EichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchN1[gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchFichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xk)]2]E[∥∇Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xk)gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch2](23)
Hier wird Lemma 2 verwendet, wo X = ∇ fi ( xk ) − vi X = nabla f_i(x_k) - v_iX=Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xk)gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch .Diese Schranke (23) zeigt, dass if vi v_igegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch zusammen mit k.k.k Der Anstieg liegt nahe bei ∇ fi ( xk ) ist f_i(x_k)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xk) , können wir VR-Attribute (12) erhalten.Deshalb rufen wir an vi v_igegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch sind Kovariaten, und wir können sie auswählen, um die Varianz zu reduzieren.

Dieser Ansatz wird beispielsweise auch durch die SGD²-Methode (13) umgesetzt, wobei vi = ∇ fi ( x ∗ ) v_i = nabla f_i(x^*)gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X) .Dies wird jedoch in der Praxis nicht häufig verwendet, da wir es normalerweise nicht wissen ∇ fi ( x ∗ ) ist f_i(x^*)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X) .Eine praktischere Option ist vi v_igegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch wie wir wissen x ˉ i ∈ R d bar{x}_i in mathbb{R}^dXˉichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchRD nahegelegenes Gefälle ∇ fi ( x ˉ i ) nabla f_i(bar{x}_i)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xˉichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch) . SAGA für jede Funktion fi f_iFichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch Verwenden Sie einen Referenzpunkt x ˉ i ∈ R d bar{x}_i in mathbb{R}^dXˉichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchRDund verwenden Sie Kovariaten vi = ∇ fi ( x ˉ i ) v_i = nabla f_i(bar{x}_i)gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xˉichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch), von denen jedes x ˉ i Strich{x}_iXˉichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch wird unsere letzte Einschätzung sein fi f_iFichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch Punkt. Unter Verwendung dieser Kovariaten können wir nach (22) eine Gradientenschätzung erstellen, die Folgendes ergibt:
gk = ∇ fik ( xk ) − ∇ fik ( x ˉ ik ) + 1 n ∑ j = 1 n ∇ fj ( x ˉ j ) ( 24 ) g_k = nabla f_{i_k}(x_k) - nabla f_{i_k}(bar{x}_{i_k}) + frac{1}{n} sum_{j=1}^{n} nabla f_j(bar{x}_j) quad (24)Gk=Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xˉichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk)+N1J=1NFJ(XˉJ)(24)

Um SAGA zu implementieren, können wir Farbverläufe speichern ∇ fi ( x ˉ i ) nabla f_i(bar{x}_i)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xˉichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch) anstatt neinN Anhaltspunkt x ˉ i Strich{x}_iXˉichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch .Das heißt, nehmen wir an vj = ∇ fj ( x ˉ j ) v_j = nabla f_j(bar{x}_j)gegenJ=FJ(XˉJ) für j ∈ { 1 , … , n } j in {1, ldots, n}J{1,,N}In jeder Iteration aktualisieren wir einen stochastischen Gradienten wie SAG v_jgegenJ

Algorithmus 2 SAGA

  1. Parameter: Schrittgröße γ &gt; 0 gamma &gt; 0γ>0
  2. Initialisierung: x 0 x_0X0 vi = 0 ∈ R d v_i = 0 in mathbb{R}^dgegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=0RD für i = 1, …, ni = 1, ldots, nichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1,,N
  3. Benehmen k = 1 , … , T − 1 k = 1, ldots, T - 1k=1,,T1 Iterationen:
    a. Zufällige Auswahl ik ∈ { 1 , … , n } i_k in {1, ldots, n}ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk{1,,N}
    b. Alten Wert speichern v alt = vik v_{text{alt}} = v_{i_k}gegenalt=gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk
    c. Aktualisieren vik = ∇ fik ( xk ) v_{i_k} = nabla f_{i_k}(x_k)gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk=Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk)
    d. Aktualisieren xk + 1 = xk − γ ( vik − v alt + g ˉ k ) x_{k+1} = x_k - gamma (v_{i_k} - v_{text{alt}} + bar{g}_k)Xk+1=Xkγ(gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchkgegenalt+Gˉk)
    e. Gradientenschätzung aktualisieren g ˉ k = g ˉ k − 1 + 1 n ( vik − v alt ) bar{g}_k = bar{g}_{k-1} + frac{1}{n} (v_{i_k} - v_{text{alt}})Gˉk=Gˉk1+N1(gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchkgegenalt)
  4. Ausgabe: x T x_TXT

Die SAGA-Methode hat die gleiche Iterationskomplexität wie SAG O ( ( κ max + n ) log ⁡ ( 1 / ϵ ) ) O((kappa_{text{max}} + n) log(1/epsilon))Ö((κmax+N)sieheG(1/ϵ)), unter Verwendung der Schrittweite γ = O ( 1 / L max ) gamma = O(1/L_{text{max}})γ=Ö(1/Mmax) , aber der Beweis ist viel einfacher.Allerdings erfordert die SAGA-Methode wie SAG eine Speicherung neinN Hilfsvektoren vi ∈ R d v_i in mathbb{R}^dgegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchRD für i = 1, …, ni = 1, ldots, nichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1,,N, was die Notwendigkeit bedeutet O ( nd ) O(nd)Ö(ND) von Stauraum.Wann ddD Und neinN Wenn beide groß sind, ist dies möglicherweise nicht möglich. Im nächsten Abschnitt erläutern wir detailliert, wie dieser Speicherbedarf für gängige Modelle wie regulierte lineare Modelle reduziert werden kann.

wenn es möglich ist neinN Wenn zwei Hilfsvektoren im Speicher gespeichert sind, verhalten sich SAG und SAGA tendenziell ähnlich. Wenn dieser Speicherbedarf zu hoch ist, ist die SVRG-Methode, die wir im nächsten Abschnitt besprechen, eine gute Alternative. Die SVRG-Methode erreicht die gleiche Konvergenzrate und ist in der Praxis oft fast genauso schnell, benötigt aber nur O ( d ) O(d)Ö(D) des Gedächtnisses, für allgemeine Fragen.

2.3.SVRG-Methode

Vor dem Aufkommen der SAGA-Methode wurden in einigen frühen Arbeiten erstmals Kovariaten eingeführt, um das für die SAG-Methode erforderliche Problem des hohen Speichers zu lösen.Diese Studien bauen auf einem festen Bezugspunkt auf x ˉ ∈ R d bar{x} in mathbb{R}^dXˉRD Kovariaten haben wir den vollständigen Gradienten an diesem Punkt berechnet ∇ f ( x ˉ ) nabla f(Strich{x})F(Xˉ) .durch die Speicherung von Referenzpunkten x ˉ Strich{x}Xˉ und der entsprechende vollständige Gradient ∇ f ( x ˉ ) nabla f(Strich{x})F(Xˉ), wir können dies tun, ohne jedes einzelne zu speichern ∇ fj ( x ˉ ) nabla f_j(bar{x})FJ(Xˉ) Für den Fall, verwenden Sie x ˉ j = x ˉ Strich{x}_j = Strich{x}XˉJ=Xˉ an alle jjJ um update(24) zu implementieren.Anstatt diese Vektoren zu speichern, verwenden wir insbesondere die gespeicherten Referenzpunkte in jeder Iteration x ˉ Strich{x}Xˉ berechnen ∇ fik ( x ˉ ) nabla f_{i_k}(bar{x})Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xˉ) . Diese Methode wurde ursprünglich von verschiedenen Autoren unter unterschiedlichen Namen vorgeschlagen, später jedoch als SVRG-Methode vereinheitlicht und folgte der Nomenklatur von [28] und [84].

Wir formalisieren die SVRG-Methode in Algorithmus 3.

Mit (23) können wir die Gradientenschätzung ableiten gk g_kGk Die Varianz von ist beschränkt:
E [ ∥ gk − ∇ f ( xk ) ∥ 2 ] ≤ E [ ∥ ∇ fi ( xk ) − ∇ fi ( x ˉ ) ∥ 2 ] ≤ L max 2 ∥ xk − x ˉ ∥ 2 Elinks[ | g_k - nabla f(x_k) |^2 rechts] leq Elinks[ | nabla f_i(x_k) - nabla f_i(bar{x}) |^2 rechts] leq L_{text{max}}^2 | x_k - bar{x} |^2E[GkF(Xk)2]E[∥∇Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xk)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(Xˉ)2]Mmax2XkXˉ2
wobei die zweite Ungleichung jeweils verwendet wird fi f_iFichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch von L ich L_iMichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch-Glätte.

Es ist erwähnenswert, dass der Referenzpunkt x ˉ Strich{x}Xˉ Je näher am aktuellen Punkt xk x_kXk, desto kleiner ist die Varianz der Gradientenschätzung.

Damit die SVRG-Methode effektiv ist, müssen wir die Referenzpunkte regelmäßig aktualisieren x ˉ Strich{x}Xˉ (was die Berechnung des gesamten Gradienten erfordert) wird gegen den Vorteil einer verringerten Varianz abgewogen.Aus diesem Grund haben wir alle ttT Aktualisieren Sie den Referenzpunkt einmal bei jeder Iteration, um ihn in die Nähe zu bringen xk x_kXk (Siehe Zeile 11 des Algorithmus II-C).Das heißt, die SVRG-Methode enthält zwei Schleifen: eine äußere Schleife ssS, wobei der Referenzgradient berechnet wird ∇ f ( x ˉ s − 1 ) nabla f(bar{x}_{s-1})F(XˉS1)(Zeile 4) und eine innere Schleife, in der der Referenzpunkt festgelegt ist und die innere Iteration basierend auf dem stochastischen Gradientenschritt (22) aktualisiert wird. xk x_kXk(Zeile 10).

Im Gegensatz zu SAG und SAGA erfordert SVRG nur O ( d ) O(d)Ö(D) der Erinnerung. Zu den Nachteilen von SVRG gehören: 1) Wir haben einen zusätzlichen Parameter ttT, dh die Länge der inneren Schleife, muss angepasst werden. 2) Für jede Iteration müssen zwei Gradienten berechnet werden, und der vollständige Gradient muss jedes Mal berechnet werden, wenn der Referenzpunkt geändert wird.

Johnson und Zhang [28] zeigten, dass SVRG eine iterative Komplexität aufweist O ( ( κ max + n ) log ⁡ ( 1 / ϵ ) ) O((kappa_{text{max}} + n) log(1/epsilon))Ö((κmax+N)sieheG(1/ϵ)) , ähnlich SAG und SAGA.Dies ist die Anzahl der Schleifen innerhalb der Hypothese ttT aus der Sammlung { 1 , … , m } {1, ldots, m}{1,,M} Erhalten unter der Bedingung einer einheitlichen Probenahme, wo L max L_{text{max}}Mmax μ muμ, Schrittlänge γ-Gammaγ Und ttT Zwischen ihnen müssen bestimmte Abhängigkeiten erfüllt sein.In der Praxis durch die Verwendung γ = O ( 1 / L max ) gamma = O(1/L_{text{max}})γ=Ö(1/Mmax) und innere Schleifenlänge t = nt = nT=N, SVRG tendiert dazu, eine gute Leistung zu erbringen, was genau der Einstellung entspricht, die wir in Abbildung 1 verwendet haben.

Mittlerweile gibt es viele Variationen der ursprünglichen SVRG-Methode.Beispielsweise verwenden einige Variationen ttT Alternativverteilung [32], einige Varianten erlauben die Form O ( 1 / L max ) O(1/L_{text{max}})Ö(1/Mmax) Die Schrittgröße [27], [33], [35].Es gibt auch einige Variationen bei der Verwendung ∇ f ( x ˉ ) nabla f(Strich{x})F(Xˉ) Mini-Batch-Näherung, um die Kosten dieser vollständigen Gradientenauswertungen zu senken und die Mini-Batch-Größe zu erhöhen, um VR-Eigenschaften beizubehalten.Es gibt auch einige Varianten, bei denen Aktualisierungen gemäß [54] in der inneren Schleife wiederholt werden. gk g_kGk
[ g_k = nabla f_{i_k}(x_k) - nabla f_{i_k}(x_{k-1}) + g_{k-1} quad (25) ]
Dies liefert eine lokalere Näherung. Die Verwendung dieser kontinuierlichen Aktualisierungsvariante (25) zeigt einzigartige Vorteile bei der Minimierung nichtkonvexer Funktionen, wie wir in Abschnitt IV kurz diskutieren.Beachten Sie abschließend, dass SVRG davon profitieren kann ∇ f ( x ˉ s ) nabla f(bar{x}_s)F(XˉS) Wert, der bei der Entscheidung hilft, wann der Algorithmus beendet werden soll.

Algorithmus 3 SVRG-Methode

  1. Parameter: Schrittgröße γ &gt; 0 gamma &gt; 0γ>0
  2. Referenzpunkt initialisieren x ˉ 0 = x 0 ∈ R d bar{x}_0 = x_0 in mathbb{R}^dXˉ0=X0RD
  3. Führen Sie eine externe Zirkulation durch s = 1, 2, … s = 1, 2, lPunkteS=1,2,
    a. Berechnen und speichern ∇ f ( x ˉ s − 1 ) nabla f(bar{x}_{s-1})F(XˉS1)
    b. Annehmen x 0 = x ˉ s − 1 x_0 = bar{x}_{s-1}X0=XˉS1
    c. Wählen Sie die Anzahl der Iterationen der inneren Schleife ttT
    d. Führen Sie eine interne Zirkulation durch k = 0, 1, …, t − 1 k = 0, 1, ldots, t - 1k=0,1,,T1
    i. Zufällige Auswahl ik ∈ { 1 , … , n } i_k in {1, ldots, n}ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk{1,,N}
    ii. Berechnung gk = ∇ fik ( xk ) − ∇ fik ( x ˉ s − 1 ) + ∇ f ( x ˉ s − 1 ) g_k = nabla f_{i_k}(x_k) - nabla f_{i_k}(bar{x}_{s-1}) + nabla f(bar{x}_{s-1})Gk=Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(Xk)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchk(XˉS1)+F(XˉS1)
    iii. Aktualisieren xk + 1 = xk − γ gk x_{k+1} = x_k - gamma g_kXk+1=XkγGk
    e. Referenzpunkt aktualisieren x ˉ s = xt Strich{x}_s = x_tXˉS=XT

2.4. SDCA und seine Varianten

Ein Nachteil der SAG- und SVRG-Methoden besteht darin, dass ihre Schrittgröße auf unbekannten Werten beruht, die bei einigen Problemen möglicherweise unbekannt sind. L max L_{text{max}}Mmax . Vor SVRG erweiterte die SDCA-Methode [70] als eine der frühesten VR-Methoden die Forschung zu Koordinatenabstiegsmethoden auf Finite-Summen-Probleme. Die Idee hinter SDCA und seinen Varianten besteht darin, dass die Koordinaten des Gradienten eine natürliche varianzreduzierende Gradientenschätzung liefern.Nehmen wir konkret an j ∈ { 1 , … , d } j in {1, ldots, d}J{1,,D}, und definieren ∇ jf ( x ) : = ( ∂ f ( x ) ∂ xj ) ej nabla_j f(x) := left( frac{partiell f(x)}{partiell x_j} rechts) e_jJF(X):=(XJF(X))tJ ist das te von (f(x)) jjJ Ableitungen in Koordinatenrichtungen, wo ej ∈ R d e_j in mathbb{R}^dtJRD Es ist das erste jjJ Einheitsvektor.Eine Schlüsseleigenschaft von Koordinatenableitungen ist das ∇ jf ( x ∗ ) = 0 nabla_j f(x^*) = 0JF(X)=0, weil wir es wissen ∇ f ( x ∗ ) = 0 nabla f(x^*) = 0F(X)=0 .Die Ableitung davon mit jedem Datenpunkt ∇ fj nabla f_jFJ anders, Letzteres ist x ∗ x^*X darf nicht Null sein. Deshalb haben wir:
∥ ∇ f ( x ) − ∇ jf ( x ) ∥ 2 → 0 当 x → x ∗ ( 26 ) | nabla f(x) - nabla_j f(x) |^2 rightarrow 0 quad text{当} quad x rightarrow x^* quad (26)∥∇F(X)JF(X)20WannXX(26)
Dies bedeutet, dass die Koordinatenableitung die Varianzreduktionseigenschaft (12) erfüllt.Darüber hinaus können wir verwenden ∇ jf ( x ) nabla_j f(x)JF(X) bauen ∇ f ( x ) nabla f(x)F(X) eine unvoreingenommene Schätzung von.Nehmen wir zum Beispiel an jjJ ist aus der Sammlung { 1 , … , d } {1, ldots, d}{1,,D} Ein gleichmäßig zufällig ausgewählter Index in .Daher für jeden i ∈ { 1 , … , d } i in {1, ldots, d}ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch{1,,D},Wir haben P [ j = i ] = 1 d P[j = i] = frac{1}{d}P[J=ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch]=D1 . daher, d × ∇ jf ( x ) d mal nabla_j f(x)D×JF(X) Ja ∇ f ( x ) nabla f(x)F(X) Eine unvoreingenommene Schätzung, weil:
E [ d ∇ jf ( x ) ] = d ∑ i = 1 d P [ j = i ] ∂ f ( x ) ∂ xiei = ∑ i = 1 d ∂ f ( x ) ∂ xiei = ∇ f ( x ) Eleft[ d nabla_j f(x) right] = d sum_{i=1}^{d} P[j = i] frac{partial f(x)}{partial x_i} e_i = sum_{i=1}^{d} frac{partial f(x)}{partial x_i} e_i = nabla f(x)E[DJF(X)]=Dichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1DP[J=ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch]XichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchF(X)tichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1DXichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchF(X)tichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=F(X)

daher, ∇ jf ( x ) nabla_j f(x)JF(X) Verfügt über alle idealen Eigenschaften, die wir für die VR-Schätzung vollständiger Gradienten erwarten würden, ohne dass Kovariaten verwendet werden müssen. Ein Nachteil der Verwendung dieses Koordinatengradienten besteht darin, dass er für unser Summenproblem (2) rechenintensiv ist.Dies liegt an der Berechnung ∇ jf ( x ) nabla_j f(x)JF(X) Der gesamte Datensatz muss durchlaufen werden, weil ∇ jf ( x ) = 1 n ∑ i = 1 n ∇ jfi ( x ) nabla_j f(x) = frac{1}{n} sum_{i=1}^{n} nabla_j f_i(x)JF(X)=N1ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1NJFichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X) . Daher scheint die Verwendung von Koordinatenableitungen mit der Struktur unseres Summenproblems unvereinbar zu sein. Allerdings können wir das ursprüngliche Problem (2) oft in eine sogenannte duale Formulierung umschreiben, bei der die Koordinatenableitungen die inhärente Struktur ausnutzen können.

Die duale Formel des L2-regularisierten linearen Modells (15) lautet beispielsweise:
v ∗ ∈ arg ⁡ max ⁡ v ∈ R n 1 n ∑ i = 1 n − ℓ i ∗ ( − vi ) − λ 2 ∥ 1 λ ∑ i = 1 nviai ∥ 2 ( 27 ) v^* in argmax_{v in mathbb{R}^n} frac{1}{n} sum_{i=1}^{n} -ell_i^*(-v_i) - frac{lambda}{2} links| frac{1}{lambda} sum_{i=1}^{n} v_i a_i rechts|^2 quad (27)gegenarGgegenRNmaxN1ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1Nichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch)2λ λ1ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1NgegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchAichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch 2(27)
In ℓ i ∗ ( v ) ell_i ^*(v)ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(gegen) Ja ℓ ich ell_iichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch konvexes Konjugat.Wir können Mapping verwenden x = 1 λ ∑ i = 1 nviaix = frac{1}{lambda} sum_{i=1}^{n} v_i a_iX=λ1ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1NgegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchAichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch um das ursprüngliche Problem zu beheben (15) xxX Variable.wir klären das v ∗ v^*gegen Durch Einsetzen in die rechte Seite der obigen Abbildung erhalten wir die Lösung von (15) x ∗ x^*X

Beachten Sie, dass dieses Doppelproblem besteht neinN reelle Variablen vi ∈ R v_i in mathbb{R}gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchR , was einem für jedes Trainingsbeispiel entspricht.Darüber hinaus hat jede doppelte Verlustfunktion ℓ ich ∗ ell_i^*ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch nur vi v_igegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch Die Funktion. Das heißt, der erste Term in der Verlustfunktion ist koordinativ trennbar. Diese Trennbarkeit in Koordinaten, gepaart mit der einfachen Form des zweiten Termes, ermöglicht uns die effiziente Implementierung der Koordinatenaufstiegsmethode.Tatsächlich zeigten Shalev-Shwartz und Zhang, dass der Koordinatenaufstieg bei diesem Problem eine ähnliche iterative Komplexität aufweist wie SAG, SAGA und SVRG O ( ( κ max + n ) log ⁡ ( 1 / ϵ ) ) O((kappa_{text{max}} + n) log(1/epsilon))Ö((κmax+N)sieheG(1/ϵ))

Auch die Iterationskosten und die Algorithmusstruktur sind sehr ähnlich: Summierung durch Tracking ∑ i = 1 nviai Summe_{i=1}^{n} v_i a_iichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch=1NgegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchAichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch Um den zweiten Term in (27) zu verarbeiten, muss jede Dual-Koordinaten-Aufstiegsiteration nur eine Trainingsprobe berücksichtigen, und die Kosten jeder Iteration sind dieselben wie neinN Nichts zu tun.Darüber hinaus können wir eine 1D-Liniensuche verwenden, um die zu maximierende Schrittgröße effizient zu berechnen vi v_igegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch Doppeltes Ziel der Funktion.Das bedeutet auch ohne L max L_{text{max}}Mmax Durch die Kenntnis relevanter Größen können auch schnelle Worst-Case-Laufzeiten für VR-Methoden erreicht werden.

3. Praktische Fragen der Varianzreduktion

Um die grundlegende Varianzreduktionsmethode (VR) zu implementieren und eine angemessene Leistung zu erzielen, müssen mehrere Implementierungsprobleme angegangen werden. In diesem Abschnitt besprechen wir mehrere Themen, die oben nicht behandelt wurden.

3.1. SAG/SAGA/SVRG-Einstellung der Schrittgröße

Im Bereich der Optimierungsalgorithmen, insbesondere bei Variationsreduktionsverfahren wie dem stochastischen Durchschnittsgradienten (SAG), dem stochastischen Durchschnittsgradientenalgorithmus (SAGA) und dem stochastischen Gradienten (SVRG), ist die Einstellung der Schrittweite ein zentrales Thema.Obwohl wir für die SDCA-Methode (Stochastic Dual Coordinate Ascent) das duale Ziel zur Bestimmung der Schrittgröße verwenden können, ist die theoretische Grundlage für die ursprünglichen Variablenmethoden von SAG, SAGA und SVRG, dass die Schrittgröße sein sollte γ = O ( 1 L max ) gamma = Olinks(frac{1}{L_{text{max}}}rechts)γ=Ö(Mmax1) bilden.In praktischen Anwendungen wissen wir es jedoch oft nicht L max L_{text{max}}Mmax Geben Sie den genauen Wert an, und die Verwendung anderer Schrittgrößen kann zu einer besseren Leistung führen.

Eine klassische Strategie zum Festlegen der Schrittgröße in der Methode des vollständigen Gradientenabstiegs (Full-GD) ist die Armijo-Liniensuche.gegebener aktueller Punkt xk x_kXk und Suchrichtung gk g_kGk, Armijo-Zeilensuche in γ k gamma_kγk wird auf der Linie ausgeführt, die definiert ist als γ k ∈ { γ : xk + γ gk } gamma_k in {gamma : x_k + gamma g_k}γk{γ:Xk+γGk}, und die Funktion muss ausreichend reduziert werden, das heißt:
f ( xk + γ kgk ) &lt; f ( xk ) − c γ k ∥ ∇ f ( xk ) ∥ 2 f(x_k + gamma_k g_k) &lt; f(x_k) - c gamma_k |nabla f(x_k)|^2F(Xk+γkGk)<F(Xk)Cγk∥∇F(Xk)2
Dieser Ansatz erfordert jedoch mehrere Kandidatenschritte γ k gamma_kγk Berechnung f ( xk + γ kgk ) f(x_k + gamma_k g_k)F(Xk+γkGk), die auswertet f ( x ) f(x)F(X) Die Kosten sind unerschwinglich, wenn es darum geht, den gesamten Datensatz zu durchqueren.

Um dieses Problem zu lösen, kann eine zufällige Variationsmethode verwendet werden, um diejenigen zu finden, die die folgenden Bedingungen erfüllen γ k gamma_kγk
fik ( xk + γ kgk ) &lt; fik ( xk ) − c γ k ∥ ∇ fik ( xk ) ∥ 2 f_{ik}(x_k + gamma_k g_k) &lt; f_{ik}(x_k) - c gamma_k |nabla f_{ik}(x_k)|^2Fich k(Xk+γkGk)<Fich k(Xk)Cγk∥∇Fich k(Xk)2
Dieser Ansatz funktioniert in der Praxis normalerweise gut, insbesondere wenn ∥ ∇ fik ( xk ) ∥ |nabla f_{ik}(x_k)|∥∇Fich k(Xk) nicht nahe Null, obwohl es derzeit keine Theorie gibt, die diesen Ansatz unterstützt.

Darüber hinaus schlug Mairal eine „Bottou-Technik“ zur Einstellung der Schrittweite in der Praxis vor. Diese Methode führt eine binäre Suche durch, indem sie einen kleinen Teil des Datensatzes (z. B. 5 %) verwendet, um zu versuchen, die optimale Schrittgröße in einem einzigen Durchgang durch diese Stichprobe zu finden. Ähnlich wie die Armijo-Liniensuche schneidet diese Methode in der Praxis oft gut ab, es mangelt ihr aber wiederum an einer theoretischen Grundlage.

Bitte beachten Sie, dass der obige Inhalt eine Neuformulierung des Originaltextes ist und das Markdown-Format zur Darstellung mathematischer Formeln und Variablen verwendet.

Allerdings hat die SDCA-Methode auch einige Nachteile.Zunächst muss das konvexe Konjugat berechnet werden ℓ ich ∗ ell_i^*ichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch statt eines einfachen Farbverlaufs. Wir haben kein automatisches Differentialäquivalent für konvexe Konjugate, daher kann dies den Implementierungsaufwand erhöhen. In neueren Arbeiten wurden „dualfreie“ SDCA-Methoden vorgeschlagen, die keine Konjugation erfordern und stattdessen direkt Gradienten verwenden. Allerdings ist es bei diesen Methoden nicht mehr möglich, das Doppelziel zur Einstellung der Schrittweite zu verfolgen.Zweitens, obwohl SDCA nur erfordert O ( n + d ) O(n + d)Ö(N+D) Speicher zur Lösung des (15)-Problems, aber für diese Problemkategorie benötigt SAG/SAGA nur O ( n + d ) O(n + d)Ö(N+D) des Gedächtnisses (siehe Abschnitt 3).Eine Variante von SDCA, die für allgemeinere Probleme mit SAG/SAGA geeignet ist O ( nd ) O(nd)Ö(ND) Erinnerung, weil vi v_igegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch werden zu haben ddD Vektor von Elementen. Ein letzter subtiler Nachteil von SDCA besteht darin, dass es implizit eine starke Konvexitätskonstante annimmt μ muμ gleich λ Lambdaλ .für μ muμ mehr als die λ Lambdaλ Problem: Die ursprüngliche VR-Methode ist SDCA in der Regel deutlich überlegen.

3.2. Festlegung der Kündigungsbedingungen

Im Bereich der Algorithmusoptimierung verlassen wir uns häufig auf theoretische Ergebnisse der iterativen Komplexität, um die Anzahl der Iterationen im ungünstigsten Fall vorherzusagen, die ein Algorithmus benötigt, um eine bestimmte Genauigkeit zu erreichen. Allerdings basieren diese theoretischen Grenzen oft auf einigen Konstanten, die wir nicht vorhersagen können, und in praktischen Anwendungen kann der Algorithmus oft die erwartete Genauigkeit in weniger Iterationen erreichen. Daher müssen wir einige Testkriterien festlegen, um zu bestimmen, wann der Algorithmus beendet werden soll.

Bei der traditionellen Methode des vollständigen Gradientenabstiegs (Full-GD) verwenden wir normalerweise die Norm des Gradienten ∥ ∇ f ( xk ) ∥ | nabla f(x_k) |∥∇F(Xk) Oder eine andere damit zusammenhängende Größe, um zu entscheiden, wann die Iteration gestoppt werden soll.Für die SVRG-Methode können wir das gleiche Kriterium übernehmen, aber verwenden ∥ ∇ f ( x ˉ s ) ∥ | nabla f(bar{x}_s) |∥∇F(XˉS) als Grundlage für die Beurteilung.Obwohl wir für die SAG/SAGA-Methode nicht explizit den vollständigen Gradienten berechnen, nähert sich die Menge $ g_{bar{k}} $ allmählich an ∇ f ( xk ) und f(x_k)F(Xk), daher verwenden ∥ gk ˉ ∥ | g_{bar{k}} |Gkˉ als Stoppbedingung ist eine sinnvolle Heuristik.

Bei der SDCA-Methode können wir mit etwas zusätzlichem Aufzeichnungsaufwand den Gradienten des Doppelobjektivs verfolgen, ohne zusätzliche asymptotische Kosten hinzuzufügen.Darüber hinaus wäre es ein systematischerer Ansatz, die doppelte Lücke zu verfolgen, obwohl dies die Kosten erhöhen würde Aus AusÖ(N) Kostengünstig, aber es ist in der Lage, Kündigungsbedingungen mit doppeltem Gap-Nachweis bereitzustellen. Basierend auf der Optimalitätsbedingung stark konvexer Ziele verwendet die MISO-Methode außerdem eine prinzipielle Methode, die auf einer quadratischen Untergrenze basiert [41].

Im Folgenden sind mathematische Formeln und Variablen aufgeführt, die im Markdown-Format ausgedrückt werden:

  • Gradientennorm: ∥ ∇ f ( xk ) ∥ | nabla f(x_k) |∥∇F(Xk)
  • Gradientennorm in der SVRG-Methode: ∥ ∇ f ( x ˉ s ) ∥ | nabla f(bar{x}_s) |∥∇F(XˉS)
  • Der Betrag des Approximationsgradienten in der SAG/SAGA-Methode: $ g_{bar{k}} $
  • Erhöhte Kosten pro Iteration: Aus AusÖ(N)
  • MISO-Methode
  • quadratische Untergrenze

Bitte beachten Sie, dass der obige Inhalt eine Neuformulierung des Originaltextes ist und das Markdown-Format zur Darstellung mathematischer Formeln und Variablen verwendet.

3.3. Reduzieren Sie den Speicherbedarf

Obwohl der Stochastic Variational Reduction of Gradient (SVRG)-Algorithmus den Speicherbedarf früherer Variationsreduktionsmethoden eliminiert, werden in praktischen Anwendungen bei vielen Problemen die Algorithmen SAG (Stochastic Average Gradient Descent) und SAGA (Stochastic Average Gradient Descent with Gradient Accumulation) verwendet . neigen dazu, weniger Iterationen als der SVRG-Algorithmus zu erfordern.Dies löste einen Gedanken aus: Gibt es einige Probleme, die SAG/SAGA ermöglichen? O ( nd ) O(nd)Ö(ND) Speicheranforderungen werden unten implementiert. In diesem Abschnitt wird eine Klasse linearer Modelle untersucht, bei denen der Speicherbedarf erheblich reduziert werden kann.

Betrachten Sie ein lineares Modell, bei dem jede Funktion fi ( x ) f_i(x)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X) Es kann ausgedrückt werden als: ξ i ( ai ⊤ x ) xi_i(mathbf{a}_i^top x)ξichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(AichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchX) .Rechts xxX Die Ableitung ergibt die Gradientenform:
∇ fi ( x ) = ξ ′ ( ai ⊤ x ) ai nabla f_i(x) = xi'(mathbf{a}_i^top x) mathbf{a}_iFichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X)=ξ(AichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchX)Aichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch
Hier, ξ ′ xi'ξ äußern ξ xiξ die Ableitung von.Vorausgesetzt, wir haben direkten Zugriff auf die Eigenvektoren ai mathbf{a}_iAichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchDann müssen wir zur Implementierung der SAG/SAGA-Methode nur den Skalar speichern ξ ( ai ⊤ x ) xi(mathbf{a}_i^top x)ξ(AichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchX) .Auf diese Weise variieren die Speicheranforderungen O ( nd ) O(nd)Ö(ND) reduziert auf Aus AusÖ(N) . Auch der SVRG-Algorithmus kann sich diese Gradientenstruktur zunutze machen: indem er sie speichert neinN Skalar können wir die Anzahl der pro „innerer“ SVRG-Iteration erforderlichen Gradientenauswertungen für diese Problemklasse auf 1 reduzieren.

Es gibt auch andere Arten von Problemen, beispielsweise probabilistische grafische Modelle, die ebenfalls die Möglichkeit bieten, den Speicherbedarf zu reduzieren [66]. Durch gezielte Datenstruktur- und Algorithmusoptimierung können die vom Algorithmus zur Laufzeit benötigten Speicherressourcen weiter reduziert werden.

Im Folgenden sind mathematische Formeln und Variablen aufgeführt, die im Markdown-Format ausgedrückt werden:

  • Lineare Modellfunktion: fi ( x ) = ξ i ( ai ⊤ x ) f_i(x) = xi_i(mathbf{a}_i^top x)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X)=ξichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(AichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchX)
  • Farbverlaufsausdruck: ∇ fi ( x ) = ξ ′ ( ai ⊤ x ) ai nabla f_i(x) = xi'(mathbf{a}_i^top x) mathbf{a}_iFichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X)=ξ(AichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchX)Aichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch
  • Merkmalsvektor: ai mathbf{a}_iAichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch
  • Der Speicherbedarf reicht von O ( nd ) O(nd)Ö(ND) Reduzieren Aus AusÖ(N)

3.4. Verarbeitung spärlicher Farbverläufe

Bei einigen Problemen ist der Gradient ∇ fi ( x ) ist f_i(x)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X) Kann eine große Anzahl von Nullwerten enthalten, z. B. ein lineares Modell mit spärlichen Features.In diesem Fall kann der herkömmliche stochastische Gradientenabstiegsalgorithmus (SGD) effizient implementiert werden, wobei die Rechenkomplexität linear zur Anzahl der Nicht-Null-Elemente im Gradienten ist, die normalerweise viel kleiner als die Problemdimension ist ddD . Bei Standardmethoden der Variationsreduktion (VR) wird dieser Vorteil jedoch nicht ausgenutzt. Glücklicherweise gibt es zwei bekannte Möglichkeiten, dies zu verbessern.

Die erste Verbesserung wurde von Schmidt et al. vorgeschlagen, die sich die Einfachheit des Aktualisierungsprozesses zunutze macht und eine Variante der „on-the-fly“-Berechnung implementiert, sodass die Kosten jeder Iteration proportional zur Anzahl ungleich Null sind Elemente.Am Beispiel von SAG (aber dieser Ansatz funktioniert für alle Varianten) erfolgt dies dadurch, dass nicht nach jeder Iteration der vollständige Vektor gespeichert wird vik v_{ik}gegenich k, berechnet aber nur diejenigen, die Elementen ungleich Null entsprechen vikj v_{ik_j}gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchkJ, indem jede Variable aktualisiert wird, seit das Element das letzte Mal ungleich Null war vikj v_{ik_j}gegenichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchkJ

Die zweite Verbesserungsmethode wurde von Leblond et al. für SAGA vorgeschlagen, wodurch die Formel aktualisiert wird xk + 1 = xk − γ ( ∇ fik ( xk ) − ∇ fik ( x ˉ ik ) + g ˉ k ) x_{k+1} = x_k - gamma(nabla f_{ik}(x_k) - nabla f_{ik}(bar{x}_{ik}) + bar{g}_k)Xk+1=Xkγ(Fich k(Xk)Fich k(Xˉich k)+Gˉk) Zusätzliche Zufälligkeit wird eingeführt. Hier, ∇ fik ( xk ) nabla f_{ik}(x_k)Fich k(Xk) Und ∇ fik ( x ˉ ik ) nabla f_{ik}(bar{x}_{ik})Fich k(Xˉich k) ist spärlich, und g ˉ k Strich{g}_kGˉk ist dicht.Bei dieser Methode ist der dichte Begriff ( g ˉ k ) j (Strich{g}_k)_j(Gˉk)J Jede Komponente von wird durch ersetzt wj ( g ˉ k ) j w_j (Strich{g}_k)_jmJ(Gˉk)J,In w ∈ R dw in mathbb{R}^dmRD ist ein zufälliger, dünn besetzter Vektor, dessen Unterstützungssatz in enthalten ist ∇ fik ( xk ) nabla f_{ik}(x_k)Fich k(Xk) , und es wird erwartet, dass es sich um einen konstanten Vektor handelt, bei dem alle Elemente gleich 1 sind. Auf diese Weise bleibt der Aktualisierungsprozess unvoreingenommen (wenn auch jetzt spärlich) und die erhöhte Varianz hat keinen Einfluss auf die Konvergenzrate des Algorithmus. Weitere Einzelheiten werden von Leblond et al. bereitgestellt.

Im Folgenden sind mathematische Formeln und Variablen aufgeführt, die im Markdown-Format ausgedrückt werden:

  • Gradient: ∇ fi ( x ) ist f_i(x)Fichchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchchch(X)
  • SGD-Update: xk + 1 = xk − γ ( ∇ fik ( xk ) − ∇ fik ( x ˉ ik ) + g ˉ k ) x_{k+1} = x_k - gamma(nabla f_{ik}(x_k) - nabla f_{ik}(bar{x}_{ik}) + bar{g}_k)Xk+1=Xkγ(Fich k(Xk)Fich k(Xˉich k)+Gˉk)
  • Spärlicher Farbverlauf: ∇ fik ( xk ) nabla f_{ik}(x_k)Fich k(Xk) Und ∇ fik ( x ˉ ik ) nabla f_{ik}(bar{x}_{ik})Fich k(Xˉich k)
  • Dichtes Gefälle: g ˉ k Strich{g}_kGˉk
  • Zufällige spärliche Vektoren: wwm
  • Erwartet einen konstanten Vektor: einen Vektor, bei dem alle Elemente gleich 1 sind.