Maskininlärning Agent som lär sig729G11/resources/fo-oh/ML.pdf · Ofta klustring, ex Kohonennät,...

14
Maskininlärning ! Introduktion ! Genetiska algoritmer ! Exempelinlärning ! Beslutsträdsinlärning ! Version Space-inlärning Agent som lär sig Omgivning Agent Sensorer Effektorer Utförande- element Kritiserare Inlärnings- element Problemgenerator Yttre standard/återkoppling Förändringar Kunskap Åter- koppling Mål Typer av återkoppling ! Omgivningen talar direkt om vilken handling som skulle varit korrekt ! Specifikt exempel till generell regel, ex beslutsträd och version space ! Generellt råd till exekverbar regel, ex råd i kortspel som via operationaliseringar omvandlas till en specifik regel ! Reinforcement learning ! Agenten får bara reda på om det var bra eller dåligt, inte varför eller vilken handling som orsakade detta ! Ingen återkoppling från omgivningen ! Ofta klustring, ex Kohonennät, self-organizing maps (SOM) ! AM annat exempel Genetiska algoritmer ! Iterativ metod som utgår från de bästa tillstånden och förbättrar dessa ! Naturligt urval ! Operatorer inspirerade från naturlig genetisk variation ! Arbetar parallellt med flera sökrymder ! Egentligen sökmetod men också inlärning

Transcript of Maskininlärning Agent som lär sig729G11/resources/fo-oh/ML.pdf · Ofta klustring, ex Kohonennät,...

Page 1: Maskininlärning Agent som lär sig729G11/resources/fo-oh/ML.pdf · Ofta klustring, ex Kohonennät, self-organizing maps (SOM) ! AM annat exempel Genetiska algoritmer ! Iterativ metod

Maskininlärning

!  Introduktion !  Genetiska algoritmer

!  Exempelinlärning !  Beslutsträdsinlärning

!  Version Space-inlärning

Agent som lär sig

Om

givning

Agent

Sensorer

Effektorer

Utförande- element

Kritiserare

Inlärnings- element

Problemgenerator

Yttre standard/återkoppling

Förändringar

Kunskap

Åter- koppling

Mål

Typer av återkoppling

!  Omgivningen talar direkt om vilken handling som skulle varit korrekt !  Specifikt exempel till generell regel, ex beslutsträd och version

space

!  Generellt råd till exekverbar regel, ex råd i kortspel som via operationaliseringar omvandlas till en specifik regel

!  Reinforcement learning !  Agenten får bara reda på om det var bra eller dåligt, inte varför eller

vilken handling som orsakade detta

!  Ingen återkoppling från omgivningen !  Ofta klustring, ex Kohonennät, self-organizing maps (SOM)

!  AM annat exempel

Genetiska algoritmer

!  Iterativ metod som utgår från de bästa tillstånden och förbättrar dessa

!  Naturligt urval !  Operatorer inspirerade från naturlig genetisk variation

!  Arbetar parallellt med flera sökrymder

!  Egentligen sökmetod men också inlärning

Page 2: Maskininlärning Agent som lär sig729G11/resources/fo-oh/ML.pdf · Ofta klustring, ex Kohonennät, self-organizing maps (SOM) ! AM annat exempel Genetiska algoritmer ! Iterativ metod

Komponenter

!  Kodning (gen, kromosom) !  Initialiseringsprocedur (skapa)

!  Evalueringsfunktion (omgivning) !  Föräldraurval (reproduktion)

!  Genetiska operatorer (mutation, korsning)

Population

Kromosomer kan vara: !  Bitsträngar 0 1 0 1 ... 1 1 0 0

!  Tal 43,2 -33,1 ... 0,0 89,2 !  Permuationer E11 E3 E7 ... E1 E15

!  Regellistor R1 R2 R3 ... R22 R23

!  Program if dir==“Norr”: goWest

!  ...

Exempel, 1

!  Bitsträngskromosom, 5 bit !  Vill ha bara ettor

!  Slumpmässigt skapade kromosomer, 3 st !  Evalueringsfunktion som räknar antal ettor

!  Välj de bästa föräldrarna för reproduktion

!  Låt de bästa kromosomerna vara kvar, men ta bort dubbletter !  Genetisk operation

