K-SVD - K-SVD

En matemáticas aplicadas , K-SVD es un algoritmo de aprendizaje de diccionario para crear un diccionario para representaciones dispersas , a través de un enfoque de descomposición de valores singulares . K-SVD es una generalización del método de agrupación de k-means y funciona alternando iterativamente entre la codificación dispersa de los datos de entrada basados ​​en el diccionario actual y la actualización de los átomos en el diccionario para que se ajusten mejor a los datos. Está relacionado estructuralmente con el algoritmo de maximización de expectativas (EM). K-SVD se puede encontrar ampliamente en aplicaciones como procesamiento de imágenes, procesamiento de audio, biología y análisis de documentos.

Descripción del problema

El objetivo del aprendizaje del diccionario es aprender una matriz de diccionario demasiado completa que contiene átomos de señal (en esta notación, columnas de ). Un vector de señal puede representarse, en forma escasa , como una combinación lineal de estos átomos; Para representar , el vector de representación debe satisfacer la condición exacta , o la condición aproximada , precisada al requerir que para algún valor pequeño ε y alguna norma L p . El vector contiene los coeficientes de representación de la señal . Normalmente, la norma se selecciona como L 1 , L 2 o L .

Si y D es una matriz de rango completo, hay un número infinito de soluciones disponibles para el problema de representación. Por lo tanto, se deben establecer restricciones en la solución. Además, para garantizar la escasez, se prefiere la solución con el menor número de coeficientes distintos de cero. Por tanto, la representación de la escasez es la solución de

o

donde cuenta las entradas distintas de cero en el vector . (Ver la "norma" cero ).

Algoritmo K-SVD

K-SVD es una especie de generalización de K-medias, como sigue. La agrupación de k-medias también se puede considerar 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 equivalente a

.

La letra F denota la norma Frobenius . El término de representación dispersa obliga al algoritmo K-means a usar 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 las K-medias, 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 es imposible encontrar lo verdaderamente óptimo , utilizamos un método de búsqueda por aproximación. Cualquier algoritmo como OMP, la búsqueda de emparejamiento 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 tarea de codificación escasa, 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 el k fila -ésimo de X .

Al descomponer la multiplicación en la suma de las matrices de rango 1, podemos asumir que los otros términos se suponen fijos y la -ésima permanece desconocida. Después de este paso, podemos resolver el problema de minimización aproximando el término con una matriz usando la descomposición de valores singulares y luego actualizar con ella. Sin embargo, es muy probable que se complete la nueva solución de vector porque no se aplica la restricción de esparcimiento.

Para curar este problema, defina como

que apunta a ejemplos que usan atom (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 caso contrario. Al multiplicar , esto reduce el vector de fila descartando las entradas cero. De manera similar, la multiplicación es el subconjunto de los ejemplos que están usando el átomo. El mismo efecto se puede ver 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 para 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, luego resolver iterativamente D.

Limitaciones

La elección de 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. Sin embargo, esto es común a otros algoritmos para este propósito, y K-SVD funciona bastante bien en la práctica.

Ver también

Referencias

  1. ^ Michal Aharon; Michael Elad; Alfred Bruckstein (2006), "K-SVD: An Algorithm for Designing Overcomplete Dictionaries for Sparse Representation" (PDF) , IEEE Transactions on Signal Processing , 54 (11): 4311–4322, Bibcode : 2006ITSP ... 54.4311A , doi : 10.1109 / TSP.2006.881199 , S2CID  7477309
  2. ^ a b c 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  2176046CS1 maint: multiple names: authors list (link)