Medición de entropía / información / patrones de una matriz binaria 2D

53

Quiero medir la entropía / densidad de información / similitud de patrón de una matriz binaria bidimensional. Déjame mostrarte algunas fotos para aclarar:

Esta pantalla debería tener una entropía bastante alta:

UNA)

ingrese la descripción de la imagen aquí

Esto debería tener una entropía media:

SI)

ingrese la descripción de la imagen aquí

Estas imágenes, finalmente, deberían tener una entropía cercana a cero:

C)

ingrese la descripción de la imagen aquí

RE)

ingrese la descripción de la imagen aquí

MI)

ingrese la descripción de la imagen aquí

¿Hay algún índice que capture la entropía, resp. la "similitud de patrón" de estas pantallas?

Por supuesto, cada algoritmo (por ejemplo, algoritmos de compresión; o el algoritmo de rotación propuesto por ttnphns ) es sensible a otras características de la pantalla. Estoy buscando un algoritmo que intente capturar las siguientes propiedades:

  • Simetría rotacional y axial
  • La cantidad de agrupamiento
  • Repeticiones

Quizás más complicado, el algoritmo podría ser sensible a las propiedades del " principio Gestalt " psicológico , en particular:

  • La ley de proximidad: ley de proximidad
  • La ley de la simetría: las imágenes simétricas se perciben colectivamente, incluso a pesar de la distancia:simetría

A las pantallas con estas propiedades se les debe asignar un "valor de entropía bajo"; las pantallas con puntos bastante aleatorios / no estructurados deberían recibir un "valor de entropía alto".

Soy consciente de que lo más probable es que ningún algoritmo capturará todas estas características; por lo tanto, las sugerencias de algoritmos que aborden solo algunas o incluso una sola característica también son muy bienvenidas.

En particular, estoy buscando algoritmos concretos existentes o ideas específicas implementables (y otorgaré la recompensa de acuerdo con estos criterios).

Felix S
fuente
Buena pregunta! Sin embargo, ¿puedo preguntar qué motiva la necesidad de una sola medida? Sus tres propiedades (simetría, agrupación y repeticiones) en su cara parecen lo suficientemente independientes como para justificar medidas separadas.
Andy W
Hasta ahora estoy un tanto escéptico que puedes encontrar algo universal que implemente el principio gestalt. Este último se basa principalmente en el reconocimiento de prototipos preexistentes. Su mente puede tener estos, pero su computadora no.
ttnphns
Estoy de acuerdo con los dos. En realidad, no estaba buscando un solo algoritmo, aunque mi redacción anterior lo sugirió. Actualicé la pregunta para permitir explícitamente algoritmos para propiedades individuales. Tal vez alguien también tenga ideas sobre cómo combinar la salida de múltiples algos (por ejemplo, "siempre tome el valor de entropía más bajo del conjunto de algos")
Felix S
1
La recompensa ha terminado . ¡Gracias a todos los contribuyentes y las excelentes ideas! Esta recompensa generó un montón de enfoques interesantes. Varias respuestas contienen mucho trabajo mental, y a veces es una pena que las recompensas no se puedan dividir. Finalmente, decidí otorgarle la recompensa a @whuber, ya que su solución fue el algoritmo que me pareció más completo con respecto a las características que captura, y que es fácil de implementar. También aprecio que se haya aplicado a mis ejemplos concretos. Lo más impresionante fue su capacidad para asignar números en el orden exacto de mi "clasificación intuitiva". Gracias, F
Felix S

Respuestas:

35

Hay un procedimiento simple que captura toda la intuición, incluidos los elementos psicológicos y geométricos. Se basa en el uso de la proximidad espacial , que es la base de nuestra percepción y proporciona una forma intrínseca de capturar lo que solo se mide imperfectamente por simetrías.

Para hacer esto, necesitamos medir la "complejidad" de estos arreglos a diferentes escalas locales. Aunque tenemos mucha flexibilidad para elegir esas escalas y elegir el sentido en que medimos la "proximidad", es lo suficientemente simple y efectivo como para usar vecindarios cuadrados pequeños y observar promedios (o, de manera equivalente, sumas) dentro de ellos. Para este fin, se puede derivar una secuencia de matrices de cualquier matriz de por formando sumas de vecindad móviles usando por vecindades, luego por , etc., hasta por (aunque para entonces generalmente hay muy pocos valores para proporcionar algo confiable).mnk=2233min(n,m)min(n,m)

