[PYTHON] Sparse Modeling: Kapitel 3 Tracking-Algorithmus

Sparse Modeling Kapitel 3 Implementierte den Tracking-Algorithmus in Python.

Jupyter-Notizbuch mit einer Zusammenfassung des Codes und der experimentellen Ergebnisse.

Implementierte die folgende gierige Methode und die konvexe Relaxationsmethode. IRLS ist ein wenig misstrauisch ...

Gierige Methode

Konvexe Entspannungsmethode

Übersicht über die Giermethode

Initialisieren

Als $ k = 0 $

Hauptschleife

Führen Sie die folgenden Schritte als $ k \ leftarrow k + 1 $ aus.

  1. Fehlerberechnung, Support-Update: Spalte $ \ mathbf {a} _ {j} $, die den Rest $ \ mathbf {r} ^ {k} $ von $ \ mathbf {A} $ reduzieren kann Zu $ S ^ k $ 1.Vorläufiges Welt-Update:\\| \mathbf{Ax}-\mathbf{b}\\|^{2}_{2} \, \rm{subject} \, \rm{to} \, \rm{Support}\\{\mathbf{x}\\}=S^{k}Optimale Lösung von\mathbf{x}^{k}Lassen.
  2. Restaktualisierung: Berechnen Sie $ \ mathbf {r} ^ {k} = \ mathbf {b} - \ mathbf {Ax} ^ {k} . 1.Stoppbedingung: Wenn\|\mathbf{r}^{k}\|<\epsilon_{0}$Wenn ja, endet es, sonst wiederholt es sich.

Bei der Fehlerberechnung und Support-Aktualisierung wird das innere Produkt aller Spalten $ \ mathbf {a} _ {j} $ von $ \ mathbf {A} $ und der Rest $ \ mathbf {r} $ berechnet und der Absolutwert des inneren Produkts berechnet. Fügen Sie der Unterstützung die Spalte hinzu, die maximiert wird. Mit anderen Worten, Spalten parallel zu $ \ mathbf {r} $ werden der Reihe nach hinzugefügt.

Unterschiede im Gier-Algorithmus

IRLS-Übersicht

Initialisieren

Als $ k = 0 $

Hauptschleife

Führen Sie die folgenden Schritte als $ k \ leftarrow k + 1 $ aus.

  1. Minimum-Quadrat-Methode: Lineare simultane Gleichungen $ \ mathbf {x} \ _ {k} = \ mathbf {X} \ _ {k-1} ^ {2} \ mathbf {A} ^ {T} (\ mathbf Löse und approximiere {A} \ mathbf {X} _ {k-1} ^ {2} \ mathbf {A} ^ {T}) ^ {+} \ mathbf {b} $ direkt oder mit iterativen Methoden Holen Sie sich die Lösung $ \ mathbf {x} \ k . 1.Gewichtsaktualisierung:X{k}(j,j)=|x_{k}(j)|^{0.5}Als Gewichtsdiagonalmatrix\mathbf{X}Aktualisieren 1.Stoppbedingung: Wenn\|\mathbf{x}_{k}-\mathbf{x}_{k-1}\|_{2}$Wenn der vorgegebene Schwellenwert kleiner ist, wird er beendet, andernfalls wird er wiederholt.

Experiment

Simulation

$ \ mathbf {x} $ 50-dimensionaler Vektor $ \ mathbf {b} $ 30-dimensionaler Vektor $ \ mathbf {A} $ 30 × 50-dimensionale Matrix, Spaltennormalisierung einheitlicher Zufallszahlen von $ [-1, 1) $

Index

Ergebnis

Durchschnittlicher $ L_ {2} $ Fehler l2_err.png

Durchschnittlicher Abstand zwischen den Stützen dist_S.png

X_1.png X_3.png X_5.png

Erwägung

Recommended Posts

Sparse Modeling: Kapitel 3 Tracking-Algorithmus
Sparsame Modellierung: Kapitel 5 Von der exakten Lösung zur ungefähren Lösung
<Kurs> Maschinelles Lernen Kapitel 6: Algorithmus 2 (k-Mittel)
Spärliche Modellierung: 2.3 Konstruktion der Glasman-Matrix