Измерение энтропии / информации / паттернов двумерной двоичной матрицы


53

Я хочу измерить энтропию / плотность информации / подобие шаблона двумерной двоичной матрицы. Позвольте мне показать некоторые фотографии для уточнения:

Этот дисплей должен иметь довольно высокую энтропию:

A)

введите описание изображения здесь

Это должно иметь среднюю энтропию:

B)

введите описание изображения здесь

Эти фотографии, наконец, должны иметь почти нулевую энтропию:

C)

введите описание изображения здесь

D)

введите описание изображения здесь

E)

введите описание изображения здесь

Есть ли какой-то индекс, который отражает энтропию? "образец подобия" этих дисплеев?

Конечно, каждый алгоритм (например, алгоритмы сжатия или алгоритм поворота, предложенный ttnphns ) чувствителен к другим функциям дисплея. Я ищу алгоритм, который пытается захватить следующие свойства:

  • Вращательная и осевая симметрия
  • Количество кластеров
  • Повторы

Возможно, более сложный алгоритм может быть чувствительным к свойствам психологического « принципа Гештальта », в частности:

  • Закон близости: закон близости
  • Закон симметрии: симметричные изображения воспринимаются коллективно, даже несмотря на расстояние:симметрия

Дисплеи с этими свойствами должны получить «низкое значение энтропии»; дисплеям с довольно случайными / неструктурированными точками следует присвоить «высокое значение энтропии».

Я знаю, что, скорее всего, ни один алгоритм не сможет охватить все эти функции; поэтому предложения для алгоритмов, которые касаются только некоторых или даже только одной функции, также приветствуются.

В частности, я ищу конкретные, существующие алгоритмы или конкретные, реализуемые идеи (и я буду награждать награду в соответствии с этими критериями).


Классный вопрос! Могу ли я спросить, что мотивирует необходимость одной меры? Ваши три свойства (симметрия, кластеризация и повторения) на их лице кажутся достаточно независимыми, чтобы требовать отдельных мер.
Энди W

Пока я немного скептик, что вы можете найти универсальный алгоритм, который реализует принцип гештальта. Последнее основано главным образом на признании ранее существующих прототипов. Ваш разум может иметь это, а ваш компьютер - нет.
ttnphns

Я согласен с вами обоими. На самом деле я не искал ни одного алгоритма - хотя моя предыдущая формулировка действительно предлагала это. Я обновил вопрос, чтобы явно разрешить алгоритмы для отдельных свойств. Может быть, у кого-то есть также идеи о том, как объединить выходные данные нескольких алгоритмов (например, «всегда принимать наименьшее значение энтропии из набора алгоритмов»)
Феликс С.

1
Баунти окончен . Спасибо всем авторам и отличным идеям! Эта награда породила кучу интересных подходов. Несколько ответов содержат много работы мозга, и иногда жаль, что награды не могут быть разделены. Наконец, я решил присудить вознаграждение @whuber, поскольку его решением был алгоритм, который мне показался наиболее полным в отношении функций, которые он захватывает, и, как его легко реализовать. Я также ценю, что это было применено к моим конкретным примерам. Самым впечатляющим было умение присваивать цифры в точном порядке моего «интуитивного рейтинга». Спасибо, Ф
Феликс С

Ответы:


35

Существует простая процедура, которая захватывает всю интуицию, включая психологические и геометрические элементы. Он опирается на использование пространственной близости , которая является основой нашего восприятия и обеспечивает внутренний способ уловить то, что только несовершенно измеряется симметриями.

Для этого нам нужно измерить «сложность» этих массивов в разных локальных масштабах. Хотя у нас есть большая гибкость в выборе этих шкал и в том смысле, в котором мы измеряем «близость», это достаточно просто и достаточно эффективно, чтобы использовать небольшие квадратные окрестности и смотреть на средние (или, что эквивалентно, суммы) в них. С этой целью последовательность массивов может быть получена из любого массива на путем формирования сумм движущихся окрестностей с использованием на окрестности, затем на и т. Д. До на (хотя к тому времени обычно слишком мало значений, чтобы обеспечить что-либо надежное).mnk=2233min(n,m)min(n,m)

