La cuantización vectorial ( CV ) es una técnica clásica de cuantización del procesamiento de señales que permite modelar funciones de densidad de probabilidad mediante la distribución de vectores prototipo. Desarrollada a principios de la década de 1980 por Robert M. Gray , se utilizó originalmente para la compresión de datos . Funciona dividiendo un conjunto grande de puntos ( vectores ) en grupos con aproximadamente el mismo número de puntos más cercanos. Cada grupo está representado por su centroide , como en k-means y otros algoritmos de agrupamiento . En términos más sencillos, la cuantización vectorial elige un conjunto de puntos para representar un conjunto mayor de puntos.
La propiedad de coincidencia de densidad de la cuantización vectorial es muy útil, especialmente para identificar la densidad de datos grandes y de alta dimensionalidad. Dado que los puntos de datos se representan mediante el índice de su centroide más cercano, los datos frecuentes presentan un error bajo, mientras que los datos poco frecuentes presentan un error alto. Por ello, la cuantización vectorial es adecuada para la compresión de datos con pérdida . También puede utilizarse para la corrección de datos con pérdida y la estimación de densidad .
La cuantización vectorial se basa en el paradigma de aprendizaje competitivo , por lo que está estrechamente relacionada con el modelo de mapa autoorganizado y con los modelos de codificación dispersa utilizados en algoritmos de aprendizaje profundo como el autoencoder .
Capacitación
Un algoritmo de entrenamiento simple para la cuantización vectorial es: [ 1 ]
- Seleccione un punto de muestra al azar.
- Mueva el centroide del vector de cuantización más cercano hacia este punto de muestreo, por una pequeña fracción de la distancia.
- Repetir
Un algoritmo más sofisticado reduce el sesgo en la estimación de la coincidencia de densidad y garantiza que se utilicen todos los puntos, al incluir un parámetro de sensibilidad adicional:
- Aumentar la sensibilidad de cada centroideen una pequeña cantidad
- Seleccione un punto de muestraal azar
- Para cada centroide del vector de cuantización, dejardenota la distancia dey
- Encuentra el centroidepara quées el más pequeño
- Moverhaciapor una pequeña fracción de la distancia
- Colocara cero
- Repetir
Es conveniente utilizar un esquema de enfriamiento para lograr la convergencia: véase Recocido simulado . Otro método sencillo es LBG , que se basa en k-means .
El algoritmo se puede actualizar iterativamente con datos "en tiempo real", en lugar de seleccionar puntos aleatorios de un conjunto de datos, pero esto introducirá cierto sesgo si los datos están correlacionados temporalmente en muchas muestras.
Aplicaciones
La cuantización vectorial se utiliza para la compresión de datos con pérdida, la corrección de datos con pérdida, el reconocimiento de patrones, la estimación de densidad y la agrupación de datos.
La corrección o predicción de datos con pérdida se utiliza para recuperar datos faltantes en algunas dimensiones. Esto se logra encontrando el grupo más cercano con las dimensiones de datos disponibles y luego prediciendo el resultado en función de los valores de las dimensiones faltantes, asumiendo que tendrán el mismo valor que el centroide del grupo.
Para la estimación de la densidad , el área/volumen que está más cerca de un centroide en particular que de cualquier otro es inversamente proporcional a la densidad (debido a la propiedad de coincidencia de densidad del algoritmo).
Uso en compresión de datos
La cuantización vectorial, también llamada "cuantización por bloques" o "cuantización por coincidencia de patrones", se utiliza frecuentemente en la compresión de datos con pérdida . Funciona codificando valores de un espacio vectorial multidimensional en un conjunto finito de valores de un subespacio discreto de menor dimensión. Un vector de menor dimensión requiere menos espacio de almacenamiento, por lo que los datos se comprimen. Debido a la propiedad de coincidencia de densidad de la cuantización vectorial, los datos comprimidos presentan errores inversamente proporcionales a la densidad.
La transformación se suele realizar mediante proyección o utilizando un diccionario de códigos . En algunos casos, también se puede utilizar un diccionario de códigos para codificar el valor discreto mediante entropía en el mismo paso, generando como resultado un valor codificado de longitud variable con prefijo .
El conjunto de niveles de amplitud discretos se cuantifica conjuntamente en lugar de cuantificar cada muestra por separado. Consideremos un vector k -dimensional.de niveles de amplitud. Se comprime eligiendo el vector coincidente más cercano de un conjunto de vectores n -dimensionales., con n < k .
Todas las combinaciones posibles del vector n -dimensionalforman el espacio vectorial al que pertenecen todos los vectores cuantizados.
En lugar de los valores cuantificados, solo se envía el índice de la palabra clave en el diccionario de códigos. Esto ahorra espacio y logra una mayor compresión.
La cuantización vectorial gemela (VQF) forma parte del estándar MPEG-4 y se ocupa de la cuantización vectorial entrelazada ponderada en el dominio del tiempo.
Códecs de vídeo basados en cuantización vectorial
- Vídeo de Bink [ 2 ]
- Cinepak
- Daala se basa en transformaciones, pero utiliza cuantización vectorial piramidal en coeficientes transformados [ 3 ].
- Vídeo digital interactivo : Vídeo de nivel de producción y vídeo en tiempo real.
- Indeo
- Vídeo de Microsoft 1
- QuickTime : Códec de vídeo (RPZA) y gráficos (SMC) de Apple
- Sorenson SVQ1 y SVQ3
- Vídeo de Smacker
- Formato VQA , utilizado en muchos juegos.
El uso de códecs de vídeo basados en la cuantificación vectorial ha disminuido significativamente en favor de aquellos basados en la predicción con compensación de movimiento combinada con la codificación por transformación , por ejemplo, los definidos en los estándares MPEG , ya que la baja complejidad de decodificación de la cuantificación vectorial se ha vuelto menos relevante.
Códecs de audio basados en cuantización vectorial
Uso en el reconocimiento de patrones
VQ también se utilizó en los años ochenta para el reconocimiento de voz [ 5 ] y de locutores [ 6 ] . Recientemente, también se ha utilizado para la búsqueda eficiente del vecino más cercano [ 7 ] y el reconocimiento de firmas en línea [ 8 ] . En las aplicaciones de reconocimiento de patrones , se construye un libro de códigos para cada clase (cada clase es un usuario en aplicaciones biométricas) utilizando vectores acústicos de este usuario. En la fase de prueba, la distorsión de cuantización de una señal de prueba se calcula con el conjunto completo de libros de códigos obtenidos en la fase de entrenamiento. El libro de códigos que proporciona la menor distorsión de cuantización vectorial indica al usuario identificado.
La principal ventaja de VQ en el reconocimiento de patrones es su baja carga computacional en comparación con otras técnicas como la alineación temporal dinámica (DTW) y el modelo oculto de Markov (HMM). El principal inconveniente en comparación con DTW y HMM es que no tiene en cuenta la evolución temporal de las señales (voz, firma, etc.) porque todos los vectores están mezclados. Para superar este problema, se ha propuesto un enfoque de diccionario de códigos de múltiples secciones. [ 9 ] El enfoque de múltiples secciones consiste en modelar la señal con varias secciones (por ejemplo, un diccionario de códigos para la parte inicial, otro para la parte central y un último diccionario de códigos para la parte final).
Utilizar como algoritmo de agrupamiento
Dado que VQ busca centroides como puntos de densidad de muestras cercanas, también puede utilizarse directamente como un método de agrupamiento basado en prototipos: cada centroide se asocia entonces con un prototipo. Al intentar minimizar el error de cuantificación cuadrático esperado [ 10 ] e introducir una ganancia de aprendizaje decreciente que cumpla las condiciones de Robbins-Monro, múltiples iteraciones sobre todo el conjunto de datos con un número concreto pero fijo de prototipos convergen a la solución del algoritmo de agrupamiento k-means de forma incremental.
Redes generativas antagónicas (GAN)
VQ se ha utilizado para cuantificar una capa de representación de características en el discriminador de redes generativas adversarias . La técnica de cuantificación de características (FQ) realiza una coincidencia implícita de características. [ 11 ] Mejora el entrenamiento de GAN y produce un rendimiento mejorado en una variedad de modelos GAN populares: BigGAN para generación de imágenes, StyleGAN para síntesis facial y U-GAT-IT para traducción no supervisada de imagen a imagen.
Véase también
Subtemas
- Algoritmo de Linde-Buzo-Gray (LBG)
- Aprendizaje de la cuantización vectorial
- El algoritmo de Lloyd
- Gas neuronal en crecimiento , un sistema similar a una red neuronal para la cuantización vectorial.
Temas relacionados
Parte de este artículo se basó originalmente en material del Diccionario Gratuito en Línea de Informática y se utiliza con permiso bajo la licencia GFDL.
Referencias
- ↑ Dana H. Ballard (2000). Introducción a la computación natural . MIT Press. pág. 189. ISBN 978-0-262-02420-4.
- ↑ "Vídeo Bink" . Libro de la Sabiduría . 27 de diciembre de 2009. Consultado el 16 de marzo de 2013 .
- ↑ Valin, JM. (octubre de 2012). Cuantización vectorial piramidal para codificación de vídeo . IETF . ID draft-valin-videocodec-pvq-00 . Recuperado el 17 de diciembre de 2013 .Véase también arXiv:1602.05209
- ↑ "Especificación Vorbis I" . Xiph.org. 9 de marzo de 2007. Consultado el 9 de marzo de 2007 .
- ↑ Burton, DK; Shore, JE; Buck, JT (1983). "Una generalización del reconocimiento de palabras aisladas mediante cuantización vectorial". ICASSP '83. Conferencia Internacional IEEE sobre Acústica, Habla y Procesamiento de Señales . Vol. 8. pp. 1021– 1024. doi : 10.1109/ICASSP.1983.1171915 .
- ↑ Soong, F.; A. Rosenberg; L. Rabiner; B. Juang (1985). "Un enfoque de cuantificación vectorial para el reconocimiento de locutores". ICASSP '85. Conferencia Internacional IEEE sobre Acústica, Habla y Procesamiento de Señales . Vol. 1. págs. 387–390 . doi : 10.1109/ICASSP.1985.1168412 . S2CID 8970593 .
- ↑ H. Jegou; M. Douze; C. Schmid (2011). "Product Quantization for Nearest Neighbor Search" (PDF) . IEEE Transactions on Pattern Analysis and Machine Intelligence . 33 (1): 117–128 . CiteSeerX 10.1.1.470.8573 . doi : 10.1109/TPAMI.2010.57 . PMID 21088323. S2CID 5850884. Archivado (PDF) del original el 17 de diciembre de 2011 .
- ↑ Faundez-Zanuy, Marcos (2007). "Reconocimiento de firmas fuera de línea y en línea basado en VQ-DTW". Pattern Recognition . 40 (3): 981– 992. doi : 10.1016/j.patcog.2006.06.007 .
- ↑ Faundez-Zanuy, Marcos; Juan Manuel Pascual-Gaspar (2011). "Reconocimiento de firmas en línea eficiente basado en VQ multisección". Pattern Analysis and Applications . 14 (1): 37– 45. doi : 10.1007/s10044-010-0176-8 . S2CID 24868914 .
- ↑ Gray, RM (1984). "Cuantización vectorial". Revista IEEE ASSP . 1 (2): 4– 29. doi : 10.1109/massp.1984.1162229 . hdl : 2060/19890012969 .
- ↑ Yang Zhao; Chunyuan Li; Ping Yu; Jianfeng Gao; Changyou Chen (15 de julio de 2020). "La cuantización de funciones mejora la formación de GAN". arXiv : 2004.02088 [ cs.LG ].
Enlaces externos
- http://www.data-compression.com/vq.html Archivado el 10/12/2017 en Wayback Machine
- QccPack — Biblioteca de cuantización, compresión y codificación (código abierto)
- Compresión de índices VQ y ocultación de información mediante codificación de índices híbrida sin pérdidas , Wen-Jan Chen y Wen-Tsung Huang
- Algoritmos de compresión con pérdida
- Aprendizaje no supervisado