Vorwort
Dieser Artikel konzentriert sich auf Methoden zur Lösung mathematischer Optimierungsprobleme basierend auf der Verwendung eines Funktionsgradienten. Das Hauptziel ist es, in dem Artikel alle wichtigen Ideen zu sammeln, die irgendwie mit dieser Methode und ihren verschiedenen Modifikationen zusammenhÀngen.
UPD In den Kommentaren schreiben sie, dass in einigen Browsern und in der mobilen Anwendung Formeln nicht angezeigt werden. Leider weià ich nicht, wie ich damit umgehen soll. Ich kann nur sagen, dass ich die Makros "Inline" und "Display" des Habrava-Editors verwendet habe. Wenn Sie plötzlich wissen, wie Sie das beheben können, schreiben Sie bitte in die Kommentare.
Anmerkung des Autors
Zum Zeitpunkt des Schreibens verteidigte ich eine Dissertation, deren Aufgabe es erforderte, ein tiefes VerstĂ€ndnis fĂŒr grundsĂ€tzlich theoretische Methoden der mathematischen Optimierung zu haben. Trotzdem sind meine Augen (wie alle anderen auch) immer noch von unheimlichen langen Formeln verschwommen, so dass ich viel Zeit damit verbracht habe, SchlĂŒsselideen zu isolieren, die verschiedene Variationen von Gradientenmethoden charakterisieren wĂŒrden. Mein persönliches Ziel ist es, einen Artikel zu schreiben, der die Mindestmenge an Informationen enthĂ€lt, die fĂŒr ein mehr oder weniger detailliertes VerstĂ€ndnis des Themas erforderlich sind. Aber seien Sie vorbereitet, auf Formeln kann man sowieso nicht verzichten.
ErklÀrung des Problems
Bevor Sie die Methode beschreiben, mĂŒssen Sie zunĂ€chst das Problem beschreiben: âGegeben sind viele
m a t h c a l K. und Funktion
f : m ein t h c ein l K r i g h t a r r o w m a t h b b R mĂŒssen einen Punkt finden
x â i n m a t h c a l K. so dass
f ( x ) g e q f ( x â ) fĂŒr alle
x in mathcalK ", Was normalerweise so geschrieben ist
f(x) rightarrow minx in mathcalK.
Theoretisch wird das normalerweise angenommen
f Ist eine differenzierbare und konvexe Funktion, und
mathcalK - konvexer Satz (und noch besser, wenn ĂŒberhaupt
mathcalK= mathbbRn ), so können wir einige Garantien fĂŒr den Erfolg der Anwendung des Gradientenabfalls geben. In der
Praxis wird der Gradientenabstieg auch dann erfolgreich angewendet, wenn die Aufgabe keine der oben genannten Eigenschaften aufweist (ein Beispiel weiter unten in diesem Artikel).
Ein bisschen Mathe
Nehmen wir an, wir mĂŒssen vorerst nur ein Minimum einer eindimensionalen Funktion finden
f(x) rightarrow minx in mathbbR.
Bereits im 17. Jahrhundert hatte Pierre Fermat ein Kriterium entwickelt, das es ermöglichte, einfache Optimierungsprobleme zu lösen, nÀmlich
wenn xâ - Mindestpunkt fâ dannfâČ(xâ)=0
wo
fâČ - Derivat
f . Dieses Kriterium basiert auf einer linearen NĂ€herung.
f(x) ungefĂ€hrf(xâ)+fâČ(xâ)(xâxâ).
NĂ€her dran
x zu
xâ desto genauer ist diese AnnĂ€herung. Auf der rechten Seite ist ein Ausdruck, der, wenn
fâČ(xâ) neq0 vielleicht mehr
f(xâ) weniger ist das Wesentliche des Kriteriums. Im mehrdimensionalen Fall Ă€hnlich aus der linearen NĂ€herung
f(x) ungefĂ€hrf(xâ)+ nablaf(xâ)T(xâxâ) (im Folgenden
xTy= sumni=1xiyi - Standard-Skalarprodukt, die Form des Schreibens beruht auf der Tatsache, dass das Skalarprodukt das gleiche ist wie das Matrixprodukt eines Zeilenvektors durch einen Spaltenvektor), das Kriterium wird erhalten
nablaf(xâ)=0.
Wert
nablaf(xâ) - Funktionsgradient
f an der Stelle
xâ . Die Gleichheit des Gradienten mit Null bedeutet auch die Gleichheit aller partiellen Ableitungen mit Null. Daher kann man im mehrdimensionalen Fall dieses Kriterium erhalten, indem man das eindimensionale Kriterium fĂŒr jede Variable einfach nacheinander separat anwendet.
Es ist erwĂ€hnenswert, dass diese Bedingungen notwendig, aber nicht ausreichend sind. Das einfachste Beispiel ist 0 fĂŒr
f(x)=x2 und
f(x)=x3