!  Byt slumpmässig bit i den kromosom som inte reproducerades

Exempel, 2

Initialpopulation 0 1 0 1 0 2 ettor

1 1 0 1 0 3 ettor 0 0 1 0 0 1 etta

Reproduktion

1 1 0 1 0

Genetisk operation 0 0 1 0 1

Ny population 0 1 0 1 0 2 ettor

1 1 0 1 0 3 ettor 0 0 1 0 1 2 ettor

Evaluera 0 1 0 1 0 2 ettor

1 1 0 1 0 3 ettor 0 0 1 0 0 1 etta

1 1 0 1 0 3 ettor

0 0 1 0 1 2 ettor

Page 3: Maskininlärning Agent som lär sig729G11/resources/fo-oh/ML.pdf · Ofta klustring, ex Kohonennät, self-organizing maps (SOM) ! AM annat exempel Genetiska algoritmer ! Iterativ metod

Exempel, 3

Population 0 1 0 1 0 2 ettor

1 1 0 1 0 3 ettor 0 0 1 0 1 2 ettor

Reproduktion

1 1 1 1 1

Genetisk operation 0 0 1 1 1

Evaluera 0 1 0 1 0 2 ettor

1 1 0 1 0 3 ettor 0 0 1 0 1 2 ettor

0 0 1 1 1 3 ettor

1 1 1 1 1 5 ettor

Enkel genetisk algoritm

initialisera populationen utvärdera populationen

while inte tillfredställande resultat: välj ut föräldrar för reproduktion

korsa och mutera

utvärdera populationen

Operationer

!  Reproduktion !  Föräldrarna väljs slumpmässigt med hänsyn till

kromosomutvärdering

!  Kromosomförändringar !  Stokastiskt triggade

!  Mutationer

!  Korsningar

!  Välja ut individer !  Rouletthjul

Rouletthjul

!  Bättre fitnessvärde ger större chans att överleva men slump finns kvar

!  Exempel Kromosom A, fitness 4 Kromosom B, fitness 10 Kromosom C, fitness 5 Kromosom D, fitness 1

Page 4: Maskininlärning Agent som lär sig729G11/resources/fo-oh/ML.pdf · Ofta klustring, ex Kohonennät, self-organizing maps (SOM) ! AM annat exempel Genetiska algoritmer ! Iterativ metod

Exempel, 1

Handelsresandeproblemet

A

C D

B 1

2 1

4

3 5

Exempel, 2

!  Korsning !  Två gener. Ta första från första, andra från andra, tredje från första etc

och bilda en ny gen. Om elementet redan finns ta nästa. Sluta med samma som start

!  Mutation !  Byt slumpmässigt två element

!  Fitness !  Totalavstånd

!  Starttillstånd A B C D A B C D A B C D A B C D A B C D

Exempel, 3

Korsa de två första: A B C D A B C D A B A C D eftersom C som är tredje från första genen redan finns B eftersom A redan finns

Ny gen A C D B A

Korsa de två sista: C D A B C D A B C D

Ny gen: C A B D C

Exempel, 4

!  Mutera första genen slumpmässigt A B C D A A D C B A

!  Ny population

A 1 B 2 C 4 D 5 A = 12 B 2 C 4 D 5 A 1 B = 12 C 4 D 5 A 1 B 2 C = 12 D 5 A 1 B 2 C 4 D = 12 A 3 C 4 D 2 B 1 A = 10 C 3 A 1 B 2 D 4 C = 10 A 5 D 4 C 1 B 1 A = 11

!  Behåll de fyra bästa

Page 5: Maskininlärning Agent som lär sig729G11/resources/fo-oh/ML.pdf · Ofta klustring, ex Kohonennät, self-organizing maps (SOM) ! AM annat exempel Genetiska algoritmer ! Iterativ metod

Exempel, 5

!  Ny population D 5 A 1 B 2 C 4 D = 12 A 3 C 4 D 2 B 1 A = 10 C 3 A 1 B 2 D 4 C = 10 A 5 D 4 C 1 B 1 A = 11

!  Korsa två första D C B A D

!  Korsa två sista C D B A C

!  Mutera första. Slumpen gav andra och tredje staden D B A C D

Exempel, 6

