Misura entropia / informazioni / schemi di una matrice binaria 2d


53

Voglio misurare l'entropia / la densità di informazioni / la somiglianza del modello di una matrice binaria bidimensionale. Vorrei mostrare alcune immagini per chiarimenti:

Questo display dovrebbe avere un'entropia piuttosto elevata:

UN)

inserisci qui la descrizione dell'immagine

Questo dovrebbe avere entropia media:

B)

inserisci qui la descrizione dell'immagine

Queste immagini, infine, dovrebbero avere tutte un'entropia quasi zero:

C)

inserisci qui la descrizione dell'immagine

D)

inserisci qui la descrizione dell'immagine

E)

inserisci qui la descrizione dell'immagine

C'è qualche indice che cattura l'entropia, resp. la "somiglianza di modello" di questi display?

Ovviamente, ogni algoritmo (ad es. Algoritmi di compressione o algoritmo di rotazione proposto da ttnphns ) è sensibile ad altre caratteristiche del display. Sto cercando un algoritmo che tenti di acquisire le seguenti proprietà:

  • Simmetria rotazionale e assiale
  • La quantità di clustering
  • ripetizioni

Forse più complicato, l'algoritmo potrebbe essere sensibile alle proprietà del " principio Gestalt " psicologico , in particolare:

  • La legge di prossimità: legge di prossimità
  • La legge della simmetria: le immagini simmetriche sono percepite collettivamente, nonostante la distanza:simmetria

Ai display con queste proprietà dovrebbe essere assegnato un "valore di entropia basso"; ai display con punti piuttosto casuali / non strutturati dovrebbe essere assegnato un "valore di entropia elevato".

Sono consapevole che molto probabilmente nessun singolo algoritmo acquisirà tutte queste funzionalità; pertanto sono ben accetti suggerimenti per algoritmi che riguardano solo alcune o anche solo una singola funzionalità.

In particolare, sto cercando algoritmi concreti, esistenti o idee specifiche e attuabili (e assegnerò la ricompensa secondo questi criteri).


Bella domanda! Posso chiederti, tuttavia, cosa motiva la necessità di una singola misura? Le tue tre proprietà (simmetria, raggruppamento e ripetizioni) sulla loro faccia sembrano abbastanza indipendenti da giustificare misure separate.
Andy W,

Finora sono in qualche modo scettico sul fatto che puoi trovare un algo universale che attui il principio della gestalt. Quest'ultimo si basa principalmente sul riconoscimento di prototipi preesistenti. La tua mente potrebbe avere questi, ma il tuo computer potrebbe non esserlo.
ttnphns,

Sono d'accordo con entrambi. In realtà non stavo cercando un singolo algoritmo, anche se la mia precedente formulazione suggeriva davvero questo. Ho aggiornato la domanda per consentire esplicitamente algoritmi per singole proprietà. Forse qualcuno ha anche idee su come combinare l'output di più algos (ad esempio, "prendi sempre il valore di entropia più basso dell'insieme di algos")
Felix S

1
La taglia è finita . Grazie a tutti i collaboratori e alle idee eccellenti! Questa generosità ha generato un sacco di approcci interessanti. Diverse risposte contengono molto lavoro cerebrale e talvolta è un peccato che i doni non possano essere divisi. Alla fine, ho deciso di assegnare la generosità a @whuber, poiché la sua soluzione era l'algoritmo che mi sembrava il più completo per quanto riguarda le funzionalità che acquisisce e in quanto è facile da implementare. Apprezzo anche che sia stato applicato ai miei esempi concreti. Il più impressionante è stata la sua capacità di assegnare numeri nell'ordine esatto della mia "classifica intuitiva". Grazie, F
Felix S,

Risposte:


35

C'è una semplice procedura che cattura tutta l'intuizione, compresi gli elementi psicologici e geometrici. Si basa sull'utilizzo della prossimità spaziale , che è la base della nostra percezione e fornisce un modo intrinseco per catturare ciò che viene misurato solo imperfettamente dalle simmetrie.

