Markovkæder og kodesprog

Hvem er jeg?
Britta Anker Bak, 23 år
Skolegang på Mors og Thylands Ungdomsskole.
Markovkæder og kodesprog
Matematisk student fra Morsø Gymnasium i år 2007.
Britta Anker Bak
Fandt i 3. g ud af, jeg ville være statistiker.
Flytttede derfor til Århus efter gymnasiet og begyndte på
matematikstudiet.
Læser nu på 4. år, på kandidatuddannelsen i statistik.
Bor på kollegium, strikker og er politisk aktiv.
(statistik)
1 / 120
Opbygningen af studiet
(statistik)
2 / 120
Kommentarer
Sammenhængen mellem matematik- og statistikstudiet. Jobmuligheder
indenfor matematik.
(statistik)
3 / 120
En uge på studiet
(statistik)
4 / 120
Kommentarer
(statistik)
5 / 120
Hvor får man arbejde som statistiker?
(statistik)
6 / 120
Kommentarer
Det private erhvervsliv - et hav af muligheder:
Handel
Banker
Konsulent- og rådgivningsvirksomhed
Medicinalindustri
Sundhed
Forskning:
Universiteter
Interesseorganisationer
Private virksomheder
Undervisning:
Gymnasier
Handelsskoler
Seminarer
Ikke Gallup!
(statistik)
7 / 120
(statistik)
8 / 120
Hvorfor er statistik og sandsynlighedsteori interessant?
Kommentarer
Kan ’forudsige’ fremtiden
Kan bruges som beslutningsgrundlag:
Politik
Aktiekurser
Medicinske forsøg
Risikovurdering
Spilteori
(statistik)
Anvendes inden for forskning på nærmest alle områder.
9 / 120
Resultater af statistik...
(statistik)
10 / 120
Kommentarer
I perioden 1960-1970 faldt antallet af fødsler, samtidig med at antallet
af storkepar i Danmark faldt.
Drukneulykker og issalg hænger sammen: Når der sælges mange is, er
der mange der drukner!
Bør der investeres mere i rynkecreme? Der er en overdødelighed blandt
folk med rynker!
(statistik)
11 / 120
Lidt historie
(statistik)
12 / 120
Kommentarer
I 1600-tallet blev sandsynlighedsregningen opfundet for at beregne
sandsynligheder i spil. I løbet af 1900-tallet blev sandsynlighedsteorien
væsentlig udvidet til en avanceret integralteori, især gennem Andrey
Kolmogorovs arbejde.
De tidlige ’skabere’ af ssteorien var: Gerolamo Cardano, Pierre de Fermat
and Blaise Pascal, Christiaan Huygens.
Integralteorien gør det muligt at se på fordelinger, der ikke bare har
sandsynlighed i et antal punkter - I kender måske normalfordelingen?
I forbindelse med udviklingen af computere er det blevet muligt at udføre
statistiske undersøgelser gennem store simulationer.
(statistik)
13 / 120
Ideen bag simulationer
(statistik)
14 / 120
Kommentarer
Opstil model for virkeligheden
⇒ Simuler fra denne model.
⇒ Se om modellen passer med virkeligheden.
Nej ⇒ Find en anden model.
Ja ⇒ Prøv om du kan finde en model der er endnu bedre!
(statistik)
15 / 120
(statistik)
16 / 120
Problem: En tekst i kodesprog
Kommentarer
I et britisk fængsel blev fundet tekst i kodesprog:
Dette er blot et uddrag af teksten.
Fængselspersonalet var interesseret i, hvad teksten betød.
(statistik)
17 / 120
(statistik)
18 / 120
Kommentarer
De gik ud fra, hvert symbol svarede til et tegn i det almindelige engelske
alfabet (bogstaver, tal, tegnsætning mm).
Hvis blot de 26 bogstaver, punktum og mellemrum er med, vil antallet af
muligheder være:
28! = 28 · 27 · 26 · · · 2 · 1 = 304.888.344.611.713.860.501.504.000.000
Kan det løses?
Kan det gøres hurtigt?
(statistik)
19 / 120
Problem: En tekst i kodesprog
(statistik)
20 / 120
Kommentarer
Løsningsmetode 1
Ansæt kinesere til at forsøge alle muligheder.
(statistik)
21 / 120
(statistik)
22 / 120
Kommentarer
Problem 1: Der er ca. 1.3 mia kinesere i verden.
⇒ De skal tjekke over 100.000.000.000 mia. hver!
Problem 2: Vi kommer til at mangle plastikvarer, teknik, møbler osv.
(statistik)
23 / 120
(statistik)
24 / 120
Problem: En tekst i kodesprog
Kommentarer
Løsningsmetode 2
1
Tæl antallet af hvert tegn i teksten.
2
Stil i rækkefølge efter hyppighed.
3
4
Oversæt det hyppigste tegn til det mest anvendte engelske bogstav,
det næsthyppigste tegn til det næstmest anvendte bogstav osv.
Giver det ikke en læselig tekst, byttes lidt rundt.
Problem: Der er fortsat mange muligheder, kræver MEGET held!
(statistik)
25 / 120
Problem: En tekst i kodesprog
(statistik)
26 / 120
Kommentarer
Løsningsmetode 3
Snak med en statistiker!
Fængselspersonalet kontaktede statistikeren Marc Coram på Stanford
University.
Før vi hører om hans løsning, må vi have styr på nogle matematiske og
sandsynlighedsteoretiske begreber.
(statistik)
27 / 120
Vektorer
(statistik)
28 / 120
Kommentarer
I kender vektorer:
~x =
x1
x2
Denne vektor vil ligge i det to-dimensionale rum R2 , også kaldet planen.
Den kan tegnes den på et stykke papir. Der er også forestille sig en vektor i
det tre dimensionale rum R3 :
 