Para ver cómo funciona esto, hagamos los cálculos para las matrices en la pregunta, que llamaré de a , de arriba a abajo. Aquí hay gráficas de las sumas móviles para ( es la matriz original, por supuesto) aplicada a .a1a5k=1,2,3,4k=1a1

Figura 1

En el sentido de las agujas del reloj desde la esquina superior izquierda, es igual a , , y . Las matrices son por , luego por , por y por , respectivamente. Todos parecen algo "al azar". Midamos esta aleatoriedad con su entropía de base 2. Para , la secuencia de estas entropías es . Llamemos a esto el "perfil" de .k124355442233a1(0.97,0.99,0.92,1.5)a1

Aquí, en contraste, están las sumas móviles de :a4

Figura 2

Para hay poca variación, por lo tanto, baja entropía. El perfil es . Sus valores son consistentemente más bajos que los valores para , lo que confirma la sensación intuitiva de que hay un "patrón" fuerte presente en .k=2,3,4(1.00,0,0.99,0)a1a4

Necesitamos un marco de referencia para interpretar estos perfiles. Una matriz perfectamente aleatoria de valores binarios tendrá aproximadamente la mitad de sus valores iguales a y la otra mitad igual a , para una entropía de . Las sumas móviles dentro de los vecindarios por tenderán a tener distribuciones binomiales, dándoles entropías predecibles (al menos para matrices grandes) que pueden aproximarse por :011kk1+log2(k)

Trama de entropía

Estos resultados se confirman mediante simulación con matrices de hasta . Sin embargo, se desglosan para matrices pequeñas (como las matrices de por aquí) debido a la correlación entre las ventanas vecinas (una vez que el tamaño de la ventana es aproximadamente la mitad de las dimensiones de la matriz) y debido a la pequeña cantidad de datos. Aquí hay un perfil de referencia de matrices aleatorias de por generadas por simulación junto con gráficos de algunos perfiles reales:m=n=1005555

Parcelas de perfil

En esta gráfica, el perfil de referencia es azul sólido. Los perfiles de matriz corresponden a : rojo, : oro, : verde, : azul claro. (La inclusión de oscurecería la imagen porque está cerca del perfil de .) En general, los perfiles corresponden al orden en la pregunta: se reducen en la mayoría de los valores de medida que aumenta el orden aparente. La excepción es : hasta el final, para , sus sumas móviles tienden a tener una de las entropías más bajas . Esto revela una regularidad sorprendente: cada barrio de por ena1a2a3a4a5a4ka1k=422a1 tiene exactamente o cuadrados negros, nunca más o menos. Es mucho menos "aleatorio" de lo que uno podría pensar. (Esto se debe en parte a la pérdida de información que acompaña a la suma de los valores en cada vecindario, un procedimiento que condensa posibles configuraciones de vecindario en solo diferentes sumas posibles. Si quisiéramos tener en cuenta específicamente para la agrupación y orientación dentro de cada vecindario, entonces, en lugar de usar sumas móviles, usaríamos concatenaciones móviles, es decir, cada vecindario por tiene122k2k2+1kk2k2posibles configuraciones diferentes; al distinguirlos a todos, podemos obtener una medida más fina de la entropía. Sospecho que tal medida elevaría el perfil de comparación con las otras imágenes).a1

Esta técnica de crear un perfil de entropías en un rango controlado de escalas, mediante la suma (o concatenación o combinación) de valores dentro de vecindarios en movimiento, se ha utilizado en el análisis de imágenes. Es una generalización bidimensional de la conocida idea de analizar el texto primero como una serie de letras, luego como una serie de dígrafos (secuencias de dos letras), luego como trigráficos, etc. También tiene algunas relaciones evidentes con el fractal. análisis (que explora las propiedades de la imagen a escalas cada vez más finas). Si tenemos cuidado de usar una suma de bloques en movimiento o una concatenación de bloques (para que no haya superposiciones entre ventanas), se pueden derivar relaciones matemáticas simples entre las entropías sucesivas; sin embargo,

Varias extensiones son posibles. Por ejemplo, para un perfil rotacionalmente invariante, use vecindarios circulares en lugar de cuadrados. Todo se generaliza más allá de las matrices binarias, por supuesto. Con matrices suficientemente grandes, incluso se pueden calcular perfiles de entropía que varían localmente para detectar la no estacionariedad.