Per fare ciò, dobbiamo misurare la "complessità" di questi array a varie scale locali. Sebbene abbiamo molta flessibilità nello scegliere quelle scale e nel senso in cui misuriamo la "prossimità", è abbastanza semplice ed efficace abbastanza da usare piccoli quartieri quadrati e guardare le medie (o, equivalentemente, somme) al loro interno. A tal fine, una sequenza di matrici può essere derivata da qualsiasi matrice by formando somme di vicinato in movimento usando per quartieri, quindi per , ecc., Fino a per (anche se a quel punto di solito ci sono troppo pochi valori per fornire qualcosa di affidabile).mnk=2233min(n,m)min(n,m)

Per vedere come funziona questo, cerchiamo di fare i calcoli per gli array in questione, che chiamerò attraverso , da cima a fondo. Ecco i grafici delle somme mobili per ( è l'array originale, ovviamente) applicato a .a1 k = 1 , 2 , 3 , 4 k = 1 a 1a5k=1,2,3,4k=1a1

Figura 1

In senso orario da in alto a sinistra, uguale a , , e . Le matrici sono per , quindi per , per e per , rispettivamente. Sembrano tutti "casuali". Misuriamo questa casualità con la loro entropia di base 2. Per , la sequenza di queste entropie è . Chiamiamo questo "profilo" di .1 2 4 3 5 5 4 4 2 2k124355442233a1(0.97,0.99,0.92,1.5)a1

Ecco, al contrario, le somme mobili di :a4

figura 2

Per c'è poca variazione, da cui bassa entropia. Il profilo è . I suoi valori sono costantemente inferiori ai valori di , a conferma del senso intuitivo che esiste un forte "modello" presente in .k=2,3,4(1.00,0,0.99,0)a1a4

Abbiamo bisogno di un quadro di riferimento per l'interpretazione di questi profili. Un array perfettamente casuale di valori binari avrà circa la metà dei suoi valori pari a e l'altra metà uguale a , per un'entropia di . Le somme mobili all'interno dei quartieri per tenderanno ad avere distribuzioni binomiali, dando loro prevedibili entropie (almeno per array di grandi dimensioni) che possono essere approssimate di :011kk1+log2(k)

Trama di entropia

Questi risultati sono confermati dalla simulazione con matrici fino a . Tuttavia, si rompono per piccoli array (come gli array per qui) a causa della correlazione tra le finestre vicine (una volta che la dimensione della finestra è circa la metà delle dimensioni dell'array) e a causa della piccola quantità di dati. Ecco un profilo di riferimento di array casuali per generati dalla simulazione insieme a grafici di alcuni profili effettivi:m=n=1005555

Trame del profilo

In questo grafico il profilo di riferimento è blu fisso. I profili dell'array corrispondono a : rosso, : oro, : verde, : azzurro. (Includere oscurerebbe l'immagine perché è vicino al profilo di .) Complessivamente i profili corrispondono all'ordinamento nella domanda: si abbassano alla maggior parte dei valori di quando l'apparente ordinamento aumenta. L'eccezione è : fino alla fine, per , le sue somme mobili tendono ad avere tra le entropie più basse. Ciò rivela una regolarità sorprendente: ogni quartiere per ina1a2a3a4a5a4ka1k=422a1 ha esattamente o quadrati neri, mai più o meno. È molto meno "casuale" di quanto si possa pensare. (Ciò è in parte dovuto alla perdita di informazioni che accompagna la somma dei valori in ciascun quartiere, una procedura che condensa possibili configurazioni di quartiere in solo diverse possibili somme. Se volessimo rendere conto in modo specifico per il raggruppamento e l'orientamento all'interno di ciascun vicinato, quindi invece di utilizzare somme in movimento utilizzeremmo concatenazioni in movimento. Cioè, ogni per vicinato ha122k2k2+1kk2k2possibili diverse configurazioni; distinguendoli tutti, possiamo ottenere una misura più fine di entropia. Sospetto che una tale misura eleverebbe il profilo di rispetto alle altre immagini.)a1

Questa tecnica di creazione di un profilo di entropie su un intervallo controllato di scale, sommando (o concatenando o combinando altrimenti) valori all'interno di quartieri in movimento, è stata utilizzata nell'analisi delle immagini. È una generalizzazione bidimensionale dell'idea ben nota di analizzare il testo prima come una serie di lettere, quindi come una serie di digrafi (sequenze di due lettere), quindi come trigrafi, ecc. Ha anche alcune evidenti relazioni con il frattale analisi (che esplora le proprietà dell'immagine su scale sempre più fini). Se ci prendiamo cura di usare una somma che sposta i blocchi o concatena i blocchi (quindi non ci sono sovrapposizioni tra le finestre), si possono derivare semplici relazioni matematiche tra le entropie successive; però,