Чтобы увидеть, как это работает, давайте сделаем вычисления для массивов в вопросе, который я назову от до , сверху вниз. Вот графики движущихся сумм для ( конечно, - исходный массив), примененных к .a1a5k=1,2,3,4k=1a1

фигура 1

По часовой стрелке слева вверху равно , , и . Массивы составляют на , затем на , на и на соответственно. Все они выглядят как бы «случайными». Давайте измерим эту случайность с их энтропией по основанию-2. Для последовательность этих энтропий равна . Давайте назовем это «профиль» .k124355442233a1(0.97,0.99,0.92,1.5)a1

Здесь, напротив, скользящие суммы :a4

фигура 2

Для наблюдается небольшая вариация, поэтому низкая энтропия. Профиль . Его значения постоянно ниже, чем значения для , подтверждая интуитивное ощущение наличия сильного «паттерна» в .k=2,3,4(1.00,0,0.99,0)a1a4

Нам нужна система координат для интерпретации этих профилей. Совершенно случайный массив двоичных значений будет иметь примерно половину своих значений, равных а другая половина - для энтропии . Движущиеся суммы в пределах по окрестности будут иметь тенденцию иметь биномиальные распределения, давая им предсказуемые энтропии (по крайней мере, для больших массивов), которые могут быть аппроксимированы :011kk1+log2(k)

Энтропийный сюжет

Эти результаты подтверждаются моделированием с массивами до . Однако они разбиваются для небольших массивов (таких как массивы на здесь) из-за корреляции между соседними окнами (когда размер окна составляет примерно половину размеров массива) и из-за небольшого объема данных. Вот эталонный профиль случайных на массивов, сгенерированных симуляцией вместе с графиками некоторых реальных профилей:m=n=1005555

Участки профиля

На этом графике ссылочный профиль сплошного синего цвета. Профили массива соответствуют : красный, : золотой, : зеленый, : голубой. (Включение приведет к изображения, поскольку оно близко к профилю .) В целом, профили соответствуют порядку в вопросе: они уменьшаются при большинстве значений при увеличении видимого порядка. Исключение составляет : до конца при его движущие суммы имеют тенденцию иметь одну из самых низких энтропий. Это показывает удивительную закономерность: каждые на соседства вa1a2a3a4a5a4ka1k=422a1 имеет ровно или черных квадрата, никогда больше или меньше. Это гораздо менее «случайно», чем можно подумать. (Это отчасти связано с потерей информации, которая сопровождает суммирование значений в каждой окрестности, процедура, которая объединяет возможных конфигураций окрестности в просто различных возможных сумм. Если мы хотим учесть конкретно для кластеризации и ориентации в каждой окрестности, вместо использования движущихся сумм, мы использовали бы движущиеся конкатенации, то есть каждая окрестность на имеет122k2k2+1kk2k2возможные разные конфигурации; различая их все, мы можем получить более точную меру энтропии. Я подозреваю, что такая мера поднимет профиль по сравнению с другими изображениями.)a1

Этот метод создания профиля энтропий в контролируемом диапазоне масштабов путем суммирования (или объединения, или иного объединения) значений в движущихся окрестностях использовался при анализе изображений. Это двумерное обобщение хорошо известной идеи анализа текста сначала в виде серии букв, затем в виде последовательности графов (двухбуквенных последовательностей), затем в виде триграфов и т. Д. Оно также имеет некоторые очевидные связи с фракталом. анализ (который исследует свойства изображения в более мелких и более мелких масштабах). Если мы позаботимся о том, чтобы использовать блочную скользящую сумму или конкатенацию блоков (чтобы между окнами не было перекрытий), можно получить простые математические зависимости между последовательными энтропиями; тем не мение,

Возможны различные расширения. Например, для профиля, инвариантного к вращению, используйте круговые окрестности, а не квадратные. Конечно, все обобщается, кроме двоичных массивов. С достаточно большими массивами можно даже вычислить локально изменяющиеся профили энтропии, чтобы обнаружить нестационарность.