Si se desea un solo número, en lugar de un perfil completo, elija la escala a la que le interese la aleatoriedad espacial (o la falta de ella). En estos ejemplos, esa escala correspondería mejor a un vecindario móvil de por o por , porque para su patrón todos ellos dependen de agrupaciones que abarcan de tres a cinco celdas (y un vecindario de por solo promedia todas las variaciones en el matriz y por lo tanto es inútil). En la última escala, las entropías para hasta son , , , y3 4 4 5 5 a 1 a 5 1.50 0.81 0 0 0 1.34 a 1 a 3 a 4 a 5 0 3 3 1.39 0.99 0.92 1.77334455a1a51.500.81000 ; La entropía esperada en esta escala (para una matriz uniformemente aleatoria) es . Esto justifica la sensación de que "debería tener una entropía bastante alta". Para distinguir , y , que están vinculados con entropía en esta escala, observe la siguiente resolución más fina ( vecindarios por ): sus entropías son , , , respectivamente (mientras que se espera una cuadrícula aleatoria para tener un valor de ). Con estas medidas, la pregunta original coloca las matrices exactamente en el orden correcto.1.34a1a3a4a50331.390.990.921.77

whuber
fuente
Lo siento, no podía entender cómo produjiste tus tramas de sumas móviles. Por favor, explique con más detalle cómo calcular la suma móvil.
ttnphns
1
@ttnphns Aquí hay una página de ayuda ilustrada popular sobre el tema.
whuber
44
Reproduje los resultados de esta excelente respuesta de @whuber usando NumPy y matplotlib en Python, disponible aquí: github.com/cosmoharrigan/matrix-entropy
Cosmo Harrigan
(+1) Aquí hay un principio muy general: con cualquier conjunto múltiple , existe la entropía naturalmente asociada de la distribución de probabilidad determinada por las multiplicidades de sus elementos distintos , es decir, , donde es el conjunto de elementos distintos en . Los ejemplos son multisets formados por barrios tamaño de varias formas en objetos de varias dimensiones. (Acabo de publicar una solicitud 1D en las subcadenas de longitud .)μ ( e ) e p ( e ) : = μ ( e )Mμ(e)eSMkkp(e):=μ(e)eSμ(e)  (eS)SMkk
res
@whuber Excelente respuesta. Si bien tiene sentido intuitivo, ¿hay algún artículo o libro de texto que se pueda citar para la derivación original de esto (supongo que si este es su trabajo original, lo ha publicado formalmente en una revista)?
subhacom
10

Primero, mi sugerencia es puramente intuitiva: no sé nada en el campo de reconocimiento de patrones. En segundo lugar, se podrían hacer decenas de sugerencias alternativas como la mía.

Comienzo con la idea de que una configuración regular (es decir, con baja entropía) debe ser de alguna manera simétrica, isomórfica a esto o aquello que sus transformantes. Por ejemplo, en rotaciones.

Puede rotar (voltear a 90 grados, que 180 grados, etc.) su matriz hasta que la configuración coincida con la original . Siempre coincidirá con 4 rotaciones (360 grados), pero a veces puede coincidir antes (como la matriz E en la imagen).

En cada rotación, cuente el número de celdas con valores no idénticos entre la configuración original y la rotada. Por ejemplo, si compara la matriz original A con su rotación de 90 grados, descubrirá 10 celdas donde hay un punto en una matriz y un espacio en blanco en la otra matriz. Luego compare la matriz original con su rotación de 180 grados: se encontrarán 11 de estas celdas. 10 celdas es la discrepancia entre la matriz original A y su rotación de 270 grados. 10 + 11 + 10 = 31 es la "entropía" global de la matriz A .

Para la matriz B, la "entropía" es 20, y para la matriz E es solo 12. Para las matrices C y D, la "entropía" es 0 porque las rotaciones se detienen después de 90 grados: el isomorfismo ya se ha alcanzado.

ingrese la descripción de la imagen aquí

