[PYTHON] Algorithme d'apprentissage du dictionnaire

Modélisation fragmentée L'algorithme d'apprentissage du dictionnaire du chapitre 12 a été implémenté dans jupyter notebook. Lien vers le notebook jupyter

résultat

Environ 25 000 patchs 8x8 ont été extraits de Barbara et l'apprentissage du dictionnaire a été effectué.

barbara_patches.png

Dictionnaire DCT séparable bidimensionnel comme valeur initiale dct_dictionary.png Dictionnaire appris des correctifs par la méthode K-SVD ksvd_dictionary_barbara.png

L'apprentissage du dictionnaire a réduit l'erreur d'expression éparse.

Barbara_K-SVD.png

Algorithme K-SVD

Représenter de façon parcimonieuse $ y_i $ avec $ x_i $ où seuls les éléments $ k_0 $ sont non nuls.

tâche:

\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

Initialisation:

Comme $ k = 0 $

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

Est. À l'exception du premier atome, la moyenne est soustraite et le produit de Kronecker

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

Un dictionnaire initial a été généré à l'aide de.

Boucle principale:

Définissez $ k \ leftarrow k + 1 $ et effectuez les étapes suivantes.

\hat{x_{i}} = \arg \min_{x} ||y_{i} - Ax||_{2}^{2} \text{ subject to } ||x||_{0} \leq k_{0}

Ensuite, nous obtenons le vecteur de représentation éparse $ \ hat {x} _ {i} $ pour $ 1 \ leq i \ leq M $. Utilisez-les pour construire la matrice $ X $.

  1. Définissez un ensemble de cas utilisant atom $ a_ {j_ {0}} . $ \ Omega_ {j_ {0}} = \ {i | 1 \ leq i \ leq M, X [j_ {0}, i] \ neq 0 \} $$

  2. Calculez la matrice résiduelle. $ E_ {j_ {0}} = Y- \ Sigma_ {j \ neq j_ {0}} a_ {j} x_ {j} ^ {T} $

  3. Extrayez uniquement la colonne correspondant à $ \ Omega_ {j_ {0}} $ de $ E_ {j_ {0}} $ et définissez-la comme $ E_ {j_ {0}} ^ {R} $.

  4. Appliquez $ SVD $ et définissez $ E_ {j_ {0}} ^ {R} = U \ Delta V $. Et l'atome $ a_ {j_ {0}} = u_ {1} $ du dictionnaire, le vecteur d'expression est $ x_ {j_ {0}} ^ {R} = \ Delta [1, 1] v_ {1} ^ {T } Mettre à jour en tant que $.

*Condition d'arrêt: Si||Y - AX||^{2}_{F}Si le changement est assez petit, il se termine, sinon il se répète.

production:

Obtenez le résultat $ A $.

référence

Recommended Posts

Algorithme d'apprentissage du dictionnaire
Introduction à l'algorithme de recherche de dictionnaire
Autres applications de l'apprentissage du dictionnaire
Algorithme d'apprentissage automatique (perceptron simple)
Algorithme d'apprentissage automatique (machine vectorielle de support)
Algorithme d'apprentissage automatique (régression logistique)
<Course> Machine learning Chapitre 6: Algorithme 2 (k-means)
Algorithme d'apprentissage automatique (prise en charge de l'application de machine vectorielle)
Algorithme d'apprentissage automatique (analyse de régression multiple)
Algorithme d'apprentissage automatique (analyse de régression unique)
Algorithme d'apprentissage automatique (méthode de descente de gradient)
estimation personnelle en temps réel (apprentissage)
Gymnastique algorithmique 12
Algorithme d'apprentissage automatique (généralisation de la régression linéaire)
Gymnastique algorithmique 10
Exercice d'algorithme 6
Gymnastique algorithmique 9
Gymnastique algorithmique 14
Gymnastique algorithmique 2
Dossier d'apprentissage
Gymnastique algorithmique 7
Gymnastique algorithmique 15
Algorithme Python
Dictionnaire type 2
Gymnastique algorithmique 16
Type de dictionnaire 1
Dossier d'apprentissage n ° 3
Dossier d'apprentissage n ° 1
Apprentissage automatique
Algorithme d'apprentissage automatique (implémentation de la classification multi-classes)
Gymnastique algorithmique 8
apprentissage de python
Résumé de la classification et de la mise en œuvre des algorithmes d'apprentissage automatique
Exercices d'algorithme 13
Gymnastique algorithmique 17
Dossier d'apprentissage n ° 2
Gymnastique algorithmique 18
Dictionnaire Python
6/10 Contenu d'apprentissage
Gymnastique algorithmique 11
L'apprentissage en profondeur
Exercice d'algorithme 5
Gymnastique algorithmique 4
Algorithme d'apprentissage automatique (résumé de régression linéaire et régularisation)
apprentissage numpy-sigmoïde
Dictionnaire [Python]
Dictionnaire Python
Essayez l'algorithme d'apprentissage amélioré standard d'OpenAI PPO
Algorithme EM modèle mixte gaussien [apprentissage automatique statistique]