Sono possibili varie estensioni. Ad esempio, per un profilo invariante a rotazione, utilizzare i quartieri circolari anziché quelli quadrati. Tutto si generalizza oltre gli array binari, ovviamente. Con matrici sufficientemente grandi si possono persino calcolare profili di entropia variabili localmente per rilevare la non stazionarietà.

Se si desidera un singolo numero, anziché un intero profilo, scegliere la scala a cui interessa la casualità spaziale (o la sua mancanza). In questi esempi, quella scala corrisponderebbe meglio a un vicinato in movimento per o per , perché per il loro modello si basano tutti su raggruppamenti che si estendono da tre a cinque celle (e un vicinato per una media di tutte le variazioni nel array e quindi è inutile). In quest'ultima scala, le entropie da a sono , , , e334455a1a51.500.81000 ; l'entropia attesa su questa scala (per un array uniformemente casuale) è . Ciò giustifica la sensazione che "dovrebbe avere un'entropia piuttosto elevata". Per distinguere , e , che sono legati con entropia su questa scala, guarda la successiva risoluzione più fine ( per quartieri): le loro entropie sono rispettivamente , , (mentre una griglia casuale dovrebbe ha un valore di ). Con queste misure, la domanda originale pone le matrici esattamente nell'ordine giusto.1.34a1a3a4a50331.390.990.921.77


Mi dispiace, non riuscivo a capire come hai prodotto le tue trame di somme mobili. Spiegare più in dettaglio come calcolare la somma mobile.
ttnphns,

1
@ttnphns Ecco una popolare pagina di aiuto illustrata sull'argomento.
whuber

4
Ho riprodotto i risultati di questa eccellente risposta di @whuber usando NumPy e matplotlib in Python, disponibili qui: github.com/cosmoharrigan/matrix-entropy
Cosmo Harrigan

(+1) Ecco un principio molto generale: con qualsiasi multiset , c'è l'entropia naturalmente associata della distribuzione di probabilità determinata dalle molteplicità dei suoi elementi distinti , vale a dire , dove è l'insieme di elementi distinti in . Esempi sono multiset formati da quartieri di dimensioni di varie forme in oggetti di varie dimensioni. (Ho appena pubblicato un'applicazione 1D per length- sottostringhe .)Mμ(e)ep(e):=μ(e)eSμ(e)  (eS)SMkk
Res

@whuber Ottima risposta. Sebbene abbia un senso intuitivo, c'è un articolo o un libro di testo che si può citare per la derivazione originale di questo (suppongo che se questo è il tuo lavoro originale lo hai pubblicato formalmente in una rivista)?
subhacom

10

Innanzitutto, il mio suggerimento è puramente intuitivo: non so nulla nel campo del riconoscimento di schemi. In secondo luogo, si potrebbero formulare dozzine alternative come la mia.

