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
© Copyright 2024