Réponses:
mex
- pas sûr.
- La plupart du code est du code Matlab simple
- Chaque dossier du package se compose d'un algorithme de récupération CS basé sur un modèle de signal particulier et d'un script qui teste cet algorithme de récupération. Les noms des scripts se terminent généralement par «_example.m»
L'optimisation sur les variétés est un paradigme puissant pour résoudre les problèmes d'optimisation non linéaire.
Cette boîte à outils implémente plusieurs algorithmes pour calculer l'expansion clairsemée dans les dictionnaires redondants et pour résoudre les problèmes inverses avec la régularisation clairsemée (et aussi la régularisation TV).
Mais tout cela, et plus encore, est inclus dans cette liste de boîtes à outils .
J'ai trouvé que la partie difficile est de trouver un pseudo-code - c'est là qu'ils décrivent l'algorithme. Voici quelques exemples d'algorithmes qui incluaient le pseudo-code:
IST
.Je suppose que je réponds ici hors sujet, mais pour les approches d'optimisation L1, je trouve YALL1 ( http://yall1.blogs.rice.edu/ ) et SPGL1 ( http://www.cs.ubc.ca/ ~ mpf / spgl1 / ) packages très utiles et efficaces. TFOCS ( http://cvxr.com/tfocs/ ) est probablement un peu plus difficile à utiliser, mais devrait être assez flexible. Il y a aussi CVX ( http://cvxr.com/cvx/ ) qui permet de taper très facilement les problèmes d'optimisation convexe directement dans le code, mais il est considérablement plus lent pour résoudre les types de problèmes spécifiques à la détection compressée car il s'agit d'un solveur très général.
Il existe également des algorithmes de reconstruction disponibles dans Sparselab ( http://sparselab.stanford.edu/ ).
Une liste plus longue de codes de reconstruction clairsemés est répertoriée ici: https://sites.google.com/site/igorcarron2/cs#reconstruction
Gardez à l'esprit que L1 n'est pas la seule approche de la détection compressive. Dans notre recherche , nous avons eu un meilleur succès avec le passage de message approximatif (AMP). Je définis le «succès» comme une erreur plus faible, de meilleures transitions de phase (capacité à récupérer avec moins d'observations) et une complexité moindre (mémoire et processeur).
L'algorithme de passage de message approximatif établit un cadre bayésien pour estimer les vecteurs inconnus dans un système linéaire à grande échelle où les entrées et les sorties du système linéaire sont déterminées par des modèles probabilistes (par exemple, "ce vecteur a été mesuré avec du bruit", "ce vecteur a quelques zéros "). L' approche AMP originale forgée par Donoho a été affinée par Rangan en généralisée passage de message approximatif avec le code Matlab disponible . Les entrées et sorties peuvent être des fonctions de densité de probabilité presque arbitraires. Dans nos recherches, nous avons constaté que GAMP est généralement plus rapide, plus précis et plus robuste (lire: meilleures courbes de transition de phase) que les approches convexes L1 et les approches gourmandes (par exemple la poursuite de correspondance orthogonale).
Mon conseiller et moi venons d'écrire un article sur l'utilisation de GAMP pour Analysis CS, où l'on s'attend à une abondance de zéros, non pas dans le vecteur inconnu x, mais plutôt dans une fonction linéaire de cette inconnue, Wx.
Vous pouvez également vérifier la Matlab UNLocBox: http://unlocbox.sourceforge.net Il y a 4 scripts de détection de compression sur la page de démonstration: http://unlocbox.sourceforge.net/doc/demos/index.php
J'ai écrit un certain nombre de didacticiels de codage expliquant les bases de CS, MP, OMP, etc. pour les débutants. Vous pouvez les consulter sur https://sparse-plex.readthedocs.io/en/latest/demos/index.html
Cela fait partie de ma bibliothèque sparse-plex disponible sur GitHub https://github.com/indigits/sparse-plex