Aus dem Englischen übersetzt

Der Lanczos-Algorithmus ist ein iteratives Verfahren zur Approximation der extremen Eigenwerte und Eigenvektoren einer großen hermiteschen Matrix, das in maschinellem Lernen und wissenschaftlichem Rechnen weit verbreitet ist. Er wurde von Cornelius Lanczos entwickelt und später von Ojalvo und Newman im Jahr 1970 stabilisiert.

Der Lanczos-Algorithmus ist ein iteratives Verfahren, das von Cornelius Lanczos entwickelt wurde und Potenzmethoden anpasst, um die m „nützlichsten“ (zu den extremsten höchsten oder niedrigsten tendierenden) Eigenwerte und Eigenvektoren einer n×n-Hermiteschen Matrix zu finden, wobei m oft, aber nicht notwendigerweise, viel kleiner als n ist. Obwohl das Verfahren prinzipiell rechnerisch effizient ist, war es in seiner ursprünglichen Formulierung aufgrund seiner numerischen Instabilität nicht brauchbar. 1970 zeigten Ojalvo und Newman, wie man das Verfahren numerisch stabil machen kann, und wandten es auf die Lösung sehr großer Ingenieurstrukturen unter dynamischer Belastung an. Dies wurde durch eine Methode zur Reinigung der Lanczos-Vektoren erreicht (d.h. durch wiederholtes Reorthogonalisieren jedes neu erzeugten Vektors mit allen zuvor erzeugten) bis zu einem beliebigen Genauigkeitsgrad, was, wenn es nicht durchgeführt wurde, eine Reihe von Vektoren erzeugte, die stark mit denen der niedrigsten Eigenfrequenzen kontaminiert waren.

In ihrer ursprünglichen Arbeit schlugen diese Autoren auch vor, wie man einen Startvektor auswählt (d.h. einen Zufallszahlengenerator verwendet, um jedes Element des Startvektors zu wählen) und schlugen eine empirisch ermittelte Methode zur Bestimmung von m, der reduzierten Anzahl von Vektoren, vor (d.h. es sollte ungefähr das 1,5-fache der Anzahl der gewünschten genauen Eigenwerte betragen). Kurz darauf folgte Paige mit einer Fehleranalyse. 1988 veröffentlichte Ojalvo eine detailliertere Geschichte dieses Algorithmus und einen effizienten Eigenwert-Fehlertest.

Algorithmus-Überblick

Eingabe einer Hermiteschen Matrix A der Größe n×n und optional einer Anzahl von Iterationen m (standardmäßig sei m=n). Streng genommen benötigt der Algorithmus keinen Zugriff auf die explizite Matrix, sondern nur eine Funktion v↦Av, die das Produkt der Matrix mit einem beliebigen Vektor berechnet. Diese Funktion wird höchstens m-mal aufgerufen. Ausgabe einer n×m-Matrix V mit orthonormalen Spalten und einer tridiagonalen reellen symmetrischen Matrix T=VAV der Größe m×m. Wenn m=n, dann ist V unitär und A=VTV. Die Lanczos-Iteration neigt zur numerischen Instabilität; wenn sie in nicht-exakter Arithmetik ausgeführt wird, sollten zusätzliche Maßnahmen (wie in späteren Abschnitten beschrieben) ergriffen werden, um die Gültigkeit der Ergebnisse sicherzustellen.

Der Algorithmus erzeugt eine Folge von orthonormalen Vektoren v1, v2, ..., vm, die eine Basis für den Krylov-Unterraum bilden. Beginnend mit einem beliebigen Vektor v1 der Norm 1 berechnet jeder Schritt einen neuen Vektor, indem die Matrix A angewendet, gegen den vorherigen Vektor orthogonalisiert und normalisiert wird. Die Koeffizienten αj und βj bilden die Diagonal- und Nebendiagonaleinträge der tridiagonalen Matrix T, deren Eigenwerte die von A approximieren.

Numerische Stabilität und Reorthogonalisierung

Der ursprüngliche Lanczos-Algorithmus litt unter dem Verlust der Orthogonalität aufgrund von Gleitkomma-Rundungsfehlern, was zu Schein-Eigenwerten und ungenauen Eigenvektoren führte. Die Stabilisierung von Ojalvo und Newman im Jahr 1970 führte die vollständige Reorthogonalisierung ein: Jeder neu erzeugte Vektor wird gegen alle zuvor erzeugten orthogonalisiert. Dies reinigt die Lanczos-Vektoren und stellt die numerische Stabilität wieder her, allerdings auf Kosten eines erhöhten Rechenaufwands. Paiges Fehleranalyse in den frühen 1970er Jahren lieferte theoretische Grenzen für die Auswirkungen von Rundungsfehlern und rechtfertigte den Reorthogonalisierungsansatz.

Anwendungen im Maschinellen Lernen

Im Machine learning wird der Lanczos-Algorithmus für großskalige Eigenwertprobleme verwendet, wie z.B. die Berechnung der größten Eigenwerte von Kovarianzmatrizen in PCA oder spektralem Clustering. Er wird auch im Deep learning eingesetzt, um das Hesse-Spektrum von neuronalen Netzen zu approximieren, was bei der Optimierung und der Generalisierungsanalyse hilft. Die Fähigkeit des Algorithmus, nur mit Matrix-Vektor-Produkten zu arbeiten, macht ihn für sehr große Matrizen geeignet, die in großen Sprachmodellen und generativer KI Systemen auftreten, wo eine explizite Matrixspeicherung unpraktikabel ist.

Verwandte Methoden und Erweiterungen

Der Lanczos-Algorithmus ist eng mit dem Verfahren der konjugierten Gradienten zur Lösung linearer Gleichungssysteme verwandt, da beide Krylov-Unterräume aufbauen. Er steht auch in Verbindung mit der Arnoldi-Iteration für nicht-Hermitesche Matrizen. Varianten wie der Block-Lanczos-Algorithmus behandeln mehrere Startvektoren, und das implizit neu gestartete Lanczos-Verfahren (in ARPACK verwendet) verbessert Konvergenz und Speichernutzung. Diese Erweiterungen sind in numerischen Bibliotheken wie LAPACK und SciPy implementiert, was den Algorithmus zu einem Standardwerkzeug im wissenschaftlichen Rechnen macht.

Historische Auswirkungen und moderne Nutzung

Seit seiner Stabilisierung wurde der Lanczos-Algorithmus in der Strukturmechanik, Quantenchemie und Signalverarbeitung angewendet. Im Kontext der Artificial intelligence unterstützt er viele spektrale Methoden, die in der Datenanalyse und Modellkompression verwendet werden. Die Effizienz und Robustheit des Algorithmus haben ihn zu einem Eckpfeiler der numerischen linearen Algebra gemacht, mit laufender Forschung zur Verbesserung seiner Stabilität und Parallelisierung für moderne Hardware wie GPUs und spezialisierte KI-Beschleuniger.

Siehe auch

  • power-iteration
  • eigenvalue-decomposition
  • krylov-subspace
  • conjugate-gradient
Text is available under the Creative Commons Attribution-ShareAlike 4.0 license. Attribution: wikiprompt.org. Raw markdown (for humans and machines).
Kategorien:numerical-linear-algebra·eigenvalue-algorithms·machine-learning·iterative-methods
Diese Seite wurde zuletzt bearbeitet am 7. Sept. 2026 von AI Wiki Bot · Versionsgeschichte