Maskininlärning gent som lär sig! Introduktion Yttre standard/återkoppling! Genetiska algoritmer! Exempelinlärning! eslutsträdsinlärning! Version Space-inlärning Återkoppling Kritiserare Mål Inlärningselement Förändringar Kunskap Sensorer Utförandeelement Omgivning Problemgenerator gent Effektorer Typer av återkoppling Genetiska algoritmer! Omgivningen talar direkt om vilken handling som skulle varit korrekt! Specikt 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 specik regel! Reinforcement learning! genten 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)! M annat exempel! 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! rbetar parallellt med flera sökrymder! Egentligen sökmetod men också inlärning
Komponenter Population! Kodning (gen, kromosom)! Initialiseringsprocedur (skapa)! Evalueringsfunktion (omgivning)! Föräldraurval (reproduktion)! Genetiska operatorer (mutation, korsning) Kromosomer kan vara:! itsträ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 dir== Norr : gowest!... Exempel, 1 Exempel, 2! itsträ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! yt slumpmässig bit i den kromosom som inte reproducerades Initialpopulation 0 1 0 1 0 2 ettor 1 1 0 1 0 3 ettor 0 0 1 0 0 1 etta 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 Reproduktion 1 1 0 1 0 0 0 1 0 1 Genetisk operation Ny population 0 1 0 1 0 2 ettor 1 1 0 1 0 3 ettor 0 0 1 0 1 2 ettor
Exempel, 3 Enkel genetisk algoritm Population 0 1 0 1 0 2 ettor 1 1 0 1 0 3 ettor 0 0 1 0 1 2 ettor Genetisk operation Reproduktion 0 0 1 1 1 1 1 1 1 1 initialisera populationen utvärdera populationen while inte tillfredställande resultat: välj ut föräldrar för reproduktion korsa och mutera Evaluera utvärdera populationen 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 Operationer Rouletthjul! 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! ättre fitnessvärde ger större chans att leva men slump finns kvar! Exempel Kromosom, fitness 4 Kromosom, fitness 10 Kromosom, fitness 5 Kromosom D, fitness 1
Exempel, 1 Exempel, 2 Handelsresandeproblemet 1 5 1 3 4 D 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! yt slumpmässigt två element! Fitness! Totalavstånd! Starttillstånd D D D D D Exempel, 3 Exempel, 4 Korsa de två första: D D D eftersom som är tredje från första genen redan finns eftersom redan finns Ny gen D Korsa de två sista: D Ny gen: D D D! Mutera första genen slumpmässigt D! Ny population D 1 2 4 D 5 = 12 2 4 D 5 1 = 12 4 D 5 1 2 = 12 D 5 1 2 4 D = 12 3 4 D 2 1 = 10 3 1 2 D 4 = 10 5 D 4 1 1 = 11! ehåll de fyra bästa
Exempel, 5 Exempel, 6! Ny population D 5 1 2 4 D = 12 3 4 D 2 1 = 10 3 1 2 D 4 = 10 5 D 4 1 1 = 11! Korsa två första D D! Korsa två sista D! Mutera första. Slumpen gav andra och tredje staden D D! Ny population D 5 1 2 4 D = 12 3 4 D 2 1 = 10 3 1 2 D 4 = 10 5 D 4 1 1 = 11 D 4 2 1 5 D = 12 4 D 2 1 3 = 10 D 2 1 3 4 D = 10! ehåll de fyra bästa 3 4 D 2 1 = 10 3 1 2 D 4 = 10 4 D 2 1 3 = 10 D 2 1 3 4 D = 10! etc Genetisk programmering Exempel! Genetiska algortimer med program som data! Skapa program som löser given uppgt 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 x 3 y = x etc
GP algoritm Exempel, 1 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 modiera programmen kör och utvärdera program med träningsdata Wumpus följa väggen Förflyttning och riktning: Norr, Söder, Väster, Öster and return goöster Ex. norr and not bumpöster: return goöster öster and not bumpsöder: return gosöder söder and not bumpväster: return goväster return gonorr norr not and return gosöder bumpöster öster not and return goväster return gonorr bumpsöder söder not bumpväster Exempel, 2 Exempel, 3 1. Skapa initial population, t.ex. 5000 slumpmässigt skapade syntaktiskt korrekta träd and return gonorr norr norr söder return gonorr söder 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 and return goväster not bumpväster return gonorr 3. Skapa nya program genom att 1. Låta de 500 bästa leva 2. Skapa ytterligare 4500 nya individer av dessa bästa genom slumpässig korsning and return gonorr and return goväster return gonorr norr norr söder return gonorr söder not bumpväster return goväster return gonorr söder return gonorr
Exempel, 4 eslutsträd söder and 4. Mutera 50 program genom att byta ett delträd mot ett slumpmässigt skapat delträd return goväster not bumpväster return gonorr and return goväster söder bumpöster I en värld med 32 väggrutor får man fram ett perfekt program efter 10 generationer not and väster return gonorr! 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)! ttribut:! Finns det alternativ i närheten! Finns det en bar att vänta i! Är det helg! Är jag hungrig! Finns det k i restaurangen! Regnar det! Vilken typ av restaurang är det! etc Restaurangexemplet eslutsträdsinlärning Ja lternativ Nej! Skapa optimalt beslutsträd ur en exempelmängd Ja ar Nej Ja Hungrig Nej Initialisera rotnoden med hela exempelmängden while det finns en nod, N, som kan delas: Regn K Nej Ja 0-30 30-60 >60 Väntar Väntar inte for each attribut evaluera delning vid : använd bästa för att dela N Väntar inte Väntar Väntar inte Väntar Väntar inte
Exempel Konvertera numeriska data NMN INKOMST ÅLDER GIFT Marie! 40000 < 40 J Sven! 40000 < 40 J Olle < 40000 < 40 NEJ Eva! 40000! 40 J Uwe < 40000 < 40 NEJ Hans < 40000 < 40 NEJ nne! 40000! 40 J Dela vid ålder Dela vid inkomst < 40 NMN INKOMST GIFT Marie! 40000 J Sven! 40000 J Olle < 40000 NEJ Uwe < 40000 NEJ Hans < 40000 NEJ Måste dela igen! NMN INKOMST ÅLDER GIFT Marie! 40000 < 40 J Sven! 40000 < 40 J Olle < 40000 < 40 NEJ Eva! 40000! 40 J Uwe < 40000 < 40 NEJ Hans < 40000 < 40 NEJ nne! 40000! 40 J! 40 NMN INKOMST GIFT Eva! 40000 J nne! 40000 J NMN INKOMST ÅLDER GIFT Marie! 40000 < 40 J Sven! 40000 < 40 J Olle < 40000 < 40 NEJ Eva! 40000! 40 J Uwe < 40000 < 40 NEJ Hans < 40000 < 40 NEJ nne! 40000! 40 J < 40000 NMN ÅLDER GIFT Olle < 40 NEJ Uwe < 40 NEJ Hans < 40 NEJ! 40000 NMN ÅLDER GIFT Marie < 40 J Sven < 40 J Eva! 40 J nne! 40 J
Information Välja bästa attribut! 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! nvänd förväntad mängd information som återstår vid ett attribut! it information den mängd information som behövs! Informationsteori: en bit information ger ett ja/nej svar på en fråga! Definition, entropi (Shannon) I ( P( v1 ),!, P( vn )) =!" P( vi ) log 2 P( vi ) i= 1 Eftersom P(v i )! 1 blir log 2 (P(v i )) negativ, därför minus n Exempel Entropi för attribut! Musikavdelningen i varuhus med två lika sannolika våningar I(",") = -"log 2 (") - "log 2 (") = -log 2 (") = -(log 2 (1)-log 2 (2)) = 1! 8 lika sannolika våningar I(#,$..,#) = -#log 2 (#) - $ -#log 2 (#) = -log 2 (#) = log 2 (8) = 3! Jämför vanlig datarepresentation. Det behövs tre bit för att representera 8 olika alternativ! Låt:! n b, antal instanser i gren b! n bc, antal instanser i gren b av klass c! n t, totala antalet instanser i alla grenar n ' $ b nbc nbc! %!( log ( " # E ( ) = 2 ) b nt & c nb nb! Exempel n ålder<40 =5 n ålder<40, class=gt =2 n t = 7 NMN INKOMST ÅLDER GIFT Marie! 40000 < 40 J Sven! 40000 < 40 J Olle < 40000 < 40 NEJ Eva! 40000! 40 J Uwe < 40000 < 40 NEJ Hans < 40000 < 40 NEJ nne! 40000! 40 J < 40! 40 NMN INKOMST GIFT NMN INKOMST GIFT Marie! 40000 J Eva! 40000 J Sven! 40000 J nne! 40000 J Olle < 40000 NEJ Uwe < 40000 NEJ Hans < 40000 NEJ
Informationsvinst (ID3/4.5) Starttillstånd! Den information som man vinner om man går ner i gren Vinst ( ) = I( Output )! E( )! Välj det attribut som ger högst vinst! 4/7 är gta! 3/7 är ogta 4 I Output) =! log 7 4 3! log 7 7 3 7 ( 2 2 = 0,985 Ålder! 5 är < 40! 2 gta; 3 ogta 2 2 3 3 I( < 40) =! log! log2 5 5 5 5 2 = NMN INKOMST ÅLDER GIFT Marie! 40000 < 40 J Sven! 40000 < 40 J Olle < 40000 < 40 NEJ Eva! 40000! 40 J Uwe < 40000 < 40 NEJ Hans < 40000 < 40 NEJ nne! 40000! 40 J < 40! 40 NMN INKOMST GIFT NMN INKOMST GIFT Marie! 40000 J Eva! 40000 J Sven! 40000 J nne! 40000 J Olle < 40000 NEJ Uwe < 40000 NEJ Hans < 40000 NEJ 0,971 Ålder, forts.! Entropi 5 7 " 0,971+ 2 7 " 0 = 0,693! Vinst(Ålder)=0,985-0,693=0,292! 2 är % 40! alla gta 2 2 I( " 40) =! log2 = 0 2 2
Inkomst! 3 har < 40000! alla ogta " I=0! 4 har! 40000! alla gta " I=0! Entropi 0! Vinst(Inkomst)=0,985-0=0,985 < 40000 NMN ÅLDER GIFT Olle < 40 NEJ Uwe < 40 NEJ Hans < 40 NEJ NMN INKOMST ÅLDER GIFT Marie! 40000 < 40 J Sven! 40000 < 40 J Olle < 40000 < 40 NEJ Eva! 40000! 40 J Uwe < 40000 < 40 NEJ Hans < 40000 < 40 NEJ nne! 40000! 40 J! 40000 NMN ÅLDER GIFT Marie < 40 J Sven < 40 J Eva! 40 J nne! 40 J Restuarangexemplet, träningsexempel Exempel ttribut Mål Väntar lt ar Helg Hunger K V-tid Regn okat 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 eslutsträd Resultat + x1, x3, x6, x8 - J Default Fransk + - x10 NEJ Några + x4 - x2, x10 TYP + x4 - J Ja Pizza Kina Default KUNDER Full + x4 - x2, x5, x9, x10 HUNGRIG Thai Ja + x4 - x2 HELG Nej Nej + - x5, x9 NEJ + - x2 NEJ Ingen + - x7 NEJ! eslutsträ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 Hypotesinlärning! Från specika 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 specicering av modellen (false positiv) def currentestlearning(exempel): h = hypotes konsistent med första exemplet for each e in exempel: e false positiv: specialisera h så att h konsistent med alla tidigare exempel e false negativ: generalisera h så att h konsistent med alla tidigare exempel ingen konsistent specialisering/generalisering: return Fail Exempel, Winston Positivt exempel båge vänster-om höger-om block Generalisering Nytt positivt exempel båge block vänster-om höger-om generalisera båge triangel vänster-om höger-om triangel block polygon block
Specicering Version Spaces Negativt exempel Stärk modellen med en ny länk båge vänster-om höger-om polygon får-inte-röra-vid! Hypotesinlärning à la Winston måste hålla reda på alla positiva och negativa exempel! Versions Spaces Hittar både den mest specika och den mest generella beskrivning som täcker alla positiva exempel och inget negativt! rbetar med två hypotesmängder:! S: de mest specika 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 Version Space-algoritmen G: mest specika generaliseringen S: mest generella speciceringen Tolkningsrymd 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 specika generaliseringar som:! matchar p! är mer specika ä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 specik än någon hypotes i G
Exempel ar 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: {(?,?,?)} -X2 False negativ, specialisera G: {(?, Kina,?) (?,?, <10)} +X3 False positiv, hypotes bort G: {(?,?, <10)} +X4 Matchar G: {(?,?, <10)} +X4 False positiv, generalisera S: {(?,?, <10)} +X3 False positiv, generalisera S: {(Ja,?, <10)} -X2 Matchar inte, S oförändrad S:{(Ja, Kina, <10)} +X1 S: {(Ja, Kina, <10)}