ttnphns
fuente
¡Gracias por tu sugerencia! Aunque podría pensar en varias pantallas "fáciles" que no son invariables para una transformación de rotación, este es un enfoque agradable y fácil (¡y expandible!). Tengo que pensar qué tipo de transformación me gustaría tener. Y me gusta su enfoque de contar puntos en cada transformación.
Felix S
Gracias por tu apreciación. Pero el enfoque es solo un esbozo inicial, una idea general, y tiene razón al decir que es expandible.
ttnphns
Me gusta tu enfoque. Sin embargo, para obtener una respuesta más general, puede valer la pena tomar un grupo de simetría un poco más grande: identidad, 3 rotaciones y 4 reflexiones (es decir , , en.wikipedia.org/wiki/Dihedral_group ). Luego cuente las diferencias ( ) entre todos los pares (es decir, ) y como medida de aleatoriedad , donde es el número de piedras negras. Para formas puramente aleatorias, se debe obtener , mientras que para muy simétrico . Lo bueno es que la fórmula para es válida para diferentes números de piedras en el tablero y tiene la simetría BW. D4d87r=k187252n(25n))nr1r0r
Piotr Migdal
Perdón por complicarte demasiado. Es suficiente comparar los patrones originales con sus simetrías diferentes de la identidad. Luego, en el factor de normalización, hay lugar de . 7778
Piotr Migdal
5

La información se define comúnmente como . Hay una buena teoría que explica que es la cantidad de bits que necesita para codificar usando . Si desea saber más sobre esto, lea sobre codificación aritmética .h(x)=logp(x)log2p(x)xp

Entonces, ¿cómo puede eso resolver tu problema? Fácil. Encuentre alguna que represente sus datos y use donde es una nueva muestra como medida de sorpresa o información para encontrarla.plogp(x)x

Lo difícil es encontrar algún modelo para y generar sus datos. Tal vez pueda encontrar un algoritmo que genere matrices que considere 'probables'.p

Algunas ideas para encajar .p

  1. Si solo está buscando matrices de 5x5, solo necesita bits para almacenar todas las matrices posibles, por lo que puede enumerarlas todas y asignar una cierta probabilidad a cada una.225
  2. Use una máquina de Boltzmann restringida para ajustar sus datos (entonces tendría que usar la energía libre como sustituto de la información, pero está bien),
  3. Use zip como sustituto de y no se preocupe por toda la historia de probabilidad de arriba. Incluso está formalmente bien, porque usas zip como una aproximación a la complejidad de Kolmogorov y esto ha sido hecho por teóricos de la información y también ha llevado a la distancia de compresión normalizada ,logp(x)
  4. Tal vez use un modelo gráfico para incluir creencias espaciales anteriores y use variables de Bernoulli localmente.
  5. Para codificar la invariancia traslacional, puede usar un modelo basado en energía usando una red convolucional .

Algunas de las ideas anteriores son bastante pesadas y provienen del aprendizaje automático. En caso de que desee tener más consejos, solo use los comentarios.

bayerj
fuente
Evidentemente, la entropía de Kolmogorov es el mejor enfoque, en un sentido filosófico, si piensa en la "simplicidad del patrón abstracto" y no está tratando de predecir qué tan simple resultará para una mente humana. Simplemente declara la entropía como la "longitud del programa más corto que puede producir ese patrón". Por supuesto, aún necesita especificar el lenguaje de la computadora, pero aún puede confiar en una máquina abstracta de Turing para jugar el truco.
Javier Rodriguez Laguna
El lenguaje de programación no es realmente importante. Una parte adicional del programa que compila del lenguaje A al lenguaje B tendrá un aumento constante de bits (el compilador) y, por lo tanto, puede descuidarse.
bayerj 01 de
4

Mi siguiente propuesta es más intuitiva que deducida, por lo que no puedo probarla, pero al menos puedo ofrecer algunos fundamentos. El procedimiento de evaluación de la "entropía" de la configuración de manchas incluye:

  1. Digitalizar manchas.
  2. Realice la comparación de la configuración consigo misma, muchas veces, mediante análisis ortogonal de Procrustes .
  3. Trace los resultados de las comparaciones (coeficiente de identidad) y evalúe la irregularidad de la trama.

Digitalizar puntos , es decir, tomar sus coordenadas. Por ejemplo, a continuación se muestra su configuración D con puntos numerados (el orden de numeración puede ser arbitrario) y sus coordenadas. ingrese la descripción de la imagen aquí

spot x   y
1   1   1
2   3   1
3   5   1
4   2   2
5   4   2
6   1   3
7   3   3
8   5   3
9   2   4
10  4   4
11  1   5
12  3   5
13  5   5

Hacer permutaciones y realizar análisis de Procrustes. Permute los puntos (filas en los datos) al azar y realice la comparación de Procrustes de los datos originales (no permutados) con los permutados; registre el coeficiente de identidad (medida de similitud de las dos configuraciones, salida del análisis). Repita la permutación - Procrustes - guardando el coeficiente, muchas veces (por ejemplo, 1000 veces o más).

