Informasjonsteori Skrevet av Joakim von Brandis, 18.09.2003



Like dokumenter
Oppgavesett videregående kurs i NVivo 9

Legg merke til at summen av sannsynlighetene for den gunstige hendelsen og sannsynligheten for en ikke gunstig hendelse, er lik 1.

Soloball. Steg 1: En roterende katt. Sjekkliste. Test prosjektet. Introduksjon. Vi begynner med å se på hvordan vi kan få kattefiguren til å rotere.

1.8 Binære tall EKSEMPEL

Oppgaver til julekalenderen 2005 for mellomtrinnet; trinn

Algoritmer og datastrukturer Kapittel 9 - Delkapittel 9.2

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

Posisjonsystemet FRA A TIL Å

Løsningsforslag, Ukeoppgaver 10 INF2310, våren 2011 kompresjon og koding del II

Tallregning og algebra

I denne oppgaven blir du introdusert for programmeringsspråket JavaScript. Du skal gjøre den klassiske oppgaven Hei verden, med en katt.

Kryptering Kongruensregning Kongruensregning i kryptering Litteratur. Hemmelige koder. Kristian Ranestad. 9. Mars 2006

TDT4102 Prosedyreog objektorientert programmering Vår 2016

Redd verden. Steg 1: Legg til Ronny og søppelet. Sjekkliste. Introduksjon

Kapittel 2. Tall på standardform

Enkel matematikk for økonomer 1. Innhold. Parenteser, brøk og potenser. Ekstranotat, februar 2015

Vann i rør Ford Fulkerson method

Gangemesteren Nybegynner Scratch PDF

Forskjellige typer utvalg

Tallinjen FRA A TIL Å

Tall og algebra Matematikk Side 1 av 6

Algoritmer og datastrukturer Kapittel 1 - Delkapittel 1.8

Kanter, kanter, mange mangekanter

Skilpaddefraktaler Erfaren Python PDF

TERA System Quick Start Guide (Norsk)

Løsningsforslag Øving 5 TMA4140 Diskret matematikk Høsten 2010

Hva er en algoritme? Har allerede sett på mange algoritmer til nå i IT1101. Forholdet mellom en algoritme og et program. Algoritme program prosess

TALL. 1 De naturlige tallene. H. Fausk

KANDIDATEN MÅ SELV KONTROLLERE AT OPPGAVESETTET ER FULLSTENDIG

Kontekst basisbok Gyldendal forlag. Læreverket har to tekstsamlinger. Tekster 2 er en av disse.

Oppsummering. MAT1030 Diskret matematikk. Oppsummering. Oppsummering. Eksempel

Steg for steg. Sånn tar du backup av Macen din

Husk at du skal ha to vinduer åpne. Det ene er 'Python Shell' og det andre er for å skrive kode i.

Jo, Boka som snakker har så mange muligheter innebygget at den kan brukes fra barnehagen og helt opp til 10. klasse.

Kapittel 3: Litt om representasjon av tall

Veiledning for innlevering av Årsrapport

Løsningsforslag julekalender, trinn

TDT4102 Prosedyre og Objektorientert programmering Vår 2014

Oblig 4. Alternativ A: Alternativ B: Denne obligen har 3 ulike alternativ: Alternativ A: For de som har lyst til å gjøre et eget prosjekt

Kvikkbilde 8 6. Mål. Gjennomføring. Planleggingsdokument Kvikkbilde 8 6

Dyra på gården. Hva har fire hjul, spiser gress og gir oss melk? En ku på skateboard. Hva slags orkester har kuer? Hornorkester.

Spøkelsesjakten. Introduksjon

Nummer H. Aschehoug & Co Sehesteds gate 3, 0102 Oslo Tlf:

Oblig 4 (av 4) INF1000, høsten 2012 Værdata, leveres innen 9. nov. kl

Go with the. Niende forelesning. Mye matematikk i boka her ikke så komplisert, men mye å holde styr på.

Lage en ny spillverden

Hvorfor får elevene problemer med tekstoppgaver? Hva kan vi gjøre for at elevene skal mestre tekstoppgaver bedre?

Oppgavene 1, 2, 4, 5, 6, 9, 12 og 13 passer best til å løses ved en datamaskin.

Først nå starter du programmet Final Cut Express på egen Mac.

Newtons (og hele universets...) lover

