Als nächstes wollen wir Verfahren der konjugierten Richtungen und speziell Verfahren der konjugierten Gradienten zur Lösung des unrestringierten Optimierungsproblems
vorstellen. Letztere Verfahren bezeichnet man auch kurz als CG-Verfahren, wobei „CG“ für engl. „conjugate gradients“ steht. Solche CG-Verfahren konvergieren im Allgemeinen wesentlich schneller als das Gradienten-Verfahren, sind aber normalerweise langsamer als das globalisierte Newton-Verfahren oder Quasi-Newton-Verfahren, welche wir später in den Kapiteln 6 und 7 behandeln werden. Im Vergleich mit letzteren Verfahren haben sie aber auch Vorzüge, die im Einzelfall zum Tragen kommen mögen.
Wir betrachten zunächst nur quadratische Funktionen
(5.1)
mit positiv definiter Matrix . Gemäß Korollar 1.18 erhält man die eindeutige Lösung von Problem mit einem solchen als eindeutige Lösung des linearen Gleichungssystems
Sie lautet folglich . Verfahren zur Minimierung quadratischer Funktionen sind also gleichzeitig auch immer Verfahren zur Lösung linearer Gleichungssysteme und umgekehrt. So werden CG-Verfahren auch vielfach zur Lösung großer linearer Gleichungssysteme mit dünn besetzter, positiv definiter Matrix verwendet, zumeist in Verbindung mit einem Präkonditionierer (s. Abschnitt 5.5).
Grundlegend für die hier diskutierten CG-Verfahren ist die nachstehende Definition.
Sei eine symmetrische und positiv definite Matrix. Vektoren heißen A-konjugiert, falls ist und falls gilt:
Definiert man für eine symmetrische, positiv definite Matrix
(5.2)
so lässt sich leicht zeigen, dass ein Skalarprodukt auf dem definiert. Die A-Konjugiertheit von Vektoren bedeutet also, dass vom Nullvektor verschiedene, bezüglich des Skalarproduktes orthogonale Vektoren sind. Nach einem aus der Linearen Algebra bekannten Ergebnis sind solche Vektoren immer linear unabhängig:
Die Vektoren sind also linear unabhängig. Da höchstens Vektoren linear unabhängig sein können, ist .
q.e.d.
Wir nehmen nun zunächst an, dass für die in der quadratischen Funktion (5.1) auftretende Matrix konjugierte Vektoren bekannt seien. Mit diesen Vektoren als Spalten definieren wir dann die -Matrix
Aufgrund der linearen Unabhängigkeit der Vektoren ist nichtsingulär. Weiter definieren wir die - aufgrund der positiven Definitheit von positiven - Zahlen
und mit diesen die Diagonalmatrix
Die Matrix verwenden wir nun, um mittels der Variablentransformation zu einer quadratischen Funktion zu gelangen, welche einfacher als die quadratische Funktion in (5.1) zu minimieren ist. Und zwar liefert diese Transformation
(5.3)
mit
(5.4)
Die so gewonnene quadratische Funktion ist also separierbar, d. h., sie ist als Summe von Funktionen darstellbar, die jeweils von Variablen abhängen (in diesem Fall einer einzigen Variablen), die nur in ihr und in keinem weiteren mit vorkommen. Demzufolge kann in (5.3) über minimiert werden, indem jedes hinsichtlich der Komponente von minimiert wird. Da gleichmäßig konvex ist, besitzt einen eindeutigen Minimalpunkt und gilt demnach
Der Minimierer von soll nun folgendermaßen komponentenweise generiert werden, wobei der -te Standardeinheitsvektor und ein beliebiger Vektor ist. Ist nicht bereits der Minimierer von , so ist mit einem
Somit ist die erste Komponente der gesuchten Lösung . Wir setzen dann
und fahren mit für in analoger Weise fort, sofern nicht bereits die Funktion minimiert. So erhalten wir sowie
Allgemein ist also der Minimierer von und
Da von dem Vektor höchstens die -te Komponente verschieden von 0 ist, folgt damit
Also kann man, ausgehend von einem , in maximal Schritten ermitteln, indem man für in die Koordinatenrichtung als neue Richtung wählt, dann die Minimum-Schrittweite in diese Richtung bestimmt und anschließend setzt. Rückübersetzung in den -Raum liefert schließlich die Iterationsvorschrift
und zur Bestimmung der Schrittweite die Formel
Man beachte dabei, dass hier keine positive Zahl sein muss. Denn mit sind ja auch die Vektoren -konjugiert und hat für sicher umgekehrtes Vorzeichen wie für . Wir wollen trotzdem als Minimum-Schrittweite bezeichnen. Gemäß Beispiel 3.5 ist diese für jedes bestimmt durch
wobei die Abstiegsbedingung offenbar nicht für beliebige -konjugierte Vektoren erfüllt sein kann.
Wegen des häufigen Vorkommens des Gradienten im Rest dieses Kapitels verwenden wir ab jetzt für jedes die Abkürzung
Zur Lösung der Aufgabe für eine quadratische Zielfunktion wie in (5.1) mit positiv definiter Matrix haben wir also den folgenden Algorithmus hergeleitet.
Algorithmus 5.3 (Verfahren konjugierter Richtungen für quadratisches f)
Wie kann man nun -konjugierte Richtungen erzeugen? Dies ist mit Hilfe des aus der Linearen Algebra bekannten und im nächsten Satz angegebenen Gram-Schmidt-Orthogonalisierungsverfahrens möglich, mit dem beliebige, linear unabhängige Vektoren bezüglich des Skalarproduktes orthogonalisiert werden können. (Auf die Normierung wird hier verzichtet.) Mit ist dabei der von aufgespannte Teilraum des gemeint.
Sei ein Skalarprodukt auf dem und seien linear unabhängige Vektoren. Dann sind die durch
definierten Vektoren bezüglich orthogonal zueinander und es gilt
Wir betrachten nun den folgenden Algorithmus zur Lösung von Problem für eine quadratische Funktion wie in (5.1) mit positiv definiter Matrix .
=== Algorithmus 5.5 (Verfahren konjugierter Gradienten für quadratisches f)
(0) Wähle und setze und .
(1) Falls ist, stop!
(2) Berechne
(5.5)
und setze
(3) Berechne
(5.6)
(4) Setze und gehe nach (1).
Wenn die von Algorithmus 5.5 erzeugten Vektoren linear unabhängig sind, so werden die dadurch erzeugten Richtungen offenbar durch eine Gram-Schmidt-Orthogonalisierung der Vektoren bezüglich des Skalarproduktes gewonnen und sind die Richtungen folglich -konjugiert. Wie in Abschnitt 5.1 gezeigt wurde, bricht in diesem Fall das Verfahren spätestens für in Schritt (1) mit der Lösung von Problem ab. Das folgende Lemma zeigt nun, dass die Vektoren bezüglich des Skalarproduktes
(5.7)
sogar paarweise zueinander orthogonal sind, woraus ihre lineare Unabhängigkeit gemäß Lemma 5.2 folgt. Wir verwenden dabei die für in (5.1) geltende Beziehung
Sei die quadratische Funktion in (5.1) mit positiv definitem . Dann bricht Algorithmus 5.5 mit für ein mit ab und für die durch ihn erzeugten Gradienten gilt für jedes , dass ist sowie
Aufgrund von Schritt (1) des Verfahrens gilt für . Wir wollen nun die Richtigkeit von (5.9) mittels vollständiger Induktion nach beweisen. Offenbar gilt (5.9) für , da mit (5.8), und (5.5) folgt:
Wir machen jetzt die Induktionsannahme, dass
(5.11)
für beliebiges, festes gilt. Die Vektoren sind dann von Null verschiedene, bezüglich (5.7) orthogonale und nach Lemma 5.2 linear unabhängige Vektoren. Gemäß der Definition der impliziert somit die Induktionsannahme gemäß Satz 5.4
(5.12)
und
Für kann man daher mit gewissen in der Form darstellen und folgt daher wegen (5.11)
(5.13)
Wir wollen wir nun die Gültigkeit der Gleichungen (5.9) für zeigen, d. h., dass gilt:
Sei zunächst . Dann haben wir mit (5.8) unter Verwendung der Induktionsannahme (5.11), der Definition (5.6) und der Folgerung (5.12)
Für erhalten wir schließlich auf ähnliche Weise
wobei zum Schluss (5.13) verwendet wurde. Also ist (5.9) gezeigt. Die letzten beiden Identitäten zeigen auch die Gültigkeit von (5.10).
q.e.d.
Man kann also bei Algorithmus 5.5 in der Tat von einem Verfahren der konjugierten Gradienten sprechen. Da für ist, folgt überdies mit (5.10), dass die mit diesem Algorithmus generierten Richtungen für diese Abstiegsrichtungen sind.
In der angegebenen Form ist Algorithmus 5.5 aus numerischer Sicht vollkommen unattraktiv, da die Berechnung der Summe in (5.6) zumindest für größere numerisch sehr teuer ist und mit wachsendem immer teuerer wird. Bemerkenswerterweise kann man aber diese Summe durch einen einzelnen Term ersetzen, welcher nur die Berechnung der Normen der ohnehin benötigten Vektoren und erfordert. Letzteres zeigt der Beweis des folgenden Lemmas.
und damit unter Verwendung von (5.9) für anstelle von
Also folgt die Behauptung unter Verwendung von (5.14), (5.9), (5.5) und (5.10) mit
(5.15)
q.e.d.
Berücksichtigt man Lemma 5.7, so ist Algorithmus 5.5 für gleichmäßig konvexe, quadratische Funktionen gerade das Verfahren von Hestenes und Stiefel aus dem Jahre 1952, welches 1964 von Fletcher und Reeves auf beliebige Funktionen verallgemeinert wurde. Dieses lautet wie folgt:
(0) Wähle eine exakte Schrittweitenregel, ein und setze und .
(1) Falls ist, stop! ( ist kritische Lösung von Problem .)
(2) Bestimme die Schrittweite und setze
(3) Berechne
und setze
(4) Setze und gehe nach (1).
Aus dem Vorangegangenen folgt, dass das Verfahren von Fletcher und Reeves für gleichmäßig konvexes, quadratisches spätestens für mit der Lösung von abbricht.
Wir wollen als nächstes zeigen, dass das Verfahren auch für nichtquadratisches gegen eine Lösung des unrestringierten Optimierungsproblems konvergiert. Dazu benötigen wir:
Also ist Aussage (i) richtig. Mit (i) folgt Aussage (ii) wegen
q.e.d.
Für ist nach Aussage (ii) von Lemma 5.9 jede Richtung der dort angegebenen Form eine Abstiegsrichtung für in . Da bekanntlich auch eine Abstiegsrichtung ist, ist also das Verfahren von Fletcher-Reeves ein Abstiegsverfahren vom Typ des Modellalgorithmus 2.5. Wir können daher seine Konvergenz für beliebiges nachweisen, indem wir uns auf die Konvergenzaussage aus Satz 2.14 für den Modellalgorithmus beziehen.
(i) Bricht Algorithmus 5.8 nicht nach endlich vielen Schritten ab, so erzeugt er eine Folge , die einen Häufungspunkt besitzt, der kritische Lösung von ist und die im Fall, dass auch (V4) erfüllt ist, gegen die Lösung von Problem konvergiert.
(ii) Ist die Zielfunktion quadratisch wie in (5.1) mit positiv definiter Matrix , so sind die erzeugten Richtungen -konjugiert und bricht das Verfahren spätestens für mit der Lösung von Problem ab.
Algorithmus 5.8 breche nicht nach endlich vielen Schritten ab. Nach Lemma 5.9 ist dann jede vom Algorithmus erzeugte Richtung Abstiegsrichtung für in . Ferner bekommen wir für aus (2.26) mit Aussage (ii) von Lemma 5.9
Wir setzen nun
Wegen ist dann
(5.16)
und als Folge der Definitionen von und sowie von Lemma 5.9
Somit erhalten wir mit (5.16)
und demzufolge
(5.17)
Angenommen, besäße keinen Häufungspunkt, der kritische Lösung von Problem ist. Dann gäbe es ein mit und es wäre
mit für aus (2.9). Da eine exakte Schrittweite ist, ergäbe sich weiter mit Satz 3.3 und Lemma 5.9
Summation für lieferte dann
Letzteres kann aufgrund der Divergenz der harmonischen Reihe nicht richtig sein, wie man durch Grenzübergang für mit Aussage (iv) von Lemma 2.13 erkennt. Somit besitzt mindestens einen Häufungspunkt, der kritische Lösung von ist.
Ist zusätzlich (V4) erfüllt, so ergibt sich mit den Aussagen (v) und (vi) von Lemma 2.9 und mit Aussage (i) von Lemma 2.13 für
Das heißt, die Zoutendijk-Bedingung ist erfüllt, so dass aus Satz 2.14 die Konvergenz folgt. Aussage (ii) ist schließlich eine Konsequenz von Lemma 5.7 und den Ergebnissen aus den Abschnitten 5.1 und 5.2.
Eine weitere bekannte Variante der Verfahren der konjugierten Gradienten für nichtquadratische Zielfunktionen geht auf Polak und Ribière (1969) zurück. Hier verwendet man statt Lemma 5.7 das folgende Ergebnis.
Algorithmus 5.5 in Verbindung mit Formel (5.18) führt zu dem Verfahren von Polak-Ribière, welches für quadratische Funktionen mit dem Verfahren von Fletcher-Reeves zusammenfällt.
(i) Algorithmus 5.12 bricht entweder nach endlich vielen Schritten ab oder er erzeugt eine Folge mit , wobei die eindeutige Lösung von ist.
(ii) Ist die Zielfunktion quadratisch wie in (5.1) mit positiv definiter Matrix , so sind die erzeugten Richtungen -konjugiert und bricht das Verfahren spätestens für mit der Lösung von Problem ab.
Algorithmus 5.12 breche nicht nach endlich vielen Schritten ab. Aufgrund von Aussage (ii) von Lemma 5.9 ist dann jede vom Algorithmus erzeugte Richtung eine Abstiegsrichtung von in . Wir wollen nun die Konvergenz des Verfahrens mittels Satz 2.14 nachweisen, indem wir zeigen, dass die Zoutendijk-Bedingung mit
Fehler beim Parsen (SVG (MathML kann über ein Browser-Plugin aktiviert werden): Ungültige Antwort („Math extension cannot connect to Restbase.“) von Server „http://localhost:6011/de.wikiversity.org/v1/“:): {\displaystyle \alpha_k = - \frac{(g^k)^T p^k}{\|g^k\| \|p^k\} = \frac{\left\|g^k\right\|}{\|p^k\|}}
erfüllt ist (verwende Lemma 5.9 (ii)). Hierzu zeigen wir die Existenz einer Konstanten mit
Da eine exakte Schrittweite gewählt wurde, implizieren Teil (i) von Lemma 5.9 und Teil (ii) von Lemma 2.9
Also gilt mit Aussage (ii) von Lemma 5.9
Dies liefert unter Anwendung von (V3)
Demnach folgt mit der Definition von
Dies impliziert schließlich und damit die Aussage (i) des Satzes. Aussage (ii) folgt aus Satz 5.10, da die Algorithmen 5.8 und 5.12 für gleichmäßig konvexe, quadratische Funktionen zusammenfallen.
q.e.d.
Vergleicht man die Sätze 5.10 und 5.13, so stellt man fest, dass man für das Fletcher-Reeves-Verfahren unter schwächeren Voraussetzungen zu einer Konvergenzaussage kommt. Powell [Pow84] hat sogar anhand eines Gegenbeispiels gezeigt, dass man ohne eine Voraussetzung wie die der gleichmäßigen Konvexität von auch keine globale Konvergenz des Polak-Ribière-Verfahrens in Verbindung mit einer exakten Schrittweitenregel erwarten kann.
Erstaunlicherweise ist das Fletcher-Reeves- dem Polak-Ribière-Verfahren in der Praxis aber häufig deutlich unterlegen (numerische Vergleiche findet man z. B. in [Fle91] und [GeiKa99]). Powell gibt dafür die folgende Begründung (s. [Fle91]). Wenn das Verfahren kaum Fortschritte macht, also ist, dann hat man im Fall des Polak-Ribière-Verfahrens und erhält man damit , d. h. die Richtung steilsten Abstiegs in . Beim Fletcher-Reeves-Verfahren ist in einer solchen Situation aber und somit möglicherweise keine sinnvolle Abstiegsrichtung. Weitere Hinweise zu diesen Verfahren, insbesondere auch zur Verwendung anderer Schrittweitenregeln, werden wir im folgenden Abschnitt geben.
Wie gezeigt wurde, sind das Fletcher-Reeves und das Polak-Ribière-Verfahren für eine quadratische Funktion
(5.19)
mit positiv definiter Matrix identisch und liefert dieses CG-Verfahren bei exakter Rechnung nach spätestens Iterationen die eindeutige Lösung des unrestringierten Optimierungsproblems für (bzw. die eindeutige Lösung des linearen Gleichungssystems ). Tatsächlich sind dafür sogar häufig weniger als Iterationen erforderlich, was die Verfahren für große Probleme mit mehreren Hundert oder Tausend Variablen attraktiv macht. So kann bewiesen werden, dass das CG-Verfahren bei einem solchen Problem nach spätestens Iterationen mit der Lösung abbricht, wenn nur paarweise verschiedene Eigenwerte besitzt (z. B. [NoWri06]).
Eine weitere wichtige Beobachtung im Hinblick auf große Probleme ist die folgende. Sind die größten Eigenwerte von deutlich voneinander separiert und häufen sich die übrigen Eigenwerte an einer Stelle z. B. bei 0, so erzielt das CG-Verfahren eine gute Näherung für den optimalen Zielfunktionswert des Problems nach Iterationen (z. B. [NoWri06]). Die bis dahin erzielte Näherung für die Lösung des Problems selbst muss dann jedoch noch keineswegs befriedigend sein. Inbesondere im Fall, dass sich viele Eigenwerte von bei 0 häufen, muss man nach diesen ersten Iterationen mit sehr langsamer Konvergenz rechnen, da dann typischerweise auch die Kondition von groß ist (vgl. (5.20)). Diese Aussagen sind qualitativ auch auf lokale Lösungen einer nichtquadratischen Funktion , in denen die Optimalitätsbedingungen zweiter Ordnung erfüllt sind, übertragbar, da in einer Umgebung eines solchen Punktes durch eine gleichmäßig konvexe, quadratische Funktion angenähert werden kann (vgl. (4.7)).
Bei exakter Rechnung bricht das CG-Verfahren für die quadratische Funktion (5.19) mit positiv definitem nach höchstens Iterationen mit der Lösung des Problems ab. Da das CG-Verfahren gerade für Probleme großer Dimension von Bedeutung ist, möchte man aber in der Praxis häufig gar nicht Iterationen eines solchen Verfahrens ausführen. Daher ist auch für quadratische Funktionen mit positiv definitem die Frage von Interesse, wie schnell gegen strebt. Für diesen Fall konnte Poljak ([Polj87]) die Fehlerabschätzung
(5.20)
angeben, wobei die Kondition von ist (vgl. (2.14)). Diese Abschätzung liefert zwar häufig eine starke Überschätzung des Fehlers, wie man aus der Praxis weiß, macht aber deutlich, dass das CG-Verfahren um so schneller konvergiert, je kleiner die Kondition von ist. Deshalb ist es sinnvoll, die Funktion in Fällen, bei denen mit einer großen Kondition von gerechnet werden muss, mittels einer Variablentransformation in eine quadratische Funktion mit einer Matrix zu überführen, welche eine kleinere Kondition besitzt.
Und zwar setzt man in einem solchen Fall mit einer nichtsingulären Matrix
(5.21)
Setzt man , erhält man damit
Wendet man nun das CG-Verfahren auf an, so bestimmt die Kondition der Matrix die Konvergenzgeschwindigkeit des Verfahrens. Deshalb sollte so gewählt werden, dass eine kleinere Kondition als besitzt bzw. sich die Eigenwerte von teilweise häufen. Die Transformation (5.21) muss dabei nicht explizit durchgeführt werden. Sondern man schreibt Algorithmus 5.8 für mit der Variablen hin und invertiert dann die Transformation, um alle Beziehungen durch die Variable auszudrücken. Der numerische Aufwand pro Iteration erhöht sich allerdings durch die Transformation (5.21) nicht unbeträchtlich. Ob sich ein solches präkonditioniertes CG-Verfahren lohnt, hängt daher davon ab, ob man für die aktuell vorliegende Matrix einen geeigneten Präkonditionierer angeben kann (vgl. [NoWri06]).
Es sei noch darauf hingewiesen, dass das CG-Verfahren besonders dann für die Lösung großer linearer Gleichungssysteme mit positiv definiter Matrix interessant ist, wenn dünn besetzt ist. Denn der größte numerische Aufwand pro Iteration besteht bei ihnen darin, ein Matrix-Vektor-Produkt zu berechnen und dessen Berechnung ist um so „billiger“, je dünner die Matrix besetzt ist. Bei einer Cholesky-Zerlegung dagegen, welche man alternativ zur Lösung eines solchen Gleichungssystems durchführen könnte, ist häufig sehr viel dichter besetzt als .
Bei den vorgestellten CG-Verfahren haben wir jeweils eine exakte Schrittweitenregel verwendet, die im quadratischen Fall mit positiv definiter Matrix auch explizit berechnet werden kann (vgl. Beispiel 3.5), die aber für allgemeine nichtlineare Funktionen eher unrealistisch ist. Tatsächlich war man lange Zeit wenig erfolgreich damit gewesen, Konvergenz für nichtquadratisches mit einer inexakten Schrittweitenregel nachzuweisen. Erst Al-Baali konnte 1985 die Konvergenz des Fletcher-Reeves-Verfahren mit der strengen Wolfe-Powell-Schrittweitenregel beweisen (s. [GeiKa99]), die ja für kleines Schrittweiten liefert, die im Allgemeinen nicht zu stark von der Curry-Schrittweite abweichen. Einen Konvergenzsatz für das Polak-Ribière-Verfahren mit einer neuen, leicht implementierbaren Schrittweitenregel, welche auf eine Arbeit von Grippo und Lucidi aus dem Jahr 1997 zurückgeht, sowie numerische Vergleiche der unterschiedlichen Verfahren findet man ebenfalls bei [GeiKa99].
Darüber hinaus gibt es eine Reihe von Varianten von CG-Verfahren, die zum Teil die strenge Wolfe-Powell-Schrittweite verwenden, darunter insbesondere solche, welche durch eine Kombination des Fletcher-Reeves- und des Polak-Ribière-Verfahrens versuchen, die guten theoretischen Konvergenzeigenschaften des ersten mit den guten Praxiseigenschaften des zweiten Verfahrens zu verbinden ([GeiKa99]). CG-Verfahren werden auch immer noch weiter erforscht. Es scheint aber so, dass bisher keine der vorgeschlagenen Varianten deutliche Vorzüge gegenüber den anderen besitzt.
Es wird generell empfohlen, die Abstiegsrichtung in CG-Verfahren alle oder Iterationen zu „korrigieren“ und wieder mit einer neuen Richtung zu beginnen, z. B. mit dem negativen Gradienten in der aktuellen Näherung. Die Aussagen, die man über die Konvergenzgeschwindigkeit von CG-Verfahren für nichtquadratische Funktionen in der Literatur findet, beziehen sich häufig auf eine solche Restartversion, sind aber allesamt eher abschreckend. Für eine Restartversion des Polak-Ribière-Verfahrens mit der Gradientenrichtung haben z. B. McCormick und Ritter ([McCoRi74]) -Schritt superlineare Konvergenz gezeigt, d. h. die superlineare Konvergenz der Folge aller -ten Iterierten.
Für große ist eine solche -Schritt superlineare Konvergenz natürlich vollkommen inakzeptabel. Dennoch sind CG-Verfahren in der Praxis für große und sehr große Probleme häufig die einzig einsetzbaren Methoden, die wegen der zuvor genannten Gründe oft in weniger als oder ca. Iterationen gute Näherungslösungen liefern. Was die CG-Verfahren für sehr große Probleme überdies attraktiv macht ist die Tatsache, dass bei ihnen der numerische Aufwand pro Iteration sehr gering ist, und dass sie, anders als beispielsweise das Newton-Verfahren und die Quasi-Newton-Verfahren, die in den folgenden beiden Kapiteln vorgestellt werden, nur geringen Speicherplatz benötigen. Beim Fletcher-Reeves-Verfahren müssen nur drei und beim Verfahren von Polak-Ribière nur vier Vektoren, also insbesondere keine Matrizen abgespeichert werden. Die im nächsten Abschnitt behandelten Quasi-Newton-Verfahren weisen dafür aber bei nichtquadratischen Funktionen eine deutlich schnellere Konvergenz auf. Deshalb sollten Verfahren der konjugierten Gradienten nur für große Probleme eingesetzt werden.