x1
~x = x2 
x3
Ved oplæg for et statistik-C hold, kan der dog være tilhørere, der kun har
matematik B og dermed ikke kender vektorer.
Hvis der er en tavle til rådighed, tegnes nogle taleksempler på vektorer i R2 .
Tilsvarende er vektorer i det n-dimensionale rum Rn :
 
x1
x2 
 
~x =  .. 
.
xn
(statistik)
29 / 120
Vektorer
(statistik)
30 / 120
Kommentarer
Prikproduktet ganger to vektorer af samme dimension sammen:
 
2
~a = 3
0
 
4
~b = 1
7
⇒ ~a · ~b = 2 · 4 + 3 · 1 + 0 · 7 = 11
(statistik)
31 / 120
(statistik)
32 / 120
Matricer
Kommentarer
En matrix er flere vektorer sat op ved siden af hinanden, fx:
2 3 5
A=
1 7 2
A er en 2×3-matrix (antal rækker × antal søjler).
(statistik)
33 / 120
Matricer
(statistik)
34 / 120
Kommentarer
To matricer kan ganges sammen, hvis antallet af søjler i den første matrix
er det samme som antallet af rækker i den anden. Fx:


2 0
2 3 5
A=
B = 1 −1
1 7 2
0 −3
2 · 2 + 3 · 1 + 5 · 0 2 · 0 + 3 · (−1) + 5 · (−3)
⇒ A·B =
1 · 2 + 7 · 1 + 2 · 0 1 · 0 + 7 · (−1) + 2 · (−3)
7 −18
=
9 −13
Regn evt på tavle i stedet.


4
6
10
−4
3 
B ·A =  1
−3 −21 −6
(statistik)
35 / 120
Matricer
(statistik)
36 / 120
Kommentarer
Lad nu:
C = 2 4 1
Da er


2 0

C · B = 2 4 1 · 1 −1 = 8 −1
0 −3
C · A, A · C og B · C eksisterer ikke.
(statistik)
37 / 120
Matricer
(statistik)
38 / 120
Kommentarer
Hvis A er en kvadratisk matrix, kan den ganges med sig
gange man ønsker det:
2 1
A=
1 −1
2 1
2 1
5
A2 = A · A =
·
=
1 3
1 3
1
2 1
5 1
11
3
2
A = A·A =
·
=
1 −1
1 2
4
selv - så mange
1
2
4
−1
An = A
| · A{z· · · A}
n gange
(statistik)
39 / 120
(statistik)
40 / 120
Opgaver
Kommentarer
Afgør hvilke af følgende matricer der kan ganges sammen.
Regn hvor det er muligt.


