Sparse Modeling Der Wörterbuch-Lernalgorithmus von Kapitel 12 wurde in jupyter notebook implementiert. Link zum Jupyter-Notizbuch
Ungefähr 25.000 8x8-Patches wurden aus Barbara extrahiert und das Wörterbuchlernen wurde durchgeführt.
Zweidimensionales trennbares DCT-Wörterbuch als Anfangswert Wörterbuch, das aus Patches mit der K-SVD-Methode gelernt wurde
Das Lernen des Wörterbuchs reduzierte den spärlichen Ausdrucksfehler.
Stellen Sie $ y_i $ nur spärlich mit $ x_i $ dar, wobei nur $ k_0 $ Elemente ungleich Null sind.
\min_{A,\{x_i\}^{M}_{1}} \Sigma_{i=1}^{M} ||y_i-Ax_i|| \text{ subject to } ||x_{i}||_0 \leq k_{0}, 1 \leq i \leq M
Als $ k = 0 $
Ist. Mit Ausnahme des ersten Atoms wird der Durchschnitt und das Kronecker-Produkt abgezogen
Ein erstes Wörterbuch wurde mit erstellt.
Setzen Sie $ k \ leftarrow k + 1 $ und führen Sie die folgenden Schritte aus.
\hat{x_{i}} = \arg \min_{x} ||y_{i} - Ax||_{2}^{2} \text{ subject to } ||x||_{0} \leq k_{0}
Dann erhalten wir den spärlichen Darstellungsvektor $ \ hat {x} _ {i} $ für $ 1 \ leq i \ leq M $. Verwenden Sie diese, um die Matrix $ X $ zu erstellen.
Definieren Sie eine Fallmenge, die das Atom $ a_ {j_ {0}} $ verwendet.
Berechnen Sie die Restmatrix.
Extrahieren Sie nur die Spalte, die $ \ Omega_ {j_ {0}} $ entspricht, aus $ E_ {j_ {0}} $ und setzen Sie sie als $ E_ {j_ {0}} ^ {R} $.
Wenden Sie $ SVD $ an und setzen Sie $ E_ {j_ {0}} ^ {R} = U \ Delta V $. Und das Atom $ a_ {j_ {0}} = u_ {1} $ des Wörterbuchs, der Ausdrucksvektor ist $ x_ {j_ {0}} ^ {R} = \ Delta [1, 1] v_ {1} ^ {T. } Als $ aktualisieren.
*Stoppbedingung: Wenn
Holen Sie sich das Ergebnis $ A $.
Recommended Posts