Gradientenverfahren

Gradientenverfahren

Das Verfahren des steilsten Abstiegs, auch Gradientenverfahren genannt, ist ein Verfahren, das in der Numerik eingesetzt wird, um allgemeine Optimierungsprobleme zu lösen. Dabei geht man (am Beispiel eines Minimierungsproblemes) von einem Näherungswert aus. Von diesem schreitet man in Richtung des negativen Gradienten (der die Richtung des steilsten Abstiegs von diesem Näherungswert angibt) fort, bis man keine numerische Verbesserung mehr erzielt.

Das Verfahren konvergiert oftmals sehr langsam, da es sich dem Optimum entweder mit einem starken Zick-Zack-Kurs nähert oder der Betrag des Gradienten in der Nähe des Optimums sehr klein ist, wodurch die Länge der Iterationsschritte dann ebenfalls sehr klein ist. Für die Lösung von symmetrisch positiv definiten linearen Gleichungssystemen bietet das Verfahren der konjugierten Gradienten hier eine immense Verbesserung. Der Gradientenabstieg ist dem Bergsteigeralgorithmus (hill climbing) verwandt.

Inhaltsverzeichnis

Das Optimierungsproblem

Das Gradientenverfahren ist einsetzbar, wenn es um die Minimierung einer reellwertigen, differenzierbaren Funktion f: \mathbb{R}^n \rightarrow \mathbb{R} geht; also um das Optimierungsproblem

 \underset{x \in \mathbb{R}^n}{\rm min} \ f(x).

Hierbei handelt es sich um ein Problem der Optimierung ohne Nebenbedingungen, auch unrestringiertes Optimierungsproblem genannt.

Das Verfahren

Illustration des Gradientenverfahrens

Ausgehend von einem Anfangspunkt x(0) wird die Richtung des steilsten Abstiegs durch die Ableitung d^{(j)} = -\nabla f(x^{(j)}) bestimmt, wobei \nabla den Nabla-Operator bezeichnet, dh. den Vektor der partiellen Ableitungen von f(x(j)) nach den Variablen x^{(j)}_1,x^{(j)}_2,...x^{(j)}_n. Dann wird wie folgt iteriert:

x^{(j+1)} = x^{(j)} - \alpha^{(j)} \nabla f(x^{(j)}).

Hier ist d^{(j)} = - \nabla f(x^{(j)}) der negative Gradient von f, also die Abstiegsrichtung dieses Verfahrens, und α(j) bezeichnet die Schrittweite. Diese Schrittweite muss in jedem Schritt des Iterationsverfahrens bestimmt werden; hierfür gibt es unterschiedliche Möglichkeiten. Eine Methode besteht darin, α(j) durch die Minimierung der Funktion auf dem (eindimensionalen) "Strahl" x(j)(α) zu bestimmen, der ausgehend von x(j) in Richtung des negativen Gradienten zeigt:

x^{(j)}(\alpha) = x^{(j)} - \alpha \nabla f(x^{(j)}).

Man berechnet in diesem Fall also die Schrittweite durch f(x^{(j+1)})=\underset{\alpha >0}{\rm min}\ {f(x^{(j)} - \alpha \nabla f(x^{(j)}))}. Dies ist ein einfaches eindimensionales Optimierungsproblem, für das es spezielle Verfahren der Schrittweitenbestimmung gibt.

Das Verfahren wird auf dem Bild rechts illustriert. Hier ist f\, auf der Ebene definiert (also eine Funktion von zwei Variablen), und der Graph der Funktion hat die Gestalt einer Schüssel mit einem minimalen Punkt. Die blauen Linien sind die Niveaulinien, d.h., die Linie, auf denen f\, konstant ist. Ein roter Pfeil, der in einem Punkt beginnt, zeigt in die Richtung des negativen Gradienten in diesem Punkt; der Pfeil steht senkrecht auf der Niveaulinie, die durch den Punkt geht. Wir sehen, dass das Gradientenverfahren in dem illustrierten Fall an den tiefsten Punkt der "Schüssel" führt, das heißt an den Punkt, an dem der Wert der Funktion minimal ist.

Spezialfall: Quadratische Funktionale

Typischerweise wird ein Energiefunktional der Form

 J(x) = \frac{1}{2} x^TAx - b^Tx

minimiert. Dabei ist A eine symmetrisch positiv definite Matrix. Ausgehend von einem Anfangspunkt x(0) wird die Richtung des steilsten Abstiegs natürlich durch die Ableitung d^{(j)} = -\nabla J(x^{(j)}) = b - Ax^{(j)} bestimmt, wobei \nabla den Nabla-Operator bezeichnet. Dann wird wie folgt iteriert

x^{(j+1)} = x^{(j)} + \alpha^{(j)} d^{(j)} = x^{(j)} - \alpha^{(j)} \nabla J(x^{(j)})