2 1
3 5 1 
a)
· 1 3
−2 0 2
4 1


4 −2
b ) 6 −4 · 1 2 3
8 −6

 

1 4 3
3 2
c ) 0 1 4 · 1 1
0 0 2
4 5
4 6
3 1 5
d)
·
2 1
4 1 6
(statistik)
Regnes af tilhørerne på papir.
41 / 120
Resultater
(statistik)
42 / 120
Kommentarer
a)
15 19
4 0
b ) Ikke mulig


19 21

c ) 17 21
8 10
36 10 56
d)
10 3 16
(statistik)
43 / 120
Markovkæder
(statistik)
44 / 120
Kommentarer
En sandsynlighedsvektor har alle indgange ≥ 0 og summen af dem er 1, fx:


1/6
1/6
 


0.2
1/6



~x = 0.4
~y = 
1/6


0.4
1/6
1/6
~y kan anses for at være sandsynligheder for terningekast.
En matrix hvor alle rækker er sandsynlighedsvektorer, kaldes en stokastisk
matrix.
(statistik)
45 / 120
Markovkæder
(statistik)
46 / 120
Kommentarer
En markovkæde er en proces, hvor sandsynlighederne for at bevæge sig
imellem de mulige tilstande er givet ved en stokastisk matrix M.
En markovkæde er glemsom - hvor man vil befinde sig i fremtiden afhænger
ikke af fortiden, men kun hvor man er nu.
Antag der er k forskellige tilstande, kaldet y1 , y2 , y3 , . . . , yk −1 , yk .
M kaldes matricen af overgangssandsynligheder og er en k × k-matrix.
Hvis man befinder sig i tilstand yi , angiver M (i, j ), den j’te plads i i’te
række af M, sandsynligheden for at gå til tilstanden yj i næste trin:
P (X1 = yj |X0 = yi ) = M (i, j )
(statistik)
47 / 120
(statistik)
48 / 120
Markovkæder
Kommentarer
P (X2 = yj |X0 = yi )
= P (X2 = yj |X1 = y1 , X0 = yi ) · P (X1 = y1 |X0 = yi )
+ P (X2 = yj |X1 = y2 , X0 = yi ) · P (X1 = y2 |X0 = yi )
+···
+ P (X2 = yj |X1 = yk , X0 = yi ) · P (X1 = yk |X0 = yi )
= P (X2 = yj |X1 = y1 ) · P (X1 = y1 |X0 = yi )
+ P (X2 = yj |X1 = y2 ) · P (X1 = y2 |X0 = yi )
+···
+ P (X2 = yj |X1 = yk ) · P (X1 = yk |X0 = yi )
= M (1, j ) · M (i, 1) + M (2, j ) · M (i, 2) + · · · + M (k, j ) · M (k, 1)
= M (i, 1) · M (1, j ) + M (i, 2) · M (2, j ) + · · · + M (i, k ) · M (k, j )
Ved anden lighed er udnyttet, at processen er uafhængig af fortiden givet
nutiden.
= M 2 (i, j )
(statistik)
49 / 120
Markovkæder
(statistik)
50 / 120
Kommentarer
Tilsvarende fås sandsynligheden for at befinde sig i tilstand j efter n trin:
P (Xn = yj |X0 = yi ) = M n (i, j )
(statistik)
51 / 120
Eksempel: Kaninhop
(statistik)
52 / 120
Kommentarer
Forestil dig en kanin, der hopper rundt mellem tallene {1, 2, 3, 4, 5, 6, 7, 8}.
Jørgen Hoffmans berømte eksempel fra modellering 2, reduceret til en
endelig situation, for at kunne opskrive en konkret matrix.
Kaninen har intet ur eller hukommelse.
Den slår plat og krone før hvert hop.
Slår den krone, hopper den et tal frem.
Slår den plat, hopper den et tal tilbage.
Kan den ikke kan hoppe længere, bliver den hvor den er.
(statistik)
53 / 120
Eksempel: Kaninhop
(statistik)
54 / 120
Kommentarer
Sandsynlighederne for at komme fra et tal til et andet er:
1
2
3
4
5
6
7
8
1
1/2
1/2
0
0
0
0
0
0
2
1/2
0
1/2
0
0
0
0
0
3
0
1/2
0
1/2
0
0
0
0
4
0
0
1/2
0
1/2
0
0
0
5
0
0
0
1/2
0
1/2
0
0
6
0
0
0
0
1/2
0
1/2
0
7
0
0
0
0
0
1/2
0
1/2
8
0
0
0
0
0
0
1/2
1/2
Det er naturligvis kun det indre af tabellen, der er overgangsmatricen.
Tabellen kan ses som en 8×8-matrix, der er stokastisk.
(statistik)
55 / 120
(statistik)
56 / 120
Kaninhop - øvelse
Kommentarer
Start i 1 og slå 10 gange med en mønt. Hvor ender du?
Øvelsen tænkes gennemført af tilhørerne.
Matricen M er tabellen fra foregående slide.
Sandsynligheden for at ende i fx 5 er:
P (X10 = 5|X0 = 1) = M 10 (1, 5)
(statistik)
57 / 120
Eksempel: Befolkning i storbyer
58 / 120
Kommentarer
Forestil dig en storby med 1.000.000 indbyggere. 30% bor i centrum, de
resterende 70% i forstæderne. Hvert år vil 6% af indbyggerne i centrum
flytte til forstæderne, mens 2% af indbyggerne i forstæder flytter til
centrum.
0.94 0.06
A=
x 0 = 0.30 0.70
0.02 0.98
Fordelingen af indbyggere efter et år vil være:
x 1 = x 0 · A = 0.296 0.704
(statistik)
Tilsvarende fås:
Eksemplet er taget fra lineær algebrabogen: Steven Lyon, ’Linear Algebra’
s. 153-154.
Regn gerne de første multiplikationer på tavle.
Bemærk pilen er forsvundet over vektorer, og vil være det gennem resten af
oplægget.
x 2 = x 1 · A = x 0 · A · A = x 0 · A2
og
x n = x 0 · An
På denne måde beregnes:
x 10 = 0.27 0.73
x 30 = 0.25 0.75
x 50 = 0.25 0.75
(statistik)
59 / 120
Stationære fordelinger
(statistik)
60 / 120
Kommentarer
Det ser ud til, fordelingen af indbyggere på et tidspunkt holder op med at
forandre sig. Denne fordeling vil kaldes markovprocessens stationære
fordeling, og vil ikke afhænge af start-fordelingen x 0 .
Bemærk:
0.94 0.06
0.25 0.75 ·
= 0.25 0.75
0.02 0.98
Dette vil altid gælde for en stationær fordeling. Kaldes den stationære
fordeling π = (π1 , π2 , . . . , πn ) kan dette skrives:
π·A = π
(statistik)
61 / 120
Eksempel: Blaffetur
(statistik)
62 / 120
Kommentarer
Du vil blaffe rundt i din ferie.
Næste destination bestemmes ved terningekast.
Paris, hvis der slås et eller seks.
Ringkøbing, hvis der slås to.
Prag, hvis der slås tre.
Warszawa, hvis der slås fire eller fem.
Skal du hen, hvor du allerede er, tager du i stedet hjem og bliver der.
(statistik)
63 / 120
(statistik)
64 / 120
Eksempel: Blaffetur
Kommentarer
Matricen af overgangssandsynligheder:
Paris
Ringk.
Prag
War
Hjem
Paris
0
2/6
2/6
2/6
0
Ringk.
1/6
0
1/6
1/6
0
Prag
1/6
1/6
0
1/6
0
War
2/6
2/6
2/6
0
0
Hjem
2/6
1/6
1/6
2/6
1
Da den stationære fordeling ikke afhænger af startfordeling, kan du altså
regne med at komme hjem, uanset hvor du starter.
Evt kan man som i kanineksemplet lade tilhørerne slå 10 gange med en
terning.
Startes i Paris, dvs på vektorform:
x0 = 1 0 0 0 0
og kaldes overgangsmatricen A vil:
x0 · A10 = 0.012 0.007 0.007 0.012 0.961
Altså er man næsten sikker på at være hjemme efter 10 terningeslag.
(statistik)
65 / 120
Problem: En tekst i kodesprog
(statistik)
66 / 120
Kommentarer
Jeg vender tilbage til problemet med den krypterede tekst.
Statistikeren Marc fra Stanford University betragter oversættelsen fra
kodesprog til almindeligt alfabet som en funktion:
De her opskrevne symboler stammer ikke rent faktisk fra kodeteksten, men
var blot nogle mærkelige symboler jeg fandt i latex.
f : {kodesprog} → {britisk alfabet}
så der fx. kan gælde:
f (+) = c
f (Z) = e
f (∠) = m
(statistik)
67 / 120
Problem: En tekst i kodesprog
(statistik)
68 / 120
Kommentarer
Som tidligere nævnt er der over 3 · 1029 forskellige muligheder for f .
Antallet for f kommer fra slide 11.
Marc ønsker at finde den mest sandsynlige f .
(statistik)
69 / 120
Problem: En tekst i kodesprog
(statistik)
70 / 120
Kommentarer
Derfor downloader han bogen ’Krig og fred’.
(statistik)
71 / 120
(statistik)
72 / 120
Problem: En tekst i kodesprog
Kommentarer
Heri får han en computer til at tælle antallet af hver kombination af to på
hinanden følgende bogstaver og tegn. Betragt teksten:
Der ligger et hus.
Gennemfør gerne (noget af) denne optælling på tavle.
Skrives mellemrum med _ er i det ovenstående følgende kombinationer:
de; er (2 gange), et; ge; gg; hu; ig; li;
r_ (2 gange); s.; t_; _e; _h; _l
(statistik)
73 / 120
Problem: En tekst i kodesprog
(statistik)
74 / 120
Kommentarer
Dernæst betragtes alle a’er i bogen (medmindre det er bogens allersidste
tegn). Marc finder:
#aa
antal a’er der efterfølges af a
=
antal a’er i alt
#a
antal a’er der efterfølges af b
#ab
=
antal a’er i alt
#a
...
Husk tilhørerne næppe kender notationen #.
At det er en sandsynlighedsvektor skyldes, at alle a’er (der ikke er bogens
absolut sidste tegn) må efterfølges af et eller andet, så den samlede andel
bliver 1.
Disse sættes ind i en lang vektor:
#aa #ab #ac
#a_ #a, #a. ,
,
,...,
,
,
#a #a #a
#a #a #a
Dette er en sandsynlighedsvektor.
(statistik)
75 / 120
Problem: En tekst i kodesprog
(statistik)
76 / 120
Kommentarer
Tilsvarende findes vektorerne:
#ba #bb #bc
#b_ #b, #b. ,
,
,...,
,
,
#b #b #b
#b #b #b
..
.
#.a #.b #.c
#._ #., #.. ,
,
,...,
,
,
.
#. #. #.
#. #. #.
(statistik)
77 / 120
Problem: En tekst i kodesprog
Vektorerne sættes op i en stor, kvadratisk matrix:
 #aa #ab #ac