ALGORITMER OG DATASTRUKTURER

Løsningsforslag til 1. del av Del - EKSAMEN

Telle i kor steg på 120 frå 120

MAT1030 Forelesning 30

God matematikkundervisning... - Kva er det? Hva er matematisk kompetanse? Oversikt

Løsningsforslag, Ukeoppgaver 9 INF2310, våren kompresjon og koding del I

The agency for brain development

Hvordan er ventetiden på legekontoret vårt?

AVVISNING MISBRUK/MISTILLIT

Funksjoner og andregradsuttrykk

Skilpadder hele veien ned

Aktivitetskalenderen v1.0 (12. des. 2015)

Ordliste. Obligatorisk oppgave 1 - Inf 1020

Komnett og industriell IKT - høsten 2008 / våren 2009

3. Introduksjon til prosjektet Hringr. Scratch fra scratch Enkel programmering for nybegynnere

Fortelling 3 ER DU MIN VENN?

Enarmet banditt Nybegynner Scratch Lærerveiledning

Lær å bruke Microsoft Mathematics, Matematikk-tillegget i Word og WordMat. Av Sigbjørn Hals

Kompleksitetsanalyse Helge Hafting Opphavsrett: Forfatter og Stiftelsen TISIP Lærestoffet er utviklet for faget LO117D Algoritmiske metoder

Opprydding og Vedlikehold av Windows

Installasjon av Windows 7 og Office 2016

Øvingsforelesning i Python (TDT4110)

På tide med et nytt spill! I dag skal vi lage tre på rad, hvor spillerne etter tur merker ruter med X eller O inntil en av spillerne får tre på rad.

oppgaver fra abels hjørne i dagbladet

Øgrim Bakken Pettersen Skrindo Thorstensen Thorstensen. Digitalt verktøy for Sigma 1P TI-84

MAT1140: Kort sammendrag av grafteorien

Brukerveiledning for Agresso Self Service. Version 1.0. Parkere, dele rad, videresende og fordele. UiT Norges Arktiske Universitet

MAT 100a - LAB 3. Vi skal først illustrerere hvordan Newtons metode kan brukes til å approksimere n-te roten av et positivt tall.

Dublettsammenslåing. GolfBox A/S Sensommervej 34 F 8600 Silkeborg, Danmark Tlf.: :info@golfbox.no Web:golfbox.

1 C z I G + + = + + 2) Multiplikasjon av et tall med en parentes foregår ved å multiplisere tallet med alle leddene i parentesen, slik at

Brukermanual for kommuneansvarlig og testleder

Straffespark Introduksjon Scratch Lærerveiledning

Turingmaskiner en kortfattet introduksjon. Christian F Heide

Innkjøpsbudsjett (BA10)

Del 1: Overgang fra gammel hjemmeside til ny hjemmeside

Leseutviklingen fortsetter

Sannsynlighetsregning og Statistikk.

Gps-sendere på fem voksne gjess på Smøla.

PowerPoint 2002/2003 videregående av Kine Rannekleiv

ADDISJON FRA A TIL Å

Studentene skal kunne. gjøre rede for begrepene naturlige, hele, rasjonale og irrasjonale tall. skrive mengder på listeform

LITT OM OPPLEGGET. INF1000 EKSTRATILBUD Stoff fra uke September 2012 Siri Moe Jensen EKSEMPLER

Lese og skrive seg til forståelse. Svein H. Torkildsen

Skrevet og utarbeidet av Askøy folkebibliotek v/irene Hantveit Kilde Sitat; bank, bank, bank på. Fra boken; Banke på av Anna-Clara Tidholm.

Kan micro:biten vår brukes som en terning? Ja, det er faktisk ganske enkelt!

Asteroids. Oversikt over prosjektet. Steg 1: Enda et flyvende romskip. Plan. Sjekkliste. Introduksjon

PROGRESJONS DOKUMENT. Barnehagens fagområder. Barns læringsprosesser

Velkommen som ny bruker av Uni Økonomi!

Nyttige samtaleverktøy i møte med studenten

INF109 - Uke 1b

Transkript:

