Różnorodność i entropia

Różnorodność układu to liczba możliwych (do obserwacji) stanów układu.

r - będzie oznaczało różnorodność

n - będzie oznaczało liczbę elementów

k - będzie oznaczało liczbę stanów elementu

Musimy wziąć oczywiście pod uwagę rozróżnialność elementów.

Naty, dity, hartleye i inne

Nat (nit)

Miarą różnorodności jest logarytm naturalny (przy podstawie e) z liczby stanów.

r=lnW

gdzie 'r' oznacza różnorodność, a 'W' oznacza liczbę rozróżnialnych stanów.

Jeżeli liczba stanów wynosi 5 to: natów.

Dit (ban, hartley)

Jeżeli podzielimy to otrzymamy logarytm dziesiętny z x.

Jeżeli liczba stanów wynosi 5 to ditów.

Bit (shannon)

Jeżeli podzielimy to otrzymamy logarytm z x przy podstawie 2.

Jeżeli liczba stanów wynosi 5 to bitów.

Bit jest najczęściej używaną jednostką różnorodności.

Przeliczanie

z \ na nat dit bit
nat -
dit -
bit -

Trochę obliczeń

Obliczenia przeprowadzamy w bitach.

Różnorodność płci

n = 1 (płeć). Elementy są rozróżnialne.

k = 2 (męska, żeńska). Stany są rozróżnialne.

Wynik oznacza, że jeżeli wybierzemy na ślepo jakąś osobę z tłumu, to żeby opisać jej płeć (rozwiać swoją wątpliwość) potrzebujemy uzyskać odpowiedż na tylko jedno pytanie: "Czy to kobieta? (zakładam, że nie trafiliśmy na obojnaka - wtedy k byłoby inne). Odpowiedź będzie 'tak' albo 'nie', czyli '0' albo '1'.

Różnorodność kart

Posługujemy się 52-kartową talią. Wybieramy 1 kartę.

n = 1 (karta). Elementy są rozróżnialne.

k = 52 (kolory × figury). Stany są odróżnialne.

Odpowiedź zaokrąglamy w górę, czyli otrzymujemy 6. Aby opisać jaką kartę wybraliśmy potrzebujemy 6 pytań. Możemy to sobie wyobrazić tak: karty są ponumerowane od 1 do 52. Załóżmy, że wybrana karta to nr 15. Pytania będą brzmiały:

Możemy to określić prościej. Do zapisania liczby 52 w postaci binarnej potrzeba 6 bitów:

Rzut dwiema monetami równocześnie

n = 2 (monety). Elementy nierozróżnialne.

k = 2 (orzeł, reszka). Elementy rozróżnialne.

W tym przypadku układ OR jest nierozróżnialny od układu RO, gdyż nic nie wiemy o kolejności wypadnięcia. Gdybyśmy rzucali monetami po kolei i kolejność była dla nas ważna musielibyśmy przyjąć, że monety (ze względu na kolejność rzutu) są odróżnialne. Wtedy oczywiście byłyby 22 = 4 możliwości.

Potrzebujemy odpowiedzi na dwa pytania: 1) pierwsza moneta?, 2) orzeł?

Rzut 2 kostkami do gry jednocześnie

n = 2 (kostka). Elementy nierozróżnialne.

k = 6 (jedna ze stron kostki). Elementy rozróżnialne.

Przyjmujemy tu, że nic nie wiemy o kolejności kostek, czy układ (6, 1) jest nieodróżnialny od układu (1, 6). Jeżeli rzucamy kośćmi kolejno i kolejność jest ważna, to musimy kostki uznać za rozróżnialne (ze względu na kolejność rzutu). Wtedy oczywiście będziemy mieli 62 = 36 możliwych wyników.

Do zapisania liczby 21 potrzebujemy 5 bitów, czyli do uzyskania odpowiedzi jaki jest wynik potrzebujemy 5 pytań.

Modelki

Jeżeli będziemy mieli modelki o:

to różnorodność możemy obliczyć:

n = 1 (modelka). Elementy odróżnialne.

Mamy 3 niezależne od siebie stany modelki (stany odróżnialne)

k1 = 71 (kolor oczu)

k2 = 41 (kolor skóry)

k3 = 81 (rodzaj fryzury)

Prawdopodobieństwo

Sygnalizator drogowy

n = 3 (lampa czerwona, lampa żółta, lampa zielona). Elementy odróżnialne.

k = 2 (zapalony, zgaszony). Stany odróżnialne.

Możliwe stany 'zapalenia':

W praktyce używa się tylko czterech:

Różnorodność pełna

Różnorodność wykorzystywana

