Wykrywanie kompresji za pomocą kodów MATLAB

13

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.

USC
źródło
1
Prośby o kod są tutaj nie na temat.
pikenety

Odpowiedzi:

18
  • Większość kodu to zwykły kod Matlab
  • Każdy folder w pakiecie składa się z algorytmu odzyskiwania CS opartego na konkretnym modelu sygnału oraz skryptu, który testuje ten algorytm odzyskiwania. Nazwy skryptów zwykle kończą się na „_example.m”
  • Manopt . Możliwe, że używasz algorytmów zawartych w innych zestawach narzędzi.

Optymalizacja na rozmaitościach to potężny paradygmat, który rozwiązuje nieliniowe problemy optymalizacji.

Ten zestaw narzędzi implementuje kilka algorytmów do obliczania rzadkiej ekspansji w redundantnych słownikach i rozwiązywania odwrotnych problemów z rzadką regularyzacją (a także regulacją telewizyjną).

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:

Scott
źródło
8

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

Thomas Arildsen
źródło
6

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.

Mark Borgerding
źródło