Защо тези изображения имат еднаква ентропия?

Защо тези две изображения имат еднаква ентропия?

Тези изображения са създадени в MATLAB, както следва:

N = 50;
Z1 = randi([0 1],N);
Z2 = zeros(N);
Z2(1:2:N,1:2:N) = 1;
Z2(2:2:N,2:2:N) = 1;
subplot(1,2,1)
imshow(Z1,'InitialMagnification',800)
subplot(1,2,2)
imshow(Z2,'InitialMagnification',800);

И тяхната "ентропия" се изчислява като:

entropy(Z1)
entropy(Z2)

което води до 1,0000.

В помощта се казва, че ентропията е равна на -sum(p.*log2(p)), където p е броячът, върнат от imshist. Трудно ми е да повярвам, че тези снимки имат същото „количество произволност“, тъй като виждаме, че едната от тях е силно подредена, докато другата е напълно произволна. Какво от това?


person Filippo Pannavich    schedule 01.09.2014    source източник
comment
Никога не съм използвал тези команди, но p е количество, което се извлича от imhist ми звучи така, сякаш ентропията се определя спрямо цветовете. В този случай няма значение къде са разположени пикселите. Ако не сте сигурни какво имам предвид, вижте резултата от imhist.   -  person fuesika    schedule 01.09.2014


Отговори (1)


Това е така, защото функцията entropy изчислява нулева порядък1 (емпирична) ентропия. Това означава, че пикселите се разглеждат по изолиран начин, без да се сравняват с околните пиксели.

Така структурата, която виждате във второто изображение (цветът на пиксел зависи от околните пиксели), не се взема под внимание. По-скоро изчислението взема предвид само пропорцията (както се връща от imhist) на черните и белите пиксели; и тази пропорция е приблизително еднаква и в двете изображения.

Можете да го видите и по следния начин: пространствената структура се губи, когато изчислявате ентропията (от нулев порядък), точно както пространствената връзка между пикселите се губи, когато изчислявате хистограмата на изображението.

Като странична бележка, получената ентропия всъщност е малко по-малка от 1 в Z1 с голяма вероятност, тъй като ентропията от нулев порядък е максимална, когато пропорцията е точно 1/2. Опитайте с format long и ще видите нещо като:

>> format long
>> entropy(Z1)
ans =
   0.999663421925701
>> entropy(Z2)
ans =
     1

1 Това може също да се нарече ентропия от първи ред. Наричането му „нулев порядък“ има смисъл от гледна точка на Марковските вериги, тъй като веригата на Марков от нулев порядък произвежда статистически независими стойности. От друга страна, името "първи ред" има смисъл от гледна точка на статистическите разпределения. Разпределението от първи ред на случаен процес определя вероятностите за възможните стойности в даден момент/позиция, без да отчита статистическата връзка със стойностите в други моменти/позиции.

person Luis Mendo    schedule 01.09.2014
comment
Благодаря ти! Да, тези изображения са само за да обясня мислите си. Анализирах времеви серии и ентропията се счита за мярка за сложност. Изчислява се като скорост на -log на повторение на определени модели с дължина N при повторение на определени модели с дължина N + 1 в сигнала. Това не изглежда дори близо до това (въпреки че се нарича ентропия), всъщност ентропията трябва да ни помогне да разграничим произволното съдържание от високо (или по-високо) информативно съдържание; тогава има ли начин да се вземе предвид повторението на пространствените модели? - person Filippo Pannavich; 01.09.2014
comment
Знам само общото определение за 1D-процес (времева серия), което е това, което споменавате. Разширението към 2D изглежда концептуално лесно, но може да е трудно за изпълнение. Не знам за нито една вградена функция на Matlab, която изчислява дори истинската ентропия в 1D случай - person Luis Mendo; 01.09.2014