Notice: This page requires JavaScript to function properly.
Please enable JavaScript in your browser settings or update your browser.
Lernen Gradientabstiegsmethode | Mathematische Analyse
Mathematik für Datenanalyse und Modellierung
course content

Kursinhalt

Mathematik für Datenanalyse und Modellierung

Mathematik für Datenanalyse und Modellierung

1. Grundlegende Mathematische Konzepte und Definitionen
2. Linear Algebra
3. Mathematische Analyse

book
Gradientabstiegsmethode

Wir wissen, wie man Optimierungsprobleme für die Funktion einer Variablen mit dem im vorherigen Kapitel beschriebenen Algorithmus löst. Aber was können wir tun, wenn wir eine Funktion mehrerer Variablen haben? Wir können uns einer numerischen Methode zuwenden - dem Gradientenabstieg.

Was ist der Gradientenabstieg?

Der Gradient ist ein Vektor, der aus allen partiellen Ableitungen der Funktion besteht:

Somit kann das Problem der Minimierung der Funktion F(x1,..,xn) durch die Konstruktion der folgenden Folge von Annäherungen gelöst werden:

Wir setzen einen bestimmten Anfangswert x0 und einen η-Wert, der die Geschwindigkeit des Gradientenabstiegs darstellt. Dann beginnen wir den iterativen Prozess gemäß der obigen Formel.

Abbruchkriterien des Algorithmus

Die Kriterien für den Abbruch der Iterationen können wie folgt sein:

  1. Stoppen Sie den Algorithmus nach einer bestimmten Anzahl von Iterationen;
  2. Iterieren Sie, bis die folgende Bedingung erfüllt ist:

Hinweis

eps = 10**(-6) oder eps = 10**(-9) Werte werden häufig als Abbruchkriterium des Iterationsprozesses verwendet.

Wir müssen auf zwei wichtige Merkmale der Gradientenabstiegsmethode achten:

  1. Diese Methode kann nur den Punkt des Minimums der Funktion F(x) finden. Wenn Sie einen Punkt des Maximums finden möchten, können Sie die Funktion -F(x) betrachten und den Gradientenabstieg dafür verwenden;
  2. Wenn wir den zuvor besprochenen Algorithmus mit dem Gradientenabstieg vergleichen, können wir sehen, dass der Gradientenabstieg eine ähnliche Aufgabe wie die erste Stufe des Algorithmus erfüllt - das Finden eines kritischen Wertes, der ein potenzieller Minimumspunkt sein könnte. Daher ist es möglich, dass der vom Gradientenabstieg gefundene Punkt entweder ein lokales Minimum innerhalb eines Teilbereichs der Domäne ist oder überhaupt kein Minimumspunkt ist.

Beispiel

Lassen Sie uns herausfinden, wie man das Optimierungsproblem in Python löst:

12345678910111213141516171819
import numpy as np from scipy.optimize import minimize # Define the Rosenbrock function def rosenbrock(x): return (1 - x[0])**2 + 100*(x[1] - x[0]**2)**2 # Initial guess for x and y x0 = np.array([2, 2]) # Use scipy.optimize.minimize to find the minimum of the Rosenbrock function result = minimize(rosenbrock, x0) # Extract the optimal x and the minimum value of the Rosenbrock function optimal_x = result.x min_value = result.fun print(f'Optimal x: {optimal_x}') print(f'Minimum value of the Rosenbrock function: {min_value:.4f}')
copy

In diesem Beispiel definieren wir die Rosenbrock-Funktion, setzen einen anfänglichen Schätzwert für x und verwenden dann scipy.optimize.minimize, um das Minimum der Rosenbrock-Funktion zu finden. Das Attribut result.x enthält das optimale x, und result.fun enthält den minimalen Wert der Rosenbrock-Funktion.

Hinweis

Die Rosenbrock-Funktion wird häufig als Benchmark zum Testen und Vergleichen von Optimierungsalgorithmen verwendet, da sie nicht konvex ist und ein schmales, gekrümmtes Minimum aufweist.

War alles klar?

Wie können wir es verbessern?

Danke für Ihr Feedback!

Abschnitt 3. Kapitel 6
We're sorry to hear that something went wrong. What happened?
some-alt