Если требуется одно число, а не весь профиль, выберите масштаб, в котором пространственная случайность (или ее отсутствие) представляет интерес. В этих примерах эта шкала лучше всего соответствует движущейся окрестности на или на , потому что для их формирования паттернов они все используют группировки, охватывающие от трех до пяти ячеек (а соседство на просто усредняет все вариации в массив и так бесполезен). На последнем масштабе, энтропии для через являются , , , , и334455a1a51.500.81000 ; ожидаемая энтропия в этом масштабе (для равномерно случайного массива) составляет . Это оправдывает ощущение, что «должно иметь довольно высокую энтропию». Чтобы различить , и , которые связаны с энтропией в этом масштабе, рассмотрим следующее более точное разрешение ( на окрестности): их энтропии равны , , соответственно (тогда как ожидается, что случайная сетка имеют значение ). Посредством этих мер исходный вопрос размещает массивы в правильном порядке.1.34a1a3a4a50331.390.990.921.77


Извините, я не мог понять, как вы подготовили свои графики движущихся сумм. Пожалуйста, объясните более подробно, как рассчитать скользящую сумму.
ttnphns

1
@ttnphns Вот популярная иллюстрированная страница справки по теме.
whuber

4
Я воспроизвел результаты этого превосходного ответа @whuber, используя NumPy и matplotlib на Python, доступные здесь: github.com/cosmoharrigan/matrix-entropy
Cosmo Harrigan

(+1) Вот очень общий принцип: с любым мультимножеством существует естественно связанная энтропия распределения вероятностей, определяемая кратностью его различных элементов , а именно , где представляет собой множество различных элементов в . Примеры являются мультимножеством , образованным размерны окрестностями различной формы в объектах различных размеров. (Я только что опубликовал 1D-приложение для подстрок длины- .)Mμ(e)ep(e):=μ(e)eSμ(e)  (eS)SMkk
res

@whuber Отличный ответ. В то время как это имеет интуитивный смысл, есть ли статья или учебник, на которые можно ссылаться для первоначального происхождения этого (я предполагаю, что, если это ваша оригинальная работа, вы официально опубликовали ее в журнале)?
Subhacom

10

Во-первых, мое предложение чисто интуитивное: я ничего не знаю в области распознавания образов. Во-вторых, могут быть сделаны альтернативные десятки предложений, подобных моему.

Я начинаю с идеи, что регулярная конфигурация (то есть с низкой энтропией) должна быть как-то симметричной, изоморфной тому или иному ее трансформанту. Например, в поворотах.

Вы можете поворачивать (поворачивать на 90 градусов, затем на 180 градусов и т. Д.) Матрицу, пока конфигурация не совпадет с исходной . Он всегда будет совпадать при 4 поворотах (360 градусов), но иногда он может совпадать и раньше (как матрица E на рисунке).

При каждом повороте подсчитайте количество ячеек с не одинаковыми значениями между исходной конфигурацией и повернутой. Например, если вы сравните исходную матрицу A с ее поворотом на 90 градусов, вы обнаружите 10 ячеек, в которых есть пятна в одной матрице и пробелы в другой матрице. Затем сравните исходную матрицу с ее поворотом на 180 градусов: будет найдено 11 таких ячеек. 10 ячеек - это несоответствие между исходной матрицей А и ее поворотом на 270 градусов. 10 + 11 + 10 = 31 является общей "энтропии" матрицы A .

Для матрицы B «энтропия» равна 20, а для матрицы E - только 12. Для матриц C и D «энтропия» равна 0, поскольку вращения прекращаются после 90 градусов: изоморфизм уже достигнут.

введите описание изображения здесь


Спасибо за ваше предложение! Хотя я мог бы подумать о нескольких «простых» дисплеях, которые не являются инвариантными к преобразованию вращения, это хороший и простой (и расширяемый!) Подход. Я должен подумать о том, какого рода преобразования я хотел бы получить. И мне нравится ваш подход подсчета очков в каждой трансформации.
Феликс С

Спасибо за благодарность. Но этот подход - просто начальная заглушка, общая идея, и вы правы, говоря, что это расширяемый.
ttnphns