Comincio con l'idea che una configurazione regolare (cioè con bassa entropia) dovrebbe essere in qualche modo simmetrica, isomorfa a questo o ai suoi tranformanti. Ad esempio, nelle rotazioni.

È possibile ruotare (capovolgere di 90 gradi, di 180 gradi, ecc.) La matrice fino a quando la configurazione non coincide con quella originale . Concorderà sempre su 4 rotazioni (360 gradi), ma a volte può concordare prima (come la matrice E nella foto).

Ad ogni rotazione, contare il numero di celle con valori non identici tra la configurazione originale e quella ruotata. Ad esempio, se si confronta la matrice originale A con la sua rotazione di 90 gradi, si scopriranno 10 celle in cui è presente un punto in una matrice e vuoto nell'altra matrice. Quindi confronta la matrice originale con la sua rotazione di 180 gradi: verranno trovate 11 celle di questo tipo. 10 celle è la discrepanza tra la matrice originale A e la sua rotazione di 270 gradi. 11 + 10 + 10 = 31 la "entropia" complessivo di matrice A .

Per la matrice B l '"entropia" è 20, e per la matrice E è solo 12. Per le matrici C e D "entropia" è 0 perché le rotazioni si fermano dopo 90 gradi: isomorfismo già raggiunto.

inserisci qui la descrizione dell'immagine


Grazie per il tuo suggerimento! Sebbene potessi pensare a diversi display "facili" che non sono invarianti a una trasformazione di rotazione, questo è un approccio piacevole e facile (ed espandibile!). Devo pensare a quale tipo di trasformazione vorrei avere. E mi piace il tuo approccio nel contare i punti in ogni trasformazione.
Felix S,

Grazie per l'apprezzamento. Ma l'approccio è solo un troncone iniziale, un'idea generale, e hai ragione dicendo che è espandibile.
ttnphns,

Mi piace il tuo approccio. Tuttavia, per ottenere una risposta più generale, può valere la pena prendere un gruppo di simmetria un po 'più ampio: identità, 3 rotazioni e 4 riflessioni (ad es. , en.wikipedia.org/wiki/Dihedral_group ). Quindi conta le differenze ( ) tra tutte le coppie (cioè ) e come misura di casualità , dove è il numero di pietre nere. Per forme puramente casuali si dovrebbe ottenere , mentre per molto simmetrico . La cosa buona è che la formula per vale per un diverso numero di pietre sul tabellone e ha la simmetria BW. D4d87r=k187252n(25n))nr1r0r
Piotr Migdal,

Ci scusiamo per l'eccessiva complicità. È sufficiente confrontare i motivi originali con simmetrie diverse dall'identità. Quindi nel fattore di normalizzazione ci sono invece di . 7778
Piotr Migdal,

5

Le informazioni sono comunemente definite come . C'è una buona teoria che spiega che è la quantità di bit necessari per codificare usando . Se vuoi saperne di più su questo, leggi la codifica aritmetica .h(x)=logp(x)log2p(x)xp

Quindi come può risolvere il tuo problema? Facile. Trova qualche che rappresenti i tuoi dati e usa dove è un nuovo campione come misura di sorpresa o informazione per incontrarli.plogp(x)x

La cosa difficile è trovare un modello per e generare i tuoi dati. Forse puoi inventare un algoritmo che genera matrici che ritieni "probabili".p