!  Ny population D 5 A 1 B 2 C 4 D = 12 A 3 C 4 D 2 B 1 A = 10 C 3 A 1 B 2 D 4 C = 10 A 5 D 4 C 1 B 1 A = 11 D 4 C 2 B 1 A 5 D = 12 C 4 D 2 B 1 A 3 C = 10 D 2 B 1 A 3 C 4 D = 10

!  Behåll de fyra bästa A 3 C 4 D 2 B 1 A = 10 C 3 A 1 B 2 D 4 C = 10 C 4 D 2 B 1 A 3 C = 10 D 2 B 1 A 3 C 4 D = 10

!  etc

Genetisk programmering

!  Genetiska algortimer med program som data !  Skapa program som löser given uppgift

Exempel

Hitta ekvation för mätdata

Skapa en ekvation räkna ut och jämför med kurvan, t.ex.

y = x*x – 3 y = x + 4 –x3

y = x etc

Page 6: Maskininlärning Agent som lär sig729G11/resources/fo-oh/ML.pdf · Ofta klustring, ex Kohonennät, self-organizing maps (SOM) ! AM annat exempel Genetiska algoritmer ! Iterativ metod

GP algoritm

generera program slumpmässigt kör och utvärdera program med träningsdata while inte tillräckligt bra program

välj ut program för reproduktion modifiera programmen kör och utvärdera program med träningsdata

Exempel, 1

Ex. if norr and not bumpÖster: return goÖster if öster and not bumpSöder: return goSöder if söder and not bumpVäster: return goVäster return goNorr

Wumpus följa väggen Förflyttning och riktning:

Norr, Söder, Väster, Öster

if

and if return goÖster

norr not and return goSöder

öster not and return goVäster

söder not

if

bumpVäster

return goNorr bumpÖster

bumpSöder

Exempel, 2

1.  Skapa initial population, t.ex. 5000 slumpmässigt skapade syntaktiskt korrekta träd

2.  Fitness: Låt agenten starta 10 gånger, varje gång från en ny position. Låt agenten gå 60 steg och räkna antalet unika rutor som angränsar till en vägg

if

and if return goNorr

norr norr söder return goNorr

and return goVäster

söder not

if

bumpVäster

return goNorr

Exempel, 3

3.  Skapa nya program genom att 1.  Låta de 500 bästa överleva

2.  Skapa ytterligare 4500 nya individer av dessa bästa genom slumpässig korsning

if

and if return goNorr

norr norr söder return goNorr

and return goVäster

söder not

if

bumpVäster

return goNorr

return goVäster

if

return goNorr if

söder return goNorr

Page 7: Maskininlärning Agent som lär sig729G11/resources/fo-oh/ML.pdf · Ofta klustring, ex Kohonennät, self-organizing maps (SOM) ! AM annat exempel Genetiska algoritmer ! Iterativ metod

Exempel, 4

4.  Mutera 50 program genom att byta ett delträd mot ett slumpmässigt skapat delträd

söder

and return goVäster

not

if

bumpVäster

return goNorr and return goVäster

söder not

if

and

return goNorr

bumpÖster väster

I en värld med 32 väggrutor får man fram ett perfekt program efter 10 generationer

Beslutsträd

!  Skapa en kompakt representation av beslut i en situation beskriven som en mängd egenskaper som påverkar beslutet

!  Ex om man skall vänta vid en restaurang (Russel & Norvig) !  Attribut:

!  Finns det alternativ i närheten !  Finns det en bar att vänta i !  Är det helg !  Är jag hungrig !  Finns det kunder i restaurangen !  Regnar det !  Vilken typ av restaurang är det !  etc

Restaurangexemplet

Alternativ

Bar Hungrig

Kunder Regn

Nej Ja Nej Ja

Ja Nej

Väntar inte Väntar

Nej Ja 0-30 >60 30-60

Väntar Väntar Väntar inte Väntar inte Väntar inte

Beslutsträdsinlärning

!  Skapa optimalt beslutsträd ur en exempelmängd

Initialisera rotnoden med hela exempelmängden while det finns en nod, N, som kan delas:

for each attribut A evaluera delning vid A:

använd bästa A för att dela N

Page 8: Maskininlärning Agent som lär sig729G11/resources/fo-oh/ML.pdf · Ofta klustring, ex Kohonennät, self-organizing maps (SOM) ! AM annat exempel Genetiska algoritmer ! Iterativ metod