#a_
. . . , #a
#a
#a
#a
 #ba #bb #bc
#b_
 #b
. . . , #b
#b
#b
M=
 ..
 .
#._
#.a
#.b
#.c
. . . , #.
#.
#.
#.
(statistik)
78 / 120
Kommentarer
#a,
#a
#b,
#b
#a.
#a
#b. 
#b 

#.,
#.
#..
#.

Angående problemet med markovantagelsen:
På dansk vil e fx ofte efterfølges af r, hvis der er d foran. (Uden jeg dog har
undersøgt om det vil forekomme relativt oftere).


Dette er en stokastisk matrix
⇒ skift fra et bogstav til det næste er en markovkæde.
Marc kan dog ikke være sikker på, at sandsynlighederne for det næste
bogstav, ikke afhænger af de foregående.
Han vælger at ignorere dette.
(statistik)
79 / 120
(statistik)
80 / 120
Problem: En tekst i kodesprog
Kommentarer
Marc sætter:
symboli = Det i’te symbol i kodebeskeden
nkode = Antal symboler i kodebeskeden
Nu betragter Marc mængden:
Bemærk nkode er det samlede antal symboler i koden - ikke antallet af
forskellige symboler.
f : {kodesprog} → {britisk alfabet}
og vælger en tilfældig f herfra. Med denne oversættes koden til det
almindelige alfabet. På denne måde fås en (sandsynligvis meningsløs) tekst
med almindelige bogstaver:
f (symbol1 )f (symbol2 ), f (symbol3 ) . . . f (symbolnkode −1 )f (symbolnkode )
(statistik)
81 / 120
Problem: En tekst i kodesprog
(statistik)
82 / 120
Kommentarer
I M aflæses sandsynligheden for, at de første to bogstaver vil følge efter
hinanden ved at kigge på M (f (symbol1 ), f (symbol2 )) og tilsvarende
gennem resten af teksten. Dette kan anses som en sandsynlighed for hver
bogstavkombination. Disse ganges sammen:
P (f ) = M (f (symbol1 ), f (symbol2 )) · M (f (symbol2 ), f (symbol3 )) · · ·
· · · M (f (symbolnkode −1 ), f (symbolnkode ))
(statistik)
83 / 120
Problem: En tekst i kodesprog
(statistik)
84 / 120
Kommentarer
Hvis
f (+) = s
f (Z) = e
f (∠) = h
f (∇) = t
vil
+ Z∇ Z ∠
blive til
seteh
og
P (f ) = M (s, e ) · M (e, t ) · (M (t, e ) · M (e, h )
Marc er interesseret i at finde det f med den største sandsynlighed.
(statistik)
85 / 120
Opgave
(statistik)
86 / 120
Kommentarer
Oversæt
∠Z + ∇
Svaret er hest.
med
f (+) = s
(statistik)
f (Z) = e
f (∠) = h
f (∇) = t
87 / 120
(statistik)
88 / 120
Problem: En tekst i kodesprog
Kommentarer
Marc opbygger en algoritme, bygget over metropolis-algoritmen.
1
2
3
Start med en tilfældig f .
Lav en ny oversættelsesfunktion f ∗ ved at ændre på betydningen af to
symboler i f .
Oversæt symbolteksten vha. f ∗ og beregn P (f ∗ ).
∗
∗
1 Hvis P (f ) > P (f ) startes fra trin 2 med f = f .
∗
∗ skal bruges.
2 Hvis P (f ) ≤ P (f ) slås plat og krone om f eller f
Hernæst gås til trin 2.
Hvis sandsynligheden af f ∗ er større, vil den accepteres.
Hvis sandsynligheden er mindre, vil den måske accepteres alligevel.
Derved undgås at blive fanget i lokale maksimum. Dette kunne umuliggøre
at finde det globale maksimum.
(statistik)
89 / 120
Problem: En tekst i kodesprog
(statistik)
90 / 120
Kommentarer
f fra før kan fx ændres til
f (+) = s
f (Z) = a
f (∠) = h
f (∇) = r .
Her er netop ændret på betydningen af de to symboler Z og ∠.
Så vil
+ Z∇ Z ∠
blive til
sarah.
(statistik)
91 / 120
Problem: En tekst i kodesprog
(statistik)
92 / 120
Kommentarer
Interessante spørgsmål:
Virker algoritmen?
Hvis ja, hvornår skal den stoppes?
I eksemplet med Hamlet består kodesproget altså af det almindelige
alfabet, blot med bogstavernes betydning ombyttet tilfældigt.
For at undersøge dette, programmerer Marc algoritmen på en computer.
Efterfølgende tester han den på en kendt tekst, et uddrag af Shakespeares
Hamlet. Her byttes tilfældigt om på bogstavernes betydning. Algoritmen
anvendes på denne ombytning.
(statistik)
93 / 120
Problem: En tekst i kodesprog
(statistik)
94 / 120
Kommentarer
Tallene i venstre side angiver, antallet af gange algoritmen er forløbet.
(statistik)
95 / 120
(statistik)
96 / 120
Problem: En tekst i kodesprog
Kommentarer
Metoden ser ud til at virke - endda ret hurtigt!
Marc anvender efterfølgende computerprogrammet på fængselsteksten.
(statistik)
97 / 120
Problem: En tekst i kodesprog
(statistik)
99 / 120
(statistik)
100 / 120
Kommentarer
Denne tekst giver mening og foregår i et fængsel. Den må være korrekt!
Algoritmen var bygget på bogstavfrekvenser i ’War and Peace’
⇒ Overraskende den virker på teksten, der viser sig at være en blanding af
engelsk, spansk og fængsels-slang.
101 / 120
Problem: En tekst i kodesprog
(statistik)
98 / 120
Kommentarer
Problem: En tekst i kodesprog
(statistik)
(statistik)
Denne tekst giver mening og foregår i et fængsel. Den må være korrekt!
Algoritmen var bygget på bogstavfrekvenser i ’War and Peace’, derfor
overraskende den virker på teksten, der viser sig at være en blanding af
engelsk, spansk og fængsels-slang.
Det viser det sig, der ikke var nogen problemer i at antage uafhængighed af
foregående bogstaver på slide 38.
Ifølge Diaconis har mennesker dog lavet en lille smule korrektur på teksten
efterfølgende.
(statistik)
102 / 120
Kommentarer
103 / 120
(statistik)
104 / 120
Metropolis-algoritmen
Kommentarer
Jeg vil nu kigge nærmere på metropolis-algoritmen, der anvendtes til at
finde den bedste oversættelses-funktion f .
Den blev første gang publiceret i 1953, og har siden fundet anvendelse i
mange matematiske, kemiske og fysiske sammenhænge.
(statistik)
105 / 120
Metropolis-algoritmen
Er der tidsnød, er det dette afsnit der skal skæres fra, da det nok er de
færreste der vil forstå ret meget af det.
(statistik)
106 / 120
Kommentarer
Antag der er nkode forskellige symboler i kodesproget og nalfabet forskellige
tegn i alfabetet og de øvrige tegn (tal, mellemrum, punktum osv.) i det
virkelige sprog. Antag nkode ≤ nalfabet .
Betragt rummet:
F = f : {kodesprog} → {britisk alfabet}
Antallet af funktioner i rummet vil være:
Angående beregningen af nfunktion :
Det første symbol kan vælges mellem nalfabet forskellige tegn, det andet
symbol mellem nalfabet − 1, osv. idet det antages, to symboler ikke kan
betyde det samme tegn.
nfunktion = nalfabet · (nalfabet − 1)(nalfabet − 2) · · · (nalfabet − (nkode − 1))
= nalfabet · (nalfabet − 1)(nalfabet − 2) · · · (nalfabet − nkode + 1)
(statistik)
107 / 120
(statistik)
108 / 120
Metropolis-algoritmen
Kommentarer
Vælges tilfældigt f i F vil antallet af funktioner, der højst afviger fra f på
to symboler være:
nkode
· (nalfabet − (nkode − 2)) · (nalfabet − (nkode − 1))
2
nkode !
=
(n
− nkode + 2)(nalfabet − nkode + 1)
(nkode − 2)!2! alfabet
n
· (nkode − 1) · (nkode − 2) · · · 2 · 1
= kode
((nkode − 2)(nkode − 1) · · · 2 · 1) · 2
· (nalfabet − nkode + 2)(nalfabet − nkode + 1)
1
= · nkode · (nkode − 1) · (nalfabet − nkode + 2)(nalfabet − nkode + 1)
2
(nkode
2 ) er antallet af kombinationer af to symboler, der kan ændres.
nalfabet − (nkode − 2) er antallet af ledige tegn i alfabetet, det første symbol
kan ændres til. (Bemærk det kan ændres tilbage til sin forhenværende
værdi – dermed kan f ∗ godt afvige fra f på mindre end to pladser.)
nalfabet − (nkode − 1) er antallet af ledige tegn i alfabetet det andet symbol
kan ændres til.
I Diaconis går 12 ud. Jeg kan ikke se hvorfor, derfor har jeg valgt at beholde
det.
(statistik)
109 / 120
Metropolis-algoritmen
1
2
1
· nkode · (nkode − 1) · (nalfabet − nkode + 2)(nalfabet − nkode + 1)
Ellers er J (f , f ∗ ) = 0. Der gælder:
J (f , f ∗ ) > 0
(statistik)
110 / 120
Kommentarer
At vælge f ∗ ud fra f vil være en Markovkæde. Kald matricen af
overgangsssandsynligheder J. Hvis f og f ∗ højst er forskellige på to
symboler er:
J (f , f ∗ ) =
(statistik)
⇔
At det er en markovkæde skyldes, at man kan opskrive en stokastisk matix
med overgangssandsynlighederne, og fremtiden er åbenlyst uafhængig af
fortiden, blot nutiden kendes.
Det første J (f , f ∗ ) er blot en uniform sandsynlighed på de mulige f ∗ , der
opnås ved at dividere med det netop udledte antal af disse.
J (f ∗ , f ) > 0
111 / 120
(statistik)
112 / 120
Metropolis-algoritmen
Kommentarer
Der ønskes i stedet en Markovkæde, der har en stationær fordeling
proportionel med sandsynligheden for den pågældende f , defineret ud fra
optællingen af bogstavskombinationer i ’War and Peace’. Dette vil betyde
at efter mange trin er der størst sandsynlighed for at have en
oversættelsesfunktion, der svarer til hvordan bogstaver sædvanligt er
kombineret i det engelske sprog. Husk:
P (f ) = M (f (symbol1 ), f (symbol2 )) · M (f (symbol2 ), f (symbol3 )) · · ·
· · · M (f (symbolnkode −1 ), f (symbolnkode ))
Det tal, der er den stationære sandsynlighed netop for f kaldes π (f ). Der
gælder:
π (f ) = P (f ) · konstant
hvor konstanten er valgt så π bliver en sandsynlighedsvektor.
(statistik)
113 / 120
Metropolis-algoritmen
(statistik)
114 / 120
Kommentarer
Hvor J (f , f ∗ ) 6= 0 sættes:
A(f , f ∗ ) =
π (f ∗ ) · J (f ∗ , f )
π (f ) · J (f , f ∗ )
Sæt:
Når A(f , f ∗ ) kommer i spil, bliver det altså til en Monte-Carlo simulation.
J (f , f ∗ ) hvis f 6= f ∗ , A(f , f ∗ ) ≥ 1
eller J (f , f ∗ ) = 0
K (f , f ∗ ) =

J (f , f ∗ ) · A(f , f ∗ ) hvis f 6= f ∗ , A(f , f ∗ ) < 1


K (f , f ) fastsættes, så rækkerne i K bliver sandsynlighedsvektorer.
A(f , f ∗ ) kan betragtes som andelen af foreslåede skridt fra f til f ∗ , der
accepteres. Hvor A(f , f ∗ ) ≥ 1 vil denne andel være 1.
(statistik)
115 / 120
Metropolis-algoritmen
(statistik)
116 / 120
Kommentarer
Hvis A(f , f ∗ ) < 1 vil A(f ∗ , f ) ≥ 1 og dermed:
J (f , f ∗ ) · π (f ∗ ) · J (f ∗ , f )
π (f ) · J (f , f ∗ )
π (f ∗ ) · J (f ∗ , f )
π (f ∗ ) · K (f ∗ , f )
=
=
π (f )
π (f )
∗
∗
⇒ π (f ) · K (f , f ) = π (f ) · K (f , f ∗ )
K (f , f ∗ ) = J (f , f ∗ )A(f , f ∗ ) =
π (f ∗ ) · K (f ∗ , f ) = π (f ) · K (f , f ∗ ) er en anden måde at definere en
stationær fordeling.
Dette gælder også i de øvrige tilfælde. Det vil svare til:
π·K = π
Altså vil markovkæden defineret ved K have stationær fordeling π som
ønsket.
(statistik)
117 / 120
Metropolis-algoritmen
(statistik)
118 / 120
Kommentarer
Det betyder, at efter mange trin vil algoritmen med stor sandsynlighed
befinde sig i en oversættelsesfunktion f , der giver teksten en høj grad af
mening (hvis en sådan eksisterer).
Giver algoritmen ikke noget meningsgivende, kan det skyldes, kodningen
har en mere kompliceret opbygning.
(statistik)
119 / 120
(statistik)
120 / 120
Tak for i dag
Kommentarer
Spørgsmål?
(statistik)
121 / 120
(statistik)
122 / 120