Dieses Kriterium ist bei einer konvexen Funktion ausreichend, vor allem deshalb konnten so viele Ergebnisse fĂŒr konvexe Funktionen erzielt werden.
Quadratische Funktionen
Quadratische Funktionen in
mathbbRn Ist eine Funktion der Form
f(x)=f(x1,x2, ldots,xn)= frac12 sumni,j=1aijxixjâ sumni=1bixi+c
Um Platz zu sparen (und sich weniger um Indizes zu kĂŒmmern), wird diese Funktion normalerweise in Matrixform geschrieben:
f(x)= frac12xTAxâbTx+c,
wo
x=(x1, ldots,xn)T ,
b=(b1, ldots,bn)T ,
A Ist eine Matrix, an der an der Kreuzung
i Saiten und
j Spalte ist der Wert
frac12(aij+aji) (
A es stellt sich als symmetrisch heraus - das ist wichtig). Weiter. Wenn ich eine quadratische Funktion erwÀhne, werde ich die obige Funktion haben.
Warum rede ich darĂŒber? Tatsache ist, dass quadratische Funktionen aus zwei GrĂŒnden fĂŒr die Optimierung wichtig sind:
- Sie treten auch in der Praxis auf, beispielsweise beim Aufbau einer linearen Regression kleinster Quadrate
- Der Gradient einer quadratischen Funktion ist eine lineare Funktion, insbesondere fĂŒr die obige Funktion
frac partiell partiellxif(x1,x2, ldots,xn)=aiixi+ sumj neqi frac12(aij+aji)xjâbi,
Oder in Matrixform
nablaf(x)=Axâb,
Also das System nablaf(x)=0 - lineares System. Ein System, das einfacher als linear ist, existiert nicht. Der Gedanke, den ich erreichen wollte, ist die Optimierung einer quadratischen Funktion - die einfachste Klasse von Optimierungsproblemen . Auf der anderen Seite die Tatsache, dass nablaf(xâ)=0 - Die notwendigen Mindestbedingungen ermöglichen es, lineare Systeme durch Optimierungsprobleme zu lösen. Wenig spĂ€ter werde ich versuchen, Sie davon zu ĂŒberzeugen, dass dies sinnvoll ist.
NĂŒtzliche Verlaufseigenschaften
Nun, wir scheinen herausgefunden zu haben, dass wenn eine Funktion differenzierbar ist (sie hat Ableitungen in Bezug auf alle Variablen), der Gradient am minimalen Punkt gleich Null sein sollte. Aber enthĂ€lt der Gradient nĂŒtzliche Informationen, wenn er nicht Null ist?
Versuchen wir, ein einfacheres Problem zu lösen:
Der Punkt ist gegeben x Punkt finden barx so dass f( barx)<f(x) . Nehmen wir einen Punkt neben
x wieder mit linearer Approximation
f( barx) ca.f(x)+ nablaf(x)T( barxâx) . Wenn du nimmst
barx=xâ alpha nablaf(x) ,
alpha>0 dann bekommen wir
f( barx) ungefĂ€hrf(x)â alpha | nablaf(x) |2<f(x).
Ebenso wenn
alpha<0 dann
f( barx) wird mehr sein
f(x) (im Folgenden
||x||= sqrtx21+x22+ ldots+x2n ) Da wir die NĂ€herung verwendet haben, gelten diese Ăberlegungen wiederum nur fĂŒr kleine
alpha . Um das Obige zusammenzufassen, wenn
nablaf(x) neq0 dann gibt der
Gradient die Richtung der gröĂten lokalen Funktionssteigerung an .
Hier sind zwei Beispiele fĂŒr zweidimensionale Funktionen. Bilder dieser Art sind hĂ€ufig in Demonstrationen des GefĂ€lles zu sehen. Farbige Linien sind die sogenannten
ebenen Linien . Dies ist eine Menge von Punkten, fĂŒr die die Funktion feste Werte annimmt. In meinem Fall sind dies Kreise und Ellipsen. Ich habe die blauen Linien des Levels mit einem niedrigeren Wert markiert, rot - mit einem höheren.