¿Qué podemos esperar de los coeficientes de identidad (IDc) obtenidos después de la operación anterior en una estructura regular ?Considere, por ejemplo, la configuración anterior D. Si comparamos las coordenadas originales establecidas consigo mismo, obtendremos IDc = 1, por supuesto. Pero si permutamos algunos puntos, el IDc entre el conjunto original y el permutado tendrá un valor inferior a 1. Permutamos, por ejemplo, un par de puntos, etiquetados 1 y 4. IDc = .964. Ahora, en cambio, permute los puntos 3 y 5. Curiosamente, IDc volverá a ser .964. El mismo valor, ¿por qué? Los puntos 3 y 5 son simétricos a 1 y 4, de modo que la rotación a 90 grados los superpone. La comparación de Procrustes es insensible a la rotación o la reflexión, y por lo tanto, la permutación dentro del par 1-4 es "igual" que la permutación dentro del par 5-3, para ello. Para agregar más ejemplos, si permutas solo los puntos 4 y 7, IDc volverá a ser .964. Parece que para Procrustes, la permutación dentro del par 4-7 es la "misma" como los dos anteriores en el sentido de que da el mismo grado de similitud (medido por IDc). Obviamente, todo esto se debe a que la configuración D es regular.Para una configuración regular, esperamos obtener valores bastante discretos de IDc en nuestro experimento de permutación / comparación; mientras que para la configuración irregular esperamos que los valores tiendan a ser continuos.

Trace los valores IDc registrados. Por ejemplo, ordene los valores y haga un diagrama de línea. Hice el experimento - 5000 permutaciones - con cada una de sus configuraciones A, B (ambas bastante irregulares), D, E (ambas regulares) y aquí está el diagrama de línea:

ingrese la descripción de la imagen aquí

Tenga en cuenta cuánto más irregulares son las líneas D y E (D especialmente). Esto se debe a la discreción de los valores. Los valores para A y B son mucho más continuos. Puede elegir algún tipo de estadística que calcule el grado de discreción / continuidad, en lugar de trazar. A parece no más continuo que B (para usted, la configuración A es algo menos regular, pero mi diagrama de líneas parece no demostrarlo) o, si no, tal vez muestra un poco otro patrón de valores IDc. ¿Qué otro patrón? Esto está más allá del alcance de mi respuesta todavía. La gran pregunta es si A es de hecho menos regular que B: puede ser para su ojo, pero no necesariamente para el análisis de Procrustes o el ojo de otra persona.

Por cierto, todo el experimento de permutación / Procrustes lo hice muy rápidamente. Utilicé mi propia macro de análisis Procrustes para SPSS (que se encuentra en mi página web) y agregué algunas líneas de código para hacer permutaciones.

ttnphns
fuente
3

La información mutua, considerando cada dimensión como una variable aleatoria, por lo tanto, cada matriz como un conjunto de pares de números, debería ayudar en todos los casos, excepto en C, donde no estoy seguro del resultado.

Vea la discusión sobre la Fig. 8 (comenzando en p24) sobre el análisis de rendimiento de regresión en el manual de TMVA o la entrada correspondiente de arxiv .

Diferentes métricas para diferentes distribuciones.

adavid
fuente
Tengo problemas para abrir el documento vinculado.
ttnphns
Se agregó un enlace alternativo. Pero el primero funciona para mí (recién probado).
adavid
3

En lugar de mirar las propiedades globales del patrón (como las simetrías), uno puede mirar las locales, por ejemplo, el número de vecinos que tiene cada piedra (= círculo negro). Denotemos el número total de piedras por .s

Si las piedras fueron arrojadas al azar, la distribución de vecinos es donde es la densidad de las piedras. El número de lugares depende si una piedra está en el interior ( ), en el borde ( ) o en la esquina .

Prand,p(k neighbors|n places)=(nk)pk(1p)nk,
p=s/25nn=8n=5(n=3)

Es claramente visible, que la distribución de vecinos en C) , D) y E) está lejos de ser aleatoria. Por ejemplo, para D) todas las piedras interiores tienen exactamente vecinos (lo que se opone a la distribución aleatoria, que rinde en lugar de la medida ).4(0%,2%,9%,20%,27%,24%,13%,4%,0%)(0%,0%,0%,0%,100%,0%,0%,0%,0%)

