Articulo de referencia

Mezcla de contexto

La mezcla de contexto es un tipo de algoritmo de compresión de datos en el que se combinan las predicciones del siguiente símbolo de dos o más modelos estadísticos para obtener ...

La mezcla de contexto es un tipo de algoritmo de compresión de datos en el que se combinan las predicciones del siguiente símbolo de dos o más modelos estadísticos para obtener una predicción que suele ser más precisa que cualquiera de las predicciones individuales. Por ejemplo, un método sencillo (no necesariamente el mejor) consiste en promediar las probabilidades asignadas por cada modelo . El bosque aleatorio es otro método: genera la predicción que corresponde a la moda de las predicciones generadas por los modelos individuales. La combinación de modelos es un área de investigación activa en el aprendizaje automático .

La serie de programas de compresión de datos PAQ utiliza la mezcla de contexto para asignar probabilidades a los bits individuales de la entrada.

Aplicación a la compresión de datos

Supongamos que se nos dan dos probabilidades condicionales,PAG(incógnita|A){\displaystyle P(X|A)}yPAG(incógnita|B){\displaystyle P(X|B)}y deseamos estimarPAG(incógnita|A,B){\displaystyle P(X|A,B)}, la probabilidad del evento X dadas ambas condicionesA{\displaystyle A}yB{\displaystyle B}No hay suficiente información para que la teoría de la probabilidad pueda dar un resultado. De hecho, es posible construir escenarios en los que el resultado podría ser cualquiera. Pero intuitivamente, esperaríamos que el resultado fuera algún tipo de promedio de los dos.

El problema es importante para la compresión de datos. En esta aplicación,A{\displaystyle A}yB{\displaystyle B}son contextos,incógnita{\displaystyle X}es el evento de que el siguiente bit o símbolo de los datos a comprimir tenga un valor particular, yPAG(incógnita|A){\displaystyle P(X|A)}yPAG(incógnita|B){\displaystyle P(X|B)}son las estimaciones de probabilidad de dos modelos independientes. La relación de compresión depende de qué tan cerca se aproxime la probabilidad estimada a la probabilidad verdadera pero desconocida del evento.incógnita{\displaystyle X}. Suele ocurrir que los contextosA{\displaystyle A}yB{\displaystyle B}han ocurrido con la suficiente frecuencia como para estimar con precisiónPAG(incógnita|A){\displaystyle P(X|A)}yPAG(incógnita|B){\displaystyle P(X|B)}contando ocurrencias deincógnita{\displaystyle X}en cada contexto, pero los dos contextos o bien no han ocurrido juntos con frecuencia, o bien no hay suficientes recursos informáticos (tiempo y memoria) para recopilar estadísticas para el caso combinado.