Exempel Konvertera numeriska data

NAMN INKOMST ÅLDER GIFTMarie ! 40000 < 40 JASven ! 40000 < 40 JAOlle < 40000 < 40 NEJEva ! 40000 ! 40 JAUwe < 40000 < 40 NEJHans < 40000 < 40 NEJAnne ! 40000 ! 40 JA

Dela vid ålder

! 40 < 40

NAMN INKOMST GIFTMarie ! 40000 JASven ! 40000 JAOlle < 40000 NEJUwe < 40000 NEJHans < 40000 NEJ

NAMN INKOMST GIFTEva ! 40000 JAAnne ! 40000 JA

Måste dela igen!

NAMN INKOMST ÅLDER GIFTMarie ! 40000 < 40 JASven ! 40000 < 40 JAOlle < 40000 < 40 NEJEva ! 40000 ! 40 JAUwe < 40000 < 40 NEJHans < 40000 < 40 NEJAnne ! 40000 ! 40 JA

Dela vid inkomst

NAMN INKOMST ÅLDER GIFTMarie ! 40000 < 40 JASven ! 40000 < 40 JAOlle < 40000 < 40 NEJEva ! 40000 ! 40 JAUwe < 40000 < 40 NEJHans < 40000 < 40 NEJAnne ! 40000 ! 40 JA

NAMN ÅLDER GIFTOlle < 40 NEJUwe < 40 NEJHans < 40 NEJ

NAMN ÅLDER GIFTMarie < 40 JASven < 40 JAEva ! 40 JAAnne ! 40 JA

! 40000 < 40000

Page 9: Maskininlärning Agent som lär sig729G11/resources/fo-oh/ML.pdf · Ofta klustring, ex Kohonennät, self-organizing maps (SOM) ! AM annat exempel Genetiska algoritmer ! Iterativ metod

Information

!  Hur välja attribut att dela trädet? !  Ofta används informationsmått

!  Information innebär minskad osäkerhet !  Exempel

!  Om man i ett varuhus frågar var skivavdelningen finns och får veta att det finns på våning 1, får man mer information om det finns 6 våningar än om det finns 2 och ingen information om det bara finns en våning.

!  Utfallet av en händelse med flera lika sannolika möjligheter ger mer information än utfallet av en händelse med färre lika sannolika möjligheter

Välja bästa attribut

!  Använd förväntad mängd information som återstår vid ett attribut

!  Bit information den mängd information som behövs

!  Informationsteori: en bit information ger ett ja/nej svar på en fråga

!  Definition, entropi (Shannon)

Eftersom P(vi) ! 1 blir log2(P(vi)) negativ, därför minus

( ) ( )( ) ( ) ( )!=

"=n

iiin vPvPvPvPI

121 log,,!

Exempel

