Kurs:Optimierung II/Das Gradientenverfahren

Aus testwiki
Zur Navigation springen Zur Suche springen

Nachdem nun eine Reihe von Schrittweitenregeln zur Verfügung stehen, kehren wir wieder zu dem eigentlichen Problem zurück, zur Lösung der unrestringierten Optimierungsaufgabe

(P): Minimiere f(x) über alle xn,

wobei wir hier generell die Voraussetzungen (V1) - (V3) aus Abschnitt 2.3 als erfüllt ansehen. Ziel ist es, einen kritischen Punkt von f zu bestimmen, welcher möglichst ein lokaler Minimalpunkt von f sein sollte, aber im Einzelfall auch ein Sattelpunkt von f sein mag. Dabei gehen wir von dem Modellalgorithmus 2.5 aus, den wir uns mit einer für das ganze Verfahren fest gewählten Schrittweitenregel verbunden denken. In diesem und den folgenden Kapiteln 5 bis 8 wollen wir nun spezielle Verfahren diskutieren, indem wir unterschiedliche Vorschriften für die Richtungswahl im Algorithmus festlegen.

Das einfachste aller Verfahren zur Lösung von (P) ist das Gradientenverfahren, bei dem man in einem nichtkritischen Punkt xk die Richtung

pk:=f(xk)

wählt. Offenbar ist in diesem Fall f(xk)Tpk<0 und damit pk gemäß Lemma 2.2 Abstiegsrichtung für f in xk (vgl. Beispiel 2.3). Das Gradientenverfahren mit einer semieffizienten Schrittweitenregel lautet demnach:

Algorithmus 4.1 (Gradientenverfahren)

(0) Wähle eine semieffiziente Schrittweitenregel und ein x0n. Setze k:=0.
(1) Falls f(xk)=0 ist, stop! (xk ist kritische Lösung von Problem (P).)
(2) Setze pk:=f(xk).
(3) Bestimme eine Schrittweite tk>0 gemäß der Schrittweitenregel und setze
xk+1:=xk+tkpk.
(4) Setze k:=k+1 und gehe nach (1).

Im Hinblick auf die folgenden Konvergenzaussagen können wir das Gradientenverfahren tatsächlich mit einer beliebigen semieffizienten Schrittweitenregel verknüpfen. Denn in diesem Fall sind mit

Hk:=I,m=M:=1

die Voraussetzungen von Satz 2.17 erfüllt, so dass wir aus diesem Satz unmittelbar die folgende Konvergenzaussage schließen können.

Satz 4.2

Die Voraussetzungen (V1) - (V3) seien erfüllt. Bricht Algorithmus 4.1 nicht nach endlich vielen Schritten ab, so erzeugt er eine unendliche Folge {xk}, für welche gilt:
(i) Jeder Häufungspunkt von {xk} ist kritische Lösung von (P).
(ii) Besitzt (P) genau eine kritische Lösung x*, so ist limkxk=x*.
(iii) Ist zusätzlich (V4) erfüllt, so folgt limkxk=x* und gilt dann mit der Konstante ϑ>0 aus (2.24) für die Schrittweitenregel und mit einem c>0
(4.1) 0f(xk+1)f(x*)(12βϑ)[f(xk)f(x*)],k0
sowie
(4.2) xkx*c(12βϑ)k,k0.

Das Gradientenverfahren konvergiert also für jede der in Kapitel 3 vorgestellten Schrittweitenregeln. Sind die Voraussetzungen (V1) - (V4) erfüllt, so konvergiert sogar die gesamte Iteriertenfolge und konvergiert die zugehörige Folge der Funktionswerte mindestens linear. Langsame Konvergenz ist offenbar zu befürchten, wenn die Konstante 2βϑ sehr klein ist ("zu befürchten", da die Abschätzung in (4.1) ja im Einzelfall sehr grob sein kann). Die Konstante ϑ hängt dabei von der gewählten Schrittweitenregel ab und kann den entsprechenden Sätzen in Kapitel 3 entnommen werden. Insbesondere hat man für die exakten Schrittweiten gemäß Satz 3.3

(4.3) ϑ:=ϑM=ϑC=12γ

Für diese Schrittweiten muss man also mit langsamer Konvergenz des Gradientenverfahrens rechnen, wenn die Zahl β/γ sehr klein ist.

Wir wollen nun das Gradientenverfahren mit einer exakten Schrittweite noch genauer für den Fall untersuchen, dass es auf eine quadratische Funktion

(4.4) f(x):=12xTQx+cTx+α,xn

