[PYTHON] Wörterbuch-Lernalgorithmus

Sparse Modeling Der Wörterbuch-Lernalgorithmus von Kapitel 12 wurde in jupyter notebook implementiert. Link zum Jupyter-Notizbuch

Ergebnis

Ungefähr 25.000 8x8-Patches wurden aus Barbara extrahiert und das Wörterbuchlernen wurde durchgeführt.

barbara_patches.png

Zweidimensionales trennbares DCT-Wörterbuch als Anfangswert dct_dictionary.png Wörterbuch, das aus Patches mit der K-SVD-Methode gelernt wurde ksvd_dictionary_barbara.png

Das Lernen des Wörterbuchs reduzierte den spärlichen Ausdrucksfehler.

Barbara_K-SVD.png

K-SVD-Algorithmus

Stellen Sie $ y_i $ nur spärlich mit $ x_i $ dar, wobei nur $ k_0 $ Elemente ungleich Null sind.

Aufgabe:

\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

Initialisieren:

Als $ k = 0 $

a^{1D}_{k}=\cos((i-1)(k-1)\pi/11),(i=1,2,\dots,8)

Ist. Mit Ausnahme des ersten Atoms wird der Durchschnitt und das Kronecker-Produkt abgezogen

A_{2D} = A_{1D} \otimes A_{1D}

Ein erstes Wörterbuch wurde mit erstellt.

Hauptschleife:

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.

  1. Definieren Sie eine Fallmenge, die das Atom $ a_ {j_ {0}} $ verwendet. $ \ Omega_ {j_ {0}} = \\ {i | 1 \ leq i \ leq M, X [j_ {0}, i] \ neq 0 \\} $

  2. Berechnen Sie die Restmatrix. $ E_ {j_ {0}} = Y- \ Sigma_ {j \ neq j_ {0}} a_ {j} x_ {j} ^ {T} $

  3. Extrahieren Sie nur die Spalte, die $ \ Omega_ {j_ {0}} $ entspricht, aus $ E_ {j_ {0}} $ und setzen Sie sie als $ E_ {j_ {0}} ^ {R} $.

  4. 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||Y - AX||^{2}_{F}Wenn die Änderung klein genug ist, endet sie, andernfalls wird sie wiederholt.

Ausgabe:

Holen Sie sich das Ergebnis $ A $.

Referenz

Recommended Posts

Wörterbuch-Lernalgorithmus
Einführung in den Wörterbuch-Suchalgorithmus
Andere Anwendungen des Wörterbuchlernens
Algorithmus für maschinelles Lernen (einfaches Perzeptron)
Algorithmus für maschinelles Lernen (Support Vector Machine)
Algorithmus für maschinelles Lernen (logistische Regression)
<Kurs> Maschinelles Lernen Kapitel 6: Algorithmus 2 (k-Mittel)
Algorithmus für maschinelles Lernen (Unterstützung von Vektor-Maschinenanwendungen)
Algorithmus für maschinelles Lernen (multiple Regressionsanalyse)
Algorithmus für maschinelles Lernen (Einzelregressionsanalyse)
Algorithmus für maschinelles Lernen (Gradientenabstiegsmethode)
Echtzeit-Persönliche Schätzung (Lernen)
Algorithmusgymnastik 12
Algorithmus für maschinelles Lernen (Verallgemeinerung der linearen Regression)
Algorithmusgymnastik 10
Algorithmusübung 6
Algorithmusgymnastik 9
Algorithmusgymnastik 14
Algorithmusgymnastik 2
Lernaufzeichnung
Algorithmusgymnastik 7
Algorithmus Gymnastik 15
Python-Algorithmus
Wörterbuchtyp 2
Algorithmus Gymnastik 16
Wörterbuchtyp 1
Lernrekord Nr. 3
Lernrekord Nr. 1
Maschinelles Lernen
Algorithmus für maschinelles Lernen (Implementierung einer Klassifizierung mit mehreren Klassen)
Algorithmusgymnastik 8
Python lernen
Zusammenfassung der Klassifizierung und Implementierung von Algorithmen für maschinelles Lernen
Algorithmusübungen 13
Algorithmus Gymnastik 17
Lernrekord Nr. 2
Algorithmus Gymnastik 18
Python-Wörterbuch
6/10 Lerninhalte
Algorithmusgymnastik 11
Tiefes Lernen
Algorithmusübung 5
Algorithmusgymnastik 4
Algorithmus für maschinelles Lernen (Zusammenfassung und Regularisierung der linearen Regression)
Numpy-Sigmoid-Lernen
[Python] Wörterbuch
Python-Wörterbuch
Probieren Sie den erweiterten Standard-Lernalgorithmus PPO von OpenAI aus
Gaußscher EM-Algorithmus mit gemischtem Modell [statistisches maschinelles Lernen]