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 f(x,y)=x2+xy+y2 konvex, denn die Hesse-Matrix (2112) hat die Eigenwerte 1 und 3, beide positiv. Die Funktion f(x)=x4−2x2 ist dagegen nicht konvex: f′(x)=12x2−4 ist bei x=0 negativ.

Beweis. Sei x∗ ein lokales Minimum, aber f(y)<f(x∗) für ein y. Auf der Strecke von x∗ nach y gilt f(λy+(1−λ)x∗)≤λf(y)+(1−λ)f(x∗)<f(x∗) für alle λ∈(0,1]. Für kleines λ liegen diese Punkte beliebig nah an x∗, im Widerspruch zum lokalen Minimum. Für die zweite Aussage benutzt man die Tangentenungleichung f(y)≥f(x)+∇f(x)⊤(y−x) der konvexen differenzierbaren Funktionen: Bei ∇f(x∗)=0 folgt f(y)≥f(x∗) für alle y. □

Optimalitätsbedingungen ohne Nebenbedingungen

In einem lokalen Minimum x∗ ist ∇f(x∗)=0 (stationärer Punkt), und die Hesse-Matrix H=∇2f(x∗) ist positiv semidefinit. Ist ∇f(x∗)=0 und H positiv definit, dann ist x∗ ein striktes lokales Minimum. Beim Sattelpunkt ist H indefinit. Beim Beispiel f(x,y)=x2+xy+y2−3x ist ∇f=(2x+y−3,x+2y). Aus x+2y=0 folgt x=−2y, damit −4y+y−3=0 und y=−1, x=2. Das Minimum liegt bei (2,−1) mit f=4−2+1−6=−3, und es ist global, weil f konvex ist.

Bei vielen Variablen und komplizierten Funktionen lässt sich ∇f=0 nicht mehr exakt lösen. Dann sucht man das Minimum iterativ.

Das Gradientenverfahren

Der Gradient ∇f(x) zeigt in die Richtung des steilsten Anstiegs, also zeigt −∇f(x) in die Richtung des steilsten Abstiegs. Das Gradientenverfahren (Verfahren des steilsten Abstiegs) macht daher in jedem Schritt einen Schritt entgegen dem Gradienten:

xk+1=xk−tk∇f(xk).

Die Schrittweite tk>0 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 tk als Minimum von f entlang der Geraden oder, einfacher, durch Halbieren (Backtracking), bis f(xk−t∇f(xk))≤f(xk)−ct‖∇f(xk)‖2 gilt (Armijo-Bedingung).

Quadratische Funktionen. Sei f(x)=12x⊤Ax−b⊤x mit symmetrischer, positiv definiter Matrix A und Eigenwerten λmin≤…≤λmax. Das Minimum x∗ löst Ax∗=b. Wegen ∇f(x)=Ax−b=A(x−x∗) ist

xk+1−x∗=(xk−x∗)−tA(xk−x∗)=(I−tA)(xk−x∗).

Die Matrix I−tA hat die Eigenwerte 1−tλ. Der Fehler schrumpft also mindestens um den Faktor max|1−tλ| pro Schritt. Dieser Faktor ist am kleinsten bei t=2λmin+λmax, nämlich λmax−λminλmax+λmin=κ−1κ+1 mit der Konditionszahl κ=λmaxλmin. Im Beispiel ist A=diag(2,8), κ=4, und der Faktor 35=0,6 stimmt. Bei κ=100 wäre er 99101≈0,98, 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 n 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 ∇f(x)=0 an: xk+1=xk−H(xk)−1∇f(xk) mit der Hesse-Matrix H. Bei einer quadratischen Funktion ist H=A konstant, und ein einziger Schritt genügt: x1=x0−A−1(Ax0−b)=A−1b=x∗. 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 h(x)=0 helfen die Lagrange-Multiplikatoren: Im Optimum ist ∇f+λ∇h=0. Bei Ungleichungen gi(x)≤0 gibt es eine Verallgemeinerung.

Die letzte Bedingung heißt Komplementarität: Eine Nebenbedingung hat nur dann einen Multiplikator μi>0, wenn sie am Optimum scharf ist (gi=0). Inaktive Bedingungen spielen keine Rolle. Das Vorzeichen μi≥0 hat eine Bedeutung: Die Abstiegsrichtung −∇f 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 f und gi 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 f 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

Fehler entdeckt oder einen Wunsch? Schreib uns eine kurze Nachricht, wir kümmern uns darum.

Fehler entdeckt oder einen Wunsch?

Deine Nachricht zur Seite „Nichtlineare Optimierung: Konvexität, Gradientenverfahren, KKT“. Die Adresse der Seite schicken wir automatisch mit.

Bitte schreib keine weiteren persönlichen Daten hinein. Mehr dazu im Datenschutz.