mit positiv definiter Matrix Q angewendet wird. Gemäß (2.14) ist in diesem Fall cond(Q)=γ/β die Kondition von Q bezüglich der Spektralnorm und implizieren daher (4.1) und (4.2) mit (4.3) die Abschätzungen

0f(xk+1)f(x*)(cond(Q)1cond(Q))[f(xk)f(x*)],k0

und

xkx*c(cond(Q)1cond(Q))k,k0.

Diese Abschätzungen können noch etwas verbessert werden zu

(4.5) f(xk+1)f(x*)(cond(Q)1cond(Q)+1)2[f(xk)f(x*)],k0

und mit einer Konstante c~>0 zu

(4.6) xkx*c~(cond(Q)1cond(Q)+1)k,k0

(Übung!). Die Abschätzungen beschreiben zwar nur ein mögliches "worst case" Verhalten des Gradientenverfahrens, sein reales Verhalten kommt diesem jedoch leider oft sehr nahe. Es muss demnach mit um so langsamerer Konvergenz der Folge der Funktionswerte {f(xk)} gerechnet werden, je größer die Kondition von Q ist.

Die Konvergenzaussagen für quadratische Funktionen gelten qualitativ auch für jeden lokalen Minimalpunkt x* einer beliebigen Funktion fC2(n), in dem die hinreichenden Optimalitätsbedingungen zweiter Ordnung aus Satz 1.14 erfüllt sind. Denn in einem solchen Fall kann f in der Umgebung von x* durch das quadratische Taylor-Polynom

(4.7) q*(x):=f(x*)+f(x*)T(xx*)+(xx*)T2f(x*)(xx*)

mit positiv definiter Matrix 2f(x*) angenähert werden. Langsame Konvergenz des Gradientenverfahrens ist dann für f zu erwarten, wenn die Kondition der Hesse-Matrix 2f(x*) groß ist.

Beispiel 4.3

Das Gradientenverfahren mit exakter Schrittweite sei auf die quadratische Funktion

f(x):=12xTQx mit Q:=(2002103) und x2

angewendet. Das Problem (P) hat für dieses f die Lösung x*:=0 und den Minimalwert f(x*)=0. Die Kondition von Q ist mit cond(Q)=103 in diesem Fall nicht sehr groß (vgl. Beispiel 2.7). Für die in (4.5) und (4.6) vorkommende Konstante ergibt sich damit aber

cond(Q)1cond(Q)+1=0.9980,

was auf mögliche langsame Konvergenz hinweist.

Wir wollen uns die Iteriertenfolge genauer anschauen. Es ist in diesem Fall

p:=f(x)=Qx,

womit wir gemäß (3.5) für die Minimumschrittweite erhalten:

tM(x,p)=f(x)TppTQp=xTQ2xxTQ3x=x12+106x222(x12+109x22).

Mit tk:=tM(xk,pk) folgt weiter

xk+1=xktkQxk=(ItkQ)xk=(1ρk001103ρk)xk

für

ρk:=2tk=x12+106x22x12+109x22.

Startet man nun das Gradientenverfahren mit x0:=(1,103)T, so ist ρ02103 und damit

(x11,x21)T(x10,x20)T.

Weiter ist damit ρ1ρ0 und somit

(x12,x22)T(x10,x20)T.

Der Fortschritt des Gradientenverfahrens dürfte also sehr gering ausfallen. Konkret ergeben sich für die ersten Iterierten die in unten stehender Tabelle angegebenen Zahlen. Startet man allerdings das Gradientenverfahren mit dem Punkt x0:=(0,1)T und f(x0)=1000, so ist ρ0=103 und damit x1=0=x*. Die Lösung des Problems wird also in diesem Fall mit einer Iteration des Verfahrens erreicht.

kx1kx2kf(x1k,x2k)ρkHLINE TBD01.000 0000.001 0001.001 0000.001 99810.998 0020.000 9980.997 0040.001 99820.996 008+0.000 9960.993 0240.001 99830.994 0180.000 9940.989 0600.001 998

Das im letzten Beispiel gezeigte Verhalten des Gradientenverfahrens kann man in der Praxis häufig beobachten. Nachdem das Verfahren, wenn man entfernt von der Lösung startet, über einige Iterationen hinweg manchmal gute Fortschritte erzielt, kann es in der Nähe einer Lösung oft inakzeptabel langsam werden. (Mit einer Iteration ist hier - und analog bei anderen Verfahren - ein Durchlauf der Schritte (1) bis (4) des Algorithmus 4.1 gemeint.) Dennoch gab es bis ca. 1960 zum Gradientenverfahren keine nennenswerte Alternative.