729G43 Artificiell intelligens (2016) Maskininlärning 1 Marco Kuhlmann Institutionen för datavetenskap
Introduktion
Maskininlärning Tack vare maskininlärning kan AI-system idag bl.a. producera och förstå naturligt språk kontrollera maskiner, farkost, robotar ge beslutsstöd inom sjukvården detektera skumma banktransaktioner och cyberattacker föreslå produkter, låtar och filmer hjälpa oss att hitta information på webben
Tre exempel Stanford University Autonomous Helicopter Project Länk till videon Computers Teach Themselves to Recognize Cats, Faces Länk till videon At Berkeley, a Robot that Folds Laundry Länk till videon
Kommersiellt intresse
Inlärningsuppgifter Övervakad inlärning (eng. supervised learning) Agenten får data och facit för att lära sig. regression, klassifikation Oövervakad inlärning (eng. unsupervised learning) Agenten får data men inget facit. klustring, temamodeller Förstärkande inlärning (eng. reinforcement learning) Agenten får data och belönas om den gör rätt.
Övervakad inlärning Regression Förutsäga värdet på en variabel med oändligt många värden. husets pris Klassifikation Förutsäga värdet på en variabel med ändligt många värden. höger/vänster
Regression 700 Husets pris i tusentals dollar 525 350 175 0 1000 2000 3000 4000 5000 Husets storlek i kvadratfot
Regression 700 Husets pris i tusentals dollar 525 350 175 0 1000 2000 3000 4000 5000 Husets storlek i kvadratfot
Regression 700 Husets pris i tusentals dollar 525 350 175 0 1000 2000 3000 4000 5000 Husets storlek i kvadratfot
Example Alt Bar Fri Hun Pat Price Rain Res Type Est WillWait 1 Yes No No Yes Some $$$ No Yes French 0 10 Yes 2 Yes No No Yes Full $ No No Thai 30 60 No 3 No Yes No No Some $ No No Burger 0 10 Yes 4 Yes No Yes Yes Full $ No No Thai 10 30 Yes 5 Yes No Yes No Full $$$ No Yes French >60 No 6 No Yes No Yes Some $$ Yes Yes Italian 0 10 Yes 7 No Yes No No None $ Yes No Burger 0 10 No 8 No No No Yes Some $$ Yes Yes Thai 0 10 Yes 9 No Yes Yes No Full $ Yes No Burger >60 No 10 Yes Yes Yes Yes Full $$$ No Yes Italian 10 30 No 11 No No No No None $ No No Thai 0 10 No 12 Yes Yes Yes Yes Full $ No No Burger 30 60 Yes
Klassifikation Herr talman! Bostadsministern är kategorisk. Inget samhällsstöd för byggnation av bostäder. Bostaden ska vara en handelsvara, ingen social rättighet. Bostadspolitiken avpolitiseras och rangeras ut från välfärdspolitiken. Men det är ok med RUT, att någon kommer hem och hjälper till med serveringen. 2 miljarder är kostnaden. Det är ok med ROT, reparation och ombyggnad i sommarstugan eller bostadsrätten 13,2 miljarder. Det är ok med sänkt restaurangmoms 5,4 miljarder. Hamburgare och korv kan subventioneras, medan bostadsköerna växer. Det är sorgligt, i sanning mycket sorgligt att bostadsministern har den uppfattningen om vikten av politisk prioritering. Jag vill upprepa för tredje gången: Kan bostadsministern här i kammaren tala om vad han säger till det unga par som har flyttat till Stockholm från arbetslösheten på någon annan plats i landet men inte har någon bostad? Vad säger bostadsministern till det paret? vänster? höger?
Regression eller klassifikation? Du har samlat in en massa filmrecensioner från IMDB, där varje film har fått mellan 0 och 10 stjärnor. Nu får du en ny filmrecension och vill förutsäga hur många stjärnor filmen får. Du har samlat in data om hur många fordon som trafikerar E4 mellan Norrköping och Linköping. Nu vill du uppskatta hur många fordon som kommer trafikera denna sträcka i morgon.
Temamodeller How many genes does an organism need to survive? Last week at the genome meeting here, two genome researchers with radically different approaches presented complementary views of the basic genes needed for life. One research team, using computer analyses to compare known genomes, concluded that today s organisms can be sustained with just 250 genes, and that the earliest life forms required a mere 128 genes. 0,5 0,375 0,25 0,125 0 Teman Källa: Blei (2012)
Temamodeller human genome dna genetic genes sequence gene molecular sequencing map information genetics mapping project sequences evolution evolutionary species organisms life origin biology groups phylogenetic living diversity group new two common computer models information data computers system network systems model parallel methods networks software new simulations
När skulle du använda oövervakad inlärning? Predicera om ett epostmeddelande är spam/ham, givet en mängd epostmeddelanden taggade som spam/ham. Gruppera datorer i ett stort nätverk utifrån vilka datorer kommunicerar mest med vilka andra. Givet en databas med kunddata, upptäck marknadssegment och gruppera kunderna i dessa segment. Predicera om en patient har diabetes, givet en mängd data om andra patienter som antingen har eller inte har diabetes. Källa: Andrew Ng
Översikt Introduktion Exempel: Linjär regression med en variabel Några grundläggande begrepp Linjär regression med flera variabler Perceptroninlärning Neuronnät
Exempel: Linjär regression med en variabel
Huspriser i Portland, OR 700 Husets pris i tusentals dollar 525 350 175 0 1000 2000 3000 4000 5000 Husets storlek i kvadratfot
Huspriser i Portland, OR 700 Husets pris i tusentals dollar 525 350 175 0 1000 2000 3000 4000 5000 Husets storlek i kvadratfot
Träningsmängd Husets storlek (x) Husets pris (y) 852 180 1000 170 1100 250 1200 299 N stycken träningsinstanser (x i, y i )
Linjär regression Modellantagandet Sambandet mellan indata och utdata är en rät linje. Vad betyder detta matematiskt? Inlärningsuppgift Hitta den bästa räta linjen: den linje som minimerar det totala avståndet till datapunkterna. Hur mäter vi avståndet?
Räta linjens ekvation linjens lutning förskjutning från origo
Räta linjens ekvation h(x) h(x) 3 3 2 2 1 1 0 1 2 3 x 0 1 2 3 x θ 0 = 1, θ 1 = 0 θ 0 = 0, θ 1 = 1
Inlärningsuppgift Problemformulering Välj parametrarna θ 0 och θ 1 sådana att det totala avståndet mellan den motsvarande linjen och datapunkterna är minimalt. Detta problem kan lösas exakt med minsta kvadratmetoden. En inexakt (numerisk) men mycket användbar metod för att lösa problemet är gradientsökning (eng. gradient descent).
Felfunktion: L2 modellparametrarna målvärde för x i predicerat värde för x i
Vad mäter felfunktionen? 3 2 1 0 1 2 3
Vad mäter felfunktionen? 3 θ 1 = 1 2 1 0 1 2 3
Vad mäter felfunktionen? 3 θ 1 = 0,5 2 1 0 1 2 3
Vad mäter felfunktionen? 3 θ 1 = 0 2 1 0 1 2 3
Felfunktion: L2 4 3 J(θ) 2 1 0-0,5 0 0,5 1 1,5 2 2,5 θ
Gradientsökning: Intuition 4 4 3 3 J(θ) 2 J(θ) 2 1 1 0-0,5 0 0,5 1 1,5 2 2,5 θ 0-0,5 0 0,5 1 1,5 2 2,5 θ θ θ stort värde θ θ + litet värde
Gradientsökning: Intuition 4 4 3 3 J(θ) 2 J(θ) 2 1 1 0-0,5 0 0,5 1 1,5 2 2,5 θ 0-0,5 0 0,5 1 1,5 2 2,5 θ θ θ tangentens lutning θ θ + tangentens lutning
Gradientsökning Vandra ner i felets dal. Steg 0: Börja med ett godtyckligt värde för θ. Steg 1: Räkna ut felfunktionens tangent i den punkt som motsvarar den aktuella modellparametern θ. Steg 2: Gå i motsatt riktning av tangenten: Om tangenten har positiv lutning, minska värdet på θ. Om tangenten har negativ lutning, höj värdet på θ. Detalj: Lutningen multipliceras med en steglängdsfaktor. Upprepa steg 1 2 tills felet blir tillräckligt litet.
Gradientsökning 4 Steglängdsfaktor = 0,1 3 θ J(θ) Lutning 2,000 2,33 4,67 J(θ) 2 1 0-0,5 0 0,5 1 1,5 2 2,5 θ θ θ 0,467
Gradientsökning 4 Steglängdsfaktor = 0,1 3 θ J(θ) Lutning 2,000 2,33 4,67 J(θ) 2 1 0-0,5 0 0,5 1 1,5 2 2,5 θ θ θ 0,467
Gradientsökning 4 Steglängdsfaktor = 0,1 3 θ J(θ) Lutning 2,000 2,33 4,67 J(θ) 2 1,533 0,66 2,49 1 0-0,5 0 0,5 1 1,5 2 2,5 θ θ θ 0,249
Gradientsökning 4 Steglängdsfaktor = 0,1 3 θ J(θ) Lutning 2,000 2,33 4,67 J(θ) 2 1,533 0,66 2,49 1,284 0,19 1,33 1 0-0,5 0 0,5 1 1,5 2 2,5 θ θ θ 0,133
Gradientsökning 4 Steglängdsfaktor = 0,1 3 θ J(θ) Lutning 2,000 2,33 4,67 J(θ) 2 1,533 0,66 2,49 1 1,284 0,19 1,33 1,151 0,05 0,71 0-0,5 0 0,5 1 1,5 2 2,5 θ θ θ 0,071
Uppdateringsregeln för gradientsökning tangentens lutning i punkt θ steglängdsfaktor
Uppdateringsregeln för gradientsökning När vi räknar ut tangentens lutning explicit får vi: (För att räkna ut detta själv behöver man kunna ta derivator.)
Frågor kring gradientsökning Vad hade hänt om vi hade börjat med θ = 0 eller θ = 1? Vad händer när steglängdsfaktorn är för stor eller för liten? Prova till exempel α = 1.
Gradientsökning Vandra ner i felets dal. Steg 0: Börja med ett godtyckligt värde för θ. Steg 1: Räkna ut felfunktionens tangent i den punkt som motsvarar den aktuella modellparametern θ. Steg 2: Gå i motsatt riktning av tangentens lutning: Om tangenten har positiv lutning, minska värdet på θ. Om tangenten har negativ lutning, höj värdet på θ. Lutningen multipliceras med en steglängdsfaktor. Upprepa steg 1 2 tills felet blir tillräckligt litet.
Varianter på gradientsökning Minibatch gradient descent Uppdatera baserat på mindre delar av träningsdatan. Kan öka hastigheten med vilken inlärningsprocessen konvergerar. Stochastic gradient descent Kasta om träningsdatan slumpmässigt efter varje iteration. Kan förhindra att inlärningsprocessen fastnar i lokala optima.
Översikt Introduktion Exempel: Linjär regression med en variabel Några grundläggande begrepp Linjär regression med flera variabler Perceptroninlärning Neuronnät
Några grundläggande begrepp
Guldstandard För att träna upp och utvärdera system för övervakad maskininlärning behöver vi data på formen (x, y), där x är ett invärde och y är det korrekta målvärdet för x. Exempel: x = riksdagsanförande, y = korrekt klass En sådan datamängd kallas guldstandard.
Träning och testning Träning Att träna upp ett system innebär att vi visar det både invärdet x och målvärdet y och låter det lära sig. vid linjär regression: förändra vikterna Testning När vi utvärderar en modell visar vi bara x och jämför modellens predicerade utvärde för detta datum med målvärdet y. Hur nära kom systemet rätt målvärde, i genomsnitt?
Träningsfel, generaliseringsfel, testfel Under träningen försöker vi minimera modellens träningsfel, dvs. hur mycket fel den gör på datan i träningsmängden. optimering Det som vi egentligen vill minimera är modellens generaliseringsfel, dvs. hur mycket fel den gör på okända data. Eftersom vi inte kan mäta generaliseringsfelet uppskattar vi den utifrån modellens testfel, dvs. hur mycket fel den gör på testdatan. kräver statistiska antaganden om likheten mellan träningsdata och testdata
Statistiska antaganden om datamängderna eng. independent and identically distributed (i.i.d.) Antagande 1: Datan i träningsmängden och i testmängden är ömsesidigt oberoende. Antagande 2: Datan i träningsmängden och i testmängden är tagna från samma sannolikhetsfördelning. t.ex. inte kast med ett vanligt mynt i ena, med ett manipulerat mynt i andra
Underfitting och overfitting Underfitting Modellen räcker inte till för att få ett lågt felvärde på träningsmängden. Den är ännu sämre på testmängden. Overfitting Modellen är överoptimerad på träningsdatan. Den får ett lågt felvärde där, men ett mycket högre felvärde på testmängden. Modellen har lärt sig säregenskaper hos träningsdatan.
Underfitting och overfitting 4 4 4 3 3 3 2 2 2 1 1 1 0-0,5 0 0,5 1 1,5 2 2,5 0-0,5 0 0,5 1 1,5 2 2,5 0-0,5 0 0,5 1 1,5 2 2,5 lämplig modell underfitting overfitting
Regularisering För att undvika overfitting kan vi använda regularisering. Detta innebär att vi förändrar en inlärningsalgoritm så att dess generaliseringsfel men inte dess träningsfel blir mindre. Exempel: L2-regularisering. Lägg till en extra term till felfunktionen som blir större ju större vikterna är. Intuition: Låt modellen fokusera på det generella, inte det extrema.
Valideringsmängd Ibland har en maskininlärningsalgoritm parametrar som måste fixeras manuellt. Sådana parametrar kallas hyperparametrar. Exempel: inlärningskvot För att hitta lämpliga värden till hyperparametrarna brukar man använda en separat valideringsmängd. alternativ: korsvalidering
Översikt Introduktion Exempel: Linjär regression med en variabel Några grundläggande begrepp Linjär regression med flera variabler Perceptroninlärning Neuronnät