Mathematik lernen · Studium
Nichtlineare Optimierung: Konvexität, Gradientenverfahren, KKT
Wie findet man das Minimum einer Funktion mit vielen Variablen, wenn sich die Ableitung nicht nach Null auflösen lässt? Du lernst Konvexität, die Optimalitätsbedingungen, das Gradientenverfahren mit seiner Konvergenzrate und die KKT-Bedingungen für Nebenbedingungen.
Die lineare Optimierung löst Probleme, in denen Zielfunktion und Nebenbedingungen linear sind. Viele Aufgaben sind das nicht: Man will den Abstand eines Punktes zu einer Menge minimieren, die Parameter eines Modells an Daten anpassen oder die Kosten einer Produktion bei gekrümmten Kostenfunktionen senken. Dann hilft die nichtlineare Optimierung. Ihr Hauptwerkzeug sind Verfahren, die sich schrittweise dem Minimum nähern, und Bedingungen, die ein Minimum kennzeichnen.
Du brauchst partielle Ableitungen und die Hesse-Matrix aus der mehrdimensionalen Analysis, positiv definite Matrizen aus Bilinearformen und die Lagrange-Multiplikatoren von Extrema mit Nebenbedingungen.
Konvexe Funktionen
Anschaulich liegt der Graph unterhalb jeder Sehne. Eine zweimal stetig differenzierbare Funktion ist genau dann konvex, wenn ihre Hesse-Matrix überall positiv semidefinit ist. Zum Beispiel ist konvex, denn die Hesse-Matrix hat die Eigenwerte und , beide positiv. Die Funktion ist dagegen nicht konvex: ist bei negativ.
Beweis. Sei ein lokales Minimum, aber für ein . Auf der Strecke von nach gilt für alle . Für kleines liegen diese Punkte beliebig nah an , im Widerspruch zum lokalen Minimum. Für die zweite Aussage benutzt man die Tangentenungleichung der konvexen differenzierbaren Funktionen: Bei folgt für alle .
Optimalitätsbedingungen ohne Nebenbedingungen
In einem lokalen Minimum ist (stationärer Punkt), und die Hesse-Matrix ist positiv semidefinit. Ist und positiv definit, dann ist ein striktes lokales Minimum. Beim Sattelpunkt ist indefinit. Beim Beispiel ist . Aus folgt , damit und , . Das Minimum liegt bei mit , und es ist global, weil konvex ist.
Bei vielen Variablen und komplizierten Funktionen lässt sich nicht mehr exakt lösen. Dann sucht man das Minimum iterativ.
Das Gradientenverfahren
Der Gradient zeigt in die Richtung des steilsten Anstiegs, also zeigt in die Richtung des steilsten Abstiegs. Das Gradientenverfahren (Verfahren des steilsten Abstiegs) macht daher in jedem Schritt einen Schritt entgegen dem Gradienten:
Die Schrittweite ist entscheidend. Ist sie zu groß, springt das Verfahren über das Minimum hinweg, ist sie zu klein, kommt es kaum voran. Eine Möglichkeit ist die Liniensuche: Man wählt als Minimum von entlang der Geraden oder, einfacher, durch Halbieren (Backtracking), bis gilt (Armijo-Bedingung).
Quadratische Funktionen. Sei mit symmetrischer, positiv definiter Matrix und Eigenwerten . Das Minimum löst . Wegen ist
Die Matrix hat die Eigenwerte . Der Fehler schrumpft also mindestens um den Faktor pro Schritt. Dieser Faktor ist am kleinsten bei , nämlich mit der Konditionszahl . Im Beispiel ist , , und der Faktor stimmt. Bei wäre er , und man braucht über hundert Schritte für eine Stelle Genauigkeit. Das erklärt, warum das Verfahren bei „schmalen Tälern“ zickzackt und warum die Kondition entscheidend ist (siehe Numerik-Grundlagen).
Das Verfahren geht auf Augustin-Louis Cauchy zurück, der es 1847 vorschlug. Verbessert wird es durch das Verfahren der konjugierten Gradienten, das bei quadratischen Funktionen in höchstens Schritten ans Ziel kommt (siehe Numerische Lineare Algebra).
Das Newton-Verfahren
Wenn man die zweiten Ableitungen kennt, kann man besser vorgehen. Das Newton-Verfahren für die Optimierung wendet das Newton-Verfahren auf die Gleichung an: mit der Hesse-Matrix . Bei einer quadratischen Funktion ist konstant, und ein einziger Schritt genügt: . Allgemein konvergiert das Verfahren in der Nähe eines Minimums mit positiv definiter Hesse-Matrix quadratisch. Der Preis: In jedem Schritt muss ein lineares Gleichungssystem gelöst werden.
Nebenbedingungen und die KKT-Bedingungen
Bei Gleichungsnebenbedingungen helfen die Lagrange-Multiplikatoren: Im Optimum ist . Bei Ungleichungen gibt es eine Verallgemeinerung.
Die letzte Bedingung heißt Komplementarität: Eine Nebenbedingung hat nur dann einen Multiplikator , wenn sie am Optimum scharf ist (). Inaktive Bedingungen spielen keine Rolle. Das Vorzeichen hat eine Bedeutung: Die Abstiegsrichtung zeigt am Optimum in den verbotenen Bereich, man würde die Nebenbedingung gern verletzen. Der Multiplikator misst, wie viel man dadurch gewinnen würde (Schattenpreis).
Für lineare und ergeben die KKT-Bedingungen die Optimalitätsbedingungen der linearen Optimierung: zulässiges Primal- und Dualproblem und komplementärer Schlupf. Bei konvexen Problemen mit vielen Nebenbedingungen kommen heute Innere-Punkte-Verfahren zum Einsatz, die sich im Inneren des zulässigen Bereichs dem Optimum nähern.
Übungen
Immer neue Aufgaben mit Lösungen gibt es auf dem Blatt Gradientenverfahren, Newton und KKT.
Geschichte: von Cauchy zum maschinellen Lernen
Augustin-Louis Cauchy schlug 1847 vor, ein Gleichungssystem durch schrittweises Absteigen entlang des Gradienten zu lösen. Jacques Hadamard schlug 1907 unabhängig ein ähnliches Verfahren vor, und Haskell Curry untersuchte 1944 die Konvergenz für nichtlineare Probleme. Die Bedingungen für Ungleichungsnebenbedingungen stehen in der Masterarbeit von William Karush von 1939. Sie blieb unveröffentlicht und wurde vergessen, bis Harold Kuhn und Albert Tucker die Bedingungen 1951 auf einer Konferenz unabhängig vorstellten. Deshalb heißen sie KKT- oder Kuhn-Tucker-Bedingungen. Das Gradientenverfahren in seiner stochastischen Variante ist heute das Standardverfahren, um neuronale Netze zu trainieren: Die Funktion ist dann der Fehler des Netzes, die Variablen sind seine Millionen Gewichte. 1988 veröffentlichten Barzilai und Borwein ihre nach ihnen benannte Schrittweitenwahl.
Häufige Fragen
Warum nimmt man nicht immer das Newton-Verfahren?
Es braucht die Hesse-Matrix und in jedem Schritt die Lösung eines linearen Systems, bei Millionen Variablen ist das zu teuer. Das Gradientenverfahren braucht nur den Gradienten und ist billig. Dazwischen liegen Quasi-Newton-Verfahren, die die Hesse-Matrix aus den Gradienten schätzen.
Findet das Gradientenverfahren das globale Minimum?
Nur bei konvexen Funktionen. Bei nichtkonvexen Funktionen läuft es in ein lokales Minimum oder bleibt an einem Sattelpunkt hängen. Deshalb probiert man in der Praxis mehrere Startpunkte.
Was ist der Unterschied zur linearen Optimierung?
Bei linearer Optimierung liegt das Optimum immer in einer Ecke des zulässigen Bereichs, und das Simplex-Verfahren sucht nur Ecken ab. Bei nichtlinearer Zielfunktion kann es im Inneren oder auf einer Kante liegen, und man braucht Analysis.
Quellen und weiterführende Literatur
- Wikipedia: Gradientenverfahren
- Wikipedia: Karush-Kuhn-Tucker-Bedingungen
- Wikipedia (englisch): William Karush
- Stephen Boyd, Lieven Vandenberghe: Convex Optimization, Cambridge University Press.
- Jorge Nocedal, Stephen Wright: Numerical Optimization, Springer, New York.
Fehler entdeckt oder einen Wunsch? Schreib uns eine kurze Nachricht, wir kümmern uns darum.