Мне нравится ваш подход. Однако, чтобы получить более общий ответ, возможно, стоит взять немного большую группу симметрии - идентичность, 3 поворота и 4 отражения (т.е. , en.wikipedia.org/wiki/Dihedral_group ). Затем посчитайте различия ( ) между всеми парами (т.е. ) и как меру случайности , где - количество черных камней. Для чисто случайных форм нужно получить , а для очень симметричных . Хорошо, что формула справедлива для разного числа камней на доске и имеет симметрию BW. D4d87r=k187252n(25n))nr1r0r
Петр Мигдаль

Извините за усложнение. Достаточно сравнить исходные образцы с симметриями, отличными от идентичности. Тогда в фактор нормализации есть вместо . 7778
Петр Мигдаль

5

Информация обычно определяется как . Существует некоторая теория хорошо объяснить , что является количество бит , вам нужно закодировать с помощью . Если вы хотите узнать больше об этом, прочитайте арифметическое кодирование .h(x)=logp(x)log2p(x)xp

Так как это может решить вашу проблему? Легко. Найдите какой-нибудь , представляющий ваши данные, и используйте где - это новый образец в качестве меры неожиданности или информации о встрече с ним.plogp(x)x

Трудно найти модель для и сгенерировать ваши данные. Может быть, вы можете придумать алгоритм, который генерирует матрицы, которые вы считаете «вероятными».p

Несколько идей по примерке .p

  1. Если вы просматриваете только матрицы 5x5, вам нужно всего бит для хранения всех возможных матриц, так что вы можете просто перечислить все из них и назначить определенную вероятность каждой.225
  2. Используйте ограниченную машину Больцмана, чтобы соответствовать вашим данным (тогда вам придется использовать свободную энергию в качестве замены информации, но это нормально),
  3. Используйте zip вместо и не заботьтесь обо всей вероятностной истории сверху. Это даже формально хорошо, потому что вы используете zip как приближение к колмогоровской сложности, и это было сделано теоретиками информации, а также привело к нормализованному расстоянию сжатия ,logp(x)
  4. Возможно, используйте графическую модель, чтобы включить пространственные априорные убеждения и использовать переменные Бернулли локально.
  5. Чтобы закодировать трансляционную инвариантность, вы можете использовать модель, основанную на энергии, используя сверточную сеть .

Некоторые из представленных выше идей довольно тяжелы и происходят из машинного обучения. Если вы хотите получить дальнейшие советы, просто используйте комментарии.


Очевидно, что энтропия Колмогорова - это лучший подход, с философской точки зрения, если вы думаете о «простоте абстрактного паттерна» и не пытаетесь предсказать, насколько простым он станет для человеческого разума. Он просто заявляет энтропию как «длину самой короткой программы, которая может создать этот шаблон». Конечно, вам все еще нужно указать компьютерный язык, но вы все равно можете полагаться на абстрактную машину Тьюринга, чтобы сыграть свою роль.
Хавьер Родригес Лагуна

Язык программирования не очень важен. Дополнительная часть программы, компилируемой с языка A на язык B, будет постоянно увеличиваться (компилятор) и, таким образом, ею можно пренебречь.
Bayerj

4

Мое следующее предложение скорее проницательно, чем выведено, поэтому я не могу доказать это, но могу хотя бы предложить какое-то обоснование. Процедура оценки «энтропии» конфигурации пятен включает в себя:

  1. Оцифровать пятна.
  2. Выполните сравнение конфигурации с самим собой, многократно переставленным, путем анализа ортогональных прокрустов .
  3. Построить результаты сравнений (коэффициент идентичности) и оценить зазубренность участка.

Оцифруйте пятна , то есть возьмите их координаты. Например, ниже приведена конфигурация D с пронумерованными точками (порядок нумерации может быть произвольным) и их координатами. введите описание изображения здесь

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

Делайте перестановки и выполняйте анализ Прокруста. Пермутируйте пятна (строки в данных) случайным образом и выполняйте сравнение Procrustes исходных (не переставленных) данных с переставленными; записать коэффициент идентичности (мера сходства двух конфигураций, выводимая анализом). Повторите перестановку - Procrustes - многократно сохраняя коэффициент (например, 1000 или более раз).