Entonces, para cuantificar si un patrón es aleatorio, debe comparar su distribución de vecinos y compararlo con uno aleatorio . Por ejemplo, puede comparar sus medias y variaciones.Pmeasured(k|n)Prand,p(k|n)

Alternativamente, uno puede medir sus distancias en los espacios de funciones, por ejemplo: donde es la relación medida de puntos con espacios adyacentes y es el predicho para un patrón aleatorio, es decir, , y .

n={3,5,8}k=0n[Pmeasured(k|n)Pmeasured(n)Prand,p(k|n)Prand,p(n)]2,
Pmeasured(n)nPrand,p(n)Prand,p(3)=4/25Prand,p(5)=12/25Prand,p(8)=9/25
Piotr Migdal
fuente
2

Hay una manera realmente simple de conceptualizar el contenido de la información que se remonta a la idea de Shannon (ciertamente unidimensional) utilizando probabilidades y probabilidades de transición para encontrar una representación menos redundante de una cadena de texto. Para una imagen (en este caso particular, una imagen binaria definida en una matriz cuadrada) podemos reconstruir únicamente a partir de un conocimiento de las derivadas x e y (-1,0, + 1). Podemos definir una probabilidad de transición 3x3 y una función de densidad de probabilidad global, también 3x3. La información de Shannon se obtiene de la clásica fórmula de suma logarítmica aplicada en 3x3. Esta es una medida de información de Shannon de segundo orden y captura muy bien la estructura espacial en el pdf 3x3.

Este enfoque es más intuitivo cuando se aplica a imágenes en escala de grises con más de 2 niveles (binarios), consulte https://arxiv.org/abs/1609.01117 para obtener más detalles.

Kieran Larkin
fuente
1

Al leer esto, se me ocurren dos cosas. La primera es que muchas de las propiedades de gestalt son bastante difíciles de predecir, y una gran cantidad de trabajo de nivel de doctorado se dedica a tratar de descubrir modelos sobre cómo se llevan a cabo las agrupaciones. Mi instinto es que las reglas más fáciles que se te ocurran terminarán con ejemplos contrarios.

Si puede dejar de lado la descripción de las agrupaciones de gestalt por ahora, creo que una abstracción útil es pensar en su entrada como un caso especial de una imagen. Hay muchos algoritmos en visión por computadora que tienen como objetivo asignar una firma a una imagen en función de un conjunto de características que son invariantes de escala e invariantes de características. Creo que las más conocidas son las características de SIFT:

http://en.wikipedia.org/wiki/Scale-invariant_feature_transform

Básicamente, su salida será un nuevo vector que proporciona los pesos para estas características. Puede usar este vector y aplicarle una heurística (encontrar la norma, tal vez) y esperar que describa lo que está buscando. Alternativamente, podría entrenar a un clasificador para tomar el vector de características como entrada y simplemente decirle cuál es su impresión de su 'entropía'. La ventaja de esto es que usará las características SIFT apropiadas (que definitivamente son excesivas para su problema) y construirá algún tipo de mapeo que bien podría ser apropiado. La desventaja es que tienes que hacer mucho de ese etiquetado tú mismo, y lo que obtienes puede ser más difícil de interpretar, dependiendo del clasificador que uses.

¡Espero que esto sea útil! Muchos de los algoritmos tradicionales de visión por computadora también pueden ser apropiados para usted aquí: una exploración rápida a través de wikipedia en ese portal puede brindarle información adicional.

alexplanation
fuente
0

Sus ejemplos me recuerdan las tablas de verdad del álgebra booleana y los circuitos digitales. En este ámbito, los mapas de Karnaugh (http://en.wikipedia.org/wiki/Karnaugh_map) se pueden usar como una herramienta para proporcionar la función booleana mínima para expresar toda la cuadrícula. Alternativamente, el uso de identidades de álgebra booleana puede ayudar a reducir la función a su forma mínima. Contar el número de términos en la función booleana minimizada podría usarse como medida de entropía. Esto le brinda simetría vertical y horizontal junto con la compresión de los vecinos adyacentes, pero carece de simetría diagonal.

Usando álgebra booleana, ambos ejes se etiquetan desde AE ​​comenzando en la esquina superior izquierda. De esta manera, el ejemplo C se correlacionaría con la función booleana (! A y! E). Para otros ejemplos, los ejes tendrían que etiquetarse por separado (es decir, AE, FJ).

canto
fuente