Powyższe obliczenia są słuszne pod warunkiem, że prawdopodobieństwa wystąpienia (czas trwania światła w danym kolorze) są sobie równe. W tym wypadku prawdopodobieństwem jest prawdopodobieństwo stanu, jaki zastanie kierowca, gdy zobaczy sygnalizator. Jeżeli każdy z 4 czasów jest równy, prawdopodobieństwa stanów są równe, a nasze obliczenia są właściwe.

Nie jest to prawdą przy np. sygnalizatorze.

Załóżmy, że czas 'zapalenia' wynosi:

Przy takim układzie (prawdopodobieństwa nie są równe) nasze obliczenia nie są prawdziwe. Musimy użyć innego wzoru.

Entropia informatyczna

Gdy prawdopodobieństwa stanów nie są jednakowe wówczas używamy wzoru

gdzie:

S - oznacza entropię

a - jest pewną stałą, którą dla naszych celów przyjmujemy za równą 1

n - jest liczbą rozpoznawalnych stanów, czyli w tym przypadku 4

Σ - jest znakiem sumy elementów od i = 1 do i = n. W naszym przypadku zsumowane zostaną cztery elementy.

pi - jest prawdopodobieństwem wystąpienia i-tego stanu.

r - oznacza podstawę logarytmów i zwykle jest to '2'.

r = 2 (obliczenia w bitach) albo r = 10 (obliczenia w ditach)

Obliczamy prawdopodobieństwa:

stan czas trwania prawdopodobieństwo
stanu
zielone 25 25/60=0.42
zielone z żółtym 5 5/60=0.08
czerwone 25 25/60=0.42
żółte 5 5/60=0.08
Suma 60 1.00

Obliczenia przeprowadzamy w tabelce:

Obliczenie przebiega następująco:

stan prawdopodobieństwo
stanu p
zielone 0.42 -0.5256
zielone z żółtym 0.08 -0.2915
czerwone 0.42 -0.5256
żółte 0.08 -0.2915
Suma 1.00 -1.6342

Aby uniknąć liczb ujemnych można użyć wzoru w wersji:

Obliczenia wyglądają następująco:

Możemy oczywiście obliczyć S dla równych prawdopodobieństw:

stan prawdopodobieństwo
stanu p
zielone 0.25 -0.5
zielone z żółtym 0.25 -0.5
czerwone 0.25 -0.5
żółte 0.25 -0.5
Suma 1.00 -2.0

Potwierdza to nasz wcześniejszy wynik. Uproszczony wzór na różnorodność możemy stosować gdy prawdopodobieństwa stanów systemu są równe

Oczywiście, niewidomy kierowca potrzebuje 2 pytań, aby dowiedzieć się jakie światło pali się na sygnalizatorze.

Czarne i białe kule

Mamy 8 kul, w tym 4 białe i 4 czarne. Jaka jest różnorodność układu?

Gdy liczyliśmy różnorodność dla monet, kart, kostek, modelek, czy sygnalizatora drogowego, to wiedzieliśmy wszystko o elementach i ich możliwych stanach. Gdy napotykamy np. kule, nic nie wiemy ani o elementach, ani o ich stanach.

Czy mamy osiem elementów (kul) o 2 możliwych stanach (biały czarny), czy mamy dwa układy po cztery elementy, w których każdy element ma 1 możliwy stan?

A może jest to osiem niezależnych kul, z których każda ma inną liczbę możliwych stanów (kolorów),a tylko przypadkowo znajdują się akurat w podobnych stanach?

Oczywiście nie wiemy. Możemy zatem policzyć entropię (różnorodność) dla aktualnego stanu układu.

Wynik wskazuje wyraźnie na to, że ponieważ mamy tylko 1 pytanie mamy do czynienia z dwoma niezależnymi układami po 4 kule i wybieram jeden z tych układów: czarne, czy białe?

Czarne i białe kule 2

Mamy 9 kul, w tym 5 białych i 4 czarne. Jaka jest różnorodność układu?

Wniosek jest podobny do podanego nieco wyżej. Wybieramy między jednym, a drugim układem.

Entropia wiadomości

Załóżmy, że mamy wiadomość:

To jest wiadomość testowa

Nasza wiadomość ma długość n = 25 znaków razem ze spacjami

Prawdopodobieństwo na znak = 1.0/25=0.04. Niektóre litery powtarzają się. Wartości dla nich dodajemy i otrzymujemy tabelkę:

Znak p
spacja 0.12 -0.3671
a 0.08 -0.2915
d 0.04 -0.1858
e 0.08 -0.2915
i 0.04 -0.1858
j 0.04 -0.1858
m 0.04 -0.1858
o 0.16 -0.423
s 0.08 -0.2915
t 0.16 -0.423
w 0.08 -0.2915
ć 0.04 -0.1858
ś 0.04 -0.1858
Suma 1.0 -3.4937

S = -1*3.4937 = 3.4937 bitów/znak

