729G43 Artificiell intelligens Maskininlärning Arne Jönsson HCS/IDA
Maskininlärning Introduktion Beslutsträdsinlärning Hypotesinlärning Linjär regression Vektorer Perceptroner Artificiella Neurala Nät (ANN)
Maskininlärning Naturligt språk Bildingekänning Beslutstöd inom t.ex. sjukvården Autonoma farkoster Detektion Skumma banktransaktioner, cyberattacker, Rekommendationer Produkter, filmer, låtar, Sökmotorer
Agent som lär sig Yttre standard/återkoppling Kritiserare Sensorer Återkoppling Utförandeelement Inlärningselement Mål Förändringar Kunskap Omgivning Problemgenerator Agent Effektorer
Typer av återkoppling Övervakad inlärning Omgivningen talar direkt om vilken handling som skulle varit korrekt, finns ett facit, en specifik exempelmängd Klassifikation, variabel med ändligt många värden, t.ex. beslutsträd Regression, variabel med oändligt många värden Oövervakad inlärning Ingen återkoppling från omgivningen Klustring, ex Kohonennät, self-organizingmaps (SOM) Förstärkt inlärning (Reinforcement learning) Agenten får bara reda på om det var bra eller dåligt, inte varför eller vilken handling som orsakade detta Q-learning
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 Ja Alternativ Nej Ja Bar Nej Ja Hungrig Nej Regn Kunder Väntar Väntar inte Nej Ja 0-30 30-60 >60 Väntar inte Väntar Väntar inte Väntar 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 GIFT Marie ³ 40000 < 40 JA Sven ³ 40000 < 40 JA Olle < 40000 < 40 NEJ Eva ³ 40000 ³ 40 JA Uwe < 40000 < 40 NEJ Hans < 40000 < 40 NEJ Anne ³ 40000 ³ 40 JA
Dela vid ålder < 40 NAMN INKOMST GIFT Marie ³ 40000 JA Sven ³ 40000 JA Olle < 40000 NEJ Uwe < 40000 NEJ Hans < 40000 NEJ Måste dela igen! NAMN INKOMST ÅLDER GIFT Marie ³ 40000 < 40 JA Sven ³ 40000 < 40 JA Olle < 40000 < 40 NEJ Eva ³ 40000 ³ 40 JA Uwe < 40000 < 40 NEJ Hans < 40000 < 40 NEJ Anne ³ 40000 ³ 40 JA ³ 40 NAMN INKOMST GIFT Eva ³ 40000 JA Anne ³ 40000 JA
Dela vid inkomst NAMN INKOMST ÅLDER GIFT Marie ³ 40000 < 40 JA Sven ³ 40000 < 40 JA Olle < 40000 < 40 NEJ Eva ³ 40000 ³ 40 JA Uwe < 40000 < 40 NEJ Hans < 40000 < 40 NEJ Anne ³ 40000 ³ 40 JA < 40000 NAMN ÅLDER GIFT Olle < 40 NEJ Uwe < 40 NEJ Hans < 40 NEJ ³ 40000 NAMN ÅLDER GIFT Marie < 40 JA Sven < 40 JA Eva ³ 40 JA Anne ³ 40 JA
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) I ( P( v ) ( )) å 1,!, P vn = - P( vi ) log 2 P( vi ) Eftersom P(v i ) 1 blir log2(p(v i )) negativ, därför minus n i= 1
Exempel 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
Entropi för attribut A 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 n êå bc nbc - log ( ú û E ( A) = 2 ) b nt ë c nb nb Exempel n ålder<40 =5 n ålder<40, class=gift =2 n t = 7 < 40 NAMN INKOMST GIFT Marie ³ 40000 JA Sven ³ 40000 JA Olle < 40000 NEJ Uwe < 40000 NEJ Hans < 40000 NEJ NAMN INKOMST ÅLDER GIFT Marie ³ 40000 < 40 JA Sven ³ 40000 < 40 JA Olle < 40000 < 40 NEJ Eva ³ 40000 ³ 40 JA Uwe < 40000 < 40 NEJ Hans < 40000 < 40 NEJ Anne ³ 40000 ³ 40 JA ³ 40 NAMN INKOMST GIFT Eva ³ 40000 JA Anne ³ 40000 JA
Informationsvinst (ID3/C4.5) Den information som man vinner om man går ner i gren A Vinst ( A) = I( Output ) - E( A) Välj det attribut som ger högst vinst
Starttillstånd 4/7 är gifta 3/7 är ogifta 4 4 3 I( Output) = - log - log2 7 7 7 3 7 2 = 0,985
Ålder 5 är < 40 2 gifta; 3 ogifta < 40 NAMN INKOMST GIFT Marie ³ 40000 JA Sven ³ 40000 JA Olle < 40000 NEJ Uwe < 40000 NEJ Hans < 40000 NEJ NAMN INKOMST ÅLDER GIFT Marie ³ 40000 < 40 JA Sven ³ 40000 < 40 JA Olle < 40000 < 40 NEJ Eva ³ 40000 ³ 40 JA Uwe < 40000 < 40 NEJ Hans < 40000 < 40 NEJ Anne ³ 40000 ³ 40 JA ³ 40 NAMN INKOMST GIFT Eva ³ 40000 JA Anne ³ 40000 JA 2 2 3 I( < 40) = - log - log2 5 5 5 3 5 2 = 0,971 2 är 40 alla gifta 2 2 I( ³ 40) = - log2 = 2 2 0
Ålder, forts. Entropi 5 7 0,971+ 2 7 0 = 0,693 Vinst(Ålder)=0,985-0,693=0,292
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 GIFT Marie ³ 40000 < 40 JA Sven ³ 40000 < 40 JA Olle < 40000 < 40 NEJ Eva ³ 40000 ³ 40 JA Uwe < 40000 < 40 NEJ Hans < 40000 < 40 NEJ Anne ³ 40000 ³ 40 JA < 40000 NAMN ÅLDER GIFT Olle < 40 NEJ Uwe < 40 NEJ Hans < 40 NEJ ³ 40000 NAMN ÅLDER GIFT Marie < 40 JA Sven < 40 JA Eva ³ 40 JA Anne ³ 40 JA
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 Några KUNDER Full Ingen + x1, x3, x6, x8 - JA Ja + x4 - x2, x5, x9, x10 HUNGRIG Nej + - x7 NEJ Fransk Default + - x10 NEJ Pizza + x4 - x2, x10 TYP + x4 - JA Kina Default Thai Ja + x4 - x2 HELG Nej + - x5, x9 + NEJ - x2 NEJ
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 Positivt exempel B båge ISPART ISPART ISPART över A B C under över under A C ISA vänster-om höger-om ISA ISA block
Generalisering Nytt positivt exempel B ISPART över båge ISPART A B C under ISPART vänster-om höger-om över under ISA A C ISA triangel ISA båge block ISPART ISPART ISPART A över under ISA B över under vänster-om höger-om ISA ISA C generalisera triangel polygon block block
Specificering Negativt exempel B båge ISPART ISPART ISPART över A B C under över under A C ISA vänster-om höger-om ISA ISA polygon 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 G: mest specifika generaliseringen Tolkningsrymd S: mest generella specificeringen
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: {(?,?,?)} -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)}
Linjär regression Hitta den linje som bäst beskriver en datamängd Modellantagande; sambandet kan beskrivas med en rät linje h(x)= w 1 x+w 0 där w 1 anger lutningen och w 0 förskjutningen från origo Jämför avvikelsen mot linjen i varje punkt och minimera felet h(x) 9 8 7 6 5 4 3 2 1 0 0 2 4 6 8 10 x
Exempel Ålder Lön 80000 70000 20 25000 30 35000 40 50000 60 60000 65 70000 Lön 60000 50000 40000 30000 20000 10000 0 0 10 20 30 40 50 60 70 Ålder
Vad mäter felfunktionen w 0 =0 w 1 =0,5 h " = 0,5" h(x) 3,5 3 2,5 2 1,5 1 0,5 Felet 0 0 0,5 1 1,5 2 2,5 3 3,5 x
Felfunktioner Finns flera sätt att räkna ut felet mellan riktiga värdet, t och erhållna värdet h(x) Absolutvärdet, L1: % "#$ ' " h * " Kvadratfelet, L2: % "#$ (' " h * " ) - Värsta fallet: max " ' " h * " Vanligast är kvadratfelet Stora fel betraktas som värre än små, negativa fel kan inte ta ut positiva Vill ändra koefficienterna, vikterna, w i i ekvationen h(x)=w 1 x+w 0 så att felet minimeras
Felfunktionen för L2 Inför,! w #, w % = 1 ( ) *+% (. * h 1 * ) 3 där. * är korrekt värde och h 1 * = 4 % 1 * + 4 # Vi vill justera parametrarna w 0 och w 1 så att felet blir så litet som möjligt Vanlig metod är gradientsökning
Gradientsökning, intuition J(w) J(w) w = w - stort värde w w = w + litet värde w
Gradientsökning Steg 0: Börja med e1 godtyckligt värde för w. Steg 1: Räkna ut felfunk<onens tangent i den punkt som motsvarar den aktuella modellparametern w. Steg 2: Gå i motsa1 riktning av tangenten: Om tangenten har posi<v lutning, minska värdet på w. Om tangenten har nega<v lutning, höj värdet på w. Detalj: Lutningen mul<pliceras med en steglängdsfaktor. Upprepa steg 1 2 <lls felet blir <llräckligt litet.
Gradienten Minimera felet genom att söka i gradientens riktning Derivatan ger gradienten, riktningen ' Derivera! " #, " % = % ' )*%(, ) h / ) ) 1 med avseende på w 1 och w 0 där h / ) = " % / ) + " # Dvs räkna ut 23(4 5) 24 5 och 23(4 6) 24 6 23(4 5 ) = % 24 5 ' )*% ' 2(, ) h / ) ) 23(4 6 ) = % 24 6 ' )*% ' 2/ ) (, ) h / ) )
Parameteruppdatering! " =! " + % &'() *) &) * Steglängdsfaktorn % Med partialderivatorna (2 inbakad i %)!, =!, + % -. "0-. (1 " h 4 " )! - =! - + % -. "0-. 4 " (1 " h 4 " )
Exempel! = 0,1, w 0 = 0 och w 1 varierar, dvs h(x) = w 1 x. Ini5alt w 1 = 0,5 " # = " # + 0,1 # ) +,# ) - + (/ + w 1 - + ) 3,5 3 2,5 2 1,5 1 0,5 0 0 1 2 3 4
Exempel! = 0,1, w 0 = 0 och w 1 varierar, dvs h(x) = w 1 x. Initialt w 1 = 0,5 3,5 3 2,5 2 1,5 1 0,5 0 0 1 2 3 4 " # = " # + 0,1 # ) +,# ) - + (/ + w 1 - + ) " # = 0,5 + 0,1 # 3 0,5+0,1 7,89:9;,8 3 ( 1 0,5 + 2(2 1)+3(3-1,5))= = 0,5 +0,233=0,733
Exempel! = 0,1, w 0 = 0 och w 1 varierar, dvs h(x) = w 1 x. Ini;alt w 1 = 0,5 " # = " # + 0,1 # ) +,# ) - + (/ + w 1 - + ) 3,5 3 2,5 2 1,5 1 0,5 0 0 1 2 3 4 " # = 0,5 + 0,1 # 3 0,5+0,1 7,89:9;,8 3 ( 1 0,5 + 2(2 1)+3(3-1,5))= = 0,5 +0,233=0,733
Exempel! = 0,1, w 0 = 0 och w 1 varierar, dvs h(x) = w 1 x. Initialt w 1 = 0,5 3,5 3 2,5 2 1,5 1 0,5 0 0 1 2 3 4 " # = " # + 0,1 # ) +,# ) - + (/ + " 1 - + ) " # = 0,5 + 0,1 # 2 0,5+0,1 6,7898:,7 2 ( 1 0,5 + 2(2 1)+3(3-1,5))= = 0,5 +0,233=0,733 " # = 0,733 + 0,1 # ( 1 0,733 + 2(2 1,467)+3(3-2 2,199))= 0,733+0,1 6,9?@8#,6??89,:62 = 2 0,733 +0,124=0,857 etc
Gradientsökning J(w 1 ) J(w 1 ) w 1 Iteration 1: w 1 = 0,5 + 0,233 w 1 Itera2on 2: w 1 = 0,733 + 0,124
Några grundläggande begrepp Guldstandard Datamängd med indata, x och motsvarande korrekta målvärde, t Träning Visa upp alla x och t och låt systemet lära sig Testning Testa en modell genom att visa upp x och jämföra modellens predicerade utvärde med målvärdet t Träningsfel Fel hos modellen vid träning Generaliseringsfel Hur mycket fel modellen gör på okända data. Uppskattas utifrån testfelet, dvs fel på testdata
Underfitting och overfitting Underfitting Modellen räcker inte för att få ett lågt felvärde på träningsmängden. Den är ännu sämre på testmängden Overfitting Modellen överoptimerad på träningsdata. Lågt felvärde på träningsdata men högt på testdata. Lämplig modell Underfi?ng Overfitting
Regularisering Används för att undvika overfitting, undvika att koefficienterna blir för bra Förändra inlärningsalgoritmen så att generaliseringsfelet minskar utan att träningsfelet blir mindre Exempel: L2-regularisering. Lägg till en extra term till felfunktionen som blir större ju större vikterna är Låt funktionen fokusera på det generella inte det extrema
Multipel linjär regression Generalisera gradientsökning till flera särdrag, x, och parametrar, w h " #,, " & = ( w ) " ) & )*# Har infört x 0 = 1 för att snygga till ekvationen Sambandet mellan indata och utdata blir nu ett hyperplan
Multipel linjär regression Exempel Ålder Anst. tid Lön 25 0 30000 30 5 40000 40 15 50000 70000 60000 50000 40000 30000 60 25 60000 65 35 65000 20000 10000 0 25 30 40 50 Lön Anst. tid 60
Vektorer Sammanfa,a särdrag och parametrar i vektorer, vektorer skrivs o8a med fet s9l, x, och, w h " = $ % " (matrisnota9on), * jämför h & ',, & * =,-' w, &, Skalär E, tal T.ex. längd (2m), 9d (12:30), temperatur (170K) Vektor Riktning och längd, t.ex. has9ghet, kra8
Några vektorsamband Likhet Lika lång och med samma riktning men inte nödvändigtvis samma startpunkt Addition u u+v v Multiplikation v -v 2v
Punkter och vektorer y y b (a,b) b (a,b,c) z c a x a x Vektorer kan identifieras som punkter (a,b), (a,b,c) Egentligen ortsvektorer men vi kan parallellförflytta Kan generalisera till vilken dimension som helst (w 0,w 1,, w n )
Vektoroperationer Antag z = (a 1, b 1,c 1 ) och w = (a 2, b 2,c 2 ) Addi1on z + w = (a 1, b 1,c 1 ) + (a 2,b 2,c 2 ) = (a 1 +a 2, b 1 +b 2, c 1 +c 2 ) Ex u =(1,2), v=(1,0) u + v = (2,2) 2 1 u v Mul1plika1on med skalär 2u = 2(a,b,c) = (2a,2b,2c) 1 2 x
Matriser Vektorer multipliceras med skalärprodukt (eller kryssprodukt) Matriser är rektangulära scheman av tal Exempel A = 1 3 4 2 1 3 2 0 och B = 3 0 1 1 A är en 2 3-matris med 2 rader och 3 kolumner med elementen a 11 =1, a 12 =3, a 13 =4, a 21 =-3, a 22 =2, a 23 =0 B är en 3 2-matris Matriser multipliceras annorlunda
Matrismultiplikation Matrisen C=AB fås genom att multiplicera raden i A med kolumnen i B! "# = ) &'( * "& + &# Om A en n m-matris måste B vara m k och C bli n k Exempel A = 1 3 4 2 1 3 2 0 2 3 och B = 3 0 3 2 1 1 4 = 1 5 2 + 3 5 3 + 4 5 1 1 5 1 + 3 5 0 + 4 5 1 3 5 2 + 2 5 3 + 0 5 1 3 5 1 + 2 5 0 + 0 5 1 = 7 5 0 3
Matrismultiplikation,2 Matriser kan transponeras Exempel A = 1 3 4 3 2 0 )* = h, = - *, antag. = w 0 w 1 w 2 h, = - *, = 2 560 w 0 w 1 3 0 3 1 3 2 = w 2 w 5 3 5 = w 0 3 0 + w 1 3 1 + w 2 3 2 1 3 3 2 4 0
Skalärprodukt Produkten av två vektorer resulterar i en skalär, dvs ett tal u v (Kallas dot product på engelska) Antag u = (u 1, u 2,u 3 ) och v = (v 1, v 2,v 3 ) då definieras u v som u v = u 1 v 1 + u 2 v 2 + u 3 v 3 Skalärprodukten innehåller information om både vektorns längd och riktning Speciellt är u u = u 1 u 1 + u 2 u 2 + u 3 u 3 = u 1 2 + u 2 2 + u 3 2
Skalärprodukt Längden av vektorn v = (a,b) betecknas v kan beräknas med Pythagoras sats som v = " # + % # y Skalärprodukten v v = aa+bb = a 2 + b 2 v v = v 2 dvs v = ' ' Två vektorer u och v med vinkeln ( mellan Geometrisk definition av skalärprodukt v u = v u cos(() b v v ( (a,b) a u x
Multipel linjär regression h " = $ % " Parametervektor w som skall uppdateras I flera dimensioner blir gradienten den vektor som innehåller alla lutningar, en lutning per dimension Jämför & ' = & ' + ) *+(-.) *-. där vi bara tittade på w 1 Flera parametrar 0J($) = * *- 2 * *- 3 * *- 4 Parameteruppdatering $ = $ + ) 0J($)
Binär klassificering Avgöra vilken klass ett element tillhör Vill dra en rät linje som på bästa sätt delar exemplen 9 8 7 6 5 4 3 2 1 0 0 2 4 6 8 10 Kombinera linjär regression med en tröskelfunktion f(x) h " = $(& ' ")
Tröskelfunktion T.ex.! " = $%&' " = ( 1 *+ " 0 0.//.0$ dvs f(x)=1 om x posi5v Perecptroninlärning -1-0,5 0 0,5 1
Neurala nätverk Neuroner och neurala nätverk Perceptroner Nätverk Inlärning med återkoppling
Neuron Cellkropp Axon Dendriter Synaps
Perceptron x 0 = t x 1 x 2 w 0 w 1 w 2 S... h(x) x j w j h(#) = &'()(* / + 0 + ). +,- h # = 1(2 3 4) 1 0 = &'() 0 = 5 1 78 0 0 0 ;<<;=&
Booleska funktioner Genom att manipulera tröskelvärdet kan man få godtycklig boolesk funktion, ex 3 ingångar med: x 0 = t = 1, w 0 = -1,5, w 1 = w 2 = 1 ger h(x)=steg(-1,5 + x 1 + x 2 ) Dvs logiskt OCH x 1 x 2 h(x) 0 0 0 0 1 0 1 0 0 1 1 1 x 0 = t = 1, w 0 = -0,5, w 1 = w 2 = 1 ger h(x)=steg(-0,5 + x 1 + x 2 ) Dvs logiskt ELLER x 1 x 2 h(x) 0 0 0 0 1 1 1 0 1 1 1 1
Inlärning av perceptroner Perceptroninlärning För varje särdragsvektor och målvärde i träningsmängden 1. Beräkna h(x) 2. Uppdatera parametervektorn w = w +!(t - h(x))x Upprepa tills klassifikationsfelet tillräckligt litet
Exempel Träningsdata x 1 x 2 t 1,0 1,0 1 9,4 6,4-1 2,5 2,1 1 8,0 7,7-1 0,5 2,2 1 7,9 8,4-1 7,0 7,0-1 2,8 0,8 1 1,2 3,0 1 7,8 6,1-1 x 0 = t x 1 x 2 w 0 w 1 w 2 h # = % & ' ( Antag att vi startar med vikterna: w 0 = -0,6, w 1 = 0,75, w 2 = 0,5 x 0 =1 Första input ger då: h(x)=f(-0,6+1,0 0,75+1,0 0,5)=1 Felet blir 1-1=0 S f % ) = * 1,- ) 0 1,- ) < 0 så ingen uppdatering av vikter h(x)
Exempel w = w +!(t - h(x))x!=0,2 x 1 x 2 t w t 0 w t 1 w t 2 h(x) Fel w t+1 0 w t+1 1 w t+1 2 1,0 1,0 1-0,6 0,75 0,5 1 0-0,6 0,75 0,5 9,4 6,4-1 -0,6 0,75 0,5 1-2 -1-3,01-2,06 2,5 2,1 1-1 -3,01-2,06-1 2-0,6-2,01-1,22 8 7,7-1 -0,6-2,01-1,22-1 0-0,6-2,01-1,22 0,5 2,2 1-0,6-2,01-1,22-1 2-0,2-1,81-0,34 7,9 8,4-1 -0,2-1,81-0,34-1 0-0,2-1,81-0,34 7 7-1 -0,2-1,81-0,34-1 0-0,2-1,81-0,34 2,8 0,8 1-0,2-1,81-0,34-1 2 0,2-0,69-0,02 1,2 3 1 0,2-0,69-0,02-1 2 0,6-0,21 1,18 7,8 6,1-1 0,6-0,21 1,18 1-2 0,2-3,33-1,26
Resultat, exempel Efter 500 iterationer med samma träningsmängd konvergerar vikterna w 0 = 10,9, w 1 = -1,3, w 2 = -1,1 Vi får en beslutslinje om vi sätter h(x)=0, dvs 0 =10,9 1,3x 1 1,1 x 2 dvs 9 x 2 t = - 1 x 1 = 0,85x 2 + 8,38 Ex. x 2 = 9 ger x 1 = 0,73 8 7 6 5 4 x 2 = 0 ger x 1 =8,4 3 2 t = 1 1 0 0 2 4 6 8 10 x 1
Andra aktiveringsfunktioner Aktiveringsfunktion för nätet: h " = $ % & ' Stegfunktionen m.fl. liknande diskreta funktioner ger oberäkneligt inlärningsbeteende. Vill ha en kontinuerlig, deriverbar, funktion. Ex. sigmoid (även kallad logistiska funktionen): f(x) f ) = 1 1 +, -. 1 För nätet får vi då: 1 h ' = 1 +, -%/ ' x
Gradientsökning Uppdateringsfunktion, jämför multipel linjär regression ( = ( + 3 4J ( * Med kvadratfelsfunktionen (L2) 6 ( = (7 h * ), och sigmoidfunktionen 1 h * = 1 + 1 2() * Dvs vi vill partialderivera(" $ $%& '() * ), för varje w i
Derivering av felfunktionen Några deriveringsregler Kedjeregeln!(# %)!'!(, -. ) = 0 1'!' =!(# %)!%!%!' alternativt (f(g)) =f (g)g 5 61!( 2. ) = 3!' ' 4 2 278-9: ; 4 5< = = 2 6 2 3 3?, -9: ; 5 61 2 278-9: ; 5< = 5 61 278-9: ; = 0 19: ; 3 = 5< = (3?, -9:; ) @ 019:; h(;) B
Derivering av felfunktionen, 2! "# h * = $ $%& '() * +!, - = 2 " $ 1 123 '() * 4 #()* h(*) 8 1 123 '() * 4#()* = 1 1 : * +! "# $%& '() * = 2 " h *!, - 2 " h * 1 h * h * 1 : * 1 h * 8 = Viktuppdatering < = = < = +? " h * 1 h * h * @ =
Linjärt separerbara problem Booleska funktionerna OCH och ELLER linjärt separerbara Exlusivt ELLER (XOR) X 2 x 1 x 2 y 0 0 0 0 1 1 1 0 1 1 1 0 1 Finns ingen linje som separerar Problem för perceptroner 1 X 1
Neurala nät XOR x 0 = -1 x 1 x 2 1,5 1 S z x 0 = -1 1-2 0,5 1 S h(x) 1 x 1 x 2 t z = -1,5 + x 1 + x 2 h(x) = -0,5-2z + x 1 + x 2 0 0 0-1,5+0+0=-1,5 0-0,5-0+0+0=-0,5 0 0 1 1-1,5+0+1=-0,5 0-0,5+0+0+1=0,5 1 1 0 1-1,5+1+0=-0,5 0-0,5+0+1+0=0,5 1 1 1 0-1,5+1+1=0,5 1-0,5-2+1+1=-0,5 0
Nätverk t 1 t i y 1..... y i w ji h 1..... h j w kj x 1..... x k
Neurala nät Nätverkstopologin Hur många dolda lager och hur många noder i varje lager Aktiveringsfunktion Sigmoid, tanh,. Olika funktioner i olika lager Inlärning Problem att räkna ut felet för mellanlagret Finns ingen metod som garanterar optimalitet Gradient backpropagation vanlig metod Undvika överinlärning
Gradient backpropagation Viktuppdatering för utdatalagret, y Samma som för perceptronen (sigmoid), med utdata från dolda lagret, h, som indata! =! + $ % ' 1 ' ' * Felet från noder i dolda lagret antas bero av det fel som noden givit upphov till i lagret efter +!. - / = 0 5 1-6 1 4 123 w 1m w 2m h m E wkm x 1 x 2 x k
Gradient backpropagation 1. Initialisera vikterna slumpmässigt 2. Upprepa tills resultatet tillfredställande: Applicera en indatavektor x (förväntat resultat t) Aktivera nätverket, utdata y Räkna ut felet för utdatalagret: D i = (t i y i ) (1- y i ) y i Uppdatera vikterna i utdatalagret: w ji := w ji + ad i h j där a är en förstärkningsfaktor < 1 Räkna ut felet för dolda lagret: D j = S i (w ji D i ) (1- h j ) h j Uppdatera vikterna i dolda lagret: w kj := w kj + ad j x k Två sista stegen upprepas om flera lager
Förbättringar Bä,re ak0veringsfunk0oner med starkare gradienter Regularisering Skapa nya datamängder genom a, transformera befintlig Ex rotera och skala bilder Dropouts Slå ut slumpvisa delar av nätet. Kan förhindra a, nätet blir överkänsligt för säregenheter hos datamängden. Återkoppla näten RNN, LSTM h t h 0 h 1 = h t x t x 0 x 1 x t
Support Vector Machines (SVM) Vanlig klassificeringsmetod med många färdiga bibliotek att använda (Weka) Väljer att separera för att få bästa möjliga generalisering Linjär regression väljer utifrån alla punkter SVM identifierar några punkter som viktigare, support vectors Väljer linjen som maximerar avståndet till alla dessa Support vectors x 1
The Kernel trick Ibland går det inte a4 dela linjärt Transformera ;ll högre dimension: x F(x) Ex f 1 = x 2 1, f 2 = x 2 2, f 3 = 2x 1 x 2 x 1 f 3 x 2 f 2 f 1
Sammanfattning Agent som lär sig Typer av återkoppling: övervakad, oövervakad, förstärkt inlärning Beslutsträdsinlärning Val av attribut, informationsmått, entropi Hypotesinlärning Version Space Linjär regression Felfunktioner Gradientsökning Grundläggande begrepp Guldstandard, träning, teseng, träningsfel, generaliseringsfel MulEpel linjär regression Vektorer, vektoroperaeoner, matriser, skalärprodukt Neurala nät SVM Perecptroner Inlärning av perceptroner Gradientsökning Nätverk av perceptroner Gradient backpropagaeon