Beachten Sie, dass fĂŒr eine OberflĂ€che durch eine Gleichung der Form definiert
f(x)=c ,
nablaf(x) Setzt die Normale (bei gewöhnlichen Menschen - die Senkrechte) auf diese OberflĂ€che. Beachten Sie auch, dass der Verlauf zwar in Richtung der gröĂten Zunahme der Funktion angezeigt wird, es jedoch keine Garantie dafĂŒr gibt, dass Sie in der dem Verlauf entgegengesetzten Richtung ein Minimum finden (z. B. das linke Bild).
GefÀlle Abstieg
Es gab nur noch einen kleinen Schritt zur grundlegenden Gradientenabstiegsmethode: Wir haben aus dem Punkt gelernt
x Punkt bekommen
barx mit niedrigerem Funktionswert
f . Was hindert uns daran, dies mehrmals zu wiederholen? TatsÀchlich ist dies der Gradientenabstieg: Wir bauen die Sequenz auf
xk+1=xkâ alphak nablaf(xk).
Wert
alphak genannt die
SchrittgröĂe (beim maschinellen Lernen - die
Lerngeschwindigkeit ). Ein paar Worte zur Wahl
alphak : wenn
alphak - sehr klein, die Sequenz Àndert sich langsam, was den Algorithmus nicht sehr effizient macht; wenn
alphak sehr groĂ, dann wird die lineare Approximation schlecht und möglicherweise sogar falsch. In der Praxis wird die SchrittgröĂe hĂ€ufig empirisch ausgewĂ€hlt, theoretisch wird ĂŒblicherweise ein Lipschitz-Gradient angenommen, nĂ€mlich wenn
| nablaf(x)â nablaf(y) | leqL |xây |
fĂŒr alle
x,y dann
alphak< frac2L garantiert Abnahme
f(xk) .
Analyse fĂŒr quadratische Funktionen
Wenn
A Ist eine symmetrische invertierbare Matrix,
Axâ=b dann fĂŒr die quadratische Funktion
f(x)= frac12xTAxâbTx+c Punkt
xâ ist der Mindestpunkt (
UPD . vorausgesetzt, dieser Mindestwert existiert ĂŒberhaupt -
f kommt dem nicht nahe
â infty Werte nur wenn
A positiv definitiv), und fĂŒr die Gradientenabstiegsmethode können wir Folgendes erhalten
xk+1âxâ=xkâ alphak nablaf(xk)âxâ=xkâ alphak(Axkâb)âxâ=
(xkâxâ)â alphakA(xkâxâ)=(Iâ alphakA)(xkâxâ),
wo
I Ist die IdentitÀtsmatrix, d.h.
Ix=x fĂŒr alle
x . Wenn
alphak equiv alpha es wird sich herausstellen
|xkâxâ |= |(Iâ alphaA)k(x0âxâ) | leq |Iâ alphaA |k |x0âxâ |.
Der Ausdruck links ist der Abstand von der in Schritt erhaltenen NĂ€herung
k Gradientenabstieg zum minimalen Punkt rechts - ein Ausdruck der Form
lambdak beta was gegen Null konvergiert, wenn
| lambda|<1 (Die Bedingung, ĂŒber die ich geschrieben habe
alpha im vorherigen Absatz ist dies genau das, was garantiert). Diese grundlegende SchÀtzung stellt sicher, dass der Gradientenabstieg konvergiert.
Ănderungen des GefĂ€lles
Jetzt möchte ich ein wenig ĂŒber die hĂ€ufig verwendeten Modifikationen des Gradientenabstiegs sprechen, vor allem die sogenannten
TrÀgheits- oder beschleunigte Gradientenmethoden
Alle Methoden dieser Klasse werden wie folgt ausgedrĂŒckt
xk+1=xkâ alphak nablaf(xk)+ betak(xkâxkâ1).
Der letzte Term kennzeichnet dieselbe âTrĂ€gheitâ, der Algorithmus versucht bei jedem Schritt, sich gegen den Gradienten zu bewegen, bewegt sich jedoch gleichzeitig teilweise durch TrĂ€gheit in die gleiche Richtung wie in der vorherigen Iteration. Solche Methoden haben zwei wichtige Eigenschaften:
- Sie erschweren praktisch nicht den im Rechenplan ĂŒblichen Gradientenabstieg.
- Mit sorgfĂ€ltiger Auswahl alphak, betak Solche Verfahren sind selbst bei einem optimal ausgewĂ€hlten Schritt um eine GröĂenordnung schneller als ein gewöhnlicher Gradientenabstieg.
Eine der ersten derartigen Methoden erschien Mitte des 20. Jahrhunderts und wurde als
Heavy-Ball-Methode bezeichnet , die die Art der TrÀgheit der Methode vermittelte: bei dieser Methode
alphak, betak unabhÀngig von
k und sorgfÀltig ausgewÀhlt, abhÀngig von der Zielfunktion. Es ist erwÀhnenswert, dass
alphak kann alles andere als sein
betak -
normalerweise nur etwas weniger als eins .
Die Heavy-Ball-Methode ist die einfachste TrÀgheitsmethode, aber nicht die allererste. In diesem Fall ist meiner Meinung nach die allererste Methode sehr wichtig, um das Wesentliche dieser Methoden zu verstehen.
Chebyshev-Methode
Ja, ja, die erste Methode dieses Typs wurde von Chebyshev erfunden, um lineare Gleichungssysteme zu lösen. Irgendwann in der Analyse des Gradientenabfalls wurde die folgende Gleichheit erhalten
xk+1âxâ=(Iâ alphakA)(xkâxâ)= ldots=
(Iâ alphakA)(Iâ alphakâ1A) ldots(Iâ alpha1A)(x0âxâ)=Pk(A)(x0âxâ),
wo
Pk Ist bis zu einem gewissen Grad polynomisch
k . Warum nicht versuchen, abzuholen?
alphak so dass
Pk(A)(x0âxâ) war es kleiner? Ein Knoten universeller Polynome, die am wenigsten von Null abweichen, ist das Chebyshev-Polynom. Chebyshevs Methode besteht im Wesentlichen darin, die Abstiegsparameter so auszuwĂ€hlen, dass
Pk war ein Polynom von Chebyshev. Es gibt wirklich ein kleines Problem: Bei einem normalen GefĂ€lle ist dies einfach nicht möglich. Bei TrĂ€gheitsverfahren ist dies jedoch möglich. Dies ist hauptsĂ€chlich auf die Tatsache zurĂŒckzufĂŒhren, dass die Chebyshev-Polynome die Wiederholungsrelation zweiter Ordnung erfĂŒllen
Tn+1(x)=2xTn(x)âTnâ1(x),
Daher können sie nicht fĂŒr den Gradientenabstieg erstellt werden, bei dem ein neuer Wert nur aus einem vorherigen Wert berechnet wird, und fĂŒr die TrĂ€gheit wird dies möglich, da die beiden vorherigen Werte verwendet werden. Es stellt sich heraus, dass die KomplexitĂ€t der Berechnung
alphak, betak hÀngt nicht davon ab
k noch die GröĂe des Raumes
n .
Gradientenmethode konjugieren
Eine weitere sehr interessante und wichtige Tatsache (eine Konsequenz des Hamilton-Cayley-Theorems):
fĂŒr jede quadratische Matrix A die GröĂe n timesn Es gibt ein Polynom P Grad nicht mehr n fĂŒr welche P(A)=0 . Warum ist das interessant? Es geht um die gleiche Gleichheit
xk+1âxâ=Pk(A)(x0âxâ).
Wenn wir die SchrittgröĂe im Gradientenabstieg so wĂ€hlen könnten, dass genau dieses Nullpunktpolynom erhalten wird, wĂŒrde der Gradientenabstieg fĂŒr eine feste Iterationszahl konvergieren, die nicht gröĂer als die Dimension ist
A . Wie wir bereits herausgefunden haben, können wir dies nicht fĂŒr den Gradientenabstieg tun. GlĂŒcklicherweise können wir fĂŒr TrĂ€gheitsmethoden. Die Beschreibung und BegrĂŒndung der Methode ist recht technisch, ich beschrĂ€nke mich auf das Wesentliche:
Bei jeder Iteration werden Parameter ausgewĂ€hlt, die das beste Polynom ergeben, das unter BerĂŒcksichtigung aller vor dem aktuellen Schritt der Gradientenmessung durchgefĂŒhrten Messungen erstellt werden kann . Dabei
- Eine Iteration des Gradientenabfalls (ohne BerĂŒcksichtigung von Parameterberechnungen) enthĂ€lt eine Matrixmultiplikation mit einem Vektor und 2-3 Vektoradditionen
- Die Berechnung von Parametern erfordert auch 1-2 Matrixmultiplikation mit Vektor, 2-3 Skalarmektormultiplikation mit Vektor und mehrere Additionen von Vektoren.
Das Schwierigste im Rechenplan ist die Multiplikation der Matrix mit einem Vektor, dies erfolgt normalerweise zeitlich
mathcalO(n2) FĂŒr eine spezielle Implementierung kann dies jedoch in erfolgen
mathcalO(m) wo
m - die Anzahl der Elemente ungleich Null in
A . Angesichts der Konvergenz der konjugierten Gradientenmethode nicht mehr als
n Iterationen erhalten die GesamtkomplexitÀt des Algorithmus
mathcalO(nm) , was in allen FĂ€llen nicht schlimmer ist
mathcalO(n3) fĂŒr die GauĂ- oder Cholesky-Methode, aber viel besser, wenn
m<<n2 das ist nicht so selten.
Die konjugierte Gradientenmethode funktioniert auch gut, wenn
f ist keine quadratische Funktion, konvergiert jedoch nicht in einer endlichen Anzahl von Schritten und erfordert hÀufig kleine zusÀtzliche Modifikationen
Nesterov-Methode
FĂŒr die Gemeinschaften der mathematischen Optimierung und des maschinellen Lernens ist der Name "Nesterov" seit langem ein bekannter Name. In den 80er Jahren des letzten Jahrhunderts hat Yu.E. Nesterov hat eine interessante Version der TrĂ€gheitsmethode entwickelt, die die Form hat
xk+1=xkâ alphak nablaf(xk+ betak(xkâxkâ1))+ betak(xkâxkâ1),
es bedeutet keine komplizierte Berechnung
alphak, betak Wie bei der konjugierten Gradientenmethode ist das Verhalten der Methode im Allgemeinen Àhnlich wie bei der Heavy-Ball-Methode, aber ihre Konvergenz ist in der Regel sowohl in der Theorie als auch in der Praxis viel zuverlÀssiger.
Stochastischer Gradientenabstieg
Der einzige formale Unterschied zum ĂŒblichen Gradientenabstieg besteht in der Verwendung einer Funktion anstelle eines Gradienten
g(x, theta) so dass
E thetag(x, theta)= nablaf(x) (
E theta - zufÀllige Erwartung
theta ), so hat der stochastische Gradientenabstieg die Form
xk+1=xkâ alphakg(xk, thetak).
thetak - Dies ist ein zufÀlliger Parameter, den wir nicht beeinflussen, aber gleichzeitig gehen wir im Durchschnitt gegen den Gradienten. Betrachten Sie als Beispiel die Funktionen
f(x)= frac12m summj=1 |xâyj |2, nablaf(x)= frac1m summj=1(xâyj)
und
g(x,i)=xâyi.
Wenn
i nimmt Werte an
1, ldots,m ebenso wahrscheinlich nur durchschnittlich
g Ist ein GefÀlle
f . Dieses Beispiel zeigt auch Folgendes: die KomplexitÀt der Berechnung des Gradienten in
m mal mehr als rechnerische KomplexitÀt
g . Dies ermöglicht den gleichzeitigen stochastischen Gradientenabstieg in
m mal mehr Iterationen. Trotz der Tatsache, dass der stochastische Gradientenabstieg aufgrund einer so starken Zunahme der Anzahl von Iterationen normalerweise langsamer als gewöhnlich konvergiert, ist es möglich, die Konvergenzrate pro Zeiteinheit zu verbessern. Soweit ich weiĂ, ist der stochastische Gradientenabstieg derzeit die grundlegende Methode zum Trainieren der meisten neuronalen Netze, die in allen wichtigen ML-Bibliotheken implementiert sind: Tensorflow, Fackel, Kaffee, CNTK usw.
Es ist erwĂ€hnenswert, dass die Ideen von TrĂ€gheitsmethoden fĂŒr den stochastischen Gradientenabstieg verwendet werden und in der Praxis hĂ€ufig zu einem Anstieg fĂŒhren. Theoretisch wird normalerweise angenommen, dass sich die asymptotische Konvergenzrate nicht Ă€ndert, da der Hauptfehler beim stochastischen Gradientenabstieg auf Dispersion zurĂŒckzufĂŒhren ist
g .
Subgradientabstieg
Diese Variante ermöglicht es Ihnen, mit nicht differenzierbaren Funktionen zu arbeiten. Ich werde sie genauer beschreiben. Wir mĂŒssen uns noch einmal an die lineare Approximation erinnern - Tatsache ist, dass es eine einfache Eigenschaft der KonvexitĂ€t durch einen Gradienten gibt, eine
differenzierbare Funktion f genau dann konvex, wenn f(y) geqf(x)+ nablaf(x)T(yâx) fĂŒr alle x,y . Es stellt sich heraus, dass eine konvexe Funktion nicht differenzierbar sein muss, sondern fĂŒr jeden Punkt
x sicherlich gibt es einen solchen Vektor
g das
f(y) geqf(x)+gT(yâx) fĂŒr alle
y . Ein solcher Vektor
g allgemein als
Subgradient bezeichnet f an der Stelle
x , die Menge aller Subgradienten zu Punkten
x Subdifferential genannt x und bezeichnen
partiellf(x) (trotz der Bezeichnung - es hat nichts mit partiellen Ableitungen zu tun). Im eindimensionalen Fall
g Ist eine Zahl, und die obige Eigenschaft bedeutet einfach, dass das Diagramm
f liegt ĂŒber der Linie durch
(x,f(x)) und eine Steigung haben
g (siehe Bilder unten). Ich stelle fest, dass es fĂŒr einen Punkt mehrere Subgradienten geben kann, sogar eine unendliche Zahl.


