Jestem nowy w temacie kompresji sensorycznej. Przeczytałem o tym kilka artykułów R.Baranuika, Y. Eldara, Terence Tao itp. Wszystkie te dokumenty zasadniczo zawierają matematyczne szczegóły, tj. Sparsity, RIP, minimalizację norm L1 itp. Jednak każdy może podać kody MATLAB które osiągają wykrywanie kompresji?
Z góry dziękuję za wszelką pomoc.
Odpowiedzi:
mex
- nie jestem pewien.Ale wszystko to i więcej znajduje się na tej liście zestawów narzędzi .
Odkryłem, że trudność polega na znalezieniu psuedokodu - tam właśnie opisują algorytm. Oto kilka przykładów algorytmów zawierających kod psuedocode:
IST
.źródło
Wydaje mi się, że odpowiadam tutaj nie na temat, ale w przypadku metod optymalizacji L1 znajduję YALL1 ( http://yall1.blogs.rice.edu/ ) i SPGL1 ( http://www.cs.ubc.ca/ ~ mpf / spgl1 / ) bardzo przydatne i wydajne pakiety. TFOCS ( http://cvxr.com/tfocs/ ) jest prawdopodobnie nieco trudniejszy w użyciu, ale powinien być dość elastyczny. Istnieje również CVX ( http://cvxr.com/cvx/ ), który bardzo ułatwia wpisywanie wypukłych problemów optymalizacji bezpośrednio w kodzie, ale jest znacznie wolniejszy w rozwiązywaniu problemów specyficznych dla skompresowanych czujników, ponieważ jest to bardzo ogólny solver.
Istnieje również kilka algorytmów rekonstrukcji dostępnych w Sparselab ( http://sparselab.stanford.edu/ ).
Większa lista rzadkich kodów rekonstrukcji znajduje się tutaj: https://sites.google.com/site/igorcarron2/cs#reconstruction
źródło
Należy pamiętać, że L1 nie jest jedynym podejściem do wykrywania kompresji. W naszych badaniach odnieśliśmy większy sukces dzięki aproksymacji wiadomości (AMP). Definiuję „sukces” jako niższy błąd, lepsze przejścia fazowe (zdolność do regeneracji przy mniejszej liczbie obserwacji) i mniejszą złożoność (zarówno pamięci, jak i procesora).
Algorytm przybliżonego przekazywania wiadomości ustanawia szkielet Bayesa do szacowania nieznanych wektorów w wielkoskalowym układzie liniowym, w którym dane wejściowe i wyjściowe układu liniowego są określane za pomocą modeli probablistycznych (np. „Ten wektor został zmierzony za pomocą szumu”, „ten wektor ma pewne zera ”). Oryginalne podejście AMP opracowane przez Donoho zostało udoskonalone przez Rangana w Uogólnione przybliżanie przekazywania wiadomości z dostępnym kodem Matlab. Wejścia i wyjścia mogą być prawie dowolnymi funkcjami gęstości prawdopodobieństwa. W naszych badaniach odkryliśmy, że GAMP jest zazwyczaj szybszy, dokładniejszy i bardziej niezawodny (czytaj: lepsze krzywe przejścia fazowego) niż podejście wypukłe L1 i podejście zachłanne (np. Pościg z dopasowaniem ortogonalnym).
Mój doradca i ja właśnie napisaliśmy artykuł na temat używania GAMP do Analysis CS, gdzie spodziewamy się dużej liczby zer, nie w nieznanym wektorze x, ale raczej w funkcji liniowej tej nieznanej Wx.
źródło
Możesz także sprawdzić Matlab UNLocBox: http://unlocbox.sourceforge.net Na stronie demonstracyjnej znajdują się 4 skrypty wykrywania kompresji: http://unlocbox.sourceforge.net/doc/demos/index.php
źródło
Napisałem wiele porad na temat kodowania, wyjaśniających podstawy CS, MP, OMP itp. Dla początkujących. Możesz je sprawdzić na https://sparse-plex.readthedocs.io/en/latest/demos/index.html
Jest to część mojej biblioteki sparse-plex dostępnej na GitHub https://github.com/indigits/sparse-plex
źródło