Что мы можем ожидать от единичных коэффициентов (IDc), полученных после вышеуказанной операции на регулярной структуре?Рассмотрим, например, приведенную выше конфигурацию D. Если мы сравним исходный набор координат с самим собой, мы, конечно, получим IDc = 1. Но если мы переставим некоторые пятна, то IDc между исходным набором и переставленным будет иметь значение ниже 1. Давайте переставим, например, одну пару пятен, помеченных 1 и 4. IDc = .964. Теперь вместо этого поменяйте местами 3 и 5. Интересно, что IDc снова будет 0,964. То же значение, почему? Точки 3 и 5 симметричны 1 и 4, поэтому поворот на 90 градусов накладывает их. Сравнение прокрустов нечувствительно к вращению или рефлексии, и, таким образом, перестановка в паре 1-4 является "такой же", как перестановка в паре 5-3, для него. Чтобы добавить еще пример, если вы переставляете только пятна 4 и 7, IDc будет снова 0,964! Похоже, что для Прокруста, перестановка в паре 4-7 "то же самое" как вышеупомянутые два в том смысле, что он дает ту же степень сходства (как измерено IDc). Очевидно, это все потому, что конфигурация D регулярна.Для обычной конфигурации мы ожидаем получить довольно дискретные значения IDc в нашем эксперименте по перестановке / сравнении; в то время как для неправильной конфигурации мы ожидаем, что значения будут иметь тенденцию быть непрерывными.

Построить записанные значения IDc. Например, отсортируйте значения и составьте линейный график. Я провел эксперимент - 5000 перестановок - с каждой из ваших конфигураций A, B (обе довольно неправильные), D, E (обе регулярные) и вот линейный график:

введите описание изображения здесь

Обратите внимание, насколько неровными являются линии D и E (особенно D). Это из-за дискретности значений. Значения для A и B намного более непрерывны. Вы можете выбрать себе какую-то статистику, которая оценивает степень дискретности / непрерывности, вместо построения графика. A кажется не более непрерывным, чем B (для вас конфигурация A несколько менее регулярна, но мой линейный график, кажется, не демонстрирует это) или, если нет, возможно, демонстрирует немного другой шаблон значений IDc. Какой еще шаблон? Это выходит за рамки моего ответа еще. Большой вопрос, является ли A действительно менее регулярным, чем B: это может быть для вашего глаза, но не обязательно для анализа Прокруста или глаза другого человека.

Кстати, весь эксперимент по перестановке / прокрусту я проделал очень быстро. Я использовал свой собственный макрос анализа Procrustes для SPSS (находится на моей веб-странице) и добавил несколько строк кода для выполнения перестановок.


3

Взаимная информация, рассматривающая каждое измерение как случайную величину, то есть каждую матрицу как набор пар чисел, должна помочь во всех случаях, кроме C, где я не уверен в результате.

См. Обсуждение на рис. 8 (начиная с p24) анализа эффективности регрессии в руководстве TMVA или соответствующей записи в arxiv .

Разные метрики для разных распределений


У меня проблемы с открытием связанного документа.
ttnphns

Добавлена ​​альтернативная ссылка. Но первый работает для меня (только что протестирован).
adavid

3

Вместо того, чтобы смотреть на глобальные свойства шаблона (такие как симметрии), можно взглянуть на локальные, например, на число соседей каждого камня (= черный круг). Обозначим общее количество камней через .s

Если камни выброшены случайным образом, то распределение соседей будет где - плотность камней. Количество мест зависит от того, находится ли камень внутри ( ), на краю ( ) или на углу .

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

Хорошо видно, что распределение соседей в C) , D) и E) далеко не случайно. Например, для D) все внутренние камни имеют ровно соседа (в противоположность случайному распределению, которое дает в вместо измеренных ).4(0%,2%,9%,20%,27%,24%,13%,4%,0%)(0%,0%,0%,0%,100%,0%,0%,0%,0%)

Таким образом, чтобы определить, является ли шаблон случайным, вам нужно сравнить распределение соседей и сравнить его со случайным . Например, вы можете сравнить их средства и отклонения.Pmeasured(k|n)Prand,p(k|n)

