Quero medir a entropia / densidade da informação / semelhança de padrão de uma matriz binária bidimensional. Deixe-me mostrar algumas fotos para esclarecimentos:
Essa exibição deve ter uma entropia bastante alta:
A)
Isso deve ter entropia média:
B)
Finalmente, essas imagens devem ter entropia quase zero:
C)
D)
E)
Existe algum índice que captura a entropia, resp. a "semelhança de padrão" dessas telas?
Obviamente, cada algoritmo (por exemplo, algoritmos de compressão; ou o algoritmo de rotação proposto por ttnphns ) é sensível a outros recursos da tela. Eu estou procurando um algoritmo que tenta capturar as seguintes propriedades:
- Simetria rotacional e axial
- A quantidade de armazenamento em cluster
- Repetições
Talvez mais complicado, o algoritmo pode ser sensível às propriedades do " princípio da Gestalt " psicológico , em particular:
- A lei da proximidade:
- A lei da simetria: as imagens simétricas são percebidas coletivamente, mesmo apesar da distância:
Os monitores com essas propriedades devem receber um "baixo valor de entropia"; telas com pontos aleatórios / não estruturados devem receber um "alto valor de entropia".
Estou ciente de que provavelmente nenhum algoritmo único capturará todos esses recursos; portanto, sugestões de algoritmos que tratam apenas de alguns ou mesmo de um único recurso também são bem-vindas.
Em particular, estou procurando algoritmos concretos existentes ou idéias específicas e implementáveis (e concederei a recompensa de acordo com esses critérios).
Respostas:
Existe um procedimento simples que captura toda a intuição, incluindo os elementos psicológicos e geométricos. Ele se baseia no uso da proximidade espacial , que é a base da nossa percepção e fornece uma maneira intrínseca de capturar o que é imperfeitamente medido por simetrias.
Para fazer isso, precisamos medir a "complexidade" dessas matrizes em escalas locais variadas. Embora tenhamos muita flexibilidade para escolher essas escalas e escolher o sentido em que medimos a "proximidade", é simples e eficaz o suficiente para usar pequenos bairros quadrados e observar as médias (ou, equivalentemente, somas) dentro deles. Para esse fim, uma sequência de matrizes pode ser derivada de qualquer matriz por , formando somas de vizinhança em movimento usando por vizinhanças, depois por , etc., até por (embora normalmente haja poucos valores para fornecer algo confiável).m n k=2 2 3 3 min(n,m) min(n,m)
Para ver como isso funciona, vamos fazer os cálculos para as matrizes na pergunta, que chamarei de a , de cima para baixo. Aqui estão gráficos das somas móveis para ( é a matriz original, é claro) aplicada a .a1 a5 k=1,2,3,4 k=1 a1
No sentido horário, no canto superior esquerdo, é igual a , , e . As matrizes são por , depois por , por e por , respectivamente. Todos eles parecem meio "aleatórios". Vamos medir essa aleatoriedade com sua entropia de base 2. Para , a sequência dessas entropias é . Vamos chamar isso de "perfil" de .k 1 2 4 3 5 5 4 4 2 2 3 3 a1 (0.97,0.99,0.92,1.5) a1
Aqui, ao contrário, estão as somas móveis de :a4
Para há pouca variação, de onde baixa entropia. O perfil é . Seus valores são consistentemente inferiores aos de , confirmando a sensação intuitiva de que existe um forte "padrão" presente em .k=2,3,4 (1.00,0,0.99,0) a1 a4
Precisamos de um quadro de referência para interpretar esses perfis. Uma matriz perfeitamente aleatória de valores binários terá quase metade dos seus valores iguais a e a outra metade igual a , para uma entropia de . As somas móveis dentro de por vizinhanças tendem a ter distribuições binomiais, fornecendo entropias previsíveis (pelo menos para matrizes grandes) que podem ser aproximadas por :0 1 1 k k 1+log2(k)
Esses resultados são confirmados por simulação com matrizes de até . No entanto, eles quebram em pequenas matrizes (tais como os por matrizes aqui), devido à correlação entre janelas vizinhas (uma vez que o tamanho da janela é de cerca de metade das dimensões da matriz) e devido à pequena quantidade de dados. Aqui está um perfil de referência de matrizes aleatórias de por geradas por simulação, juntamente com gráficos de alguns perfis reais:m=n=100 5 5 5 5
Nesta plotagem, o perfil de referência é azul sólido. Os perfis da matriz correspondem a : vermelho, : ouro, : verde, : azul claro. (Incluir obscureceria a imagem porque ela se aproxima do perfil de .) No geral, os perfis correspondem à ordem na pergunta: eles ficam mais baixos no máximo em valores de medida que a ordem aparente aumenta. A exceção é : até o final, para , suas somas móveis tendem a ter entre as entropias mais baixas . Isso revela uma regularidade surpreendente: a cada por bairroa1 a2 a3 a4 a5 a4 k a1 k=4 2 2 a1 tem exatamente ou quadrados pretos, nunca mais ou menos. É muito menos "aleatório" do que se poderia pensar. (Isso ocorre em parte devido à perda de informações que acompanham a soma dos valores em cada vizinhança, um procedimento que condensa configurações possíveis de vizinhança em apenas somas possíveis. Se quisermos explicar especificamente para o agrupamento e orientação dentro de cada bairro, em seguida, em vez de usar somas móveis usaríamos concatenations em movimento. Ou seja, cada por bairro tem1 2 2k2 k2+1 k k 2k2 possíveis configurações diferentes; Ao distinguir todos eles, podemos obter uma medida mais fina da entropia. Eu suspeito que essa medida elevaria o perfil de comparação com as outras imagens.)a1
Essa técnica de criar um perfil de entropias em uma escala controlada de escalas, somando (ou concatenando ou combinando de outra forma) valores dentro de bairros em movimento, tem sido usada na análise de imagens. É uma generalização bidimensional da conhecida idéia de analisar o texto primeiro como uma série de letras, depois como uma série de dígitos (sequências de duas letras), depois como trigramas, etc. Também possui algumas relações evidentes com o fractal análise (que explora propriedades da imagem em escalas cada vez mais finas). Se tomarmos o cuidado de usar uma soma móvel de blocos ou concatenação de blocos (para que não haja sobreposições entre janelas), é possível derivar relacionamentos matemáticos simples entre as entropias sucessivas; Contudo,
São possíveis várias extensões. Por exemplo, para um perfil invariavelmente rotacional, use vizinhanças circulares em vez de quadradas. Tudo generaliza além de matrizes binárias, é claro. Com matrizes suficientemente grandes, é possível computar perfis de entropia com variação local para detectar não estacionariedade.
Se um número único for desejado, em vez de um perfil inteiro, escolha a escala na qual a aleatoriedade espacial (ou a falta dela) é interessante. Nestes exemplos, que escala corresponderia melhor para um por ou por bairro em movimento, porque para a sua padronização todos eles dependem de agrupamentos que período de três a cinco células (e um por vizinhança apenas médias distância toda variação na matriz e por isso é inútil). Na última escala, as entropias de a são , , , e3 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,773 3 4 4 5 5 a1 a5 1.50 0.81 0 0 0 ; a entropia esperada nessa escala (para uma matriz uniformemente aleatória) é . Isso justifica a sensação de que "deve ter entropia bastante alta". Para distinguir , e , que estão amarrados com entropia nessa escala, observe a próxima resolução mais fina ( por vizinhanças): suas entropias são , , , respectivamente (enquanto uma grade aleatória é esperada). tem um valor de ). Por essas medidas, a pergunta original coloca as matrizes exatamente na ordem correta.1.34 a1 a3 a4 a5 0 3 3 1.39 0.99 0.92 1.77
fonte
Primeiro, minha sugestão é puramente intuitiva: não sei nada no campo de reconhecimento de padrões. Segundo, dezenas alternativas de sugestões como a minha podem ser feitas.
Começo com a ideia de que uma configuração regular (isto é, com baixa entropia) deve ser de alguma forma simétrica, isomórfica a este ou aquele seus tranformantes. Por exemplo, em rotações.
Você pode girar (mude para 90 graus, que 180 graus, etc) sua matriz até que a configuração coincida com a original . Ele sempre concorre com 4 rotações (360 graus), mas às vezes pode concorrer mais cedo (como a matriz E na figura).
Em cada rotação, conte o número de células com valores não idênticos entre a configuração original e a girada. Por exemplo, se você comparar a matriz A original com sua rotação de 90 graus, descobrirá 10 células em que há um ponto em uma matriz e em branco na outra matriz. Em seguida, compare a matriz original com sua rotação de 180 graus: 11 dessas células serão encontradas. 10 células é a discrepância entre a matriz original A e sua rotação de 270 graus. 10 + 11 + 10 = 31, é a "entropia" global de matriz Uma .
Para a matriz B, a "entropia" é 20, e para a matriz E , apenas 12. Para as matrizes C e D, a "entropia" é 0 porque as rotações param depois de 90 graus: o isomorfismo já foi alcançado.
fonte
A informação é geralmente definida como . Existe uma teoria interessante que explica que é a quantidade de bits que você precisa codificar usando . Se você quiser saber mais sobre isso, leia sobre codificação aritmética .h(x)=logp(x) log2p(x) x p
Então, como isso pode resolver seu problema? Fácil. Encontre um que represente seus dados e use que é uma nova amostra como uma medida de surpresa ou informação sobre como encontrá-los.p −logp(x) x
O difícil é encontrar algum modelo para gerar seus dados. Talvez você possa criar um algoritmo que gere matrizes que você considere 'provável'.p
Algumas idéias para montagem .p
Algumas das idéias acima são bastante pesadas e vêm do aprendizado de máquina. Caso deseje receber mais conselhos, basta usar os comentários.
fonte
Minha proposta a seguir é bem mais perspicaz do que deduzida, portanto não posso provar isso, mas pelo menos posso oferecer alguma justificativa. O procedimento de avaliação da "entropia" da configuração dos pontos inclui:
Digitalize os pontos , ou seja, tome suas coordenadas. Por exemplo, abaixo está sua configuração D com pontos numerados (a ordem de numeração pode ser arbitrária) e suas coordenadas.
Faça permutações e realize análises de Procrustes. Permuta pontos (linhas nos dados) aleatoriamente e faça a comparação Procrustes dos dados originais (não permitidos) com os permutados; registre o coeficiente de identidade (medida de similaridade das duas configurações, produzido pela análise). Repita a permutação - Procrusta - economizando o coeficiente várias vezes (por exemplo, 1000 vezes ou mais).
O que podemos esperar dos coeficientes de identidade (IDc) obtidos após a operação acima em uma estrutura regular ?Considere, por exemplo, a configuração D. acima. Se compararmos as coordenadas originais definidas consigo, obteremos IDc = 1, é claro. Mas se permutarmos alguns pontos, o IDc entre o conjunto original e o permutado terá algum valor abaixo de 1. Permitamos, apenas por exemplo, um par de pontos, rotulados 1 e 4. IDc = 0,964. Agora, em vez disso, permita os pontos 3 e 5. Curiosamente, o IDc será 0,964 novamente. O mesmo valor, por quê? Os pontos 3 e 5 são simétricos para 1 e 4, de modo que a rotação a 90 graus os sobrepõe. A comparação de procrustes é insensível à rotação ou reflexão e, portanto, a permutação no par 1-4 é "igual" à permutação no par 5-3, para ele. Para adicionar mais exemplo, se você permitir apenas os pontos 4 e 7, o IDc será novamente 0,964! Parece que, para Procrustes, a permutação no par 4-7 é a "mesma" como os dois acima, no sentido de fornecer o mesmo grau de similaridade (conforme medido pelo IDc). Obviamente, tudo isso ocorre porque a configuração D é regular.Para uma configuração regular, esperamos obter valores bastante discretos de IDc em nosso experimento de permutação / comparação; enquanto que para configuração irregular, esperamos que os valores tendam a ser contínuos.
Plote os valores de IDc registrados. Por exemplo, classifique os valores e faça o gráfico de linhas. Eu fiz o experimento - 5000 permutações - com cada uma de suas configurações A, B (ambas bastante irregulares), D, E (ambas regulares) e aqui está o gráfico de linha:
Observe quanto mais irregulares são as linhas D e E (especialmente D). Isto é devido à discrição dos valores. Os valores para A e B são muito mais contínuos. Você pode escolher algum tipo de estatística que calcule o grau de discrição / continuidade, em vez de plotar. A parece não ser mais contínuo que B (para você, a configuração A é um pouco menos regular, mas meu gráfico de linhas parece não demonstrá-lo) ou, se não, talvez mostre um pouco outro padrão de valores IDc. Que outro padrão? Isso está além do escopo da minha resposta ainda. A grande questão é se A é de fato menos regular que B: pode ser para seus olhos, mas não necessariamente para a análise Procrustes ou para os olhos de outra pessoa.
A propósito, toda a permutação / Procrustes experimentei muito rapidamente. Usei minha própria macro de análise Procrustes para o SPSS (encontrada na minha página da web) e adicionei algumas linhas de código para fazer permutações.
fonte
A informação mútua, considerando cada dimensão como uma variável aleatória, portanto cada matriz como um conjunto de pares de números, deve ajudar em todos os casos, exceto em C, onde não tenho certeza do resultado.
Veja a discussão em torno da Fig 8 (começando na p24) sobre análise de desempenho de regressão no manual do TMVA ou na entrada arxiv correspondente .
fonte
Em vez de observar as propriedades globais do padrão (como simetrias), pode-se dar uma olhada nas locais, por exemplo, o número de vizinhos que cada pedra (= círculo preto) possui. Vamos denotar o número total de pedras por .s
Se as pedras foram jogadas aleatoriamente, a distribuição dos vizinhos é que é a densidade das pedras. O número de lugares depende se uma pedra estiver no interior ( ), na borda ( ) ou no canto .
É claramente visível que a distribuição de vizinhos em C) , D) e E) está longe de ser aleatória. Por exemplo, para D) todas as pedras interiores têm exatamente vizinhos (opostos à distribuição aleatória, que rende em vez de medido ).4 ≈(0%,2%,9%,20%,27%,24%,13%,4%,0%) (0%,0%,0%,0%,100%,0%,0%,0%,0%)
Portanto, para quantificar se um padrão é aleatório, você precisa comparar sua distribuição de vizinhos e compará-la com uma aleatória . Por exemplo, você pode comparar suas médias e variações.Pmeasured(k|n) Prand,p(k|n)
Como alternativa, é possível medir suas distâncias nos espaços funcionais, por exemplo: onde é a razão medida de pontos com espaços adjacentes e é o previsto para um padrão aleatório, ou seja, , e .
fonte
Existe uma maneira realmente simples de conceituar o conteúdo de informações que remonta à idéia de Shannon (admitidamente unidimensional) usando probabilidades e probabilidades de transição para encontrar uma representação menos redundante de uma sequência de texto. Para uma imagem (neste caso particular, uma imagem binária definida em uma matriz quadrada), podemos reconstruir exclusivamente a partir de um conhecimento das derivadas x e y (-1,0, + 1). Podemos definir uma probabilidade de transição 3x3 e uma função de densidade de probabilidade global, também 3x3. A informação de Shannon é então obtida a partir da fórmula clássica de soma logarítmica aplicada sobre 3x3. Esta é uma medida de informações de Shannon de segunda ordem e captura bem a estrutura espacial no pdf 3x3.
Essa abordagem é mais intuitiva quando aplicada a imagens em escala de cinza com mais de 2 níveis (binários), consulte https://arxiv.org/abs/1609.01117 para obter mais detalhes.
fonte
Ao ler isso, duas coisas vêm à mente. A primeira é que muitas das propriedades da gestalt são bastante difíceis de prever, e muito trabalho no nível de doutorado é utilizado para tentar descobrir modelos de como os agrupamentos ocorrem. Meu instinto é que as regras mais fáceis que você pode imaginar acabarão com exemplos contrários.
Se você pode deixar de lado a descrição dos agrupamentos da gestalt por enquanto, acho que uma abstração útil é pensar na sua entrada como um caso especial de uma imagem. Existem muitos algoritmos na visão computacional que visam atribuir uma assinatura a uma imagem com base em um conjunto de recursos que são invariáveis em escala e invariantes em termos de escala. Eu acho que os mais conhecidos são os recursos do SIFT:
http://en.wikipedia.org/wiki/Scale-invariant_feature_transform
Basicamente, sua saída será um novo vetor que fornece os pesos para esses recursos. Você pode usar esse vetor e aplicar uma heurística a ele (encontrar a norma, talvez) e torcer para que ele descreva o que você está procurando. Como alternativa, você pode treinar um classificador para usar o vetor de característica como entrada e apenas dizer qual é a sua impressão sobre sua 'entropia'. A vantagem disso é que ele usará os recursos SIFT apropriados (que são definitivamente um exagero para o seu problema) e criará algum tipo de mapeamento que pode muito bem ser apropriado. A desvantagem é que você precisa fazer muito disso rotulando a si mesmo, e o que obtém pode ser mais difícil de interpretar, dependendo do classificador usado.
Espero que isto seja útil! Muitos algoritmos tradicionais de visão por computador também podem ser apropriados para você aqui - uma rápida navegação pela wikipedia nesse portal pode fornecer algumas informações adicionais.
fonte
Seus exemplos me lembram as tabelas da verdade da álgebra booleana e dos circuitos digitais. Nesse domínio, os mapas de Karnaugh (http://en.wikipedia.org/wiki/Karnaugh_map) podem ser usados como uma ferramenta para fornecer a função booleana mínima para expressar toda a grade. Como alternativa, o uso de identidades de álgebra booleana pode ajudar a reduzir a função para sua forma mínima. Contar o número de termos na função booleana minimizada pode ser usado como sua medida de entropia. Isso fornece simetria vertical e horizontal junto com a compressão de vizinhos adjacentes, mas falta simetria diagonal.
Usando álgebra booleana, os dois eixos são rotulados de AE começando no canto superior esquerdo. Dessa maneira, o exemplo C seria mapeado para a função booleana (! A &! E). Para outros exemplos, os eixos precisariam ser rotulados separadamente (ou seja, AE, FJ).
fonte