Abstrakte Definition (Hilbertraum-Setting)
Der orthogonale Greedy-Algorithmus (OGA) ist ein iteratives Verfahren zur Approximation eines unbekannten Ziels \(u\) in einem Hilbertraum
Gegeben ist ein Dictionary \(\mathbb D\subset H\), typischerweise symmetrisch (\(g\in\mathbb D\Rightarrow -g\in\mathbb D\)). Gesucht ist eine Folge \(u_n\in H\), die sich aus endlich vielen Dictionary-Elementen zusammensetzt und \(u\) schrittweise annähert.
Der Verlust \(L(v)=\tfrac12\|v-u\|_H^2\) hat Gradient \(\nabla L(v)=v-u\). Damit ist das Residuum \(r_{n-1}=u-u_{n-1}=-\nabla L(u_{n-1})\), und OGA wählt in jedem Schritt die Richtung \(g_n\), die maximal mit dem Gradienten (bzw. Residuum) korreliert, und minimiert dann exakt im neuen Unterraum \(V_n\).
Orthogonale Projektion im Unterraum
Die Projektion \(u_n=P_{V_n}(u)\) lässt sich konkret formulieren, wenn \(V_n=\mathrm{span}\{g_1,\dots,g_n\}\) ist. Schreibe
Die Orthogonalitätsbedingung \(\langle u-u_n,g_j\rangle_H=0\) für alle \(j=1,\dots,n\) führt auf das Gram-System
Praktisch:
- Bei jedem Schritt wird nur ein neuer Vektor \(g_n\) hinzugefügt: \(G\) wächst von \((n-1)\times(n-1)\) auf \(n\times n\).
- Man kann entweder
- das Gram-System bei jedem Schritt neu lösen (
O(n³)in \(n\)), oder - inkrementell arbeiten (z. B. Cholesky-Update) oder
- Gram–Schmidt-Orthonormalisierung durchführen und in einer ONB projizieren.
- das Gram-System bei jedem Schritt neu lösen (
In Code ist es oft am einfachsten, die Matrix \(G\) als
dichte Matrix aufzubauen und pro Schritt ein kleines lineares
Gleichungssystem zu lösen (z. B. numpy.linalg.solve).
Die Dimension \(n\) ist typischerweise viel kleiner als die
Zahl der Gitter-/Quadraturpunkte.
Poisson-Fall: Diskretisierung der Energie
Für das Poisson-Problem
ist der natürliche Hilbertraum \(H=H^1_0(\Omega)\) mit
und das kontinuierliche Energie-Funktional (Dirichlet-Fall)
Zur diskreten OGA-Implementierung wählen wir Quadraturpunkte \(x_i\in\Omega\) mit Gewichten \(w_i>0\) (z. B. Trapezregel, Gauss–Legendre). Das diskrete Energie-Funktional ist dann
Evaluationsoperator & diskretes Skalarprodukt
Für \(v\in C^1(\Omega)\) speichern wir Funktionswerte und Gradienten in einem Vektor:
Auf \(\mathbb R^{N(1+d)}\) definieren wir ein Skalarprodukt, das nur die Gradient-Komponenten nutzt (um die \(H^1_0\)-Struktur nachzubilden):
Datenvektor \(u_N\)
Die schwache Form der PDE liefert \(\langle u,g\rangle_H = \int_\Omega f\,g\,dx\). Nach Quadratur lassen sich diese Skalarprodukte vollständig aus \(f(x_i)\) gewinnen. Man definiert den Datenvektor
Dann gilt formal
Die Funktionswert-Slots sind Null, weil die Energie keinen \(v^2\)-Massenterm enthält; in den Gradient-Slots steckt direkt die Information über \(f\).
Quadratische Darstellung der diskreten Energie
Mit obigen Definitionen lässt sich \(\mathcal R_N\) als quadratische Form schreiben:
Für OGA ist wichtig: Alle benötigten Skalarprodukte können mit \(u_N\) und den ausgewerteten Atomen \(I_{1,N}(g)\) berechnet werden, ohne die exakte Lösung \(u\) zu kennen.
Diskreter OGA – Algorithmus & Implementierung
Identifiziere jedes Dictionary-Element \(g\) mit seinem Evaluationsvektor
Dann läuft der OGA auf dem quadratischen Funktional \(\mathcal R_N\) wie folgt:
Praktische Implementierung (Schritt für Schritt)
- Gitter & Quadratur: Knoten \(x_i\), Gewichte \(w_i\) erzeugen.
- Datenvektor \(u_N\): \(f(x_i)\) auswerten, Grad-Slots belegen.
- Dictionary: Funktion \(\theta \mapsto g_\theta\) + Ableitung programmieren.
- Evaluationsvektor: \(v = I_{1,N}(g_\theta)\) als concatenierte Werte+Gradienten.
- Skalarprodukt:
inner_HN, das nur Gradient-Slots nutzt. - Greedy-Schritt: \(\theta\)-Kandidaten durchlaufen, Score \(|\langle v,R\rangle_{H,N}|\) maximieren.
- Projektion: Gram-Matrix \(G\) und Vektor \(b\) aufbauen, Gleichung lösen.
- Residuum aktualisieren: \(R = u_N - U_n\) und weiter mit \(n+1\).
OGA nutzt die Quadratik von \(\mathcal R_N\) entscheidend aus: nur dann ist das Residuum tatsächlich (bis auf ein Vorzeichen) der Gradient. Für nichtquadratische PDE-Energien ist der Algorithmus in dieser Form nicht anwendbar.
1D-Poisson-Spezialfall auf \((0,\pi)\)
Modellproblem:
Hilbertraum:
Diskretisierung:
- Knoten \(x_i\in(0,\pi)\), Gewichte \(w_i>0\) (z. B. Trapezregel),
- \(I_{1,N}(v) = (v(x_1),\dots,v(x_N), v'(x_1),\dots,v'(x_N))^\top\in\mathbb R^{2N}\),
- \(\langle z,y\rangle_{H,N} = \sum_{i=1}^N w_i z_{N+i}y_{N+i}\),
- \(u_N = (0,\dots,0,f(x_1),\dots,f(x_N))^\top\).
Dictionary-Beispiel:
mit Formfunktion \(\psi(x)=x(\pi-x)\), so dass \(g_{\omega,b}\in H_0^1(0,\pi)\) und die Dirichlet-Randbedingungen exakt erfüllt sind.
Konvergenz & Raten (theoretischer Überblick)
Die klassische OGA-Theorie (z. B. im Rahmen von Siegel et al.) arbeitet mit der Metric-Entropie des Wörterbuchs. Sei \(B_1(\mathbb D)\) der konvexe Rumpf von \(\mathbb D\) in \(H\) und
dann gilt stark vereinfacht:
für alle Vergleichsfunktionen \(v\) im Sparse-Konvexkörper \(\mathcal K_1(\mathbb D)\), mit einer Konstanten \(K>0\). Für Wörterbücher flacher ReLU\(^k\)-Modelle erhält man explizite \(\gamma\)-Werte und damit explizite Raten \(\|u_n-u\|_H = \mathcal O(n^{-\tfrac12-\gamma})\).
Wichtiger Hinweis für das hier verwendete PDE-Setting
Die obige Konvergenztheorie setzt jedoch voraus, dass
- der Konvexkörper \(\mathcal K_1(\mathbb D)\) bzgl. \(\|\cdot\|_H\) „kontrolliert“ ist (insbesondere: Vergleichsfunktionen \(v\) mit endlicher \(\|v\|_{\mathcal K_1(\mathbb D)}\)), und
- das Dictionary \(\mathbb D\) bzw. sein konvexer Rumpf in geeigneter Weise normbeschränkt/kompakt ist (Entropiezahlen endlich).
In der hier betrachteten PDE-Implementierung des OGA sind diese Voraussetzungen im Allgemeinen nicht erfüllt:
- Das verwendete Wörterbuch (z. B. parametrische Atome \(g_{\omega,b}\)) ist nicht a priori normbeschränkt,
- es wird kein explizites Vergleichselement \(v\in\mathcal K_1(\mathbb D)\) mit kontrollierter \(\mathcal K_1\)-Norm vorausgesetzt,
- somit ist die notwendige Entropie-Abschätzung für \(B_1(\mathbb D)\) nicht nachgewiesen.
Konsequenz: Für den konkret implementierten OGA in diesem PDE-Setting steht keine belastbare Konvergenztheorie zur Verfügung; die oben genannten Raten sind nur als theoretische Referenz für idealisierte, gut beschränkte Dictionaries zu verstehen und lassen sich nicht direkt auf die konkrete Implementierung übertragen.
Praktische Beobachtungen (1D-Tests, grob)
-
Mit Formfunktion (harte Randbedingung):
Dirichlet-Randwerte werden exakt erfüllt; OGA erreicht sehr kleine Endfehler (z. B. \(L^2\)-Fehler bis etwa \(10^{-7}\) im 1D-Test). -
Mit Strafterm (Penalty):
Dirichlet wird über einen \(\delta\)-Penalizer erzwungen; das Fehlerplateau liegt höher (z. B. Größenordnung \(10^{-5}\)), konsistent mit dem theoretischen \(\mathcal O(\delta)\)-Randfehler.
Diese Beobachtungen sind numerisch, aber – wie oben erläutert – nicht von einer vollständigen OGA-Konvergenztheorie im verwendeten Wörterbuch-Setting abgesichert.
Git & Quelle
Repository: git.numexp.org/ferdinandkruppa/pde-oga
Clone
git clone https://git.numexp.org/ferdinandkruppa/pde-oga.git
Literatur
- Siegel, Hong, Jin, Hao, Xu: Greedy Training Algorithms for Neural Networks and Applications to PDEs, arXiv:2107.04466.