Ponieważ liczba bitów jest zawsze liczbą całkowitą wynik zawsze zaokrąglamy w gorę, czyli S = 4.

Ta wartość oznacza, że jeśli chcielibyśmy zakodować wiadomość symbolami w systemie dwójkowym to na każdy znak potrzeba 4 bitów, a do zakodowania wiadomości 4 x 25 = 100 bitów.

Entropia oznacza też, że gdybyśmy zadawali pytania 'tak - nie' to potrzebowalibyśmy 4 pytań, aby dowiedzieć się o dany znak w wiadomości (zakładając, że jest ktoś kto zna odpowiedź :-)):

Entropia metryczna

gdzie:

L jest liczbą znaków w wiadomości

Dzięki temu można porównywać ze sobą wiadomości o różnej długości.

Według informacji na stronie Wikipedii (hasło: 'Entropia metryczna') zachodzi co następuje:

Jest to nieprawdą. Entropia metryczna faktycznie zachowuje się tak:

Polecenia programu

		System.out.println(InfoUtil.messageEntropy2("a") / 1.0);
		System.out.println(InfoUtil.messageEntropy2("aaaaa") / 5.0);
		System.out.println(InfoUtil.messageEntropy2("aaaaaaaaaa") / 10.0);
		System.out.println("------------------");
		System.out.println(InfoUtil.messageEntropy2("ab") / 2.0);
		System.out.println(InfoUtil.messageEntropy2("abc") / 3.0);
		System.out.println(InfoUtil.messageEntropy2("abcd") / 4.0);
		System.out.println(InfoUtil.messageEntropy2("abcde") / 5.0);
		System.out.println(InfoUtil.messageEntropy2("abcdefghij") / 10.0);
		System.out.println(InfoUtil.messageEntropy2("abcdefghijklmnopqrstuvwxyz") / 26.0);
		System.out.println(InfoUtil.messageEntropy2("aąbcćdeęfghijklłmnńoópqrsśtuvwxyzżź") / 35.0);
		System.out.println("------------------");
		System.out.println(InfoUtil.messageEntropy2("ababbbabab") / 10.0);//2 znaki
		System.out.println(InfoUtil.messageEntropy2("abcbcaabcb") / 10.0);//3 znaki
		System.out.println(InfoUtil.messageEntropy2("abcdeabcde") / 10.0);//5 znaków
		System.out.println(InfoUtil.messageEntropy2("abcdefgcde") / 10.0);//7 znaków
		System.out.println(InfoUtil.messageEntropy2("abcdefghij") / 10.0);//10 znaków
		System.out.println("------------------");
		System.out.println(InfoUtil.messageEntropy2("ababbbababababa") / 15.0);//2 znaki
		System.out.println(InfoUtil.messageEntropy2("abcbcaabcbcbcba") / 15.0);//3 znaki
		System.out.println(InfoUtil.messageEntropy2("abcdeabcdeabcce") / 15.0);//5 znaków
		System.out.println(InfoUtil.messageEntropy2("abcdefgcdeedfga") / 15.0);//7 znaków
		System.out.println(InfoUtil.messageEntropy2("abcdefghijhiagc") / 15.0);//10 znaków
		System.out.println(InfoUtil.messageEntropy2("abcdefghijklmno") / 15.0);//15 znaków

Wynik na konsoli

-0.0
-0.0
-0.0
------------------
0.5
0.5283208335737187
0.5
0.46438561897747244
0.3321928094887362
0.1807861430054266
0.14655094334128468
------------------
0.09709505944546684
0.15709505944546684
0.23219280948873622
0.2721928094887362
0.3321928094887362
------------------
0.06645277546544244
0.10437308202384014
0.15261642856727722
0.18263815079911486
0.2160149285961235
0.2604593730405679

Częstość polskich liter

Częstości i prawdopodobieństwa występowania liter w języku polskim
litera % p
a 8.91 0.0891
ą 0.99 0.0099
b 1.47 0.0147
c 3.96 0.0396
ć 0.40 0.0040
d 3.25 0.0325
e 7.66 0.0766
ę 1.11 0.0111
f 0.30 0.0030
g 1.42 0.0142
h 1.08 0.0108
i 8.21 0.0821
j 2.27 0.0227
k 3.51 0.0351
l 2.10 0.0210
ł 1.82 0.0182
m 2.80 0.0280
n 5.52 0.0552
ń 0.20 0.0020
o 7.75 0.0775
ó 0.85 0.0085
p 3.13 0.0313
q 0.14 0.0014
r 4.69 0.0469
s 4.32 0.0432
ś 0.66 0.0066
t 3.98 0.0398
u 2.50 0.0250
v 0.04 0.0004
w 4.65 0.0465
x 0.02 0.0002
y 3.76 0.0376
z 5.64 0.0564
ź 0.06 0.0006
ż 0.83 0.0083
Suma 100% 1.0000