Es ist normalerweise nicht sehr schwierig, mindestens einen Subgradienten fĂŒr einen Punkt zu berechnen, bei einem Subgradientenabstieg wird im Wesentlichen ein Subgradient anstelle eines Gradienten verwendet. Es stellt sich heraus, dass dies ausreicht, theoretisch nimmt die Konvergenzrate jedoch beispielsweise in neuronalen Netzen eine undifferenzierbare Funktion ab
ReLU(x)= max(0,x) Sie verwenden es gerne, nur weil das Training damit schneller ist (dies ist ĂŒbrigens ein Beispiel fĂŒr eine nicht konvexe, nicht differenzierbare Funktion, bei der (Sub-) Gradientenabstieg erfolgreich angewendet wird. Die Funktion selbst
Relu konvexes aber mehrschichtiges neuronales Netzwerk mit
Relu nicht konvex und nicht differenzierbar). Als Beispiel fĂŒr eine Funktion
f(x)=|x| Subdifferenz wird sehr einfach berechnet
\ partielle f (x) = \ begin {FĂ€lle} 1, & x> 0, \\ -1, & x <0, \\ [-1, 1], & x = 0. \ end {FĂ€lle}
Vielleicht ist das Letzte, was zu wissen ist, dass der
Subgradientenabstieg nicht bei einer konstanten SchrittgröĂe konvergiert . Dies ist fĂŒr die obige Funktion am einfachsten zu erkennen.
f(x)=|x| . Sogar das Fehlen einer Ableitung an einem Punkt bricht die Konvergenz:
- Nehmen wir an, wir haben von vorne angefangen x0 .
- Subgradienten-Abstiegsschritt:
x_ {k + 1} = \ begin {FĂ€lle} x_ {k} -1, & x> 0, \\ x_k + 1, & x <0, \\ ??? & x = 0. \ end {FĂ€lle}
- Wenn x0>0 dann werden wir in den ersten Schritten einen subtrahieren, wenn x0<0 dann hinzufĂŒgen. Auf die eine oder andere Weise werden wir uns irgendwann in der Pause befinden [0,1) von dem wir kommen [â1,0) und dann springen wir zwischen zwei Punkten dieser Intervalle.
Theoretisch wird fĂŒr den Subgradientenabstieg empfohlen, eine Abfolge von Schritten durchzufĂŒhren
alphak= frac1(k+1)c.
Wo
c in der Regel
1 oder
frac12 . In der Praxis habe ich oft erfolgreiche Schritte gesehen
alphak=eâck , obwohl es fĂŒr solche Schritte im Allgemeinen keine Konvergenz geben wird.
Proximale Methoden
Leider kenne ich keine gute Ăbersetzung fĂŒr "proximal" im Zusammenhang mit der Optimierung. Deshalb werde ich diese Methode einfach aufrufen. Proximale Methoden erschienen als Verallgemeinerung projektiver Gradientenmethoden. Die Idee ist sehr einfach: Wenn es eine Funktion gibt
f als Summe dargestellt
f(x)= varphi(x)+h(x) wo
varphi Ist eine differenzierbare konvexe Funktion, und
h(x) - konvex, fĂŒr die es einen speziellen proximalen Operator gibt
proxh(x) (In diesem Artikel beschrĂ€nke ich mich nur auf Beispiele, die ich nicht allgemein beschreiben werde), dann die Konvergenzeigenschaften des Gradientenabfalls fĂŒr
varphi bleiben und fĂŒr GefĂ€lle Abstieg fĂŒr
f Wenn nach jeder Iteration dieser proximale Operator fĂŒr den aktuellen Punkt angewendet wird
xk Mit anderen Worten, die allgemeine Form der proximalen Methode sieht folgendermaĂen aus:
xk+1=prox alphakh(xkâ alphak nabla varphi(xk))
Ich denke bisher ist es völlig unverstÀndlich, warum dies notwendig sein kann, insbesondere angesichts der Tatsache, dass ich nicht erklÀrt habe, was ein proximaler Operator ist. Hier sind zwei Beispiele:
- h(x) - Anzeigefunktion eines konvexen Satzes mathcalK , also
h (x) = \ begin {FĂ€lle} 0, & x \ in \ mathcal {K}, \\ + \ infty, & x \ notin \ mathcal {K}. \\ \ end {FĂ€lle}
In diesem Fall prox alphakh(x) Ist eine Projektion auf das Set mathcalK , das heiĂt, "am nĂ€chsten an x Sollwert mathcalK ". Daher beschrĂ€nken wir den Gradientenabstieg nur auf die Menge mathcalK Dies ermöglicht es uns, Probleme mit EinschrĂ€nkungen zu lösen. Leider kann die Berechnung der Projektion im allgemeinen Fall noch schwieriger sein. Daher wird diese Methode normalerweise verwendet, wenn die EinschrĂ€nkungen einfach sind, z. B. die sogenannten Box-EinschrĂ€nkungen: fĂŒr jede Koordinate
li leqxi leqri
- h(x)= lambda |x |1= lambda sumni=1|xi| - - ell1 -regelmĂ€Ăigkeit. Sie möchten diesen Begriff zu Optimierungsproblemen beim maschinellen Lernen hinzufĂŒgen, um eine Umschulung zu vermeiden. Eine solche Regularisierung neigt auch dazu, die am wenigsten signifikanten Komponenten aufzuheben. FĂŒr eine solche Funktion hat der proximale Operator die Form (ein Ausdruck fĂŒr eine einzelne Koordinate wird unten beschrieben):
[prox _ {\ alpha h} (x)] _ i = \ begin {case} x_i- \ alpha, & x_i> \ alpha, \\ x_i + \ alpha, & x_i <- \ alpha, \\ 0, & x_i \ in [- \ alpha, \ alpha], \ end {case}
Das ist ziemlich einfach zu berechnen.
Fazit
Damit sind die mir bekannten Hauptvarianten der Gradientenmethode beendet. Vielleicht wĂŒrde ich am Ende feststellen, dass all diese Modifikationen (auĂer vielleicht der konjugierten Gradientenmethode) leicht miteinander interagieren können. Ich habe die Newton-Methode und die Quasi-Newton-Methode (BFGS und andere) bewusst nicht in diese Liste aufgenommen: Obwohl sie einen Gradienten verwenden, sind sie komplexere Methoden und erfordern spezifische zusĂ€tzliche Berechnungen, die normalerweise rechenintensiver sind als die Berechnung eines Gradienten. Wenn dieser Text jedoch gefragt ist, werde ich gerne eine Ă€hnliche ĂberprĂŒfung durchfĂŒhren.
Gebrauchte / empfohlene Literatur
Boyd. S, Vandenberghe L. Konvexe OptimierungShewchuk JR Eine EinfĂŒhrung in die konjugierte Gradientenmethode ohne den qualvollen SchmerzBertsekas DP Konvexe OptimierungstheorieNesterov Yu. E. Konvexe OptimierungsmethodenGasnikov A. V. Universeller Gradientenabstieg