maskininlärning agent som lär sig729g11/resources/fo-oh/ml.pdf · ofta klustring, ex kohonennät,...
Post on 15-Mar-2020
0 Views
Preview:
TRANSCRIPT
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
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
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
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
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
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
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
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
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
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
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
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
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
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)}
top related