!  Musikavdelningen i varuhus med två lika sannolika våningar I(",") = -"log2(") - "log2(") = -log2(") = -(log2(1)-log2(2)) = 1

!  8 lika sannolika våningar I(#,$..,#) = -#log2(#) - $ -#log2(#) = -log2(#) = log2(8) = 3

!  Jämför vanlig datarepresentation. Det behövs tre bit för att representera 8 olika alternativ

Entropi för attribut A

!  Låt: !  nb, antal instanser i gren b

!  nbc, antal instanser i gren b av klass c

!  nt, totala antalet instanser i alla grenar

! ! "#

$%&

'(=

b c b

bc

b

bc

t

b

nn

nn

nnAE )(log)( 2

! 40 < 40 NAMN INKOMST GIFTMarie ! 40000 JASven ! 40000 JAOlle < 40000 NEJUwe < 40000 NEJHans < 40000 NEJ

NAMN INKOMST GIFTEva ! 40000 JAAnne ! 40000 JA

NAMN INKOMST ÅLDER GIFTMarie ! 40000 < 40 JASven ! 40000 < 40 JAOlle < 40000 < 40 NEJEva ! 40000 ! 40 JAUwe < 40000 < 40 NEJHans < 40000 < 40 NEJAnne ! 40000 ! 40 JA

!  Exempel

nålder<40=5 nålder<40, class=gift=2 nt = 7

Page 10: Maskininlärning Agent som lär sig729G11/resources/fo-oh/ML.pdf · Ofta klustring, ex Kohonennät, self-organizing maps (SOM) ! AM annat exempel Genetiska algoritmer ! Iterativ metod

Informationsvinst (ID3/C4.5)

!  Den information som man vinner om man går ner i gren A

!  Välj det attribut som ger högst vinst

)()()( AEOutputIAVinst !=

Starttillstånd

!  4/7 är gifta !  3/7 är ogifta

985,073

log73

74

log74

)( 22 =!!=OutputI

Ålder

!  5 är < 40 !  2 gifta; 3 ogifta

!  2 är % 40 !  alla gifta

971,053

log53

52

log52

)40( 22 =!!=<I

022

log22

)40( 2 =!="I

! 40 < 40 NAMN INKOMST GIFTMarie ! 40000 JASven ! 40000 JAOlle < 40000 NEJUwe < 40000 NEJHans < 40000 NEJ

NAMN INKOMST GIFTEva ! 40000 JAAnne ! 40000 JA

NAMN INKOMST ÅLDER GIFTMarie ! 40000 < 40 JASven ! 40000 < 40 JAOlle < 40000 < 40 NEJEva ! 40000 ! 40 JAUwe < 40000 < 40 NEJHans < 40000 < 40 NEJAnne ! 40000 ! 40 JA

Ålder, forts.

!  Entropi

!  Vinst(Ålder)=0,985-0,693=0,292

!

57" 0,971+

27" 0 = 0,693

Page 11: Maskininlärning Agent som lär sig729G11/resources/fo-oh/ML.pdf · Ofta klustring, ex Kohonennät, self-organizing maps (SOM) ! AM annat exempel Genetiska algoritmer ! Iterativ metod

Inkomst

!  3 har < 40000 !  alla ogifta " I=0

!  4 har ! 40000 !  alla gifta " I=0

!  Entropi 0

!  Vinst(Inkomst)=0,985-0=0,985

NAMN INKOMST ÅLDER GIFTMarie ! 40000 < 40 JASven ! 40000 < 40 JAOlle < 40000 < 40 NEJEva ! 40000 ! 40 JAUwe < 40000 < 40 NEJHans < 40000 < 40 NEJAnne ! 40000 ! 40 JA

NAMN ÅLDER GIFTOlle < 40 NEJUwe < 40 NEJHans < 40 NEJ

NAMN ÅLDER GIFTMarie < 40 JASven < 40 JAEva ! 40 JAAnne ! 40 JA

! 40000 < 40000

Restuarangexemplet, träningsexempel

Exempel Attribut Mål Väntar Alt Bar Helg Hunger Kunder V-tid Regn Bokat Typ

X1 Ja Nej Nej Ja Några 0-10 Nej Ja Fransk Ja

X2 Ja Nej Nej Ja Full 30-60 Nej Nej Thai Nej

X3 Nej Ja Nej Nej Några 0-10 Nej Nej Kina Ja

X4 Ja Nej Ja Ja Full 10-30 Nej Nej Thai Ja

X5 Ja Nej Ja Nej Full >60 Nej Ja Fransk Nej

X6 Nej Ja Nej Ja Några 0-10 Ja Ja Pizza Ja

X7 Nej Ja Nej Nej Ingen 0-10 Ja Nej Kina Nej

X8 Nej Nej Nej Ja Några 0-10 Ja Ja Thai Ja

X9 Nej Ja Ja Nej Full >60 Ja Nej Kina Nej

X10 Ja Ja Ja Ja Full 10-30 Nej Ja Pizza Nej

Beslutsträd

KUNDER

+ x1, x3, x6, x8 -

JA

+ - x7 NEJ

+ x4 - x2, x5, x9, x10

Några Ingen Full

HELG

+ - x2 NEJ

+ x4 - JA

Nej Ja

HUNGRIG

+ - x5, x9 NEJ

+ x4 - x2, x10

Ja Nej

TYP

+ x4 - x2 +

- x10 NEJ

Kina Thai

Pizza Fransk

Default Default

Resultat

!  Beslutsträdet använder inte alla attribut !  Kan ha funnit okända samband mellan attribut

!  Om det saknas exempel för ett visst attributvärde så spelar det ingen roll. Returnera något defaultvärde

!  Om det saknas attribut i en gren där det inte finns ett beslut så saknas det information och fler attribut behövs såvida det inte är fel eller icke-deterministiskt

Page 12: Maskininlärning Agent som lär sig729G11/resources/fo-oh/ML.pdf · Ofta klustring, ex Kohonennät, self-organizing maps (SOM) ! AM annat exempel Genetiska algoritmer ! Iterativ metod

Hypotesinlärning

!  Från specifika exempel till generell beskrivning !  Presenterar såväl positiva som negativa exempel

!  Positivt exempel som inte matchar leder till en generalisering av modellen (false negativ)

!  Negativt exempel som matchar ger en specificering av modellen (false positiv)

Hypotesinlärning

def currentBestLearning(exempel): h = hypotes konsistent med första exemplet

for each e in exempel: if e false positiv:

specialisera h så att h konsistent med alla tidigare exempel

if e false negativ: generalisera h så att h konsistent med alla tidigare exempel

if ingen konsistent specialisering/generalisering: return Fail

Exempel, Winston

A

B

C

Positivt exempel båge

block

A B C

ISA ISA ISA

ISPART ISPART ISPART

över

under över

under

höger-om vänster-om

Generalisering

A

B

C

Nytt positivt exempel

båge

block

A B C

ISA ISA

ISA

ISPART ISPART ISPART

över

under över

under

höger-om vänster-om

triangel

båge

block

A B C

ISA ISA ISA

ISPART ISPART ISPART

över

under över under

höger-om vänster-om

polygon

block triangel generalisera

Page 13: Maskininlärning Agent som lär sig729G11/resources/fo-oh/ML.pdf · Ofta klustring, ex Kohonennät, self-organizing maps (SOM) ! AM annat exempel Genetiska algoritmer ! Iterativ metod

Specificering

båge

polygon

A B C

ISA ISA ISA

ISPART ISPART ISPART

över

under över

under

höger-om vänster-om A

B

C

Negativt exempel

Stärk modellen med en ny länk får-inte-röra-vid

Version Spaces

!  Hypotesinlärning à la Winston måste hålla reda på alla positiva och negativa exempel

!  Versions Spaces Hittar både den mest specifika och den mest generella beskrivning som täcker alla positiva exempel och inget negativt

!  Arbetar med två hypotesmängder: !  S: de mest specifika hypoteser som täcker alla positiva exempel

och inget negativt

!  G: de mest generella hypoteser som täcker alla positiva exempel och inget negativt

Version spaces

S: mest generella specificeringen

G: mest specifika generaliseringen

Tolkningsrymd

Version Space-algoritmen

Om positivt exempel p: ! Ta bort de hypoteser ur G

som ej matchar p. ! Ersätt alla hypoteser i S som

ej matchar p med de mest specifika generaliseringar som: !  matchar p !  är mer specifika än

någon hypotes i G !  inte är mer generell än

någon hypotes i S

Om negativt exempel n: ! Ta bort de hypoteser ur S som

matchar n. ! Ersätt alla hypoteser i G som

matchar n med de mest generella specialiseringar som: !  inte matchar n !  är mer generella än

någon hypotes i S !  inte är mer specifik än

någon hypotes i G

Page 14: Maskininlärning Agent som lär sig729G11/resources/fo-oh/ML.pdf · Ofta klustring, ex Kohonennät, self-organizing maps (SOM) ! AM annat exempel Genetiska algoritmer ! Iterativ metod

Exempel Bar Typ Väntetid Väntar X1 Ja Kina <10 Ja X2 Ja Thai %10 Nej X3 Ja Thai <10 Ja X4 Nej Fransk <10 Ja

+X1 G: {(?, ?, ?)}

+X1 S: {(Ja, Kina, <10)}

-X2 False negativ, specialisera G: {(?, Kina, ?) (?, ?, <10)}

-X2 Matchar inte, S oförändrad S:{(Ja, Kina, <10)}

+X3 False positiv, hypotes bort G: {(?, ?, <10)}

+X3 False positiv, generalisera S: {(Ja, ?, <10)}

+X4 Matchar G: {(?, ?, <10)}

+X4 False positiv, generalisera S: {(?, ?, <10)}