stringtranslate.com

k-SVD

En matemáticas aplicadas , k -SVD es un algoritmo de aprendizaje de diccionario para crear un diccionario para representaciones dispersas , mediante un enfoque de descomposición de valores singulares . k -SVD es una generalización del método de agrupamiento k -means y funciona alternando iterativamente entre codificación dispersa de los datos de entrada según el diccionario actual y actualizando los átomos en el diccionario para que se ajusten mejor a los datos. Está estructuralmente relacionado con el algoritmo de expectativa-maximización (EM) . [1] [2] k -SVD se puede encontrar ampliamente en uso en aplicaciones como procesamiento de imágenes, procesamiento de audio, biología y análisis de documentos.

k-Algoritmo SVD

k -SVD es una especie de generalización de k -medias, como sigue. La agrupación de k -medias también puede considerarse como un método de representación dispersa . Es decir, encontrar el mejor libro de códigos posible para representar las muestras de datos por vecino más cercano , resolviendo

que es casi equivalente a

que es k-means que permite "pesos".

La letra F denota la norma Frobenius . El término de representación dispersa obliga al algoritmo k -means a utilizar solo un átomo (columna) en el diccionario . Para relajar esta restricción, el objetivo del algoritmo k -SVD es representar la señal como una combinación lineal de átomos en .

El algoritmo k -SVD sigue el flujo de construcción del algoritmo k -means. Sin embargo, a diferencia de k -means, para lograr una combinación lineal de átomos en , el término de escasez de la restricción se relaja de modo que el número de entradas distintas de cero de cada columna puede ser mayor que 1, pero menor que un número .

Entonces, la función objetivo se convierte en

o en otra forma objetiva

En el algoritmo k -SVD, primero se fija y se encuentra la mejor matriz de coeficientes . Como encontrar lo verdaderamente óptimo es difícil, utilizamos un método de búsqueda de aproximación. Cualquier algoritmo como OMP, la búsqueda de coincidencia ortogonal , se puede utilizar para el cálculo de los coeficientes, siempre que pueda proporcionar una solución con un número fijo y predeterminado de entradas distintas de cero .

Después de la escasa tarea de codificación, lo siguiente es buscar un diccionario mejor . Sin embargo, es imposible encontrar todo el diccionario a la vez, por lo que el proceso consiste en actualizar solo una columna del diccionario cada vez, mientras se corrige . La actualización de la -ésima columna se realiza reescribiendo el término de penalización como

donde denota la k -ésima fila de X .

Al descomponer la multiplicación en la suma de matrices de rango 1, podemos asumir que los otros términos se suponen fijos y que el -ésimo permanece desconocido. Después de este paso, podemos resolver el problema de minimización aproximando el término con una matriz usando descomposición en valores singulares y luego actualizando con ella. Sin embargo, no se garantiza que la nueva solución para el vector sea escasa.

Para curar este problema, defina como

lo que apunta a ejemplos que usan átomo (también las entradas de eso son distintas de cero). Luego, defina como una matriz de tamaño , con unos en las entradas y ceros en el resto. Al multiplicar , esto reduce el vector de fila al descartar las entradas cero. De manera similar, la multiplicación es el subconjunto de los ejemplos actuales que utilizan el átomo. El mismo efecto se puede observar en .

Entonces el problema de minimización como se mencionó anteriormente se convierte en

y se puede hacer directamente usando SVD. SVD se descompone en . La solución es la primera columna de U, el vector de coeficientes como la primera columna de . Después de actualizar todo el diccionario, el proceso pasa a resolver iterativamente X y luego a resolver iterativamente D.

Limitaciones

Elegir un "diccionario" apropiado para un conjunto de datos es un problema no convexo y k -SVD opera mediante una actualización iterativa que no garantiza encontrar el óptimo global. [2] Sin embargo, esto es común a otros algoritmos para este propósito, y k -SVD funciona bastante bien en la práctica. [2] [ se necesita una mejor fuente ]

Ver también

Referencias

  1. ^ Mical Aharon ; Michael Elad; Alfred Bruckstein (2006), "K-SVD: un algoritmo para diseñar diccionarios sobrecompletos para representación dispersa" (PDF) , IEEE Transactions on Signal Processing , 54 (11): 4311–4322, Bibcode :2006ITSP...54.4311A, doi :10.1109/TSP.2006.881199, S2CID  7477309
  2. ^ abc Rubinstein, R., Bruckstein, AM y Elad, M. (2010), "Diccionarios para modelado de representación dispersa", Actas del IEEE , 98 (6): 1045–1057, CiteSeerX 10.1.1.160.527 , doi :10.1109/JPROC.2010.2040551, S2CID  2176046 {{citation}}: CS1 maint: multiple names: authors list (link)