Alcune idee per il montaggio .p

  1. Se stai guardando solo matrici 5x5, hai solo bisogno di bit per memorizzare tutte le matrici possibili, quindi puoi semplicemente elencarle tutte e assegnare una certa probabilità a ciascuna.225
  2. Usa una macchina Boltzmann con restrizioni per adattare i tuoi dati (quindi dovresti usare l'energia gratuita come sostituto delle informazioni, ma va bene),
  3. Usa zip come sostituto di e non preoccuparti dell'intera storia di probabilità dall'alto. Va anche formalmente bene, perché usi zip come approssimazione alla complessità di Kolmogorov e questo è stato fatto dai teorici dell'informazione portando anche alla distanza di compressione normalizzata ,logp(x)
  4. Forse usare un modello grafico per includere credenze spaziali precedenti e usare le variabili di Bernoulli localmente.
  5. Per codificare l'invarianza traslazionale, è possibile utilizzare un modello basato sull'energia utilizzando una rete convoluzionale .

Alcune delle idee di cui sopra sono piuttosto pesanti e provengono dall'apprendimento automatico. Nel caso in cui desideri ulteriori consigli, utilizza i commenti.


Evidentemente, l'entropia di Kolmogorov è l'approccio migliore, in senso filosofico, se si pensa alla "semplicità del modello astratto" e non si sta cercando di prevedere quanto risulterà semplice per una mente umana. Indica semplicemente l'entropia come "la lunghezza del programma più breve che può produrre quel modello". Ovviamente, devi ancora specificare il linguaggio del computer, ma puoi comunque fare affidamento su una macchina Turing astratta per giocare il trucco.
Javier Rodriguez Laguna,

Il linguaggio di programmazione non è molto importante. Una parte aggiuntiva del programma di compilazione dalla lingua A alla lingua B richiederà un costante aumento di bit (il compilatore) e può quindi essere trascurata.
Bayerj,

4

La mia proposta seguente è piuttosto approfondita che dedotta, quindi non posso provarlo, ma posso almeno offrire qualche logica. La procedura di valutazione dell '"entropia" della configurazione dei punti comprende:

  1. Digitalizza i punti.
  2. Effettuare il confronto della configurazione con se stesso consentito, molte volte, dall'analisi ortogonale dei Procrustes .
  3. Traccia i risultati dei confronti (coefficiente di identità) e valuta il frastuono della trama.

Digitalizza i punti , ovvero prendi le loro coordinate. Ad esempio, di seguito è riportata la configurazione D con punti numerati (l'ordine di numerazione può essere arbitrario) e le relative coordinate. inserisci qui la descrizione dell'immagine

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

Esegui permutazioni ed esegui analisi Procrustes. Permettere spot (righe nei dati) in modo casuale ed eseguire il confronto Procrustes dei dati originali (non permutati) con quelli permutati; registra il coefficiente di identità (misura della somiglianza delle due configurazioni, prodotto dall'analisi). Ripeti permutazione - Procrustes - salvando il coefficiente, molte volte (ad es. 1000 volte o più).

Cosa possiamo aspettarci dai coefficienti di identità (IDc) ottenuti dopo l'operazione sopra descritta su una struttura regolare ?Consideriamo ad esempio la configurazione precedente D. Se confrontiamo le coordinate originali impostate con se stesso, otterremo ovviamente IDc = 1. Ma se permutiamo alcuni punti, l'IDc tra il set originale e il permutato sarà un valore inferiore a 1. Permettiamo, per esempio, una coppia di punti, etichettati 1 e 4. IDc = .964. Adesso, invece, permuta i punti 3 e 5. È interessante notare che IDc sarà di nuovo .964. Lo stesso valore, perché? I punti 3 e 5 sono simmetrici a 1 e 4, in modo che la rotazione a 90 gradi li sovrapponga. Il confronto di Procrustes è insensibile alla rotazione o alla riflessione, e quindi la permutazione all'interno della coppia 1-4 è la "stessa" della permutazione all'interno della coppia 5-3, per questo. Per aggiungere un altro esempio, se permuti solo i punti 4 e 7, IDc sarà di nuovo .964! Sembra che per Procrustes, la permutazione all'interno della coppia 4-7 sia la "stessa" come i due precedenti, nel senso che dà lo stesso grado di somiglianza (come misurato da IDc). Ovviamente, tutto questo perché la configurazione D è regolare.Per una configurazione regolare prevediamo di ottenere valori piuttosto discreti di IDc nel nostro esperimento di permutazione / confronto; mentre per una configurazione irregolare ci aspettiamo che i valori tenderanno ad essere continui.

Traccia i valori IDc registrati. Ad esempio, ordina i valori e crea un grafico a linee. Ho fatto l'esperimento - 5000 permutazioni - con ognuna delle tue configurazioni A, B (entrambe piuttosto irregolari), D, E (entrambe regolari) ed ecco la trama della linea:

inserisci qui la descrizione dell'immagine

Nota quanto più frastagliate sono le linee D ed E (in particolare D). Ciò è dovuto alla discrezione dei valori. I valori per A e B sono molto più continui. Puoi scegliere un tipo di statistica che stima il grado di discrezione / continuità, invece di tracciare. A sembra non più continuo di B (per te, la configurazione A è in qualche modo meno regolare, ma il mio diagramma di linea sembra non dimostrarlo) o, in caso contrario, forse mostra un po 'un altro modello di valori IDc. Quale altro modello? Questo va oltre lo scopo della mia risposta. La grande domanda se A sia effettivamente meno regolare di B: potrebbe essere per il tuo occhio, ma non necessariamente per l'analisi di Procrustes o dell'occhio di un'altra persona.

A proposito, l'intero esperimento di permutazione / Procrustes che ho fatto molto rapidamente. Ho usato la mia macro di analisi Procrustes per SPSS (trovata sulla mia pagina Web) e ho aggiunto alcune righe di codice per eseguire permutazioni.


3

Le informazioni reciproche, considerando ogni dimensione come una variabile casuale, quindi ogni matrice come un insieme di coppie di numeri, dovrebbero aiutare in tutti i casi, ad eccezione di C, dove non sono sicuro del risultato.

Vedere la discussione intorno a Fig 8 (a partire da p24) sull'analisi delle prestazioni di regressione nel manuale TMVA o la voce corrispondente arxiv .

Metriche diverse per diverse distribuzioni


Ho problemi nell'apertura del documento collegato.
ttnphns,

Aggiunto un link alternativo. Ma il primo funziona per me (appena testato).
adavid

3

Invece di guardare le proprietà globali del modello (come le simmetrie), si può dare un'occhiata a quelle locali, ad esempio il numero di vicini che ogni pietra (= cerchio nero) ha. Indichiamo il numero totale di pietre per .s

Se le pietre venivano lanciate a caso, la distribuzione dei vicini è dove è la densità delle pietre. Il numero di posti dipende se una pietra si trova all'interno ( ), sul bordo ( ) o sull'angolo .

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

È chiaramente visibile che la distribuzione dei vicini in C) , D) ed E) è tutt'altro che casuale. Ad esempio, per D) tutte le pietre interne hanno esattamente vicini (opposti alla distribuzione casuale, che produce in invece che misurato ).4(0%,2%,9%,20%,27%,24%,13%,4%,0%)(0%,0%,0%,0%,100%,0%,0%,0%,0%)