Informasjonsteori Skrevet av Joakim von Brandis, 18.09.200 1 Bits og bytes Fundamentalt for informasjonsteori er at all informasjon (signaler, lyd, bilde, dokumenter, tekst, etc) kan representeres som BIT = BInary digits, som hver har verdien 0 eller 1. Det gjør vi ved å la alle typer informasjon representeres ved symboler fra et visst sett av tegn. I dagens datamaskiner deler vi informasjon opp i bytes, som representeres ved åtte bit. Antall mulige tegn i et alfabet er tegn. Tabell 1 Symbol Tallverdi Binærverdi a 61 00111101 b 62 00111110... A 41 00101001 B 42 00101010... 0 0 00011110 1 1 00011111 2 2 00100000... På denne måten kan vi representere f.eks. teksten i dette dokumentet som en lang rekke bytes (hver byte på 8 bit), som tilsammen inneholder informasjonen i dette dokumentet. 2 Informasjon Når vi nå kan representere alt mulig ved hjelp av bits, så vil vi gjerne kunne sende denne informasjonen til andre, eller lagre informasjonen digitalt. Her melder det seg imidlertid et nytt behov; å sende data krever nettverkskapasitet, så vi er interessert i å sende minst mulig. Skal vi lagre på harddisk ønsker vi også at det skal ta så lite plass som mulig. Så istedet for bare ukritisk å lagre de binære data som dokumentet vårt utgjør, så kan vi se på informasjonen dokumentet inneholder. La oss først anta at vi har et litt mindre alfabet av mulige tegn: altså er " # tegn. 1

G D D Vi har en melding &%(')*%,+-*%(.)-/-/-/*%102 der alle tegn i meldingen er hentet fra alfabetet. Det samme kan vi skrive i matematisk notasjon slik: %154 Meldingen er 100 tegn lang, altså 7698:4,;</-/-/=5?>-; ; Tabell 2 Vi kan angi de 8 forskjellige tegnene med bit hver. Vi analyserer meldingen, 8 og @ angir hvor stor andel av tegnene i meldingen som består av tegnet. Dette skal vi bruke litt senere. Symbol Binærverdi @ A 000 0.5 ( >A) ) B 001 0.25 ( >ACB ) C 010 0.125 ( >A)# ) D 011 0.0125 ( >A)D ) E 100 0.0125 ( >A)D ) F 101 0.0125 ( >A)D ) G 110 0.015625 ( >A)ËB ) H 111 0.015625 ( >A)ËB ) Dersom vi sender meldingen med symboler fra, der tegnene er kodet med binærverdiene fra tabell 2 over, ville meldingen ta opp F HG. For en melding på 100 tegn blir det altså F?>-; ; DI D); ; bit.. Entropi Eksempel: Si at du har et dokument som inneholder 100.000 A er. Hvor mye informasjon inneholder det dokumentet? >-; ;J/K; ; ; For det første kan vi beskrive det dokumentet på langt mindre enn G bit ( bit dersom vi bruker alfabetet definert over) Bruker vi vanlige bytes for å gjengi dokumentet, kan vi si at setningen Dokumentet inneholder 100.000 A er, en streng på 4 tegn, dvs. 4 bytes, eller 272 bit, beskriver dokumentet nøyaktig Altså er det veldig mye redundant informasjon (dvs. informasjon som gjentas) i dokumentet. I virkeligheten er informasjonsinnholdet enda mye mindre. Ser vi på et vanlig dokument bestående av vanlig norsk tekst, ser vi at også der er det mye overflødig informasjon. Vi har satt av 8 bit til hvert tegn, men det er noen tegn som brukes mye mer enn andre, og noen tegn brukes ikke overhodet. For eksempel brukes e og a svært ofte i det norske språk, mens w og c brukes svært sjelden (bortsett fra å skrive ordet wc kanskje...) Da kan vi si at noen tegn inneholder mye 2

. @ F mer informasjon enn andre. Det kommer ikke som en overraskelse når det dukker opp en e i et ord, mens c er mye mer spesielt Kan vi bruke dette til å kode en melding mer effektivt enn i tabell 2? Dersom vi bruker et ulikt antall bit på de ulike symbolene, så kan vi forsøke å bruke få bit på de symbolene som opptrer ofte, og litt flere bit på de symbolene som opptrer sjeldnere. På denne måten kan vi få en lavere gjennomsnittlig bit-rate, siden de tegnene som opptrer ofte bruker færre bit, mens de tegnene som bruker flere bit ikke opptrer så ofte, og dermed heller ikke drar opp gjennomsnittet så mye. Derfor sier vi at jo oftere et symbol opptrer, jo mindre informasjon bærer det. Trukket til ytterpunktet får vi at når et symbol opptrer med sannsynlighet 1, så bærer det ingen informasjon Tenk på det slik: dersom vi på forhånd vet at noe skal skje, så er det ikke mye informasjon i å opplyse at det har skjedd (Ser du ut av vinduet fra hybelen din i Trondheim en mandag morgen og oppdager at det regner, så inneholder ikke den opplysningen mye informasjon... det gjør jo stort sett det her i byen...;) Formel 1 Målet på informasjonsinnhold kalles entropi, og defineres formelt: 9L NM FPOQ.SR UT bit 76V8:4 der @ 8 er sannsynligheten for at et tegn er symbolet. Dette forutsetter at hvert tegn er uavhengig av andre tegn. 8 Altså; for hvert symbol har vi at entropien for symbolet er gitt ved 2-logaritmen av @, med negativt fortegn. For å regne ut, så husker vi fra matematikken at. RXW TY F = RXW T = RST Merk også at dersom et symbol opptrer med sannsynlighet nær 0, så vil et slikt symbol inneholde svært mye informasjon Altså kan vi måle informasjonsinnholdet i et symbol 8 ut fra @ Ser vi på meldingen og alfabetet, kan vi regne ut hvor mye informasjon hvert tegn representerer, dersom vi kjenner @ 8 for hvert symbol. Tips:@ (for denne spesifikke meldingen) kan vi regne ut ved å telle antall forekomster av hvert tegn i meldingen. I tabell 2 over har vi angitt verdien av @ for hvert tegn. Denne angir at i meldingen vår utgjør A en andel på 0.5 av alle tegnene, B en andel på 0.125 etc. Vi har da at f.eks. [Z\?M FXOCQ.SR >A)ST]?> bit