Por ejemplo, supongamos que estamos comprimiendo un archivo de texto. Queremos predecir si el siguiente carácter será un salto de línea, dado que el carácter anterior fue un punto (contexto).A{\displaystyle A}) y que el último salto de línea ocurrió hace 72 caracteres (contextoB{\displaystyle B}). Supongamos que se produjo un salto de línea previamente después de 1 de los últimos 5 períodos (PAG(incógnita|A=0,2{\displaystyle P(X|A=0.2}) y en 5 de las últimas 10 líneas en la columna 72 (PAG(incógnita|B)=0,5{\displaystyle P(X|B)=0.5}¿Cómo deberían combinarse estas predicciones?

Se han utilizado dos enfoques generales: la mezcla lineal y la mezcla logística. La mezcla lineal utiliza un promedio ponderado de las predicciones ponderadas por la evidencia. En este ejemplo,PAG(incógnita|B){\displaystyle P(X|B)}obtiene más peso quePAG(incógnita|A){\displaystyle P(X|A)}porquePAG(incógnita|B){\displaystyle P(X|B)}se basa en un mayor número de pruebas. Las versiones anteriores de PAQ utilizan este enfoque. [ 1 ] Las versiones más recientes utilizan mezcla logística (o de red neuronal ) transformando primero las predicciones al dominio logístico , log(p/(1-p)) antes de promediarlas. [ 2 ] Esto efectivamente da mayor peso a las predicciones cercanas a 0 o 1, en este casoPAG(incógnita|A){\displaystyle P(X|A)}En ambos casos, se pueden asignar ponderaciones adicionales a cada uno de los modelos de entrada y adaptarlas para favorecer a los modelos que hayan ofrecido las predicciones más precisas en el pasado. Todas las versiones de PAQ, excepto las más antiguas, utilizan ponderación adaptativa.

La mayoría de los compresores de mezcla de contexto predicen un bit de entrada a la vez. La probabilidad de salida es simplemente la probabilidad de que el siguiente bit sea un 1.

Mezcla lineal

Se nos proporciona un conjunto de predicciones.PAGi(1)=norte1i/nortei{\textstyle P_ {i} (1) = n_ {1i}/n_ {i}}, dóndenortei=norte0i+norte1i{\textstyle n_ {i} = n_ {0i} + n_ {1i}}, ynorte0i{\displaystyle n_{0i}}ynorte1i{\displaystyle n_{1i}}son los recuentos de bits 0 y 1 respectivamente para eli{\displaystyle i}Modelo 'th. Las probabilidades se calculan mediante la suma ponderada de los recuentos de 0 y 1:

  • S0=iwinorte0i{\textstyle S_{0}=\sum _{i}w_{i}n_{0i}}
  • S1=iwinorte1i{\textstyle S_{1}=\sum _{i}w_{i}n_{1i}}
  • S=S0+S1{\textstyle S=S_{0}+S_{1}}
  • PAG(0)=S0S{\textstyle P(0)={\frac {S_{0}}{S}}}
  • PAG(1)=S1S{\textstyle P(1)={\frac {S_{1}}{S}}}

Los pesoswi{\displaystyle w_{i}}son inicialmente iguales y siempre suman 1. Bajo las condiciones iniciales, cada modelo se pondera en proporción a la evidencia. Luego, las ponderaciones se ajustan para favorecer a los modelos más precisos. Supongamos que se nos da que el bit real que se predice esy{\displaystyle y}(0 o 1). Entonces el ajuste de peso es: [ 3 ]wimáximo[0,wi+(yPAG(1))Snorte1iS1norteiS0S1]{\displaystyle w_{i}\leftarrow \max[0,w_{i}+(yP(1)){\frac {Sn_{1i}-S_{1}n_{i}}{S_{0}S_{1}}}]}La compresión se puede mejorar mediante la limitación.nortei{\textstyle n_{i}}para que la ponderación del modelo esté mejor equilibrada. En PAQ6, cada vez que se incrementa uno de los contadores de bits, la parte del otro contador que excede 2 se reduce a la mitad. Por ejemplo, después de la secuencia 000000001, los contadores irían desde(norte0,norte1)=(8,0){\textstyle (n_ {0},n_ {1}) = (8,0)}a(5,1){\textstyle (5,1)}.

Mezcla logística

DejarPAGi(1){\displaystyle P_{i}(1)}ser la predicción por el i{\displaystyle i}El modelo indica que el siguiente bit será un 1. Luego, la predicción final.PAG(1){\displaystyle P(1)}se calcula:

  • incógnitai=estirar(PAGi(1)){\displaystyle x_{i}={\text{estiramiento}}(P_{i}(1))}
  • PAG(1)=calabaza(iwiincógnitai){\textstyle P(1)={\text{aplastar}}(\sum _{i}w_{i}x_{i})}

dóndePAG(1){\displaystyle P(1)}es la probabilidad de que el siguiente bit sea un 1,PAGi(1){\displaystyle P_{i}(1)}es la probabilidad estimada por el i{\displaystyle i}el modelo y

  • estirar(incógnita)=ln(incógnita/(1incógnita)){\displaystyle {\text{estiramiento}}(x)=\ln(x/(1-x))}
  • calabaza(incógnita)=estirar1(incógnita)=1/(1+miincógnita){\displaystyle {\text{aplastar}}(x)={\text{estirar}}^{-1}(x)=1/(1+e^{-x})}

Tras cada predicción, el modelo se actualiza ajustando las ponderaciones para minimizar el coste de codificación.

  • wiwi+ηincógnitai(yPAG(1)){\displaystyle w_{i}\leftarrow w_{i}+\eta x_{i}(yP(1))}

dóndeη{\displaystyle \eta }es la tasa de aprendizaje (normalmente de 0,002 a 0,01),y{\displaystyle y}es el bit previsto, y (yPAG(1){\displaystyle yP(1)}) es el error de predicción.

Lista de compresores de mezcla de contexto

Todas las versiones que se muestran a continuación utilizan la mezcla logística, salvo que se indique lo contrario.

  • Todas las versiones de PAQ (Matt Mahoney, Serge Osnach, Alexander Ratushnyak, Przemysław Skibiński, Jan Ondrus y otros)PAQAR y las versiones anteriores a PAQ7 utilizaban mezcla lineal. Las versiones posteriores utilizaban mezcla logística.
  • Todas las versiones de LPAQ (Matt Mahoney, Alexander Ratushnyak).
  • ZPAQ (Matt Mahoney).
  • WinRK 3.0.3 (Malcolm Taylor) en modo PWCM de máxima compresiónLa versión 3.0.2 se basaba en la mezcla lineal.
  • NanoZip (Sami Runsas) en modo de compresión máxima (opción -cc).
  • xwrt 3.2 (Przemysław Skibiński) en modo de compresión máxima (opciones -i10 a -i14)como parte del backend de un codificador de diccionario.
  • Los algoritmos cmm1 a cmm4, M1 y M1X2 (Christopher Mattern) utilizan un número reducido de contextos para lograr alta velocidad. M1 y M1X2 emplean un algoritmo genético para seleccionar dos contextos enmascarados por bits en una pasada de optimización independiente.
  • ccm (Christian Martelock).
  • bit (Osman Turan).
  • espinilla, espinilla2, tc y px (Ilia Muraviev).
  • enc (Serge Osnach) prueba varios métodos basados ​​en PPM y mezcla de contexto (lineal) y elige el mejor.
  • fpaq2 (Nania Francesco Antonio) utilizando promedio ponderado fijo para alta velocidad.
  • cmix (Byron Knoll) combina muchos modelos y actualmente ocupa el primer lugar en el benchmark Large Text Compression, [ 4 ] así como en el corpus Silesia [ 5 ] y ha superado la entrada ganadora del Hutter Prize aunque no es elegible debido a que utiliza demasiada memoria.

Referencias

  1. Mahoney, M. (2005), "Ponderación adaptativa de modelos de contexto para compresión de datos sin pérdidas", Informe técnico CS-2005-16 de Florida Tech.
  2. Mahoney, M. "Programa de compresión de datos PAQ8" .
  3. Mahoney, MV (2005). Ponderación adaptativa de modelos de contexto para compresión de datos sin pérdidas.
  4. Matt Mahoney (25-09-2015). "Large Text Compression Benchmark" . Recuperado el 04-11-2015 .
  5. Matt Mahoney (23-09-2015). "Silesia Open Source Compression Benchmark" . Recuperado el 04-11-2015 .