Sensing Kompresi Melalui Kode MATLAB

13

Saya baru dengan topik penginderaan terkompresi. Saya membaca beberapa makalah tentang hal itu oleh R.Baranuik, Y.Eldar, Terence Tao dll. Semua makalah ini pada dasarnya memberikan rincian matematika di belakangnya, yaitu, Sparsity, RIP, L1 minimisasi norma dll. Namun, siapa pun dapat memberikan kode MATLAB yang mencapai penginderaan tekan?

Terima kasih sebelumnya atas bantuannya.

USC
sumber
1
Permintaan kode di luar topik di sini.
pichenettes

Jawaban:

18
  • Sebagian besar kode adalah kode Matlab biasa
  • Setiap folder dalam paket terdiri dari algoritme pemulihan CS yang didasarkan pada model sinyal tertentu, dan skrip yang menguji algoritme pemulihan tersebut. Nama skrip biasanya diakhiri dengan '_example.m'
  • Manopt . Mungkin apa yang Anda gunakan untuk benar-benar membuat algoritma termasuk dalam kotak alat lain.

Optimasi pada manifold adalah paradigma yang kuat untuk mengatasi masalah optimisasi nonlinier.

Kotak alat ini mengimplementasikan beberapa algoritma untuk menghitung ekspansi yang jarang dalam kamus yang berlebihan dan untuk memecahkan masalah terbalik dengan regularisasi yang jarang (dan juga regularisasi TV).

Tetapi semua itu, dan banyak lagi, termasuk dalam daftar kotak alat ini .

Saya menemukan bagian yang sulit adalah menemukan psuedocode - di situlah mereka benar-benar menggambarkan algoritma. Berikut adalah beberapa contoh algoritma yang menyertakan psuedocode:

Scott
sumber
7

Saya kira saya menjawab di luar topik di sini, tetapi untuk pendekatan optimasi-L1, saya menemukan YALL1 ( http://yall1.blogs.rice.edu/ ) dan SPGL1 ( http://www.cs.ubc.ca/ ~ mpf / spgl1 / ) paket yang sangat berguna dan efisien. TFOCS ( http://cvxr.com/tfocs/ ) mungkin agak sulit digunakan, tetapi harus cukup fleksibel. Ada juga CVX ( http://cvxr.com/cvx/ ) yang membuatnya sangat mudah untuk mengetik masalah optimisasi cembung langsung ke dalam kode, tetapi itu jauh lebih lambat untuk menyelesaikan jenis masalah penginderaan-terkompresi khusus karena merupakan pemecah yang sangat umum.

Ada juga beberapa algoritma rekonstruksi yang tersedia di Sparselab ( http://sparselab.stanford.edu/ ).

Daftar yang lebih besar dari kode rekonstruksi jarang tercantum di sini: https://sites.google.com/site/igorcarron2/cs#reconstruction

Thomas Arildsen
sumber
6

Perlu diingat, L1 bukan satu-satunya pendekatan untuk penginderaan tekan. Dalam penelitian kami , kami memiliki kesuksesan yang lebih baik dengan Approximate Message Passing (AMP). Saya mendefinisikan "sukses" sebagai kesalahan yang lebih rendah, transisi fase yang lebih baik (kemampuan untuk pulih dengan pengamatan yang lebih sedikit), dan kompleksitas yang lebih rendah (memori dan CPU).

Algoritma Approximate Message Passing menetapkan kerangka Bayesian untuk memperkirakan vektor yang tidak diketahui dalam sistem linear skala besar di mana input dan output dari sistem linier ditentukan oleh model probablistik (misalnya "vektor ini diukur dengan noise", "vektor ini memiliki beberapa nol "). Pendekatan AMP asli yang dibuat oleh Donoho telah disempurnakan oleh Rangan menjadi Generalized Approximate Message Passing dengan kode Matlab yang tersedia. Input dan output bisa menjadi fungsi kepadatan probabilitas yang hampir sewenang-wenang. Dalam penelitian kami, kami telah menemukan bahwa GAMP biasanya lebih cepat, lebih akurat, dan lebih kuat (baca: kurva transisi fase yang lebih baik) daripada pendekatan cembung L1 dan pendekatan rakus (misalnya Pengejaran Pencocokan Orthogonal).

Penasihat saya dan saya baru saja menulis makalah tentang penggunaan GAMP untuk Analisis CS, di mana orang mengharapkan banyak nol, bukan dalam vektor x yang tidak diketahui, tetapi lebih pada fungsi linier dari yang tidak diketahui, Wx.

Mark Borgerding
sumber