Jeśli chcesz możesz w ramach ćwiczeń policzyć entropię dla polskiego alfabetu.

Entropia indywidualna

W powyższej tabeli częstość (prawdopodobieństwo) dla pospolitej litery 'a' wynosi 0.0891, a częstość (prawdopodobieństwo) dla rzadszej litery 'ą' wynosi 0.0099.

Możemy obliczyć entropię indywidualną zdarzenia, nazywaną również autoinformacją stowarzyszoną ze zdarzeniem:

Dla litery 'a':

Dla litery 'ą':

Im bardziej nieprawdopodobne zdarzenie tym większą informację niesie.

A oto zachowanie funkcji dla różnych prawdopodobieństw zdarzenia:

0.1 	3.32
0.2 	2.32
0.3 	1.74
0.4 	1.32
0.5 	1.0
0.6 	0.74
0.7 	0.51
0.8 	0.32
0.9 	0.15
1.0 	0.00

Nieoczekiwane zdarzenia przekazują więcej informacji niż oczekiwane.

Układy biologiczne i łańcuchy Markowa

Dany stan układu biologicznego może przechodzić w inny stan układu z pewnym prawdopodobieństwem. Prawdopodobieństwo określa częstość przejścia.

Jeśli mamy trzy możliwe stany, które przechodzą w inne stany z pewnym prawdopodobieństwem to prawdopodobieństwa przejść możemy umieścić w macierzy przejść o wymiarze 3 x 3. Jeżeli ta macierz jest stała, czyli prawdopodobieństwa nie zmieniają się w czasie to transformacja jest zamknięta i jednoznaczna, czyli zdeterminowana.

Jeżeli macierz prawdopodobieństw zmienia się w czasie to mamy do czynienia z transformacją stochastyczną.

W naszej populacji owadów* owad może znajdować się na brzegu (stan B), w wodzie (stan W), lub w norce (stan N). Przyrodnik obserwujący układ zaobserwował, że owady motywowane nieokreślonymi czynnikami zmieniają swoje położenie (stan) i że prawdopodobieństwa przejść są stałe. Te prawdopodobieństwa można umieścić w macierzy prawdopodobieństw ( z macierzami możesz się zapoznać w rozdziale poświęconym macierzom). Tutaj macierz zastąpiliśmy tabelką:

B W N
B 0.25 0.75 0.125
W 0.75 0 0.75
N 0 0.25 0.125

Tabele należy czytać kolumnami: dla kolumny B prawdopodobieństwo p pozostania na brzegu wynosi 0.25, przejścia do wody wynosi 0.75, a wejścia do norki wynosi 0, itd. Suma prawdopodobieństw w kolumnie wynosi 1.0.

Jeżeli uwzględnimy odpowiednio długi okres czasu i okaże się, że prawdopodobieństwo przejścia jest stałe, to taka kolejność stanów i przejść jest nazywana łańcuchem Markowa.

Na podstawie tej macierzy możemy określić prawdopodobne zachowania układu.

Znając macierz prawdopodobieństw, nie znając wcześniejszego stanu danego układu, możemy określić prawdopodobne zachowania tego systemu. Jest to system bez pamięci lub bez historii.

Przy odpowiedniej liczebności pomimo, że zachowanie pojedynczego owada jest określone jedynie z pewnym prawdopodobieństwem, to system jako całość jest niezależny od przypadku i jest systemem zdeterminowanym.

Policzmy entropię dla każdej kolumny:

B W N
B 0.25 0.75 0.125
W 0.75 0 0.75
N 0 0.25 0.125
S 0.811 0.811 1.061

Teraz obliczamy średnią częstość (WCR) występowania stanów B, W i N. W tym celu sumujemy rzędy i dzielimy przez liczbę kolumn.

Te średnie wartości oznaczają przeciętną częstość owadów w danym miejscu, a więc i średni czas pobytu w tym miejscu.

B W N WCR
B 0.25 0.75 0.125 0.375
W 0.75 0 0.75 0.500
N 0 0.25 0.125 0.125
S 0.811 0.811 1.061  

Następnie obliczamy średnią entropię systemu:

Entropia systemu, a zatem i informacja zawarta w naszym systemie owadów wynosi 0.843 bita na stan.


*Tabelka według: Kurowski W., 2000.Teoria informacji dla inżynierów. Wydawnictwo Wyższej Szkoły Agrobiznesu w Łomży, Łomża, 192 pp.

Uwagi końcowe

Czasy w sygnalizatorze badany
system
różnorodność stanów
niepewność co do stanu
entropia
informacja usuwająca niepewność
jednakowe chaotyczny maksymalna maksymalna
różne częściowo uporządkowany pośrednia pośrednia
tylko 1 stan (sygnalizator zepsuty) maksymalnie uporządkowany zerowa zerowa