Кроме того, можно измерить их расстояния в функциональных пространствах, например: где - это измеренное соотношение точек с соседние пробелы и - это предсказанный случайный паттерн, то есть , и .

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

Существует действительно простой способ концептуализации информационного контента, который восходит к идее Шеннона (предположительно одномерного), используя вероятности и вероятности перехода, чтобы найти наименее избыточное представление текстовой строки. Для изображения (в данном конкретном случае двоичного изображения, определенного на квадратной матрице) мы можем однозначно восстановить из знания производных x и y (-1,0, + 1). Мы можем определить вероятность перехода 3x3 и глобальную функцию плотности вероятности, также 3x3. Информация Шеннона затем получается из классической формулы логарифмического суммирования, применяемой в 3x3. Это информационная мера Шеннона второго порядка, которая хорошо отражает пространственную структуру в формате PDF 3х3.

Этот подход более интуитивно понятен при применении к изображениям в градациях серого с более чем 2 (двоичными) уровнями, см. Подробности на https://arxiv.org/abs/1609.01117 .


1

Читая это, две вещи приходят на ум. Во-первых, многие свойства гештальта довольно сложно предсказать, и большая часть работы на уровне PhD направлена ​​на выяснение моделей того, как происходит группировка. Мой инстинкт состоит в том, что самые простые правила, о которых вы могли подумать, заканчиваются контрпримерами.

Если вы можете пока оставить в стороне описание гештальт-группировок, я думаю, что полезной абстракцией будет думать о ваших входных данных как о частном случае изображения. В компьютерном зрении существует множество алгоритмов, которые стремятся назначить подпись изображению на основе набора функций, которые являются масштабно-инвариантными и объектно-инвариантными. Я думаю, что наиболее известными являются функции SIFT:

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

В основном ваш вывод будет новым вектором, который дает вес для этих функций. Вы можете использовать этот вектор и применить к нему эвристику (возможно, найти норму) и надеяться, что он описывает то, что вы ищете. В качестве альтернативы, вы можете обучить классификатор, чтобы принимать вектор признаков в качестве входных данных и просто сказать ему, каково ваше впечатление от его «энтропии». Преимущество этого в том, что он будет использовать соответствующие функции SIFT (которые определенно излишни для вашей проблемы) и создаст какое-то отображение, которое вполне может быть уместным. Недостатком является то, что вам придется делать большую часть этой маркировки самостоятельно, и то, что вы получите, может быть сложнее интерпретировать, в зависимости от используемого вами классификатора.

Я надеюсь, что это полезно! Здесь вам также может пригодиться множество традиционных алгоритмов компьютерного зрения - быстрый просмотр википедии на этом портале может дать вам дополнительную информацию.


0

Ваши примеры напоминают мне таблицы истинности из булевой алгебры и цифровых схем. В этой области карты Карно (http://en.wikipedia.org/wiki/Karnaugh_map) можно использовать как инструмент для предоставления минимальной логической функции для выражения всей сетки. Кроме того, использование тождеств булевой алгебры может помочь свести функцию к ее минимальной форме. Подсчет количества членов в свернутой булевой функции может быть использован в качестве меры энтропии. Это дает вам вертикальную и горизонтальную симметрию вместе со сжатием соседних соседей, но не имеет диагональной симметрии.

Используя булеву алгебру, обе оси помечены как AE, начиная с верхнего левого угла. Таким образом, пример C будет отображаться в булеву функцию (! A &! E). В других примерах оси должны быть помечены отдельно (т.е. AE, FJ).


0

Я хотел бы указать ранг матрицы, используемой в факторизации двоичной матрицы в качестве показателя энтропии. Хотя точное вычисление является NP-сложным , ранг может быть оценен за O (log2n) времени .

Я также хотел бы просто отметить, что сравнение с 3 вращениями и 4 отражениями имеет реальный недостаток.

Для матрицы с нечетным числом строк / столбцов будет центральная строка или столбец, которые будут перекрываться с исходными данными в поворотах / отражениях, что приведет к уменьшению величины энтропии.

Кроме того, для отражения в положении 90 и 270 градусов все диагонали будут перекрываться, что также снижает энтропию. Таким образом, эта потеря должна быть учтена.

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.