Rilevamento della compressione tramite codici MATLAB


13

Sono nuovo sul tema del rilevamento compresso. Ho letto alcuni articoli a riguardo di R.Baranuik, Y.Eldar, Terence Tao ecc. Tutti questi documenti forniscono sostanzialmente i dettagli matematici dietro di esso, ovvero Sparsity, RIP, minimizzazione della norma L1 ecc. Tuttavia, chiunque può fornire i codici MATLAB che raggiungono il rilevamento della compressione?

Grazie in anticipo per qualsiasi aiuto.


1
Le richieste di codice sono fuori tema qui.
Pichenettes,

Risposte:


18
  • La maggior parte del codice è semplice codice Matlab
  • Ogni cartella nel pacchetto è costituita da un algoritmo di recupero CS basato su un particolare modello di segnale e da uno script che verifica tale algoritmo di recupero. I nomi degli script in genere terminano con '_example.m'
  • Manopt . Forse quello che usi per rendere effettivamente gli algoritmi inclusi in altre caselle degli strumenti.

L'ottimizzazione su varietà è un paradigma potente per affrontare i problemi di ottimizzazione non lineare.

Questa cassetta degli attrezzi implementa diversi algoritmi per calcolare l'espansione sparsa nei dizionari ridondanti e per risolvere i problemi inversi con la regolarizzazione sparsa (e anche la regolarizzazione TV).

Ma tutto ciò, e altro ancora, è incluso in questo elenco di cassette degli attrezzi .

Ho scoperto che la parte difficile è trovare psuedocode - è lì che descrivono effettivamente l'algoritmo. Ecco alcuni esempi di algoritmi che includevano il codice psued:


7

Suppongo che sto rispondendo off-topic qui allora, ma per gli approcci di ottimizzazione L1, trovo YALL1 ( http://yall1.blogs.rice.edu/ ) e SPGL1 ( http://www.cs.ubc.ca/ ~ mpf / spgl1 / ) pacchetti molto utili ed efficienti. TFOCS ( http://cvxr.com/tfocs/ ) è probabilmente un po 'più difficile da usare, ma dovrebbe essere abbastanza flessibile. Esiste anche CVX ( http://cvxr.com/cvx/ ) che semplifica la digitazione dei problemi di ottimizzazione convessa direttamente nel codice, ma è notevolmente più lento per risolvere i problemi specifici del rilevamento compresso poiché è un risolutore molto generale.

Ci sono anche alcuni algoritmi di ricostruzione disponibili in Sparselab ( http://sparselab.stanford.edu/ ).

Un elenco più ampio di codici di ricostruzione sparsi è elencato qui: https://sites.google.com/site/igorcarron2/cs#reconstruction


6

Tieni presente che L1 non è l'unico approccio al rilevamento compressivo. Nella nostra ricerca , abbiamo avuto un successo migliore con Approximate Message Passing (AMP). Sto definendo "successo" come errore inferiore, migliori transizioni di fase (capacità di recupero con meno osservazioni) e minore complessità (sia memoria che CPU).

L'algoritmo di Message Passing approssimativo stabilisce un framework bayesiano per stimare i vettori sconosciuti in un sistema lineare su larga scala in cui gli input e gli output del sistema lineare sono determinati da modelli probablistici (ad esempio "questo vettore è stato misurato con il rumore", "questo vettore ha alcuni zeri "). L' approccio AMP originale forgiato da Donoho è stato perfezionato da Rangan nel passaggio di messaggi approssimativi generalizzati con codice Matlab disponibile. Gli ingressi e le uscite possono essere funzioni di densità di probabilità quasi arbitrarie. Nella nostra ricerca, abbiamo scoperto che GAMP è in genere più veloce, più accurato e più robusto (leggi: curve di transizione di fase migliori) rispetto agli approcci convessi L1 e agli approcci avidi (ad esempio Inseguimento di corrispondenza ortogonale).

Il mio consulente e io abbiamo appena scritto un articolo sull'uso di GAMP per Analysis CS, in cui ci si aspetta un'abbondanza di zeri, non nel vettore sconosciuto x, ma piuttosto in una funzione lineare di quell'ignoto, Wx.



Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.