Kolmogorov-kompleksisuus, Shannonin informaatioteoria ja näi

hyväksymispäivä
arvosana
arvostelija
Kolmogorov-kompleksisuus, Shannonin informaatioteoria ja näiden soveltaminen tiedontiivistysmenetelmissä
Aku Peltonen
Helsinki 7.5.2012
Kandidaatintutkielma
HELSINGIN YLIOPISTO
Tietojenkäsittelytieteen laitos
HELSINGIN YLIOPISTO — HELSINGFORS UNIVERSITET — UNIVERSITY OF HELSINKI
Laitos — Institution — Department
Tiedekunta — Fakultet — Faculty
Tietojenkäsittelytieteen laitos
Matemaattis-luonnontieteellinen
Tekijä — Författare — Author
Aku Peltonen
Työn nimi — Arbetets titel — Title
Kolmogorov-kompleksisuus, Shannonin informaatioteoria ja näiden soveltaminen tiedontiivistysmenetelmissä
Oppiaine — Läroämne — Subject
Tietojenkäsittelytiede
Työn laji — Arbetets art — Level
Aika — Datum — Month and year
Sivumäärä — Sidoantal — Number of pages
Kandidaatintutkielma
7.5.2012
16
Tiivistelmä — Referat — Abstract
Tässä tutkielmassa käsitellään Shannonin entropiaa ja Kolmogorov-kompleksisuutta sekä käytännön sovelluksia joissa niiden periaatteita sovelletaan. Shannonin entropia on eräänlainen mittari informaatiolle jostakin joukosta objekteja, ja erityisesti näiden objektien todennäköisyysjakaumasta.
Samalla se on myös teoreettinen alaraja informaatiomäärälle jolla jokainen joukon alkio keskimäärin
voidaan yksilöllisesti esittää. Kolmogorov-kompleksisuus puolestaan on pienimmän sellaisen tietokoneohjelman pituus jolla jokin merkkijono voidaan esittää. Kolmogorov-kompleksisuus on siis karkeasti mitta merkkijonon sisältämälle rakenteellisuudelle, sillä säännöllistä rakennetta noudattavat
merkkijonot voidaan kuvata lyhyemmillä ohjelmilla kuin täysin satunnaiset. Vaikka Kolmogorovkompleksisuus ja Shannonin entropia eivät suoraan ole sovellettavissa käytännön ongelmiin, ne ovat
olleet lähtökohtina menetelmissä joita käytetään informaation tiivistämiseen liittyvissä ongelmissa ja sovelluksissa. Tässä tutkielmassa näistä menetelmistä käsitellään universaaleja koodeja ja
MDL-periaatetta, erityisesti missä määrin ne ammentavat informaatioteoriasta. Sekä universaaleja koodeja että MDL-periaatetta käytetään useilla eri sovellusaloilla, kuten tiedon tiivistämisessä,
koneoppimisessa ja data-analyysissä.
ACM Computing Classification System (CCS):
E.4 [CODING AND INFORMATION THEORY]
Avainsanat — Nyckelord — Keywords
Kolmogorov-kompleksisuus, informaatioteoria, Shannonin entropia, universaalit koodit, MDL-periaate
Säilytyspaikka — Förvaringsställe — Where deposited
Muita tietoja — övriga uppgifter — Additional information
Sisältö
1 Johdanto
1
2 Informaatioteoria
3
2.1
Prefiksikoodit ja Kraftin epäyhtälö . . . . . . . . . . . . . . . . . . . . .
3
2.2
Shannonin entropia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
5
3 Kolmogorov-kompleksisuus
6
3.1
Määritelmä . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
3.2
Ominaisuuksia . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
6
4 Shannonin entropia ja Kolmogorov-kompleksisuus
8
5 Universaalit koodit
9
6 MDL-periaate
11
6.1
Karkea versio . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
11
6.2
Algoritminen MDL . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
13
7 Yhteenveto
14
Lähteet
15
ii
1
Johdanto
Informaatioteorian voidaan katsoa saaneen alkunsa Claude E. Shannonin vuonna 1948
ilmestyneestä artikkelista A Mathematical Theory of Communication. Shannonin artikkeli käsitteli kommunikoinnin ongelmia häiriöllisessä lähetyskanavassa ja tämän lähetyskanavan kautta lähetetyn viestin tiivistämistä riippuen mahdollisten viestien joukon todennäköisyysjakaumasta. Tässä tutkielmassa käsitellään informaatioteoriasta Shannonin
entropiaa, joka mittaa satunnaisen tapahtuman informaatiota ja epävarmuutta joka liittyy tapahtuman lopputulokseen sekä kertoo konkreettisesti keskimääräisen bittimäärän,
joka vaaditaan jokaisen viestin yksilöimiseen mahdollisten viestien joukosta.
Otetaan esimerkiksi joukko A jossa on kaksi alkiota, a ja b, jotka merkitsevät mahdollisia viestejä. Sillä ei ole merkitystä mitä nämä alkiot ovat, ne voivat olla esimerkiksi
merkkijonot "Tulen illalla baariin" ja "En tule illalla baariin" mutta tärkeää on se, että
joukko A on tunnettu sekä viestin lähettäjälle että vastaanottajalle. Koska joukossa on
vain kaksi alkiota, tarvitaan vain yksi bitti informaatiota yksilöimään molemmat viestit.
Kun lähetetään viesti osapuolelta toiselle, tähän liittyvä entropia riippuu mahdollisten
viestien todennäköisyyksistä. Jos viestin a (ja siten myös b:n) todennäköisyys on 50%,
entropia on 1, mutta jos a:n esiintymisen todennäköisyys on 90%, laskee entropia noin
puoleen tästä. Viestin sisältöön liittyvä epävarmuus on siis vähentynyt, sillä viestin sisältö voidaan ennustaa tarkemmin. Shannonin entropiaa käsitellään informaatioteorian
osana luvussa 2.
Shannonin entropia on ongelmallinen mittari jos halutaan mitata jonkin objektin informaation määrää joka ei riipu siitä, millä tavoin kyseinen objekti on valittu. Tämän ongelman motivoimana Ray Solomonoffin, Gregory Chaitinin ja Andrei Kolmogorovin julkaisujen pohjalta kehittyi 1960-luvulla algoritminen informaatioteoria, joka tutkii
merkkijonojen kompleksisuuksia, mukaanluettuna Kolmogorov-kompleksisuutta. Merkkijonon Kolmogorov-kompleksisuus määritellään yksinkertaisesti lyhyimmän sellaisen tietokoneohjelman pituutena, joka tulostaa merkkijonon ja pysähtyy [GrV08]. Yksittäisellä objektilla voi olla lukuisia erilaisia kuvauksia, mutta jokaisen kuvauksen tulee kuvata vain yksi merkkijono. Intuitiivisesti yksinkertaiset merkkijonot, kuten vaikkapa luku
1
2100 , joka juuri ilmaistiin muutamalla tavulla, voidaan esittää lyhyemmillä ohjelmilla kuin
monimutkaisemmat, enemmän kohinaa sisältävät merkkijonot. Samoin myös π, jonka binääriesitys ensinäkemältä vaikuttaa täysin satunnaiselta, voidaan tulostaa mielivaltaisen
tarkasti lyhyellä, vakiomittaisella tietokoneohjelmalla. Kolmogorov-kompleksisuus onkin
eräänlainen mitta merkkijonon satunnaisuudelle. Useimmilla merkkijonoilla ei ole olemassa merkittävästi lyhyempää kuvausta kuin merkkijono itse, mikä seuraa kyyhkyslakkaperiaatteesta (pigeon hole principle): n bitillä voidaan kuvata 2n erilaista objektia, ja jos
merkkijonon pituus on k n, vain hyvin pieni osa k:n pitusista merkkijonoista voidaan
esittää n bitillä. Kolmogorov-kompleksisuus esitellään luvussa 3.
Sekä Shannonin informaatioteoria että algoritminen informaatioteoria tutkivat sen informaation määrää, joka vaaditaan esittämään jokin havainnoitava objekti mahdollisimman
tiiviisti. Kuitenkin siinä missä Shannonin informaatioteoria keskittyy ennalta määrätyn
joukon todennäköisyysjakaumaan, algoritminen informaatioteoria kuvaa yksittäisten objektien informaatiota, tarkemmin sanoen vähäisintä määrää bittejä joka vaaditaan kuvaamaan tarkasteltava objekti täydellisesti ja häviöttömästi [GrV08]. Algoritmisen informaatioteorian ja Shannonin informaatioteorian merkittävä ero on siis se, että jälkimmäisessä tarkasteltava objekti on valittu jostakin ennalta määrätystä joukosta mahdollisia
objekteja, kun taas edellisessä tarkastelun kohteena ovat kaikki mahdolliset äärellisen pituiset objektit, ja objektin sisältämä informaatio riippuu vain siitä itsestään. Huolimatta
erilaisista lähtökohdista, on näillä kahdella teorialla varsin läheinen yhteys, sillä etenkin
suurikokoisilla jakaumilla jakauman entropia on lähes yhtä suuri kuin sen odotusarvoinen Kolmogorov-kompleksisuus. Shannonin entropian ja Kolmogorov-kompleksisuuden
yhteyttä tarkastellaan luvussa 4.
Shannonin informaatioteoria ja Kolmogorov-kompleksisuus eivät sellaisenaan ole suoraan
sovellettavissa informaation tiivistämiseen liittyviin ongelmiin. Shannonin entropiassa
oletetaan todennäköisyysjakauma tunnetuksi, vaikka todellisuudessa se ei aina ole kannattavaa tai edes mahdollista laskea, eikä Kolmogorov-kompleksisuus ole laskettavissa
lainkaan. Tästä huolimatta molempien teorioiden ideoita on hyödynnetty menetelmissä
jotka tähtäävät käytännön ongelmien ratkaisuun. Tutkielman lopussa tarkastellaan kahta
2
tällaista menetelmää: universaaleja koodeja (universal codes) ja MDL-periaatetta (Minimum Description Length principle). Universaalit koodit soveltuvat tiedon tiivistämiseen
kun merkkijonojen todennäköisyysjakauma tai pituus ei ole ennalta tiedossa, mutta joilla päästään silti lähelle teoriassa optimaalisten tiivistämismenetelmien pakkaussuhdetta. MDL-periaate puolestaan kuvaa menetelmää muodostaa annetun datan perusteella
malli jonka avulla data voidaan ilmaista. Paras malli on sellainen, joka tuottaa lyhyimmän yhdistetyn kuvauksen mallista ja tämän mallin avulla ilmaistavasta datasta. MDLperiaatteen algoritminen versio pohjautuu Kolmogorov-kompleksisuuteen [BaC91].
2
2.1
Informaatioteoria
Prefiksikoodit ja Kraftin epäyhtälö
Kun jokin viesti joukosta A lähetetään vastaanottajalle, se täytyy koodata jollakin tavalla binäärimerkkijonoksi. Koodauksen tulisi olla mahdollisimman lyhyt mutta kuitenkin
sellainen, että vastaanottaja voi muodostaa alkuperäisen viestin uudelleen täydellisesti,
kun koodauksen purkufunktio on tiedossa. Uniikit koodit (uniquely decodable codes) ovat
sellaisia, joissa jokainen koodausaakkoston symboli kuvautuu lähdeaakkoston symbolille
bijektiivisesti. Näistä erikoistapauksena ovat prefiksikoodit (prefix codes), joiden määrittävänä piirteenä on, ettei yksikään joukossa esiintyvä koodisana ole toisen koodisanan
etuliite (prefiksi), jolloin koodia purettaessa tiedetään aina kun on saavuttu koodisanan
loppuun. Voidaan osoittaa, että jokainen uniikki koodaus binääriaakkostossa voidaan esittää prefiksikoodauksena säilyttäen koodisanojen pituudet [LiV08, p. 77].
Mikäli merkkijonoille x, y, z ∈ {0, 1}∗ pätee y = xz, z 6= , on x y:n prefiksi. Joukko
{x, y, . . .} ⊆ {0, 1}∗ on prefiksivapaa, mikäli yksikään joukon alkioista ei ole toisen alkion
prefiksi. Funktio D : {0, 1}∗ ⊃ A → N määrittää prefiksikoodin, jos sen lähtöjoukko A
on prefiksivapaa [GrV04].
Äärellisen pituiset binäärimerkkijonot voidaan kuvata luonnollisiksi luvuiksi seuraavalla
3
tavalla:
(0, ), (1, 0), (2, 1), (3, 00), (4, 01), . . . ,
(1)
jossa tarkoittaa tyhjää merkkijonoa. Merkintä l(x) tarkoittaa merkkijonon x pituutta
bitteinä, esimerkiksi l(010) = 3. Kun x kuvataan luonnollisena lukuna, l(x) = blog(x+1)c
ja kun x ≥ 2 pätee blog xc ≤ l(x) ≤ dlog xe.
Olkoon x = x1 x2 . . . xn binäärimerkkijono joka koodataan seuraavasti [GrV04]:
x¯ = |11 {z
. . . 1} 0x1 x2 . . . xn .
(2)
n kpl
Tuloksena saatava koodi on prefiksikoodi, mutta sen pituus on l(¯
x) = 2n + 1. Huomattavasti lyhyempään koodipituuteen päästään soveltamalla kaavaa (2) merkkijonon x sijasta
sen pituuteen l(x). Tällöin saadaan x0 = l(x)x, jossa l(x) tulkitaan binäärimerkkijonoksi kaavan (1) mukaisesti. Näin saatava koodi D0 (x0 ) = x on prefiksikoodi, jonka pituus
l(x0 ) = n + 2 log n + 1. Tätä koodia kutsutaan standardiksi prefiksikoodaukseksi luonnollisille luvuille (standard prefix-code for the natural numbers) ja sen pituudesta käytetään
merkintää LN (x) = l(x0 ). Kun x kuvataan luonnollisena lukuna kaavan (1) mukaan, on
LN (x) = log x + 2 log log x + 1.
Tiedon tiivistämisessä symbolin esiintymisen todennäköisyys vaikuttaa sen koodauksen
pituuteen. Esimerkiksi aritmeettisessa koodauksessa pätee p(xi ) = 2−l(xi ) kaikille xi ∈ Σ,
jossa Σ on jokin äärellinen aakkosto symbolikoodauksia, l(xi ) symbolin koodauspituus ja
p(xi ) xi :n esiintymistodennäköisyys. Siten symbolin koodauksen pituus l(xi ) = − log p(xi )
bittiä. Jokainen prefiksikoodaus aakkostossa {0, 1} toteuttaa seuraavan kaavan, joka tunnetaan Kraftin epäyhtälönä:
n
X
2−l(xi ) ≤ 1,
i=1
missä l(x1 ), l(x2 ), . . . , l(xn ) ∈ N ovat koodausten pituudet. Prefiksikoodaus joka toteuttaa
P −l(xi )
epäyhtälön tiukalla yhtäläisyydellä
2
= 1 on täydellinen (complete), toisin sanoen
uuden koodisanan lisäys johtaa siihen, ettei kyseessä enää ole prefiksikoodaus. Kraftin
epäyhtälö luo yhteyden koodisanojen pituuksien ja niiden esiintymistodennäköisyyksien
välille, sillä kaikilla jakaumilla P (x) aakkostossa Σ pätee:
X
p(xi ) = 1.
xi ∈Σ
4
2.2
Shannonin entropia
Shannonin entropia (jatkossa entropia) kuvaa informaation määrää joka jonkin äärellisen
joukon tapahtuman realisaatioon liittyy. Olkoon Σ äärellinen joukko symboleita xi ja
X satunnaismuuttuja joka saa arvokseen xi :n jakaumalla P (X = xi ) = p(xi ). Tällöin
entropia satunnaismuuttujalle X on [Sha48]
H(X) = −
X
p(xi ) log p(xi ).
xi ∈Σ
Erityistapauksena mainittakoon tilanne, jossa p(xi ) =
1
n
kaikilla x1 , x2 , . . . , xn ∈ Σ. Täl-
löin entropia redusoituu muotoon
H(X) = log n.
Edellä on oletettu, että jakauma P on ennalta tiedossa. Todellisuudessa näin ei kuitenkaan
usein ole, eikä jakauma välttämättä ole edes laskettavissa, jolloin entropiakaan ei ole
määritettävissä [GrV04].
Entropia on eräänlainen epävarmuuden mittari jakaumassa. Esimerkiksi jos aakkoston
koko on 1, jolloin p(x) = 1, on entropia H(X) = 0. Toisin sanoen tällöin satunnaismuuttujaan ei liity minkäänlaista epävarmuutta, vaan pystymme ennustamaan täysin
mikä seuraava merkki jossain tämän aakkoston merkkijonossa on. Toisaalta taas entropia
on sitä suurempi mitä enemmän aakkostossa on symboleita ja mitä lähempänä symboleiden esiintymistodennäköisyydet ovat toisiaan. Tämä tarkoittaa sitä, että epävarmuus
seuraavasta symbolista on suurempi. Esimerkiksi nopanheitossa jokaisen silmäluvun todennäköisyys on
1
6
ja heittoon liittyvän satunnaismuuttujan entropia on H(X) ≈ 2.58.
Jos noppa on painotettu siten, että yhden silmäluvun todennäköisyys on
viiden silmäluvun todennäköisyydet
1
30
5
6
ja muiden
kullakin, on entropia enää H(X) ≈ 1.04.
Entropia myös määrittää alarajan aakkoston keskimääräiselle symbolipituudelle, toisin
sanoen pienimmälle määrälle bittejä joilla jokainen viesti voidaan yksilöllisesti määritellä. Millään ensimmäisen kertaluvun (first-order ) tiivistämismenetelmällä ei voida päästä
pienempään keskimääräiseen symbolipituuteen. Prefiksikoodien keskimääräinen symbolipituus L onkin H(X) ≤ L ≤ H(X) + 1 [GrV04].
5
3
3.1
Kolmogorov-kompleksisuus
Määritelmä
Kolmogorov-kompleksisuus merkkijonolle x on lyhyimmän sellaisen tietokoneohjelman
p pituus l(p) joka tulostaa x:n, mahdollisesti annettuna lisäinformaatiolla y. Lisäinformaatio tulee "ilmaiseksi", eli sitä ei lasketa mukaan Kolmogorov-kompleksisuutta määritettäessä. Sekä merkkijonojen, että ohjelmien ajatellaan tässä koostuvan biteistä, eli
niiden aakkosto on binääriaakkosto {0, 1}. Siten merkkijonon Kolmogorov-kompleksisuus
on funktio äärellisen pituisilta merkkijonoilta luonnollisille luvuille: K : {0, 1}∗ → N
[GrV08]. Formaalisti:
K(x|y) = min{l(p) : U (p, y) = x},
missä U on universaali Turing-kone. Tämä on niin sanottu ehdollinen Kolmogorov-kompleksisuus,
toisin sanoen l(p) riippuu annetusta y:stä, kun taas ei-ehdollinen K on erikoistapaus tästä: K(x) = K(x|), missä l() = 0. Siinä triviaalissa tapauksessa, että x = y ohjelmaksi
riittää yksinkertainen syötteen tulostuskäsky, jolloin K(x|y) = O(1). Jos K(x|y) on huomattavasti pienempi kuin K(x), voidaan y:n tulkita sisältävän paljon informaatiota x:stä
[LiV08, p. 186]. Saattaa vaikuttaa siltä, että objektin kuvauskielen valinnalla olisi suurikin merkitys Kolmogorov-kompleksisuuden määrittämisessä. Kuitenkin invarianssiteoreeman mukaan Turing-koneen tai ohjelmointikielen valinta vaikuttaa objektin Kolmogorovkompleksisuuteen vain määrätyn vakion verran, joka ei riipu objektista vaan ainoastaan
valitusta kielestä, kunhan valittu kieli on Turing-täydellinen [LiV08, pp. 104-107].
3.2
Ominaisuuksia
Yksinkertaisten objektien Kolmogorov-kompleksisuus on K(x) = O(log n), jossa n on
luonnollinen luku, usein merkkijonon x pituus [GrV08]. Esimerkiksi johdannossa mainitun π:n n ensimmäisen bitin tulostamiseen vaadittavan ohjelman pituus on luokkaa
O(log n), sillä on olemassa vakiomittainen ohjelma joka tulostaa π:n desimaaleja haluttuun lukuun n asti. Tällöin ainut muuttuva osuus ohjelmassa on n. Joillekin merkkijonoil-
6
le Kolmogorov-kompleksisuus on vieläkin pienempi. Esimerkiksi luku n = 2m , m ∈ N voidaan esittää määrittämällä ensin m jonka esityksen pituus on luokkaa O(log m), ja sitten
ohjelma funktion g(k) = 2k esittämiseksi. Tällaisille luvuille n merkkijonon Kolmogorovkompleksisuus on K(x) = O(log m) = O(log log n).
Merkkijono x on c-pakkaamaton (c-incompressible) jos K(x) ≥ l(x) − c jossa c on vakio [LiV08, pp. 116-120]. Merkkijonoa ei siis tällöin voi tiivistää enempää kuin c bittiä.
Merkkijonolle jonka pituus on n on olemassa 2n − 2n−c + 1 c-pakkaamatonta merkkijonoa, jolloin merkittävä osa merkkijonoista ei ole juurikaan pakattavissa. Pienillä vakioilla
käytetään yksinkertaisesti termiä pakkaamaton. Pakkaamattomissa merkkijonoissa ei ole
minkäänlaista mallinnettavaa rakennetta ja niitä voidaankin sanoa satunnaisiksi. Tällaisten merkkijonojen lyhin kuvaus on siis käytännössä merkkijono itse.
Kolmogorov-kompleksisuuden eräs ikävä piirre on, ettei se ole laskettavissa; ei ole olemassa
ohjelmaa joka merkkijonon syötteenä saatuaan tulostaisi lyhyimmän ohjelman joka tulostaa kyseisen merkkijonon. Ei myöskään ole olemassa ohjelmaa joka jokin toinen ohjelma ja
merkkijono syötteenään kertoisi onko syötteenä saatu ohjelma lyhin merkkijonon tulostava ohjelma [LiV08, pp. 126-128]. Ikävä tämä piirre on siitä syystä, että mikäli Kolmogorovkompleksisuus olisi laskettavissa, se helpottaisi huomattavasti tiedon tiivistämistä, sillä
tällöin pakkausohjelmaksi riittäisi toteuttaa Kolmogorov-kompleksisuuden laskeva funktio. Ei-laskettavuuden todistamiseksi on hyödyllistä kuvata äärelliset binäärimerkkijonot
luonnollisille luvuille kaavassa (1) kuvatulla tavalla. Tällöin myös Kolmogorov-kompleksisuus
voidaan kuvata funktiona K : N → N. Nyt tehdään vastaoletus, että K on laskettavissa ja määritellään funktio δ(m) = min{x : K(x) ≥ m}, x, m ∈ N joka vastaoletuksen mukaan on niin ikään laskettavissa. Tästä seuraa että K(δ(m)) ≥ m ja koska
δ on laskettavissa, on olemassa äärellisen mittainen ohjelma joka syötteellä m tulostaa δ(m):n ja pysähtyy. Koska K(δ(m)) on lyhimmän tällaisen ohjelman pituus, pätee
K(δ(m)) ≤ l(m)+c ≤ 2 log m+c, jollakin vakiolla c. Tästä seuraa ristiriita m ≤ 2 log m+c
joten väite on todistettu [GrV08].
7
4
Shannonin entropia ja Kolmogorov-kompleksisuus
Shannonin informaatioteorian ja Kolmogorov-kompleksisuuden merkittävin erottava tekijä on niiden erilaiset lähtökohdat siihen, mitä informaatiota oikeastaan halutaan kuvata. Shannonin teoriassa motivaationa on informaation lähettäminen osapuolelta toiselle jotakin lähetyskanavaa pitkin, sillä oletuksella että mahdollisten viestien joukko on
molempien osapuolten tiedossa. Viesteihin liittyvän informaation määrä on riippuvainen
ainoastaan viestien todennäköisyysjakaumasta ja satunnaismuuttujasta jolla yksittäinen
viesti valitaan lähetettäväksi ja viestien varsinainen sisältö on epäoleellinen. Kolmogorovkompleksisuus puolestaan liittyy ainoastaan viestin sisältöön [LiV08, p. 603]. Toisin sanoen Shannonin informaatioteorian, ja erityisesti Shannonin entropian tulos on pienin
keskimääräinen bittimäärä jolla satunnainen viesti voidaan lähettää virheetöntä lähetyskanavaa pitkin, kun taas Kolmogorov-kompleksisuudessa se on pienin bittimäärä johon
jokin tietty viesti voidaan tiivistää ja josta se voidaan täydellisesti palauttaa. Jos esimerkiksi halutaan lähettää viesti kahden yhtä todennäköisen viestin joukosta, Shannonin
entropian perusteella siihen tarvitaan ainoastaan yksi bitti informaatiota, vaikka viestien
Kolmogorov-kompleksisuus voi olla hyvinkin korkea [GrV08]. Huolimatta eroavaisuuksista näiden kahden teorian välillä on oleellinen yhteys, sillä odotusarvoinen (expected )
Kolmogorov-kompleksisuus lähestyy entropiaa kun merkkijonojen pituus kasvaa.
Olkoon X satunnaismuuttuja joka saa arvonsa jakaumalla f (x) = P (X = x), x ∈ {0, 1}∗ .
K(x) on lyhin kuvaus x:stä, ja riippumaton jakaumasta P . Keskimääräinen koodauksen
P
pituus jakaumalla P voidaan nyt laskea summasta x f (x)K(x). Summan ja entropian
H(X) välinen erotus on [LiV08, pp. 604-605]:
0≤
X
f (x)K(x) − H(X) ≤ K(f ) + O(1).
x
Erotus siis riippuu vain jakaumasta P ja vakiosta O(1), joka puolestaan riippuu valitusta kuvauskielestä. Näin ollen yksinkertaisilla jakaumilla odotusarvoinen Kolmogorovkompleksisuus on hyvin lähellä entropiaa, kun taas monimutkaisilla jakaumilla erotus voi
olla hyvinkin suuri [GrV04].
Odotusarvoisen Kolmogorov-kompleksisuuden ja entropian välille saadaan myös asymp8
toottinen yhteys. Olkoon Y satunnaismuuttuja joka saa arvokseen n-mittaisia binäärimerkkijonoja y jakaumalla P (Y = y) = 2−n ja odotusarvoinen Kolmogorov-kompleksisuus
P
E = l(y)=n p(y)K(y). C-pakkaamattomien merkkijonojen lukumäärä on 2n (1 − 2−c+1 ).
Tällöin pätee [LiV08, p. 188]:
n
H(Y )
n
≤
≤
.
n + O(1)
E
(1 − 2−c+1 )(n − c)
Kun sijoitetaan c = log n saadaan:
H(Y )
= 1.
n→∞
E
lim
Odotusarvoinen Kolmogorov-kompleksisuus jakaumalle siis lähestyy sen entropiaa kun
merkkijonojen pituus kasvaa rajatta. Voidaan osoittaa, että jokainen lineaarinen epäyhtälö Shannonin entropiassa pätee vastaavasti Kolmogorov-kompleksisuuteen, logaritmisen
virhetermin tarkkuudella [LiV08, p. 607].
5
Universaalit koodit
Olkoot D1 , D2 , . . . järjestetty lista prefiksikoodeja ja L1 , L2 , . . . vastaavasti niiden pituusfunktiot, jolloin Li (x) = miny {l(y) : Di (y) = x}. Mikäli on olemassa y jolla kaikilla Di
pätee Di (y) 6= x, merkitään Li (y) = ∞. Nyt merkkijono x voidaan koodata käyttämällä
ensin luvussa 2.1 esiteltyä standardia prefiksikoodausta luvulle k ∈ N ja sitten koodaa¯ jonka
malla x käyttäen prefiksikoodia Dk . Tämä johtaa kaksiosaiseen prefiksikoodiin D
pituusfunktio on [GrV04]
¯
L(x)
= min LN (k) + Lk (x).
k∈N
Käyttämällä tätä koodia päästään lähes yhtä hyvään koodauspituuteen kuin käyttämällä
prefiksikoodia Dk joka parhaiten tiivistäisi merkkijonon x. Ne eroavat ainoastaan logaritmisella termillä joka riippuu k:sta, jolloin k:n ollessa rajoitettu, saadaan
¯
L(x)
≤ 1,
n→∞ Lk (x)
lim
(3)
¯ joka toteuttaa yllä olevan on universaali koodi
jossa n on merkkijonon x pituus. Koodi D
(universal code) suhteessa prefiksikoodien joukkoon {D1 , D2 , . . .} [GrV04]. Toisin sanoen
9
se tiivistää minkä tahansa merkkijonon lähes yhtä hyvin kuin se Dk joka tiivistäisi jotakin
tiettyä merkkijonoa eniten.
Käytetään merkintää x∗ kuvaamaan lyhintä merkkijonon x tulostavaa ohjelmaa, siis
K(x) = l(x∗ ). Merkkijonon koodausfunktio on siten E ∗ (x) = x∗ ja sitä vastaava prefiksikoodi D∗ (x∗ ) = x. Oletetaan että kaikki prefiksikoodit Dk ovat laskettavissa, jolloin
saadaan seuraava yhtälö: [GrV04]
l(E ∗ (x)) = K(x) ≤ Lk (x) + O(1).
Tästä nähdään että prefiksikoodi D∗ on universaali koodi suhteessa joukkoon {D1 , D2 , . . .}
ja jossa Kolmogorov-kompleksisuus on sen pituusfunktio.
Mikäli mahdollisten merkkijonojen jakauma tiedetään ennalta, keskimäärin optimaalisin
koodaustapa on käyttää Shannon-Fano-koodia [GrV04], jossa todennäköisemmin esiintyville symboleille annetaan lyhyet koodisanat ja epätodennäköisille pidemmät. Aina jakaumaa ei kuitenkaan tunneta tai se ei ole laskettavissa, jolloin Shannon-Fano-koodit
saattavat johtaa erittäin pitkään koodiesitykseen. Olkoon {f } = {f1 , f2 , . . .} järjestetty
joukko jakaumia, jossa fk = (fk1 , fk2 , . . .) ja fkn jokin n-mittaisen merkkijonon jakauma,
jolla satunnaismuuttuja X jakautuu. Tällöin fkn (x) = P (X = x). Jokaiselle tällaiselle
jakaumalle voidaan muodostaa optimaalinen Shannon-Fano-koodi, jossa merkkijonon x
koodipituus on lSF (x) = − log fkn (x), pyöristettynä ylöspäin lähimpään kokonaislukuun.
Annetulle jakaumalle f ∈ {f } entropia on
X
H(f n ) = −
f n (x) log f n (x).
x∈{0,1}n
Kaksiosainen universaali koodi voidaan nyt muodostaa koodaamalla n ja k standardilla prefiksikoodauksella luonnollisille luvuille ja koodaamalla x sen jälkeen lSF (x) bitillä
käyttäen optimaalista Shannon-Fano-koodia. Tällöin on voimassa
ˆ nk (X) =
L
X
fkn (x)lSF (x) ≤ H(fkn ) + O(log n),
x∈{0,1}n
josta seuraa
ˆ n (X)
L
k
≤ 1.
n→∞ H(f n )
k
lim
10
Saatu koodi on universaali koodi suhteessa jakaumien joukkoon {f } [GrV04].
Edellä on esitelty yhdenlainen, varsin yksinkertainen tapa muodostaa universaaleja koodeja. On kuitenkin olemassa lukuisia erityyppisiä universaaleja koodeja joilla päästään
lähes yhtäläisiin koodipituuksiin [Gru07, p. 172].
6
6.1
MDL-periaate
Karkea versio
Objektin informaatiota mitataan sen Kolmogorov-kompleksisuudella, ja tässä esityksessä
jokainen bitti on informaatiota, toisin sanoen tämä esitys ei sisällä lainkaan redundanssia.
Mutta objektin informaatio ei välttämättä ole merkityksellistä: tuhannen kolikonheiton
sarjan bittiesitys on hyvin suurella todennäköisyydellä sellaisenaan sen lyhin mahdollinen
esitys [VeV04]. Toisaalta, esimerkiksi ääretön merkkijono x = 010101010101 . . . josta
otetaan satunnaisesti n ensimmäistä merkkiä voidaan esittää kahdessa osassa: ohjelmana
p joka tulostaa mielivaltaisen määrän merkkijonoja 01 peräkkäin, ja lukuna n ∈ N. Tällöin
ensimmäinen osa sisältää x:n säännöllisen osan ("merkityksellisen informaation") ja n
epäsäännöllisen ("satunnaisen informaation"). Objektin x Kolmogorov-kompleksisuus on
täten [GrV04]
K(x) = min{K(n) + l(p) : U (p, n) = x} + O(1).
p,n
Ohjelmaa p voidaan tällöin pitää mallina joka yhdessä epäsäännöllisen osan kanssa esittää
alkuperäisen merkkijonon x lyhimmällä mahdollisella tavalla.
Edellä kuvattu kaksiosainen koodaus x:lle ei ole kovin käytännöllinen sen ei-laskettavuuden
vuoksi. Tästä syystä on otettava käyttöön jokin vähemmän ilmaisuvoimainen tapa kuvata malleja kuin universaalit Turing-koneet tai ohjelmointikielet. Tällaisen kuvausmetodin
täytyy olla tarpeeksi rajoittunut jotta mille tahansa datalle x voidaan aina määrittää
lyhin kuvaus, mutta kuitenkin sellainen, että sen avulla voidaan tiivistää datassa olevia säännöllisyyksiä [Gru07, p. 11]. Usein kuvausmetodin valintaan vaikuttaa se, mitä
tiedämme datasta. Esimerkiksi datan koostuessa pisteistä 2-ulotteisessa koordinaatistos11
sa, voimme riittävänä approksimaationa rajata mahdollisten mallien joukon eriasteisiin
polynomeihin.
Karkea kaksiosainen versio MDL-periaatteesta voidaan ilmaista seuraavalla tavalla: olkoon A1 , A2 , . . . lista mahdollisia malleja kuvaamaan dataa x, jossa Ak on esimerkiksi
k-asteisten polynomien joukko. Tällöin paras hypoteesi, eli tässä tapauksessa yksittäinen polynomi, kuvaamaan data on sellainen joka minimoi summan L(h) + L(x|h), jossa
h ∈ A1 ∪ A2 ∪ . . ., L(h) hypoteesin h pituus bitteinä ja L(x|h) datan pituus bitteinä
hypoteesin avulla kuvattuna [Gru07, p. 14]. Mitä paremmin hypoteesi on valittu vastaamaan dataa, sitä pienempi on summan jälkimmäinen osa. Toisaalta datan ylimitoittaminen (overfitting) johtaa yleensä tarpeettoman monimutkaisiin ja siten bittiesitykseltään
pitkiin malleihin jotka huomioivat liikaa satunnaisia poikkeamia ja joiden ennustusvoima
on varsin heikko. Paras hypoteesi on siten sellainen, joka kuvaa riittävän hyvin datassa ilmenevän säännöllisyyden ja joka on myös ennustava. Tällä tarkoitetaan sitä, että
jos samasta lähteestä saadaan lisää dataa, valittu hypoteesi kuvaa myös tämän datan
suhteellisen vähäisellä määrällä bittejä.
Tyypillisesti hypoteeseinä käytetään todennäköisyysjakaumia P , jolloin yllä olevan esimerkin polynomit voidaan muuntaa jakaumiksi lisäämällä niihin normaalijakautunut korjaustermi [Gru07, pp. 15-16]. Jakaumilla kuvattuna karkea MDL voidaan esittää seuraavasti:
L1 (P ) + L2 (D|P ) = L1,2 (P, D),
jossa D = (x1 , x2 , . . . , xn ) on annettu data ja P jakauma joka kuuluu johonkin malliin
PM . Tällöin tulee valita se jakauma P joka minimoi summan. Mikäli tällaisia on useita,
valitaan osan L1 (P ) minimoiva jakauma. Yllä kuvatussa Lk tarkoittaa koodausmenetelmän Ck pituusfunktiota. C1,2 kuvaa jokaisen parin (P, D) yhdistämällä koodit C1 ja C2 ,
jossa C1 on koodi mallille PM ja C2 datalle mallin avulla kuvattuna. Koska hypoteesi P
on tunnettu todennäköisyysjakauma, voimme käyttää koodiin C2 Shannon-Fano-koodia,
jolloin L2 (D|P ) = − log P (D) [Gru07, p. 136]. Shannon-Fano-koodien käyttö johtaa tällöin automaattisesti sitä pienempään koodauspituuteen, mitä paremmin valittu hypoteesi vastaa dataa. Ongelma tässä tavassa on kuitenkin muodostaa C1 . Mikäli yksittäisen
12
hypoteesin sijaan koodataankin koko malli PM , voidaan käyttää universaalia koodia kuvaamaan C1,2 (D|PM ). Tästä seuraa että jos jokin hypoteesi P kuvaa datan hyvin, siten
että L2 (D|P ) on lyhyt, koodipituus L1,2 (D|PM ) on myös lyhyt [Gru07, pp. 17-18].
6.2
Algoritminen MDL
Jorma Rissanen kehitti 1970-luvulla MDL-periaatteen paljolti Kolmogorov-kompleksisuuden
innoittamana. Sen kuitenkin ollessa käytännöllinen työkalu, se ei käytä suoraan Kolmogorovkompleksisuuden käsitettä, mutta useita algoritmisia versioita, jotka taas pohjautuvat
siihen, on kehitetty sen jälkeen [Gru07, p. 570]. Seuraavassa esitetään eräs versio, jossa
malleina käytetään binäärimerkkijonojen joukkoja.
Olkoon x = x1 x2 . . . xn sarja n kolikonheiton tuloksia, jossa kruunien määrä on 0 ≤ k ≤ n,
ja jossa kruunia kuvataan bitillä 1 ja klaavoja bitillä 0. Tällöin voidaan muodostaa äärellinen, järjestetty joukko S n-mittaisia merkkijonoja joissa on k kappaletta merkkiä 1.
Merkkijonon x ehdollinen Kolmogorov-kompleksisuus joukolla S toteuttaa siten seuraavan [VeV04]:
K(x|S) ≤ log |S| + O(1).
Joukko S on siis malli merkkijonolle x, ja mallin hyvyys riippuu siitä, kuinka tyypillinen
alkio x on joukossa. Tyypillisyydellä tarkoitetaan sitä, kuinka yhtenäinen rakenne joukon
merkkijonoilla on keskenään. Edellä kuvatussa esimerkissä kaikki merkkijonot sisältävät
yhtä monta kappaletta merkkiä 1, ja malli olisi huonompi, jos joukko S olisi sisältänyt
kaikki n-mittaiset merkkijonot, jolloin malli olisi alimitoittanut merkkijonon x. Parhaan
mahdollisen mallin tulisi kuvata merkkijonon rakenteellisuus siten, että mallin ja sen
avulla kuvattavan merkkijonon kompleksisuus on mahdollisimman alhainen. Mallin hyvyyttä voidaan kuvata Kolmogorov-struktuurifunktiolla (Kolmogorov structure function)
[VeV04]:
hx (α) = min{log |S| : x ∈ S, K(S) ≤ α},
S
jossa α ∈ N on jokin joukon S kompleksisuutta rajoittava luku.
Jokaiselle äärelliselle joukolle S 3 x pätee K(x) ≤ K(S) + log |S| + O(1), sillä x voidaan
13
kuvata joukon ja alkion x indeksin avulla. Kyseessä on siis kaksiosainen koodi merkkijonolle x, jossa K(S) kuvaa x:n säännöllistä osaa ja log |S| epäsäännöllistä, eli alkion x
indeksiä joukossa S [VeV04]. Joukko S on optimaalinen malli x:lle, mikäli pätee
K(x) = K(S) + log |S| + O(1).
Lyhin ohjelma optimaaliselle joukolle S on merkkijonon x minimaalinen algoritminen
otossuure (algorithmic minimal sufficient statistic, AMSS ), mikäli ei ole olemassa toista
optimaalista joukkoa S 0 jolle K(S 0 ) < K(S). Lisäksi merkkijono x on tyypillinen alkio
joukossa S jos joukko on optimaalinen.
Mikä tahansa joukko S 3 x joka minimoi erotuksen K(S) − log |S| on hyvä malli merkkijonolle x. Toisin sanoen, mikä tahansa optimaalinen joukko. Kuitenkin, on olemassa
optimaalisia joukkoja S jotka eivät kuvaa kaikkea merkkijonon rakennetta, jolloin joukko
joka on AMSS on parempi valinta malliksi [GrV04].
7
Yhteenveto
Tässä tutkielmassa on esitelty Shannonin entropia ja Kolmogorov-kompleksisuus, sekä
näiden periaatteita hyödyntävistä menetelmistä universaalit koodit ja MDL-periaate.
Näillä kaikilla on perusajatuksena se, miten jokin objekti tai joukko dataa voidaan esittää
pienimmällä mahdollisella bittimäärällä, mutta jokaisella on kuitenkin hieman erilainen
motivaatio informaation kuvaamiseen ja ylipäänsä siihen, mitä informaatiota kuvataan.
Shannonin entropian lähtökohta on osapuolten välisessä kommunikaatiossa ja siinä, miten kommunikaatiokanavaa pitkin lähetetty informaatio voidaan tiivistää mahdollisimman tehokkaasti. Oletuksena siinä on, että kaikkien osapuolten tiedossa on mahdollisten
viestien joukko ja todennäköisyysjakauma tästä joukosta. Täten Shannonin entropian
voidaan tietyssä mielessä katsoa kuvaavan metainformaatiota, tietoa tiedosta.
Vastakohtana tälle, Kolmogorov-kompleksisuus keskittyy täysin yksittäisen objektin sisältämään informaatioon. Ehdollisen Kolmogorov-kompleksisuuden tapauksessa tosin tutkitaan mitä informaatiota jokin toinen objekti y sisältää tarkastelun kohteena olevas14
ta objektista x. Intuitiivisesti on selvää, että mitä pienempi ehdollinen Kolmogorovkompleksisuus on, sitä enemmän informaatiota y sisältää x:stä. Yhtä lailla selvää on,
että Kolmogorov-kompleksisuus on yksinkertaisille objekteille pienempi kuin monimutkaisille.
Universaalit koodit kuvaavat menetelmiä muodostaa yksikäsitteinen esitys jostakin mallista tai objektista kun ei ole etukäteen varmaa mikä olisi optimaalinen koodaustapa tietylle objektille. Universaaleilla koodeilla voidaan kuitenkin saavuttaa lähes yhtä tehokas
tiivistyssuhde kuin parhailla mahdollisilla koodaustavoilla. MDL-periaatteen nykyaikaiset
versiot hyödyntävät universaaleja koodeja.
MDL-periaatteen ensimmäinen keskeinen idea on, että mitä tahansa säännöllisyyttä datassa voidaan käyttää tiivistämään sitä. Tässä mielessä se on hyvin yhtenäinen Kolmogorovkompleksisuuden kanssa, jota voidaan pitää mittarina merkkijonon säännöllisyydelle. Toinen keskeinen ajatus on, että säännöllisyyttä voidaan hyödyntää datasta oppimiseen. Ajatuksena siis on löytää mahdollisimman hyvä malli kuvaamaan dataa ja jonka ennustusvoima on myös hyvä, sortumatta kuitenkaan oletukseen että jokin tietty hypoteesi olisi
datan alkuperäinen lähde.
Lähteet
GrV08
Grünwald, P., Vitányi, P., Algorithmic Information Theory
CoRR, abs/0809.2754, 2008
http://arxiv.org/abs/0809.2754
BaC91
Barron, Andrew R., Cover Thomas M., Minimum Complexity Density Estimation
IEEE Transactions on Information Theory, Vol. 37, No. 4, pp. 1034-1054,
July 1991
LiV08
Li, M., Vitányi, P., An Introduction to Kolmogorov Complexity and Its
15
Applications
ISBN: 978-0-387-33998-6, Springer, 2008
GrV04
Grünwald, P., Vitányi, P., Shannon Information and Kolmogorov Complexity
CoRR, cs.IT/0410002, 2004, 2008
http://arxiv.org/abs/cs.IT/0410002
Sha48
Shannon, Claude E., A Mathematical Theory of Communication
The Bell System Technical Journal, Vol. 27, pp. 379-423 & 623-656. July &
October 1948.
Gru07
Grünwald, P., The Minimum Description Length Principle
ISBN-13: 978-0-262-07281-6, The MIT Press, 2007
VeV04
Vereshchagin, Nikolai K., Vitányi, Paul M. B., Kolmogorov’s structure functions and model selection
IEEE Transactions on Information Theory, Vol. 50, No. 12, pp. 3265-3290,
Dec 2004
16