Quindi per quantificare se uno schema è casuale è necessario confrontare la sua distribuzione dei vicini e confrontarlo con uno casuale . Ad esempio puoi confrontare i loro mezzi e le loro varianze.Pmeasured(k|n)Prand,p(k|n)

In alternativa, si possono misurare le loro distanze negli spazi delle funzioni, ad esempio: dove è il rapporto misurato di punti con spazi adiacenti e è il predetto per un modello casuale, ovvero , e .

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

2

C'è un modo davvero semplice di concettualizzare il contenuto informativo che si rifà all'idea di Shannon (dichiaratamente unidimensionale) usando le probabilità e le probabilità di transizione per trovare una rappresentazione meno ridondante di una stringa di testo. Per un'immagine (in questo caso particolare un'immagine binaria definita su una matrice quadrata) possiamo ricostruire in modo univoco da una conoscenza delle derivate xey (-1,0, + 1). Possiamo definire una probabilità di transizione 3x3 e una funzione di densità di probabilità globale, anche 3x3. Le informazioni di Shannon sono quindi ottenute dalla classica formula di sommatoria logaritmica applicata su 3x3. Questa è una misura di informazione di Shannon del secondo ordine e cattura bene la struttura spaziale nel pdf 3x3.

Questo approccio è più intuitivo se applicato a immagini in scala di grigio con più di 2 livelli (binari), vedere https://arxiv.org/abs/1609.01117 per maggiori dettagli.