α(j) bezeichnet die Schrittweite des Verfahrens und kann durch

 \alpha^{(j)} = \min_{t \in \mathbb{R}} J(x^{(j)} + t d^{(j)}) = \frac{{d^{(j)}}^T d^{(j)}}{{d^{(j)}}^T A d^{(j)}}

berechnet werden. Das Verfahren konvergiert dann für einen beliebigen Startwert gegen einen Wert x * , so dass J(x * ) minimal ist.

Algorithmus in Pseudocode

Eingabe: geeigneter Startvektor  \ x_0

For k = 0 To n

      d_k = -\nabla J(x_k) = b - Ax_k;
      \alpha_k = \frac{d^T_k d_k}{d_k^T A d_k}
      x_{k+1} = x_k + \alpha_k \cdot d_k

end

Ausgabe: Minimum des Energiefunktionals.

Konvergenzgeschwindigkeit

Das Gradientenverfahren liefert eine Folge  x_k \in \mathbb{R}^n mit

 \|x_k - x\|_A \leq \left( \frac{\kappa_2 (A) - 1}{\kappa_2 (A) + 1} \right)^k \|x_0 - x\|_A

Dabei bezeichnet κ2 die Kondition der Matrix A.

Literatur

  • Andreas Meister: Numerik linearer Gleichungssysteme. 2. Auflage. Vieweg, Wiesbaden 2005, ISBN 3-528-13135-7.

Wikimedia Foundation.

Игры ⚽ Нужен реферат?

Schlagen Sie auch in anderen Wörterbüchern nach:

  • Back-Propagation — Backpropagation oder auch Backpropagation of Error bzw. selten auch Fehlerrückführung[1] (auch Rückpropagierung) ist ein verbreitetes Verfahren für das Einlernen von künstlichen neuronalen Netzen. Formuliert wurde es zuerst 1974 durch Paul Werbos …   Deutsch Wikipedia

  • Backpropagation-Algorithmus — Backpropagation oder auch Backpropagation of Error bzw. selten auch Fehlerrückführung[1] (auch Rückpropagierung) ist ein verbreitetes Verfahren für das Einlernen von künstlichen neuronalen Netzen. Formuliert wurde es zuerst 1974 durch Paul Werbos …   Deutsch Wikipedia

  • Backpropagation mit Trägheitsterm — Backpropagation oder auch Backpropagation of Error bzw. selten auch Fehlerrückführung[1] (auch Rückpropagierung) ist ein verbreitetes Verfahren für das Einlernen von künstlichen neuronalen Netzen. Formuliert wurde es zuerst 1974 durch Paul Werbos …   Deutsch Wikipedia

  • Error backpropagation — Backpropagation oder auch Backpropagation of Error bzw. selten auch Fehlerrückführung[1] (auch Rückpropagierung) ist ein verbreitetes Verfahren für das Einlernen von künstlichen neuronalen Netzen. Formuliert wurde es zuerst 1974 durch Paul Werbos …   Deutsch Wikipedia

  • Methode der konjugierten Gradienten — Ein Vergleich des einfachen Gradientenverfahren mit optimaler Schrittlänge (in grün) mit dem CG Verfahren (in rot) für die Minimierung der quadratischen Form eines gegebenen linearen Gleichungssystems. CG konvergiert nach 2 Schritten, die Größe… …   Deutsch Wikipedia

  • Rückpropagierung — Backpropagation oder auch Backpropagation of Error bzw. selten auch Fehlerrückführung[1] (auch Rückpropagierung) ist ein verbreitetes Verfahren für das Einlernen von künstlichen neuronalen Netzen. Formuliert wurde es zuerst 1974 durch Paul Werbos …   Deutsch Wikipedia

  • Verfahren der konjugierten Gradienten — Ein Vergleich des einfachen Gradientenverfahren mit optimaler Schrittlänge (in grün) mit dem CG Verfahren (in rot) für die Minimierung der quadratischen Form eines gegebenen linearen Gleichungssystems. CG konvergiert nach 2 Schritten, die Größe… …   Deutsch Wikipedia

  • Bayes'sches Netz — Dieser Artikel wurde auf der Qualitätssicherungsseite des Portals Mathematik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Mathematik auf ein akzeptables Niveau zu bringen. Dabei werden Artikel gelöscht, die nicht… …   Deutsch Wikipedia

  • Bayes'sches Netzwerk — Dieser Artikel wurde auf der Qualitätssicherungsseite des Portals Mathematik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Mathematik auf ein akzeptables Niveau zu bringen. Dabei werden Artikel gelöscht, die nicht… …   Deutsch Wikipedia

  • Bayes-Netz — Dieser Artikel wurde auf der Qualitätssicherungsseite des Portals Mathematik eingetragen. Dies geschieht, um die Qualität der Artikel aus dem Themengebiet Mathematik auf ein akzeptables Niveau zu bringen. Dabei werden Artikel gelöscht, die nicht… …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”