¿Qué algoritmos existen para la reconstrucción de un conjunto de vectores de un diccionario de cardinalidad más pequeña?

Este es un problema de aprendizaje del diccionario (base). En la formulación de su problema, no tiene ningún requisito sobre la representación, es decir, c_i.
considera esta notación:
x_i: n por 1 vector
D: n por K.
c_i: K por 1.

Ahora, si D es una matriz cuadrada (n = K), puede encontrar bases ortogonales utilizando el Análisis de componentes principales o puede encontrar bases no ortogonales utilizando uno de los algoritmos de análisis de Componentes independientes.
Si usa PCA, puede mantener esas bases correspondientes al mayor valor propio y formar una D que tenga un tamaño n por K donde K <n.
Si D no es una matriz cuadrada, puede utilizar algunos algoritmos bien conocidos para el aprendizaje de diccionarios. imponen restricciones de escasez en la representación (c_i) e intentan encontrar el mejor diccionario. Algunos de los algoritmos DL más conocidos son los siguientes:
K-SVD [1]
Método de dirección óptima [2]
Lagrange Dual Diccionario de aprendizaje. [3]

[1] Aharon, Michal, Michael Elad y Alfred Bruckstein. K-SVD: un algoritmo para diseñar diccionarios demasiado completos para una representación dispersa “. Procesamiento de señales, transacciones IEEE en 54, no. 11 (2006): 4311-4322.
[2] Engan, Kjersti, Sven Ole Aase y J. Hakon Husoy. “Método de direcciones óptimas para el diseño del marco”. In Acoustics, Speech, and Signal Processing, 1999. Actas., 1999 Conferencia Internacional IEEE , vol. 5, págs. 2443-2446. IEEE, 1999.
[3] Lee, Honglak, Alexis Battle, Rajat Raina y Andrew Y. Ng. “Algoritmos de codificación dispersos eficientes”. En Avances en sistemas de procesamiento de información neuronal , págs. 801-808. 2006

Probablemente necesite un algoritmo iterativo de dos pasos para actualizar el diccionario (D) y la representación de datos (c_i). Hay un montón de algoritmos de agrupación que puede implementar como k-means (ya que necesita que el tamaño del diccionario sea lo más pequeño posible).
Pero surge un problema interesante cuando su diccionario está demasiado completo. Consulte la detección de compresión y el escaso aprendizaje. La penalización de regularización l1 muestra su excelente desempeño en diferentes áreas como el aprendizaje profundo.

More Interesting

¿Cuáles son las estructuras de datos más utilizadas y más necesarias en el mundo de hoy?

¿Cómo se puede usar la máquina épsilon para realizar cálculos precisos de coma flotante?

¿Cuál es el mejor algoritmo para encontrar la ruta más corta en un gráfico orientado, donde algunos bordes están bloqueados y las teclas están en algún lugar de los nodos?

Cómo resolver la ordenación rápida utilizando un método no recursivo

¿Debería usar la función de clasificación () incorporada de C ++ para problemas en la programación competitiva, o debería implementar el algoritmo por mi cuenta?

¿Las estructuras de datos y los algoritmos son tan importantes para convertirse en un buen programador?

¿Hay algún uso de algoritmos que se usan en la programación en robótica?

¿Por qué el aprendizaje profundo requiere la construcción de modelos de datos generativos?

¿Cuál es el significado de 'orden de crecimiento' en el análisis de algoritmos y cómo podemos encontrar el orden de crecimiento de un algoritmo dado?

¿Cómo realizan las computadoras la multiplicación y la complejidad del tiempo?

¿Cuáles son los algoritmos básicos de aprendizaje automático que todo principiante debe saber antes de comenzar el aprendizaje automático?

Cómo insertar datos de matriz en una base de datos

Cómo minimizar el diámetro de un árbol si puede cambiar como máximo un borde del árbol

¿Cuáles son algunos de los algoritmos de aprendizaje automático sin supervisión utilizados para la detección de spam?

¿Cuál es la mejor manera de ordenar un terabyte de matriz de datos, cuando tiene RAM limitada (500k), y cada elemento de la matriz tiene un par de elementos de datos, de aproximadamente 1-10k cada uno?