1

Nel leggere questo, mi vengono in mente due cose. Il primo è che molte delle proprietà della gestalt sono piuttosto difficili da prevedere e un sacco di lavoro a livello di dottorato va nel tentativo di capire i modelli di come si svolgono i raggruppamenti. Il mio istinto è che le regole più semplici a cui potresti pensare finiranno con contro esempi.

Se per ora puoi mettere da parte la descrizione dei raggruppamenti di gestalt, penso che un'astrazione utile sia pensare al tuo input come a un caso speciale di un'immagine. Ci sono molti algoritmi nella visione artificiale che mirano ad assegnare una firma a un'immagine basata su un insieme di funzioni che sono invarianti in scala e invarianti in funzione. Penso che le più note siano le funzionalità SIFT:

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

Fondamentalmente l'output sarà un nuovo vettore che fornisce i pesi per queste funzionalità. Puoi usare questo vettore e applicare un euristico ad esso (forse trovare la norma) e sperare che descriva ciò che stai cercando. In alternativa, potresti addestrare un classificatore a prendere il vettore della caratteristica come input e dirgli qual è la tua impressione della sua "entropia". L'aspetto positivo di questo è che utilizzerà le funzionalità SIFT appropriate (che sono decisamente eccessive per il tuo problema) e costruirà una sorta di mappatura che potrebbe benissimo essere appropriata. Il rovescio della medaglia è che devi fare molto dell'etichettatura da solo, e ciò che ottieni potrebbe essere più difficile da interpretare, a seconda del classificatore che usi.

Spero che questo sia utile! Molti algoritmi di visione artificiale tradizionali possono anche essere appropriati per te qui: una rapida navigazione attraverso Wikipedia in quel portale può darti qualche informazione aggiuntiva.


0

I tuoi esempi mi ricordano le tabelle di verità dell'algebra booleana e dei circuiti digitali. In questo ambito, le mappe Karnaugh (http://en.wikipedia.org/wiki/Karnaugh_map) possono essere utilizzate come strumento per fornire la minima funzione booleana per esprimere l'intera griglia. In alternativa, l'uso delle identità algebriche booleane può aiutare a ridurre la funzione alla sua forma minima. Il conteggio del numero di termini nella funzione booleana minimizzata potrebbe essere usato come misura dell'entropia. Questo ti dà la simmetria verticale e orizzontale insieme alla compressione dei vicini adiacenti, ma manca di simmetria diagonale.

Usando l'algebra booleana, entrambi gli assi sono etichettati da AE a partire dall'angolo in alto a sinistra. In questo modo, l'esempio C verrebbe mappato alla funzione booleana (! A &! E). Per altri esempi, gli assi dovrebbero essere etichettati separatamente (cioè AE, FJ).


0

Vorrei sottolineare il rango della matrice utilizzata nella fattorizzazione a matrice binaria come indicatore dell'entropia. Sebbene il calcolo esatto sia NP-difficile , il grado può essere stimato in tempo O (log2n) .

Vorrei solo sottolineare che il confronto con il metodo a 3 rotazioni e 4 riflessioni ha un vero difetto.

Per una matrice con un numero dispari di righe / colonne, ci sarà una riga o colonna centrale che si sovrapporrà con i dati originali in rotazioni / riflessioni che provocherà una riduzione della quantità di entropia.

Inoltre, per la riflessione nella posizione di 90 e 270 gradi, tutte le diagonali si sovrapporranno riducendo anche l'entropia. Quindi questa perdita dovrebbe essere presa in considerazione.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.