n o o o poo w @ v v vv Altså er informasjonsinnholdet i symbolet A bare på 1 bit Til sammenlikning er ^_?M. R >A)ËB T` Et symbol H bærer 6 ganger så mye informasjon som et symbol A i denne meldingen Videre kan vi finne ut hva det gjennomsnittlige informasjonsinnholdet per tegn i meldingen er. bit Formel 2 Gjennomsnittlig informasjonsinnhold per tegn er gitt som der @ er som før. [abced*afc< gmih Med andre ord er gjennomsnittlig entropi lik summen av entropien multiplisert med sannsynligheten, for hvert symbol i alfabetet. @.SR jt Regner vi ut akbkcldmakfkc for meldingen vår får vi at akbkced*akfkc NM >A)rq.SR >A)ST s >ACBIq.SR >ACB T s >A)#q. R >A)#ST s DtqS>A)D rq.sr >A)D ST stqs>a)ëb"q.sr >A)ËB T ukv x/k;sdj>& bit/tegn Vi skal altså ideelt klare å få ned plassforbruket til gjennomsnittlig 2.0 bit per tegn, altså 20 bit for vår melding. Husk at med like mange bit per symbol klarer vi ikke komme under bit per symbol, når vårt alfabet har 8 symboler. Klarer vi å finne en kode som gjennomsnittlig bruker mindre enn bit per tegn da? Ifølge vår utregning inneholder symbolet A 1 bit med informasjon, mens symbolet H inneholder 6. Vi lar disse tallene være et hint om hvor mange bit vi skal representere symbolene med. Samtidig er det viktig at bit-mønstrene vi representerer ulike symboler med, er unike (er ikke symbolet entydig gitt ved bitmønsteret, vil det bli umulig å gjenvinne meldingen). For å finne det rette bitmønsteret for hvert symbol, bruker vi Huffman-algoritmen. Resultatet er treet vist i figur 1. 1. La alle symboler være noder (sammenknytningspunkter). Disse skal vi koble sammen som vist i figur 1. 2. Velg to foreldreløse noder med lavest sannsynlighet (@ ).. Lag en foreldrenode til disse to nodene 4. Gi denne noden sannsynlighet lik summen til de to barna. 5. Gjenta fra punkt 2 helt til kun en foreldreløs node gjenstår Deretter gir hver nodene på første barnenivå en-bits koder, nodene på neste nivå tobits koder, tre-bits koder på tredje nivå, etc, og ender opp med bit-koding av hver node 4

y F G % % 0 A 1 00 B 01 000 C 001 0000 0001 00000 D 00001 E 00010 F 00011 G 000000 H 000001 Figur 1: Bitmønster for tegnene i vårt alfabet som vist i figur 1. (Merk: topp-noden representerer ikke noe valg, og får derfor ikke noe bit) Vi foreslår dermed en bit-koding av hvert tegn (bit-kodingen leser vi ut fra treet): Tabell 8 Symbol Bit-kode A 1 B 01 C 001 D 00001 E 00010 F 00011 G 000000 H 000001 Legg merke til at bit-kodene for symbolene er unike Vi kan også se at en bit-streng som begynner med 1 er en A, siden alle andre symboler begynner med 0. Og du vet at en bit-streng 01 er en B, siden alle symboler (bortsett fra A) begynner med 00, osv. Altså er hvert symbol entydig gitt ved bit-kodingen. Med denne bit-kodingen og @ som gitt i tabell 2 over, kan vi regne ut antall bit for : denne meldingen F, ved hjelp av gjennomsnittlig bit-lengde per tegn; y % R >A)q >T s R >ACB"qST s R >A)#rqCDST s R Dqz>A)D rq ST s Rqz>A)ËBq STY x/k;sdj>&?>-; ; xg{y x/k;sdj>& );SD bit 5

G abced*afc Vi regnet ut for vår melding, som angir det gjennomsnittlige informasjonsinnholdet per bit. Dette er den teoretisk sett laveste gjennomsnittlige bit-lengden per tegn som er mulig uten å miste informasjon. Siden akbkced*akfkc Gg x/k;sdj>& >-; ;} );SD bit, ser vi det ikke er mulig å kode meldingen mer effektivt enn dette (Dette gjelder så lenge forutsetningene om uavhengighet mellom symbolene stemmer. Se neste avsnitt for mer om dette). 4 Komprimering av bilder, video og lyd Under forutsetningene listet opp i formel 1, kan vi altså nøyaktig angi informasjonsinnholdet i en melding, og derav finne den mest effektive kodingen av denne meldingen, uten at vi taper noe informasjon. Mye av det som idag skal lagres og sendes på nettet, er multimedia-dokumenter, altså bilder, lyd og video. Disse kodes også med koder for å gjøre dem minst mulig. Men her er det mulig å finne en mer effektiv koding enn den skissert over. Husk at i formel 1 forutsetter vi at tegnene i meldingen er uavhengige. I bilder, lyd og video er ikke dette lenger sant To bildepunkter som ligger ved siden av hverandre, har en ganske stor sannsynlighet for å være like, eventuelt ha en veldig liten forskjell. Det er altså en viss avhengighet mellom punkter som ligger nær hverandre, og denne ekstra redundante informasjonen kan utnyttes for å kode dokument enda mer effektivt. I et lydspor er det derimot avhengighet i tid, som kan utnyttes for å komprimere lyden bedre. I video er det avhengighet både i rom og tid, som åpner for at video kan komprimeres forholdsmessig langt mer enn både lyd og stillbilde. (Men så er jo videofiler også mye større i utgangspunktet...) Likevel, selv med en slik koding er informasjonsinnholdet i en fullkvalitets videofil enormt, og alle moderne kodingsformater for lyd og bilde innebærer et visst tap av informasjon. Dermed kan man komme godt under den nedre grensen for gjennomsnittlig bit-rate, fordi man faktisk utelater endel informasjon. Denne informasjonen kan ikke rekonstrueres, men med litt intelligente kodingssystemer, velges den informasjonen som tas bort slik at det merkes minst mulig. k 5 Oppsummering Hovedpunktene er altså Vi kan se på det faktiske informasjonsinnholdet per tegn i en melding Informasjonsinnhold kalles entropi og måles i bit/tegn Entropien gir en nedre grense for hvor effektiv en melding kan kodes uten tap 6

For multimediafiler kan vi utnytte ekstra redundans i rom og tid, og dermed kode enda mer effektivt Multimediafiler kodes generelt til en bit-rate under dokumentets faktiske entropi Dette betyr at vi isåfall taper informasjon, som vi ikke kan få tilbake Den informasjonen som tapes må velges slik at brukeren merker minst mulig 7