Detección de compresión a través de códigos MATLAB

13

Soy nuevo en el tema de la detección comprimida. Leí algunos documentos al respecto de R. Baranuik, Y.Eldar, Terence Tao, etc. Todos estos documentos básicamente proporcionan los detalles matemáticos detrás de esto, es decir, Sparsity, RIP, minimización de la norma L1, etc. Sin embargo, ¿alguien puede proporcionar los códigos MATLAB? que logran la detección de compresión?

Gracias de antemano por cualquier ayuda.

USC
fuente
1
Las solicitudes de código están fuera de tema aquí.
pichenettes

Respuestas:

18
  • La mayor parte del código es código simple de Matlab
  • Cada carpeta en el paquete consiste en un algoritmo de recuperación CS basado en un modelo de señal particular y un script que prueba ese algoritmo de recuperación. Los nombres de los scripts suelen terminar con '_ejemplo.m'
  • Manopt . Posiblemente lo que usa para hacer que los algoritmos se incluyan en otras cajas de herramientas.

La optimización en múltiples es un paradigma poderoso para abordar problemas de optimización no lineal.

Esta caja de herramientas implementa varios algoritmos para calcular la expansión dispersa en diccionarios redundantes y para resolver problemas inversos con la regularización dispersa (y también la regularización de TV).

Pero todo eso, y más, está incluido en esta lista de cajas de herramientas .

Descubrí que la parte difícil es encontrar psuedocode, que es donde realmente describen el algoritmo. Aquí hay algunos ejemplos de algoritmos que incluyen el psuedocode:

Scott
fuente
7

Supongo que estoy respondiendo fuera de tema aquí, pero para los enfoques de optimización L1, encuentro YALL1 ( http://yall1.blogs.rice.edu/ ) y SPGL1 ( http://www.cs.ubc.ca/ ~ mpf / spgl1 / ) paquetes muy útiles y eficientes. TFOCS ( http://cvxr.com/tfocs/ ) es probablemente un poco más difícil de usar, pero debería ser bastante flexible. También hay CVX ( http://cvxr.com/cvx/ ) que hace que sea muy fácil escribir problemas de optimización convexa directamente en el código, pero es considerablemente más lento para resolver el tipo de problemas específicos de detección comprimida ya que es un Solucionador muy general.

También hay algunos algoritmos de reconstrucción disponibles en Sparselab ( http://sparselab.stanford.edu/ ).

Aquí se incluye una lista más amplia de códigos de reconstrucción dispersos: https://sites.google.com/site/igorcarron2/cs#reconstruction

Thomas Arildsen
fuente
6

Tenga en cuenta que L1 no es el único enfoque para la detección de compresión. En nuestra investigación , hemos tenido un mayor éxito con Aproximate Message Passing (AMP). Estoy definiendo "éxito" como un error menor, mejores transiciones de fase (capacidad de recuperación con menos observaciones) y menor complejidad (memoria y CPU).

El algoritmo Aproximado de paso de mensajes establece un marco bayesiano para estimar los vectores desconocidos en un sistema lineal a gran escala donde las entradas y salidas del sistema lineal están determinadas por modelos probablísticos (por ejemplo, "este vector se midió con ruido", "este vector tiene algo de ceros "). El enfoque AMP original forjado por Donoho ha sido refinado por Rangan para pasar el mensaje aproximado generalizado con el código Matlab disponible. Las entradas y salidas pueden ser funciones de densidad de probabilidad casi arbitrarias. En nuestra investigación, hemos encontrado que GAMP es típicamente más rápido, más preciso y más robusto (léase: mejores curvas de transición de fase) que los enfoques convexos L1 y los enfoques codiciosos (por ejemplo, búsqueda de correspondencia ortogonal).

Mi asesor y yo acabamos de escribir un documento sobre el uso de GAMP para Analysis CS, donde uno espera una abundancia de ceros, no en el vector desconocido x, sino en una función lineal de ese desconocido, Wx.

Mark Borgerding
fuente