[PYTHON] Sparsame Modellierung: Kapitel 5 Von der exakten Lösung zur ungefähren Lösung

Überblick

Sparse Modeling Implementierte die numerischen Beispiele in Kapitel 5 in Python. Jupyter-Notizbuch, das den Code und die experimentellen Ergebnisse zusammenfasst. Einführung

Kapitel 5 befasst sich mit dem Fall, in dem die beobachteten Daten Rauschen enthalten. Da die beobachteten Daten Rauschen enthalten, wird die Einschränkung des Fehlerterms auf $ \ epsilon $ oder weniger abgeschwächt.

(P_{0}^{\epsilon}): \min_{\mathbf{x}} \|\|\mathbf{x}\|\|_{0} \text{ subject to } \|\|\mathbf{b}-\mathbf{Ax}\|\| _{2} \leq \epsilon

Das Lockern der $ \ ell_ {0} $ -Norm auf die $ \ ell_ {1} $ -Norm ergibt eine Variante von $ (P_ {1}) $, Basisverfolgungsentrauschung (BPDN).

(P_{1}^{\epsilon}): \min_{\mathbf{x}} \|\|\mathbf{x}\|\|_{1} \text{ subject to } \|\|\mathbf{b}-\mathbf{Ax}\|\| _{2} \leq \epsilon

Für einen geeigneten Lagrange-Multiplikator $ \ lambda $ stimmt die Lösung von $ (P_ {1} ^ {\ epsilon}) $ mit der Lösung des folgenden uneingeschränkten Optimierungsproblems überein.

(Q_{1}^{\lambda}): \min_{\mathbf{x}} \lambda \|\|\mathbf{x}\|\|_{1} + \frac{1}{2} \|\|\mathbf{b}-\mathbf{Ax}\|\| _{2}

Eine einfache Möglichkeit, $ (Q_ {1} ^ {\ lambda}) $ zu lösen, sind die iterativ neu gewichteten kleinsten Quadrate (IRLS).

\mathbf{X}=\rm{diag}(\mathbf{\|x\|})Dann$ ||\mathbf{x}||_{1} = \mathbf{x}\mathbf{X}^{-1}\mathbf{x}Es wird. Mit anderen Worten\ell_{1}Norm ist (gewichtet) quadratisch\ell_{2}Es kann als Norm angesehen werden. Aktuelle ungefähre Lösung\mathbf{x_{\rm{k-1}}}Gegeben,\mathbf{X_{\rm{k-1}}}=\rm{diag}(\left|\mathbf{x_{\rm{k-1}}}\right|)$Lösen Sie auf jeden Fall das folgende Problem.

(M_{k}): \min_{\mathbf{x}} \lambda \mathbf{x^{\rm{T}}} \mathbf{X^{\rm{-1}}} \mathbf{x} + \frac{1}{2} \|\| \mathbf{b} - \mathbf{Ax} \|\|_{2}^{2}

Der IRLS-Algorithmus verwendet also die aktuellen Gewichte $ \ mathbf {X_ {\ rm {k-1}}} $, um $ \ mathbf {x_ {k}} $ und dann $ \ mathbf {x_ {k} zu erhalten } $ Wird verwendet, um abwechselnd $ \ mathbf {X_ {\ rm {k}}} $ zu erhalten, und die Lösung von $ (Q_ {1} ^ {\ lambda}) $ wird ungefähr erhalten. .. Kapitel 5 besteht hauptsächlich aus einer Erklärung von IRLS, die ungefähr $ (Q_ {1} ^ {\ lambda}) $ löst, und einem Umriss von LARS (stufenweise Regression des kleinsten Winkels).

IRLS-Algorithmus

Initialisieren

Als $ k = 0 $

Hauptschleife

Setzen Sie $ k \ leftarrow k + 1 $ und führen Sie die folgenden Schritte aus.

*Gewichtsaktualisierung:\mathbf{x_{\rm{k}}}Verwenden vonX_{k}(j,j)=\|x_{k}(j)\|+\epsilonAls Gewichtsdiagonalmatrix\mathbf{X}Ist aktualisiert. *Stoppbedingung: Wenn\|\|\mathbf{x_{\rm{k}}}-\mathbf{x_{\rm{k-1}}}\|\|_{2}Wenn der vorgegebene Schwellenwert kleiner ist, wird er beendet, andernfalls wird er wiederholt.

Experiment

Simulation

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

Eines der zu lösenden Probleme ist die Bestimmung des Werts von $ \ lambda $. Hier ist nach der empirischen Regel $ \ lambda $ ein Wert, der nahe am Verhältnis von $ \ sigma $ und der Standardabweichung von Nicht-Null-Elementen liegt. Da die Standardabweichung von Nicht-Null-Elementen ungefähr 2 beträgt, wird der Wert in der Nähe von $ \ sigma / 2 = 0,05 $ als $ \ lambda $ festgelegt.

Ergebnis

lambda.png

Die gestrichelte Linie ist\left\|\log\left(\|\|\mathbf{A\hat{x_{\rm{\lambda}}}}-\mathbf{b}\|\|^{2}/\left(n\sigma^{2}\right)\right)\right\|Zeigt den Wert von an\lambdaRest zu welchem Wert\|\|\mathbf{A\hat{x_{\rm{\lambda}}}}-\mathbf{b}\|\|Ist die Kraft des Rauschensn\sigma^{2}Es zeigt, ob es ungefähr das gleiche sein wird wie. das ist\lambdaDies ist eine weitere empirische Regel, die den Wert von bestimmt.

IRLS.png

Im Vergleich zur wahren Lösung $ \ mathbf {x_ {\ rm {0}}} $ (roter Kreis), $ \ mathbf {x_ {\ rm {0}} bei Verwendung des optimalen Wertes $ \ lambda $ } Die Position des Nicht-Null-Elements von $ wird am besten wiederhergestellt. Wenn der Wert von $ \ lambda $ klein ist, ist die Lösung dicht, und wenn er groß ist, ist die Lösung spärlich.

path.png

Jedes Diagramm zeigt den Wert eines Elements von $ \ mathbf {x} $ für $ \ lambda $. Die gestrichelte Linie ist der Wert von $ \ mathbf {x_ {\ rm {0}}} $.

*Optimal\lambdaFunktionswert für die Anzahl der IRLS-Iterationen bei(\lambda\|\|\mathbf{x}\|\|_{1}+\frac{1}{2}\|\|\mathbf{b}-\mathbf{Ax}\|\|)

iteration.png

LARS-Algorithmus

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

l2_err_OMP_LARS.png

dist_S_OMP_LARS.png

Erwägung

Recommended Posts

Sparsame Modellierung: Kapitel 5 Von der exakten Lösung zur ungefähren Lösung
Sparse Modeling: Kapitel 3 Tracking-Algorithmus
PRML: Kapitel 7 Kernel-Maschine mit spärlicher Lösung
Deep Learning von Grund auf neu ① Kapitel 6 "Lerntechniken"
Summe von 1 bis 10